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.
Files changed (290) hide show
  1. package/.claude-plugin/LICENSE +21 -0
  2. package/.claude-plugin/README.md +285 -0
  3. package/.claude-plugin/claude-plugin.json +106 -0
  4. package/.claude-plugin/index.js +318 -0
  5. package/.claude-plugin/lib/api-client.js +504 -0
  6. package/.claude-plugin/lib/rag-utils.js +442 -0
  7. package/.claude-plugin/package.json +418 -0
  8. package/LICENSE +21 -0
  9. package/README.md +350 -0
  10. package/agents/json/design-architect.json +57 -0
  11. package/agents/json/luna-auth.json +71 -0
  12. package/agents/json/luna-brand.json +66 -0
  13. package/agents/json/luna-cloudflare.json +261 -0
  14. package/agents/json/luna-code-review.json +63 -0
  15. package/agents/json/luna-deployment.json +68 -0
  16. package/agents/json/luna-documentation.json +85 -0
  17. package/agents/json/luna-hig.json +128 -0
  18. package/agents/json/luna-layout-designer.json +178 -0
  19. package/agents/json/luna-monitoring-observability.json +64 -0
  20. package/agents/json/luna-post-launch-review.json +68 -0
  21. package/agents/json/luna-requirements-analyzer.json +53 -0
  22. package/agents/json/luna-task-executor.json +63 -0
  23. package/agents/json/luna-task-planner.json +62 -0
  24. package/agents/json/luna-testing-validation.json +66 -0
  25. package/agents/luna-365-security.md +96 -0
  26. package/agents/luna-analytics.md +318 -0
  27. package/agents/luna-api-generator.md +654 -0
  28. package/agents/luna-auth.md +396 -0
  29. package/agents/luna-brand.md +248 -0
  30. package/agents/luna-cloudflare.md +728 -0
  31. package/agents/luna-code-review.md +487 -0
  32. package/agents/luna-database.md +453 -0
  33. package/agents/luna-deployment.md +202 -0
  34. package/agents/luna-design-architect.md +353 -0
  35. package/agents/luna-docker.md +615 -0
  36. package/agents/luna-documentation.md +177 -0
  37. package/agents/luna-full-test.md +910 -0
  38. package/agents/luna-glm-vision.md +211 -0
  39. package/agents/luna-hig.md +430 -0
  40. package/agents/luna-lemonsqueezy.md +441 -0
  41. package/agents/luna-monitoring-observability.md +199 -0
  42. package/agents/luna-openai-app.md +499 -0
  43. package/agents/luna-post-launch-review.md +191 -0
  44. package/agents/luna-rag-enhanced.md +1619 -0
  45. package/agents/luna-rag.md +1733 -0
  46. package/agents/luna-requirements-analyzer.md +189 -0
  47. package/agents/luna-run.md +620 -0
  48. package/agents/luna-seo.md +338 -0
  49. package/agents/luna-task-executor.md +371 -0
  50. package/agents/luna-task-planner.md +275 -0
  51. package/agents/luna-testing-validation.md +681 -0
  52. package/agents/luna-ui-fix.md +591 -0
  53. package/agents/luna-ui-test.md +600 -0
  54. package/agents/luna-user-guide.md +409 -0
  55. package/agents/site-auditor.md +83 -0
  56. package/commands/3d-mesh.md +12 -0
  57. package/commands/3d.md +12 -0
  58. package/commands/agent-boost.md +13 -0
  59. package/commands/ai-index.md +16 -0
  60. package/commands/api.md +12 -0
  61. package/commands/assert.md +17 -0
  62. package/commands/audience.md +12 -0
  63. package/commands/auth.md +17 -0
  64. package/commands/autopilot.md +12 -0
  65. package/commands/boost-finsavvy.md +10 -0
  66. package/commands/boost-org.md +10 -0
  67. package/commands/boost-project.md +12 -0
  68. package/commands/brand.md +17 -0
  69. package/commands/browser-test.md +18 -0
  70. package/commands/cf.md +26 -0
  71. package/commands/cfg.md +33 -0
  72. package/commands/chain.md +12 -0
  73. package/commands/challenge.md +13 -0
  74. package/commands/clone.md +12 -0
  75. package/commands/cmds.md +243 -0
  76. package/commands/collab.md +12 -0
  77. package/commands/compete.md +12 -0
  78. package/commands/config-rules.md +21 -0
  79. package/commands/connect-infra.md +10 -0
  80. package/commands/context-pack.md +13 -0
  81. package/commands/curb.md +12 -0
  82. package/commands/des.md +38 -0
  83. package/commands/devto.md +20 -0
  84. package/commands/dock.md +26 -0
  85. package/commands/docs.md +33 -0
  86. package/commands/e2e-flow.md +18 -0
  87. package/commands/email-routing.md +10 -0
  88. package/commands/feature.md +12 -0
  89. package/commands/figma.md +12 -0
  90. package/commands/fix.md +12 -0
  91. package/commands/flaky.md +12 -0
  92. package/commands/flow-record.md +12 -0
  93. package/commands/gamify.md +12 -0
  94. package/commands/ghost.md +12 -0
  95. package/commands/git-insights.md +12 -0
  96. package/commands/go-viral.md +16 -0
  97. package/commands/go.md +42 -0
  98. package/commands/graph-rag.md +13 -0
  99. package/commands/guard.md +12 -0
  100. package/commands/heal.md +17 -0
  101. package/commands/heygen.md +12 -0
  102. package/commands/hig.md +33 -0
  103. package/commands/idea.md +12 -0
  104. package/commands/imagine.md +12 -0
  105. package/commands/inbox.md +12 -0
  106. package/commands/lam.md +12 -0
  107. package/commands/landing.md +12 -0
  108. package/commands/launch.md +12 -0
  109. package/commands/learn.md +12 -0
  110. package/commands/leverage.md +12 -0
  111. package/commands/ll-365-secure.md +179 -0
  112. package/commands/ll-3d-mesh.md +94 -0
  113. package/commands/ll-3d.md +123 -0
  114. package/commands/ll-a11y-scan.md +143 -0
  115. package/commands/ll-a11y.md +71 -0
  116. package/commands/ll-agent-boost.md +92 -0
  117. package/commands/ll-agent-chain.md +104 -0
  118. package/commands/ll-ai-index.md +120 -0
  119. package/commands/ll-api-client.md +77 -0
  120. package/commands/ll-api.md +99 -0
  121. package/commands/ll-assert.md +73 -0
  122. package/commands/ll-audience.md +308 -0
  123. package/commands/ll-auth.md +145 -0
  124. package/commands/ll-autopilot.md +113 -0
  125. package/commands/ll-boost-finsavvy.md +106 -0
  126. package/commands/ll-boost-org.md +161 -0
  127. package/commands/ll-boost-project.md +118 -0
  128. package/commands/ll-brand.md +150 -0
  129. package/commands/ll-browser-test.md +203 -0
  130. package/commands/ll-challenge.md +124 -0
  131. package/commands/ll-changelog.md +80 -0
  132. package/commands/ll-ci.md +78 -0
  133. package/commands/ll-claude-instructions.md +80 -0
  134. package/commands/ll-clone.md +82 -0
  135. package/commands/ll-cloudflare.md +580 -0
  136. package/commands/ll-codemap.md +78 -0
  137. package/commands/ll-collab.md +87 -0
  138. package/commands/ll-compete.md +67 -0
  139. package/commands/ll-config-rules.md +255 -0
  140. package/commands/ll-config.md +434 -0
  141. package/commands/ll-connect-infra.md +123 -0
  142. package/commands/ll-context-pack.md +100 -0
  143. package/commands/ll-curb.md +164 -0
  144. package/commands/ll-debug.md +76 -0
  145. package/commands/ll-deploy.md +101 -0
  146. package/commands/ll-deps.md +70 -0
  147. package/commands/ll-design.md +86 -0
  148. package/commands/ll-devto-publish.md +172 -0
  149. package/commands/ll-dockerize.md +273 -0
  150. package/commands/ll-docs.md +123 -0
  151. package/commands/ll-e2e-flow.md +132 -0
  152. package/commands/ll-e2e-test.md +231 -0
  153. package/commands/ll-email-routing.md +130 -0
  154. package/commands/ll-env.md +70 -0
  155. package/commands/ll-execute.md +98 -0
  156. package/commands/ll-feature.md +80 -0
  157. package/commands/ll-figma.md +82 -0
  158. package/commands/ll-fix.md +76 -0
  159. package/commands/ll-flaky.md +151 -0
  160. package/commands/ll-flow-record.md +180 -0
  161. package/commands/ll-flowdocs.md +83 -0
  162. package/commands/ll-gamify.md +131 -0
  163. package/commands/ll-gemma4.md +84 -0
  164. package/commands/ll-ghost.md +79 -0
  165. package/commands/ll-git-insights.md +152 -0
  166. package/commands/ll-go-viral.md +171 -0
  167. package/commands/ll-graph-rag.md +113 -0
  168. package/commands/ll-guard.md +92 -0
  169. package/commands/ll-heal.md +135 -0
  170. package/commands/ll-heygen.md +203 -0
  171. package/commands/ll-hig.md +578 -0
  172. package/commands/ll-hld.md +84 -0
  173. package/commands/ll-i18n.md +74 -0
  174. package/commands/ll-idea.md +101 -0
  175. package/commands/ll-imagine.md +72 -0
  176. package/commands/ll-inbox.md +116 -0
  177. package/commands/ll-lam.md +93 -0
  178. package/commands/ll-landing.md +171 -0
  179. package/commands/ll-launch.md +100 -0
  180. package/commands/ll-learn.md +87 -0
  181. package/commands/ll-leverage.md +137 -0
  182. package/commands/ll-local-llm.md +131 -0
  183. package/commands/ll-ls-products.md +160 -0
  184. package/commands/ll-marketplace.md +130 -0
  185. package/commands/ll-mcp-publish.md +104 -0
  186. package/commands/ll-migrate.md +68 -0
  187. package/commands/ll-mock.md +79 -0
  188. package/commands/ll-money.md +87 -0
  189. package/commands/ll-monitor.md +120 -0
  190. package/commands/ll-morph.md +117 -0
  191. package/commands/ll-multi-agent.md +170 -0
  192. package/commands/ll-native.md +93 -0
  193. package/commands/ll-nexa.md +79 -0
  194. package/commands/ll-onboarding.md +84 -0
  195. package/commands/ll-openhands.md +78 -0
  196. package/commands/ll-organic-promote.md +260 -0
  197. package/commands/ll-parallel.md +74 -0
  198. package/commands/ll-payments.md +83 -0
  199. package/commands/ll-perf-trace.md +147 -0
  200. package/commands/ll-perf.md +65 -0
  201. package/commands/ll-persona.md +280 -0
  202. package/commands/ll-pipe.md +296 -0
  203. package/commands/ll-plan-impl.js +570 -0
  204. package/commands/ll-plan-v2.md +297 -0
  205. package/commands/ll-plan.md +87 -0
  206. package/commands/ll-postlaunch.md +109 -0
  207. package/commands/ll-pr.md +84 -0
  208. package/commands/ll-present.md +110 -0
  209. package/commands/ll-product-map.md +152 -0
  210. package/commands/ll-promote.md +352 -0
  211. package/commands/ll-publish.md +124 -0
  212. package/commands/ll-pulse.md +96 -0
  213. package/commands/ll-rag-guided.md +345 -0
  214. package/commands/ll-rag-upgrade.md +504 -0
  215. package/commands/ll-rag.md +343 -0
  216. package/commands/ll-record.md +114 -0
  217. package/commands/ll-refactor.md +71 -0
  218. package/commands/ll-requirements.md +71 -0
  219. package/commands/ll-review.md +92 -0
  220. package/commands/ll-rollback.md +66 -0
  221. package/commands/ll-routemap.md +79 -0
  222. package/commands/ll-rules.md +90 -0
  223. package/commands/ll-shortcuts.md +229 -0
  224. package/commands/ll-sing.md +99 -0
  225. package/commands/ll-site-audit.md +228 -0
  226. package/commands/ll-smart-route.md +92 -0
  227. package/commands/ll-smart-search.md +58 -0
  228. package/commands/ll-storybook.md +86 -0
  229. package/commands/ll-swarm.md +101 -0
  230. package/commands/ll-test.md +97 -0
  231. package/commands/ll-time-machine.md +72 -0
  232. package/commands/ll-ui-convert.md +433 -0
  233. package/commands/ll-video.md +108 -0
  234. package/commands/ll-vision-pipeline.md +247 -0
  235. package/commands/ll-vision.md +74 -0
  236. package/commands/ll-visual-diff.md +118 -0
  237. package/commands/ll-visual-qa.md +204 -0
  238. package/commands/ll-visual-regression.md +96 -0
  239. package/commands/ll-voice.md +138 -0
  240. package/commands/ll-watch.md +65 -0
  241. package/commands/ll-workflow.md +108 -0
  242. package/commands/ll-zen.md +98 -0
  243. package/commands/local-llm.md +12 -0
  244. package/commands/marketplace.md +13 -0
  245. package/commands/mcp-publish.md +16 -0
  246. package/commands/migrate.md +12 -0
  247. package/commands/money.md +12 -0
  248. package/commands/morph.md +12 -0
  249. package/commands/multi-agent.md +12 -0
  250. package/commands/native.md +12 -0
  251. package/commands/nexa.md +12 -0
  252. package/commands/oh.md +12 -0
  253. package/commands/organic-promote.md +16 -0
  254. package/commands/perf-trace.md +12 -0
  255. package/commands/perf.md +12 -0
  256. package/commands/persona.md +12 -0
  257. package/commands/pipe.md +21 -0
  258. package/commands/plan.md +38 -0
  259. package/commands/pr.md +12 -0
  260. package/commands/present.md +12 -0
  261. package/commands/product-map.md +13 -0
  262. package/commands/promote.md +16 -0
  263. package/commands/publish.md +12 -0
  264. package/commands/pulse.md +12 -0
  265. package/commands/q.md +35 -0
  266. package/commands/record.md +12 -0
  267. package/commands/refactor.md +12 -0
  268. package/commands/req.md +40 -0
  269. package/commands/retro.md +33 -0
  270. package/commands/rev.md +39 -0
  271. package/commands/rules.md +19 -0
  272. package/commands/search.md +12 -0
  273. package/commands/sec.md +34 -0
  274. package/commands/ship.md +39 -0
  275. package/commands/sing.md +12 -0
  276. package/commands/site-audit.md +12 -0
  277. package/commands/smart-route.md +13 -0
  278. package/commands/swarm.md +12 -0
  279. package/commands/test.md +39 -0
  280. package/commands/time-machine.md +12 -0
  281. package/commands/ui.md +33 -0
  282. package/commands/video.md +12 -0
  283. package/commands/vision.md +12 -0
  284. package/commands/voice.md +12 -0
  285. package/commands/vr.md +18 -0
  286. package/commands/watch.md +39 -0
  287. package/commands/workflow.md +19 -0
  288. package/commands/zen.md +12 -0
  289. package/package.json +76 -0
  290. 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 |