luna-agents 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/LICENSE +21 -0
- package/.claude-plugin/README.md +285 -0
- package/.claude-plugin/claude-plugin.json +106 -0
- package/.claude-plugin/index.js +318 -0
- package/.claude-plugin/lib/api-client.js +504 -0
- package/.claude-plugin/lib/rag-utils.js +442 -0
- package/.claude-plugin/package.json +418 -0
- package/LICENSE +21 -0
- package/README.md +350 -0
- package/agents/json/design-architect.json +57 -0
- package/agents/json/luna-auth.json +71 -0
- package/agents/json/luna-brand.json +66 -0
- package/agents/json/luna-cloudflare.json +261 -0
- package/agents/json/luna-code-review.json +63 -0
- package/agents/json/luna-deployment.json +68 -0
- package/agents/json/luna-documentation.json +85 -0
- package/agents/json/luna-hig.json +128 -0
- package/agents/json/luna-layout-designer.json +178 -0
- package/agents/json/luna-monitoring-observability.json +64 -0
- package/agents/json/luna-post-launch-review.json +68 -0
- package/agents/json/luna-requirements-analyzer.json +53 -0
- package/agents/json/luna-task-executor.json +63 -0
- package/agents/json/luna-task-planner.json +62 -0
- package/agents/json/luna-testing-validation.json +66 -0
- package/agents/luna-365-security.md +96 -0
- package/agents/luna-analytics.md +318 -0
- package/agents/luna-api-generator.md +654 -0
- package/agents/luna-auth.md +396 -0
- package/agents/luna-brand.md +248 -0
- package/agents/luna-cloudflare.md +728 -0
- package/agents/luna-code-review.md +487 -0
- package/agents/luna-database.md +453 -0
- package/agents/luna-deployment.md +202 -0
- package/agents/luna-design-architect.md +353 -0
- package/agents/luna-docker.md +615 -0
- package/agents/luna-documentation.md +177 -0
- package/agents/luna-full-test.md +910 -0
- package/agents/luna-glm-vision.md +211 -0
- package/agents/luna-hig.md +430 -0
- package/agents/luna-lemonsqueezy.md +441 -0
- package/agents/luna-monitoring-observability.md +199 -0
- package/agents/luna-openai-app.md +499 -0
- package/agents/luna-post-launch-review.md +191 -0
- package/agents/luna-rag-enhanced.md +1619 -0
- package/agents/luna-rag.md +1733 -0
- package/agents/luna-requirements-analyzer.md +189 -0
- package/agents/luna-run.md +620 -0
- package/agents/luna-seo.md +338 -0
- package/agents/luna-task-executor.md +371 -0
- package/agents/luna-task-planner.md +275 -0
- package/agents/luna-testing-validation.md +681 -0
- package/agents/luna-ui-fix.md +591 -0
- package/agents/luna-ui-test.md +600 -0
- package/agents/luna-user-guide.md +409 -0
- package/agents/site-auditor.md +83 -0
- package/commands/3d-mesh.md +12 -0
- package/commands/3d.md +12 -0
- package/commands/agent-boost.md +13 -0
- package/commands/ai-index.md +16 -0
- package/commands/api.md +12 -0
- package/commands/assert.md +17 -0
- package/commands/audience.md +12 -0
- package/commands/auth.md +17 -0
- package/commands/autopilot.md +12 -0
- package/commands/boost-finsavvy.md +10 -0
- package/commands/boost-org.md +10 -0
- package/commands/boost-project.md +12 -0
- package/commands/brand.md +17 -0
- package/commands/browser-test.md +18 -0
- package/commands/cf.md +26 -0
- package/commands/cfg.md +33 -0
- package/commands/chain.md +12 -0
- package/commands/challenge.md +13 -0
- package/commands/clone.md +12 -0
- package/commands/cmds.md +243 -0
- package/commands/collab.md +12 -0
- package/commands/compete.md +12 -0
- package/commands/config-rules.md +21 -0
- package/commands/connect-infra.md +10 -0
- package/commands/context-pack.md +13 -0
- package/commands/curb.md +12 -0
- package/commands/des.md +38 -0
- package/commands/devto.md +20 -0
- package/commands/dock.md +26 -0
- package/commands/docs.md +33 -0
- package/commands/e2e-flow.md +18 -0
- package/commands/email-routing.md +10 -0
- package/commands/feature.md +12 -0
- package/commands/figma.md +12 -0
- package/commands/fix.md +12 -0
- package/commands/flaky.md +12 -0
- package/commands/flow-record.md +12 -0
- package/commands/gamify.md +12 -0
- package/commands/ghost.md +12 -0
- package/commands/git-insights.md +12 -0
- package/commands/go-viral.md +16 -0
- package/commands/go.md +42 -0
- package/commands/graph-rag.md +13 -0
- package/commands/guard.md +12 -0
- package/commands/heal.md +17 -0
- package/commands/heygen.md +12 -0
- package/commands/hig.md +33 -0
- package/commands/idea.md +12 -0
- package/commands/imagine.md +12 -0
- package/commands/inbox.md +12 -0
- package/commands/lam.md +12 -0
- package/commands/landing.md +12 -0
- package/commands/launch.md +12 -0
- package/commands/learn.md +12 -0
- package/commands/leverage.md +12 -0
- package/commands/ll-365-secure.md +179 -0
- package/commands/ll-3d-mesh.md +94 -0
- package/commands/ll-3d.md +123 -0
- package/commands/ll-a11y-scan.md +143 -0
- package/commands/ll-a11y.md +71 -0
- package/commands/ll-agent-boost.md +92 -0
- package/commands/ll-agent-chain.md +104 -0
- package/commands/ll-ai-index.md +120 -0
- package/commands/ll-api-client.md +77 -0
- package/commands/ll-api.md +99 -0
- package/commands/ll-assert.md +73 -0
- package/commands/ll-audience.md +308 -0
- package/commands/ll-auth.md +145 -0
- package/commands/ll-autopilot.md +113 -0
- package/commands/ll-boost-finsavvy.md +106 -0
- package/commands/ll-boost-org.md +161 -0
- package/commands/ll-boost-project.md +118 -0
- package/commands/ll-brand.md +150 -0
- package/commands/ll-browser-test.md +203 -0
- package/commands/ll-challenge.md +124 -0
- package/commands/ll-changelog.md +80 -0
- package/commands/ll-ci.md +78 -0
- package/commands/ll-claude-instructions.md +80 -0
- package/commands/ll-clone.md +82 -0
- package/commands/ll-cloudflare.md +580 -0
- package/commands/ll-codemap.md +78 -0
- package/commands/ll-collab.md +87 -0
- package/commands/ll-compete.md +67 -0
- package/commands/ll-config-rules.md +255 -0
- package/commands/ll-config.md +434 -0
- package/commands/ll-connect-infra.md +123 -0
- package/commands/ll-context-pack.md +100 -0
- package/commands/ll-curb.md +164 -0
- package/commands/ll-debug.md +76 -0
- package/commands/ll-deploy.md +101 -0
- package/commands/ll-deps.md +70 -0
- package/commands/ll-design.md +86 -0
- package/commands/ll-devto-publish.md +172 -0
- package/commands/ll-dockerize.md +273 -0
- package/commands/ll-docs.md +123 -0
- package/commands/ll-e2e-flow.md +132 -0
- package/commands/ll-e2e-test.md +231 -0
- package/commands/ll-email-routing.md +130 -0
- package/commands/ll-env.md +70 -0
- package/commands/ll-execute.md +98 -0
- package/commands/ll-feature.md +80 -0
- package/commands/ll-figma.md +82 -0
- package/commands/ll-fix.md +76 -0
- package/commands/ll-flaky.md +151 -0
- package/commands/ll-flow-record.md +180 -0
- package/commands/ll-flowdocs.md +83 -0
- package/commands/ll-gamify.md +131 -0
- package/commands/ll-gemma4.md +84 -0
- package/commands/ll-ghost.md +79 -0
- package/commands/ll-git-insights.md +152 -0
- package/commands/ll-go-viral.md +171 -0
- package/commands/ll-graph-rag.md +113 -0
- package/commands/ll-guard.md +92 -0
- package/commands/ll-heal.md +135 -0
- package/commands/ll-heygen.md +203 -0
- package/commands/ll-hig.md +578 -0
- package/commands/ll-hld.md +84 -0
- package/commands/ll-i18n.md +74 -0
- package/commands/ll-idea.md +101 -0
- package/commands/ll-imagine.md +72 -0
- package/commands/ll-inbox.md +116 -0
- package/commands/ll-lam.md +93 -0
- package/commands/ll-landing.md +171 -0
- package/commands/ll-launch.md +100 -0
- package/commands/ll-learn.md +87 -0
- package/commands/ll-leverage.md +137 -0
- package/commands/ll-local-llm.md +131 -0
- package/commands/ll-ls-products.md +160 -0
- package/commands/ll-marketplace.md +130 -0
- package/commands/ll-mcp-publish.md +104 -0
- package/commands/ll-migrate.md +68 -0
- package/commands/ll-mock.md +79 -0
- package/commands/ll-money.md +87 -0
- package/commands/ll-monitor.md +120 -0
- package/commands/ll-morph.md +117 -0
- package/commands/ll-multi-agent.md +170 -0
- package/commands/ll-native.md +93 -0
- package/commands/ll-nexa.md +79 -0
- package/commands/ll-onboarding.md +84 -0
- package/commands/ll-openhands.md +78 -0
- package/commands/ll-organic-promote.md +260 -0
- package/commands/ll-parallel.md +74 -0
- package/commands/ll-payments.md +83 -0
- package/commands/ll-perf-trace.md +147 -0
- package/commands/ll-perf.md +65 -0
- package/commands/ll-persona.md +280 -0
- package/commands/ll-pipe.md +296 -0
- package/commands/ll-plan-impl.js +570 -0
- package/commands/ll-plan-v2.md +297 -0
- package/commands/ll-plan.md +87 -0
- package/commands/ll-postlaunch.md +109 -0
- package/commands/ll-pr.md +84 -0
- package/commands/ll-present.md +110 -0
- package/commands/ll-product-map.md +152 -0
- package/commands/ll-promote.md +352 -0
- package/commands/ll-publish.md +124 -0
- package/commands/ll-pulse.md +96 -0
- package/commands/ll-rag-guided.md +345 -0
- package/commands/ll-rag-upgrade.md +504 -0
- package/commands/ll-rag.md +343 -0
- package/commands/ll-record.md +114 -0
- package/commands/ll-refactor.md +71 -0
- package/commands/ll-requirements.md +71 -0
- package/commands/ll-review.md +92 -0
- package/commands/ll-rollback.md +66 -0
- package/commands/ll-routemap.md +79 -0
- package/commands/ll-rules.md +90 -0
- package/commands/ll-shortcuts.md +229 -0
- package/commands/ll-sing.md +99 -0
- package/commands/ll-site-audit.md +228 -0
- package/commands/ll-smart-route.md +92 -0
- package/commands/ll-smart-search.md +58 -0
- package/commands/ll-storybook.md +86 -0
- package/commands/ll-swarm.md +101 -0
- package/commands/ll-test.md +97 -0
- package/commands/ll-time-machine.md +72 -0
- package/commands/ll-ui-convert.md +433 -0
- package/commands/ll-video.md +108 -0
- package/commands/ll-vision-pipeline.md +247 -0
- package/commands/ll-vision.md +74 -0
- package/commands/ll-visual-diff.md +118 -0
- package/commands/ll-visual-qa.md +204 -0
- package/commands/ll-visual-regression.md +96 -0
- package/commands/ll-voice.md +138 -0
- package/commands/ll-watch.md +65 -0
- package/commands/ll-workflow.md +108 -0
- package/commands/ll-zen.md +98 -0
- package/commands/local-llm.md +12 -0
- package/commands/marketplace.md +13 -0
- package/commands/mcp-publish.md +16 -0
- package/commands/migrate.md +12 -0
- package/commands/money.md +12 -0
- package/commands/morph.md +12 -0
- package/commands/multi-agent.md +12 -0
- package/commands/native.md +12 -0
- package/commands/nexa.md +12 -0
- package/commands/oh.md +12 -0
- package/commands/organic-promote.md +16 -0
- package/commands/perf-trace.md +12 -0
- package/commands/perf.md +12 -0
- package/commands/persona.md +12 -0
- package/commands/pipe.md +21 -0
- package/commands/plan.md +38 -0
- package/commands/pr.md +12 -0
- package/commands/present.md +12 -0
- package/commands/product-map.md +13 -0
- package/commands/promote.md +16 -0
- package/commands/publish.md +12 -0
- package/commands/pulse.md +12 -0
- package/commands/q.md +35 -0
- package/commands/record.md +12 -0
- package/commands/refactor.md +12 -0
- package/commands/req.md +40 -0
- package/commands/retro.md +33 -0
- package/commands/rev.md +39 -0
- package/commands/rules.md +19 -0
- package/commands/search.md +12 -0
- package/commands/sec.md +34 -0
- package/commands/ship.md +39 -0
- package/commands/sing.md +12 -0
- package/commands/site-audit.md +12 -0
- package/commands/smart-route.md +13 -0
- package/commands/swarm.md +12 -0
- package/commands/test.md +39 -0
- package/commands/time-machine.md +12 -0
- package/commands/ui.md +33 -0
- package/commands/video.md +12 -0
- package/commands/vision.md +12 -0
- package/commands/voice.md +12 -0
- package/commands/vr.md +18 -0
- package/commands/watch.md +39 -0
- package/commands/workflow.md +19 -0
- package/commands/zen.md +12 -0
- package/package.json +76 -0
- package/setup.sh +382 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-vision-pipeline
|
|
3
|
+
displayName: Luna Vision Pipeline
|
|
4
|
+
description: Master orchestrator — chains browser-test → visual-qa → visual-diff → a11y-scan → auto-fix loop across all vision MCP servers
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
category: testing
|
|
7
|
+
agent: luna-vision-pipeline
|
|
8
|
+
parameters:
|
|
9
|
+
- name: url
|
|
10
|
+
type: string
|
|
11
|
+
description: App URL to test (e.g., http://localhost:3000)
|
|
12
|
+
required: true
|
|
13
|
+
prompt: true
|
|
14
|
+
- name: baseline
|
|
15
|
+
type: string
|
|
16
|
+
description: Path to baseline screenshots for regression diff (or "none" to skip diff layer)
|
|
17
|
+
required: false
|
|
18
|
+
default: none
|
|
19
|
+
- name: fix
|
|
20
|
+
type: boolean
|
|
21
|
+
description: "Enable auto-fix loop (default: true)"
|
|
22
|
+
required: false
|
|
23
|
+
default: true
|
|
24
|
+
- name: max_fix_rounds
|
|
25
|
+
type: number
|
|
26
|
+
description: "Max auto-fix retry rounds (default: 3)"
|
|
27
|
+
required: false
|
|
28
|
+
default: 3
|
|
29
|
+
workflow:
|
|
30
|
+
- detect_and_launch
|
|
31
|
+
- capture_all_screenshots
|
|
32
|
+
- parallel_analysis
|
|
33
|
+
- correlate_findings
|
|
34
|
+
- auto_fix_loop
|
|
35
|
+
- retest_and_verify
|
|
36
|
+
- generate_master_report
|
|
37
|
+
output:
|
|
38
|
+
- .luna/{current-project}/vision-pipeline/
|
|
39
|
+
- .luna/{current-project}/vision-pipeline/report.md
|
|
40
|
+
prerequisites: []
|
|
41
|
+
mcp_servers:
|
|
42
|
+
- zai-mcp-server
|
|
43
|
+
- image-compare
|
|
44
|
+
- accessibility-scanner
|
|
45
|
+
- image-extractor
|
|
46
|
+
- playwright
|
|
47
|
+
- puppeteer
|
|
48
|
+
- fetch
|
|
49
|
+
- ruflo
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# Luna Vision Pipeline — Master Orchestrator
|
|
53
|
+
|
|
54
|
+
The ultimate visual QA command. Chains **all vision MCP servers** in a single pipeline with auto-fix loop.
|
|
55
|
+
|
|
56
|
+
## Full Pipeline
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
/vision-pipeline http://localhost:3000
|
|
60
|
+
│
|
|
61
|
+
▼
|
|
62
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
63
|
+
│ PHASE 1: CAPTURE │
|
|
64
|
+
│ Playwright: detect routes → screenshot all pages │
|
|
65
|
+
│ Output: 4 viewports × N pages = screenshots/ │
|
|
66
|
+
└──────────────────────────┬──────────────────────────────────┘
|
|
67
|
+
│
|
|
68
|
+
▼
|
|
69
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
70
|
+
│ PHASE 2: PARALLEL ANALYSIS (all run simultaneously) │
|
|
71
|
+
│ │
|
|
72
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
73
|
+
│ │ zai-mcp │ │ image-compare│ │ a11y-scanner │ │
|
|
74
|
+
│ │ Vision AI │ │ Pixel Diff │ │ WCAG axe-core│ │
|
|
75
|
+
│ │ │ │ │ │ │ │
|
|
76
|
+
│ │ • Layout │ │ • vs baseline│ │ • Contrast │ │
|
|
77
|
+
│ │ • Content │ │ • Diff % │ │ • ARIA │ │
|
|
78
|
+
│ │ • Style │ │ • Overlay │ │ • Keyboard │ │
|
|
79
|
+
│ │ • HIG │ │ • Regression │ │ • Labels │ │
|
|
80
|
+
│ │ • Brand │ │ detection │ │ • Headings │ │
|
|
81
|
+
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
|
|
82
|
+
│ │ │ │ │
|
|
83
|
+
│ ┌──────────────┐ │
|
|
84
|
+
│ │ image-extract│ (feeds screenshots into Claude Vision) │
|
|
85
|
+
│ │ • OCR/text │ │
|
|
86
|
+
│ │ • Typos │ │
|
|
87
|
+
│ │ • Placeholders│ │
|
|
88
|
+
│ └──────┬───────┘ │
|
|
89
|
+
└─────────┼────────────────┼────────────────┼─────────────────┘
|
|
90
|
+
│ │ │
|
|
91
|
+
└────────────────┼────────────────┘
|
|
92
|
+
▼
|
|
93
|
+
���─────────────────────────────────────────────────────────────┐
|
|
94
|
+
│ PHASE 3: CORRELATE │
|
|
95
|
+
│ Cross-reference findings from all 4 analysis layers │
|
|
96
|
+
│ Deduplicate (same issue found by multiple layers) │
|
|
97
|
+
│ Prioritize by combined severity score │
|
|
98
|
+
│ Map each finding to source file + component │
|
|
99
|
+
└──────────────────────────┬──────────────────────────────────┘
|
|
100
|
+
│
|
|
101
|
+
▼
|
|
102
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
103
|
+
│ PHASE 4: AUTO-FIX LOOP (if enabled) │
|
|
104
|
+
│ │
|
|
105
|
+
│ For each CRITICAL/HIGH finding: │
|
|
106
|
+
│ 1. Read source component │
|
|
107
|
+
│ 2. Generate fix (max 100 lines) │
|
|
108
|
+
│ 3. Apply fix │
|
|
109
|
+
│ 4. Re-capture screenshot │
|
|
110
|
+
│ 5. Re-analyze with same MCP layer │
|
|
111
|
+
│ 6. If fixed → next issue │
|
|
112
|
+
│ 7. If not fixed → retry (max 3) │
|
|
113
|
+
│ 8. If still broken → log as blocker │
|
|
114
|
+
│ │
|
|
115
|
+
│ After all fixes: │
|
|
116
|
+
│ Re-run FULL pipeline to verify no regressions │
|
|
117
|
+
└──────────────────────────┬──────────────────────────────────┘
|
|
118
|
+
│
|
|
119
|
+
▼
|
|
120
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
121
|
+
│ PHASE 5: MASTER REPORT │
|
|
122
|
+
│ │
|
|
123
|
+
│ report.md — unified findings from all layers │
|
|
124
|
+
│ ├── Executive summary (pass/fail, score /100) │
|
|
125
|
+
│ ├── Per-page breakdown │
|
|
126
|
+
│ │ ├── Vision AI findings │
|
|
127
|
+
│ │ ├── Regression diff (if baseline provided) │
|
|
128
|
+
│ │ ├── Accessibility violations │
|
|
129
|
+
│ │ └── OCR text issues │
|
|
130
|
+
│ ├── Fixes applied (before/after) │
|
|
131
|
+
│ ├── Remaining blockers │
|
|
132
|
+
│ └── Screenshot gallery │
|
|
133
|
+
└─────────────────────────────────────────────────────────────┘
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Usage
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Full pipeline — all layers, auto-fix enabled
|
|
140
|
+
/vision-pipeline http://localhost:3000
|
|
141
|
+
|
|
142
|
+
# With regression baseline
|
|
143
|
+
/vision-pipeline http://localhost:3000 --baseline .luna/baselines/
|
|
144
|
+
|
|
145
|
+
# Analysis only, no auto-fix
|
|
146
|
+
/vision-pipeline http://localhost:3000 --fix false
|
|
147
|
+
|
|
148
|
+
# Limit fix rounds
|
|
149
|
+
/vision-pipeline http://localhost:3000 --max-fix-rounds 1
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## In Pipes
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# The ultimate pre-release check
|
|
156
|
+
/pipe vision-pipeline http://localhost:3000 --baseline .luna/baselines/ ?>> ship !>> "Visual QA failed"
|
|
157
|
+
|
|
158
|
+
# Dev loop: code → full visual QA → fix → ship
|
|
159
|
+
/pipe go *5 >> vision-pipeline http://localhost:3000 ?>> pr !>> (fix >> vision-pipeline) *2?
|
|
160
|
+
|
|
161
|
+
# Save baseline after successful QA
|
|
162
|
+
/pipe vision-pipeline http://localhost:3000 ?>> visual-diff save >> ship
|
|
163
|
+
|
|
164
|
+
# Compare environments
|
|
165
|
+
/pipe vision-pipeline https://staging.app.com --baseline ./prod-screenshots >> approve >> deploy
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Scoring
|
|
169
|
+
|
|
170
|
+
The pipeline produces a Visual QA Score (0-100):
|
|
171
|
+
|
|
172
|
+
| Component | Weight | What It Measures |
|
|
173
|
+
|-----------|--------|-----------------|
|
|
174
|
+
| Vision AI | 30% | Layout, content, style, HIG compliance |
|
|
175
|
+
| Regression | 20% | Pixel stability vs baseline |
|
|
176
|
+
| Accessibility | 30% | WCAG 2.1 AA compliance |
|
|
177
|
+
| Performance | 10% | Load times, Core Web Vitals |
|
|
178
|
+
| Text/OCR | 10% | Correct copy, no placeholders, no typos |
|
|
179
|
+
|
|
180
|
+
**Pass threshold**: >= 80/100 (configurable)
|
|
181
|
+
|
|
182
|
+
## Output
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
.luna/{project}/vision-pipeline/
|
|
186
|
+
report.md # Master unified report
|
|
187
|
+
score.json # Visual QA score breakdown
|
|
188
|
+
screenshots/ # All captured screenshots
|
|
189
|
+
vision/ # zai-mcp-server findings
|
|
190
|
+
diffs/ # image-compare overlays
|
|
191
|
+
accessibility/ # axe-core results
|
|
192
|
+
ocr/ # Extracted text
|
|
193
|
+
performance/ # Load time metrics
|
|
194
|
+
correlation/ # Cross-layer unified findings
|
|
195
|
+
fixes/ # Applied fix diffs
|
|
196
|
+
before/ # Pre-fix screenshots
|
|
197
|
+
after/ # Post-fix screenshots
|
|
198
|
+
{component}.diff
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## MCP Server Orchestration
|
|
202
|
+
|
|
203
|
+
This command demonstrates Luna's multi-MCP architecture:
|
|
204
|
+
|
|
205
|
+
| Server | Role | Runs In |
|
|
206
|
+
|--------|------|---------|
|
|
207
|
+
| **playwright** (Anthropic) | Browser automation + screenshot capture | Phase 1 |
|
|
208
|
+
| **puppeteer** (MCP official) | Fallback browser automation + headless screenshots | Phase 1 |
|
|
209
|
+
| **zai-mcp-server** | AI vision analysis, UI-to-code, error diagnosis | Phase 2 (parallel) |
|
|
210
|
+
| **image-compare** | Pixel-perfect regression diff (Pixelmatch) | Phase 2 (parallel) |
|
|
211
|
+
| **accessibility-scanner** | WCAG 2.1 axe-core compliance | Phase 2 (parallel) |
|
|
212
|
+
| **image-extractor** | Feed screenshots to Claude Vision for OCR | Phase 2 (parallel) |
|
|
213
|
+
| **fetch** (MCP official) | Validate live URLs, fetch page content for text comparison | Phase 2 (parallel) |
|
|
214
|
+
| **ruflo** | Multi-agent swarm for parallel page analysis (313 tools) | Phase 2 (orchestration) |
|
|
215
|
+
| **git** (MCP official) | Diff analysis, identify changed components for targeted testing | Phase 0 (pre-capture) |
|
|
216
|
+
| **memory** (MCP official) | Persist findings across sessions, track regressions over time | Phase 5 (post-report) |
|
|
217
|
+
| **Claude** (orchestrator) | Correlate, auto-fix, report | Phase 3-5 |
|
|
218
|
+
|
|
219
|
+
**11 MCP servers** working as one. Each is a specialist. Together they see what no single tool can see alone.
|
|
220
|
+
|
|
221
|
+
## Ruflo Integration
|
|
222
|
+
|
|
223
|
+
When ruflo is enabled, Phase 2 upgrades from sequential analysis to **swarm coordination**:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
ruflo swarm_init → spawn specialist agents
|
|
227
|
+
├── vision-agent (uses zai-mcp tools)
|
|
228
|
+
├── diff-agent (uses image-compare tools)
|
|
229
|
+
├── a11y-agent (uses accessibility-scanner tools)
|
|
230
|
+
├── content-agent (uses fetch + image-extractor tools)
|
|
231
|
+
└── perf-agent (uses playwright metrics)
|
|
232
|
+
|
|
233
|
+
All agents analyze in parallel with consensus protocol
|
|
234
|
+
Results merged via ruflo's semantic routing
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Git-Aware Smart Testing
|
|
238
|
+
|
|
239
|
+
When git MCP is available, Phase 0 runs before capture:
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
git diff main...HEAD → identify changed files
|
|
243
|
+
├── Changed components → test those pages first
|
|
244
|
+
├── Changed styles → full visual regression
|
|
245
|
+
├── Changed routes → re-detect route map
|
|
246
|
+
└── No changes → skip to baseline comparison
|
|
247
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-vision
|
|
3
|
+
displayName: Luna Vision AI
|
|
4
|
+
description: Screenshot-to-code and UI analysis — analyze designs, compare implementations, detect regressions
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
category: ai
|
|
7
|
+
agent: luna-glm-vision
|
|
8
|
+
parameters:
|
|
9
|
+
- name: action
|
|
10
|
+
type: string
|
|
11
|
+
description: Action (screenshot-to-code, compare, analyze, diff, audit)
|
|
12
|
+
required: true
|
|
13
|
+
prompt: true
|
|
14
|
+
- name: target
|
|
15
|
+
type: string
|
|
16
|
+
description: Screenshot path, URL, or component path
|
|
17
|
+
required: true
|
|
18
|
+
prompt: true
|
|
19
|
+
workflow:
|
|
20
|
+
- capture_or_load_screenshot
|
|
21
|
+
- analyze_visual_content
|
|
22
|
+
- generate_code_or_report
|
|
23
|
+
- validate_output
|
|
24
|
+
- generate_vision_report
|
|
25
|
+
output:
|
|
26
|
+
- .luna/{current-project}/vision-report.md
|
|
27
|
+
prerequisites: []
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Luna Vision AI
|
|
31
|
+
|
|
32
|
+
Visual AI that understands screenshots, designs, and UI implementations.
|
|
33
|
+
|
|
34
|
+
## What This Command Does
|
|
35
|
+
|
|
36
|
+
Uses GLM Vision + Nexa RAG to analyze visual content and generate or validate code.
|
|
37
|
+
|
|
38
|
+
## Actions
|
|
39
|
+
|
|
40
|
+
| Action | What It Does |
|
|
41
|
+
|--------|-------------|
|
|
42
|
+
| `screenshot-to-code` | Convert a screenshot/design into React components |
|
|
43
|
+
| `compare` | Compare design mockup vs actual implementation |
|
|
44
|
+
| `analyze` | Describe what a UI screenshot contains |
|
|
45
|
+
| `diff` | Visual diff between two screenshots (before/after) |
|
|
46
|
+
| `audit` | Check UI against Apple HIG and brand guidelines |
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
/vision screenshot-to-code ./designs/dashboard.png
|
|
52
|
+
/vision compare ./designs/login.png http://localhost:3000/login
|
|
53
|
+
/vision analyze ./screenshots/error-state.png
|
|
54
|
+
/vision diff ./before.png ./after.png
|
|
55
|
+
/vision audit http://localhost:3000/dashboard
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Architecture
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Screenshot/Design image
|
|
62
|
+
-> GLM Vision: extract UI structure and content
|
|
63
|
+
-> Nexa RAG: match against existing component patterns
|
|
64
|
+
-> Code Generator: produce React/Tailwind components
|
|
65
|
+
-> Validator: check against brand + HIG rules
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Features
|
|
69
|
+
|
|
70
|
+
- Figma screenshot to React + Tailwind code
|
|
71
|
+
- Visual regression detection between deployments
|
|
72
|
+
- Accessibility issues visible in screenshots (contrast, sizing)
|
|
73
|
+
- Brand consistency checking (colors, fonts, spacing)
|
|
74
|
+
- Mobile vs desktop layout comparison
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-visual-diff
|
|
3
|
+
displayName: Luna Visual Diff
|
|
4
|
+
description: Pixel-perfect visual regression testing — compare screenshots against baseline using MCP image-compare server
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
category: testing
|
|
7
|
+
agent: luna-visual-diff
|
|
8
|
+
parameters:
|
|
9
|
+
- name: url
|
|
10
|
+
type: string
|
|
11
|
+
description: App URL to capture current screenshots from
|
|
12
|
+
required: true
|
|
13
|
+
prompt: true
|
|
14
|
+
- name: baseline
|
|
15
|
+
type: string
|
|
16
|
+
description: Path to baseline screenshots directory (or "save" to create new baseline)
|
|
17
|
+
required: true
|
|
18
|
+
prompt: true
|
|
19
|
+
- name: threshold
|
|
20
|
+
type: number
|
|
21
|
+
description: "Pixel diff threshold percentage to flag as regression (default: 5)"
|
|
22
|
+
required: false
|
|
23
|
+
default: 5
|
|
24
|
+
workflow:
|
|
25
|
+
- capture_current_screenshots
|
|
26
|
+
- load_baseline_screenshots
|
|
27
|
+
- run_pixel_diff_comparison
|
|
28
|
+
- generate_diff_overlays
|
|
29
|
+
- classify_regressions
|
|
30
|
+
- generate_diff_report
|
|
31
|
+
output:
|
|
32
|
+
- .luna/{current-project}/visual-diff/
|
|
33
|
+
- .luna/{current-project}/visual-diff/report.md
|
|
34
|
+
prerequisites: []
|
|
35
|
+
mcp_servers:
|
|
36
|
+
- image-compare
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
# Luna Visual Diff — Pixel-Perfect Regression Testing
|
|
40
|
+
|
|
41
|
+
Compare your app's current state against a known-good baseline. Uses the **image-compare MCP server** (Pixelmatch algorithm) for deterministic, AI-free pixel comparison.
|
|
42
|
+
|
|
43
|
+
## How It Works
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Baseline screenshots Current screenshots
|
|
47
|
+
(saved from last release) (captured now from live app)
|
|
48
|
+
│ │
|
|
49
|
+
└──────────┬───────────────────┘
|
|
50
|
+
▼
|
|
51
|
+
┌─────────────────────┐
|
|
52
|
+
│ image-compare MCP │
|
|
53
|
+
│ Pixelmatch engine │
|
|
54
|
+
│ Anti-alias aware │
|
|
55
|
+
└──────────┬──────────┘
|
|
56
|
+
▼
|
|
57
|
+
┌─────────────────────┐
|
|
58
|
+
│ Diff overlay PNGs │
|
|
59
|
+
│ Changed pixels RED │
|
|
60
|
+
│ Diff % per page │
|
|
61
|
+
└──────────┬──────────┘
|
|
62
|
+
▼
|
|
63
|
+
┌─────────────────────┐
|
|
64
|
+
│ Regression Report │
|
|
65
|
+
│ Pass/Fail per page │
|
|
66
|
+
│ Visual diff gallery │
|
|
67
|
+
└─────────────────────┘
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Save current state as baseline
|
|
74
|
+
/visual-diff http://localhost:3000 save
|
|
75
|
+
|
|
76
|
+
# Compare against saved baseline
|
|
77
|
+
/visual-diff http://localhost:3000 .luna/baselines/
|
|
78
|
+
|
|
79
|
+
# Compare with custom threshold (10% = more lenient)
|
|
80
|
+
/visual-diff http://localhost:3000 .luna/baselines/ --threshold 10
|
|
81
|
+
|
|
82
|
+
# Compare staging vs production
|
|
83
|
+
/visual-diff https://staging.app.com ./prod-screenshots/
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## In Pipes
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Save baseline → make changes → diff
|
|
90
|
+
/pipe visual-diff http://localhost:3000 save >> go *5 >> visual-diff http://localhost:3000 .luna/baselines/ >> assert "0 regressions"
|
|
91
|
+
|
|
92
|
+
# Pre-PR regression check
|
|
93
|
+
/pipe visual-diff http://localhost:3000 .luna/baselines/ ?>> pr !>> fix
|
|
94
|
+
|
|
95
|
+
# Full pipeline: test → diff → a11y → ship
|
|
96
|
+
/pipe browser-test http://localhost:3000 >> visual-diff http://localhost:3000 .luna/baselines/ >> visual-qa a11y >> pr
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Output
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
.luna/{project}/visual-diff/
|
|
103
|
+
report.md # Regression report with pass/fail
|
|
104
|
+
baselines/ # Saved baseline screenshots (when using "save")
|
|
105
|
+
current/ # Current captured screenshots
|
|
106
|
+
diffs/ # Diff overlay images
|
|
107
|
+
{page}-{viewport}-diff.png
|
|
108
|
+
stats.json # Per-page diff percentages
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Threshold Guide
|
|
112
|
+
|
|
113
|
+
| Threshold | Use Case |
|
|
114
|
+
|-----------|----------|
|
|
115
|
+
| 1% | Strict — catch any rendering change |
|
|
116
|
+
| 5% | Default — catch layout regressions, ignore anti-aliasing |
|
|
117
|
+
| 10% | Lenient — catch major layout breaks only |
|
|
118
|
+
| 20% | Very lenient — only flag completely broken pages |
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-visual-qa
|
|
3
|
+
displayName: Luna Visual QA
|
|
4
|
+
description: Multi-layer visual quality assurance — combines vision AI, pixel diff, accessibility scanning, and OCR across all MCP servers
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
category: testing
|
|
7
|
+
agent: luna-visual-qa
|
|
8
|
+
parameters:
|
|
9
|
+
- name: url
|
|
10
|
+
type: string
|
|
11
|
+
description: App URL to test (e.g., http://localhost:3000)
|
|
12
|
+
required: true
|
|
13
|
+
prompt: true
|
|
14
|
+
- name: mode
|
|
15
|
+
type: string
|
|
16
|
+
description: "Mode: full (all layers), vision (AI analysis), diff (pixel compare), a11y (accessibility), ocr (text extraction)"
|
|
17
|
+
required: false
|
|
18
|
+
prompt: true
|
|
19
|
+
default: full
|
|
20
|
+
- name: baseline
|
|
21
|
+
type: string
|
|
22
|
+
description: Path to baseline screenshots for regression diff (optional)
|
|
23
|
+
required: false
|
|
24
|
+
workflow:
|
|
25
|
+
- capture_screenshots
|
|
26
|
+
- run_vision_analysis
|
|
27
|
+
- run_pixel_diff
|
|
28
|
+
- run_accessibility_scan
|
|
29
|
+
- run_ocr_extraction
|
|
30
|
+
- correlate_findings
|
|
31
|
+
- generate_visual_qa_report
|
|
32
|
+
output:
|
|
33
|
+
- .luna/{current-project}/visual-qa/
|
|
34
|
+
- .luna/{current-project}/visual-qa/report.md
|
|
35
|
+
prerequisites: []
|
|
36
|
+
mcp_servers:
|
|
37
|
+
- zai-mcp-server
|
|
38
|
+
- image-compare
|
|
39
|
+
- accessibility-scanner
|
|
40
|
+
- image-extractor
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# Luna Visual QA — Multi-Layer MCP Pipeline
|
|
44
|
+
|
|
45
|
+
The most powerful visual quality assurance command in Luna. Orchestrates **5 MCP servers** in a layered pipeline where each server handles one specialized job, and findings are correlated across layers for maximum coverage.
|
|
46
|
+
|
|
47
|
+
## Architecture
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
┌─────────────────────────────────┐
|
|
51
|
+
│ /visual-qa <url> [mode] │
|
|
52
|
+
└──────────────┬──────────────────┘
|
|
53
|
+
│
|
|
54
|
+
┌──────────────▼──────────────────┐
|
|
55
|
+
│ Layer 0: CAPTURE │
|
|
56
|
+
│ Playwright screenshots │
|
|
57
|
+
│ 4 viewports × all routes │
|
|
58
|
+
└──────────────┬──────────────────┘
|
|
59
|
+
│
|
|
60
|
+
┌───────────┬───────────┼───────────┬───────────┐
|
|
61
|
+
▼ ▼ ▼ ▼ ▼
|
|
62
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
63
|
+
│ Layer 1 │ │ Layer 2 │ │ Layer 3 │ │ Layer 4 │ │ Layer 5 │
|
|
64
|
+
│ VISION │ │ DIFF │ │ A11Y │ │ OCR │ │ PERF │
|
|
65
|
+
│ zai-mcp │ │ img-cmp │ │ axe-core│ │ extract │ │ Playwrt │
|
|
66
|
+
└────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘
|
|
67
|
+
│ │ │ │ │
|
|
68
|
+
└───────────┴───────────┼───────────┴───────────┘
|
|
69
|
+
▼
|
|
70
|
+
┌──────────────────────────────────┐
|
|
71
|
+
│ Layer 6: CORRELATE │
|
|
72
|
+
│ Cross-reference all findings │
|
|
73
|
+
│ Deduplicate & prioritize │
|
|
74
|
+
│ Generate unified report │
|
|
75
|
+
└──────────────────────────────────┘
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## What Each Layer Does
|
|
79
|
+
|
|
80
|
+
### Layer 0: Capture (Playwright)
|
|
81
|
+
- Navigate every route in the app
|
|
82
|
+
- Screenshot at 4 viewports: mobile (375px), tablet (768px), laptop (1024px), desktop (1440px)
|
|
83
|
+
- Capture both light and dark mode (if supported)
|
|
84
|
+
- Record page load times, network requests, console errors
|
|
85
|
+
|
|
86
|
+
### Layer 1: Vision AI Analysis (zai-mcp-server)
|
|
87
|
+
**MCP tools used**: `analyze_image`, `ui_diff_check`, `diagnose_error_screenshot`, `ui_to_artifact`
|
|
88
|
+
- AI-powered layout analysis (overlapping, broken grids, overflow)
|
|
89
|
+
- Missing content detection (empty containers, broken images)
|
|
90
|
+
- Style consistency check (colors, spacing, fonts, brand)
|
|
91
|
+
- Apple HIG compliance scoring
|
|
92
|
+
- Dark mode correctness
|
|
93
|
+
- Responsive behavior assessment
|
|
94
|
+
- Generates fix suggestions with code snippets
|
|
95
|
+
|
|
96
|
+
### Layer 2: Pixel Diff Regression (image-compare MCP)
|
|
97
|
+
**MCP tools used**: `compare_images`, `capture_and_compare`
|
|
98
|
+
- Compare current screenshots against baseline (previous release)
|
|
99
|
+
- Pixel-level diff using Pixelmatch algorithm
|
|
100
|
+
- Anti-aliasing aware comparison
|
|
101
|
+
- Generates visual diff overlay images (red = changed pixels)
|
|
102
|
+
- Reports diff percentage per page per viewport
|
|
103
|
+
- Flags pages that changed more than threshold (default: 5%)
|
|
104
|
+
|
|
105
|
+
### Layer 3: Accessibility Scan (accessibility-scanner MCP)
|
|
106
|
+
**MCP tools used**: `run_accessibility_scan`, `get_scan_results`
|
|
107
|
+
- Full WCAG 2.1 AA compliance check
|
|
108
|
+
- Color contrast ratio validation
|
|
109
|
+
- Missing alt text, ARIA labels, roles
|
|
110
|
+
- Keyboard navigation issues
|
|
111
|
+
- Focus indicator visibility
|
|
112
|
+
- Touch target sizes (mobile)
|
|
113
|
+
- Form label associations
|
|
114
|
+
- Heading hierarchy validation
|
|
115
|
+
|
|
116
|
+
### Layer 4: OCR Text Extraction (image-extractor MCP → Claude Vision)
|
|
117
|
+
**MCP tools used**: `extract_image_from_file`
|
|
118
|
+
- Extract all visible text from screenshots
|
|
119
|
+
- Detect typos, wrong brand names, placeholder text
|
|
120
|
+
- Verify text content matches expected copy
|
|
121
|
+
- Check for truncated text at mobile viewports
|
|
122
|
+
- Validate that no debug/dev text appears in production
|
|
123
|
+
|
|
124
|
+
### Layer 5: Performance Metrics (Playwright)
|
|
125
|
+
- Page load time (domcontentloaded, networkidle)
|
|
126
|
+
- Largest Contentful Paint (LCP)
|
|
127
|
+
- Cumulative Layout Shift (CLS)
|
|
128
|
+
- Total Blocking Time (TBT)
|
|
129
|
+
- Console errors/warnings count
|
|
130
|
+
- Failed network requests
|
|
131
|
+
|
|
132
|
+
## Cross-Layer Correlation
|
|
133
|
+
|
|
134
|
+
The correlation engine combines findings from all layers:
|
|
135
|
+
|
|
136
|
+
| Signal from Layer 1 (Vision) | + Signal from Layer 3 (A11y) | = Combined Finding |
|
|
137
|
+
|------|------|------|
|
|
138
|
+
| "Low contrast text detected" | "Color contrast ratio 2.1:1 (needs 4.5:1)" | **CRITICAL**: Contrast failure with exact ratio and fix |
|
|
139
|
+
| "Text appears truncated" | — | + Layer 4 (OCR) confirms missing characters → **HIGH** |
|
|
140
|
+
| "Layout looks broken at mobile" | — | + Layer 2 (Diff) shows 42% pixel change → **CRITICAL** regression |
|
|
141
|
+
| — | "Missing form labels" | + Layer 4 (OCR) extracts actual label text → auto-fix with correct text |
|
|
142
|
+
|
|
143
|
+
## Usage
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
/visual-qa http://localhost:3000 # Full pipeline (all 5 layers)
|
|
147
|
+
/visual-qa http://localhost:3000 vision # Vision AI only (fast)
|
|
148
|
+
/visual-qa http://localhost:3000 diff # Pixel regression only
|
|
149
|
+
/visual-qa http://localhost:3000 a11y # Accessibility only
|
|
150
|
+
/visual-qa http://localhost:3000 ocr # OCR text check only
|
|
151
|
+
/visual-qa http://localhost:3000 full --baseline ./baselines # Full with regression diff
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## In Pipes
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Visual QA then ship
|
|
158
|
+
/pipe visual-qa http://localhost:3000 ?>> ship !>> fix
|
|
159
|
+
|
|
160
|
+
# Full dev flow: implement → visual QA → fix issues → ship
|
|
161
|
+
/pipe go *5 >> visual-qa http://localhost:3000 full ?>> pr !>> (fix >> visual-qa) *3?
|
|
162
|
+
|
|
163
|
+
# Compare staging vs production
|
|
164
|
+
/pipe visual-qa https://staging.app.com diff --baseline ./prod-screenshots >> approve >> deploy
|
|
165
|
+
|
|
166
|
+
# Accessibility-first workflow
|
|
167
|
+
/pipe hig >> visual-qa http://localhost:3000 a11y >> fix >> visual-qa a11y >> assert "0 a11y violations"
|
|
168
|
+
|
|
169
|
+
# Full pre-release visual QA
|
|
170
|
+
/pipe browser-test http://localhost:3000 >> visual-qa http://localhost:3000 full >> changelog >> pr
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Output
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
.luna/{project}/visual-qa/
|
|
177
|
+
report.md # Unified report with all layers
|
|
178
|
+
screenshots/ # Captured screenshots (Layer 0)
|
|
179
|
+
{page}/{viewport}.png
|
|
180
|
+
vision/ # Vision AI findings (Layer 1)
|
|
181
|
+
{page}-analysis.json
|
|
182
|
+
diffs/ # Pixel diff overlays (Layer 2)
|
|
183
|
+
{page}-diff.png
|
|
184
|
+
{page}-diff-stats.json
|
|
185
|
+
accessibility/ # WCAG scan results (Layer 3)
|
|
186
|
+
{page}-a11y.json
|
|
187
|
+
summary.json
|
|
188
|
+
ocr/ # Extracted text (Layer 4)
|
|
189
|
+
{page}-text.json
|
|
190
|
+
performance/ # Perf metrics (Layer 5)
|
|
191
|
+
{page}-metrics.json
|
|
192
|
+
correlation/ # Cross-layer findings (Layer 6)
|
|
193
|
+
unified-findings.json
|
|
194
|
+
priority-fixes.md
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Severity Classification
|
|
198
|
+
|
|
199
|
+
| Severity | Definition | Auto-fix? |
|
|
200
|
+
|----------|-----------|-----------|
|
|
201
|
+
| CRITICAL | Broken layout, missing content, a11y violation blocking users | Yes (3 attempts) |
|
|
202
|
+
| HIGH | Wrong brand, placeholder text, contrast failure, large regression | Yes (2 attempts) |
|
|
203
|
+
| MEDIUM | Minor layout shift, small diff, missing ARIA label | Suggest fix |
|
|
204
|
+
| LOW | Style inconsistency, minor spacing, non-blocking a11y info | Log only |
|