claude-flow-novice 2.10.4 → 2.10.6

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 (678) hide show
  1. package/claude-assets/agents/AGENT_LIFECYCLE.md +530 -0
  2. package/claude-assets/agents/README-VALIDATION.md +243 -0
  3. package/claude-assets/agents/custom/claude-code-expert.md +144 -0
  4. package/claude-assets/agents/custom/test-mcp-access.md +26 -0
  5. package/claude-assets/agents/project-only-agents/npm-package-specialist.md +347 -0
  6. package/claude-assets/agents/validate-agent.js +841 -0
  7. package/claude-assets/commands/agents/README.md +10 -0
  8. package/claude-assets/commands/agents/agent-capabilities.md +21 -0
  9. package/claude-assets/commands/agents/agent-coordination.md +28 -0
  10. package/claude-assets/commands/agents/agent-spawning.md +28 -0
  11. package/claude-assets/commands/agents/agent-types.md +26 -0
  12. package/claude-assets/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  13. package/claude-assets/commands/analysis/README.md +9 -0
  14. package/claude-assets/commands/analysis/bottleneck-detect.md +162 -0
  15. package/claude-assets/commands/analysis/performance-bottlenecks.md +59 -0
  16. package/claude-assets/commands/analysis/performance-report.md +25 -0
  17. package/claude-assets/commands/analysis/token-efficiency.md +45 -0
  18. package/claude-assets/commands/analysis/token-usage.md +25 -0
  19. package/claude-assets/commands/automation/README.md +9 -0
  20. package/claude-assets/commands/automation/auto-agent.md +122 -0
  21. package/claude-assets/commands/automation/self-healing.md +106 -0
  22. package/claude-assets/commands/automation/session-memory.md +90 -0
  23. package/claude-assets/commands/automation/smart-agents.md +73 -0
  24. package/claude-assets/commands/automation/smart-spawn.md +25 -0
  25. package/claude-assets/commands/automation/workflow-select.md +25 -0
  26. package/claude-assets/commands/cfn/CFN_COORDINATOR_PARAMETERS.md +660 -0
  27. package/claude-assets/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
  28. package/claude-assets/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
  29. package/claude-assets/commands/cfn/README.md +157 -0
  30. package/claude-assets/commands/cfn/auto-compact.md +80 -0
  31. package/claude-assets/commands/cfn/cfn-claude-sync.md +303 -0
  32. package/claude-assets/commands/cfn/cfn-loop-document.md +480 -0
  33. package/claude-assets/commands/cfn/cfn-loop-epic.md +478 -0
  34. package/claude-assets/commands/cfn/cfn-loop-frontend.md +555 -0
  35. package/claude-assets/commands/cfn/cfn-loop-single.md +256 -0
  36. package/claude-assets/commands/cfn/cfn-loop-sprints.md +396 -0
  37. package/claude-assets/commands/cfn/cfn-loop.md +517 -0
  38. package/claude-assets/commands/cfn/cfn-mode.md +20 -0
  39. package/claude-assets/commands/cfn/cfn-optimize-agents.md +103 -0
  40. package/claude-assets/commands/cfn/claude-md.md +64 -0
  41. package/claude-assets/commands/cfn/claude-soul.md +22 -0
  42. package/claude-assets/commands/cfn/context-curate.md +211 -0
  43. package/claude-assets/commands/cfn/context-inject.md +262 -0
  44. package/claude-assets/commands/cfn/context-query.md +215 -0
  45. package/claude-assets/commands/cfn/context-reflect.md +165 -0
  46. package/claude-assets/commands/cfn/context-stats.md +294 -0
  47. package/claude-assets/commands/cfn/cost-savings-off.md +35 -0
  48. package/claude-assets/commands/cfn/cost-savings-on.md +35 -0
  49. package/claude-assets/commands/cfn/cost-savings-status.md +34 -0
  50. package/claude-assets/commands/cfn/custom-routing-activate.md +55 -0
  51. package/claude-assets/commands/cfn/custom-routing-deactivate.md +46 -0
  52. package/claude-assets/commands/cfn/dependency-recommendations.md +171 -0
  53. package/claude-assets/commands/cfn/fullstack.md +179 -0
  54. package/claude-assets/commands/cfn/github-commit.md +289 -0
  55. package/claude-assets/commands/cfn/github.md +221 -0
  56. package/claude-assets/commands/cfn/hello-world-tests.md +381 -0
  57. package/claude-assets/commands/cfn/hooks.md +38 -0
  58. package/claude-assets/commands/cfn/launch-web-dashboard.md +295 -0
  59. package/claude-assets/commands/cfn/list-agents-rebuild.md +205 -0
  60. package/claude-assets/commands/cfn/metrics-summary.md +58 -0
  61. package/claude-assets/commands/cfn/neural.md +39 -0
  62. package/claude-assets/commands/cfn/parse-epic.md +357 -0
  63. package/claude-assets/commands/cfn/performance.md +41 -0
  64. package/claude-assets/commands/cfn/sparc.md +46 -0
  65. package/claude-assets/commands/cfn/suggest-improvements.md +95 -0
  66. package/claude-assets/commands/cfn/suggest-templates.md +147 -0
  67. package/claude-assets/commands/cfn/swarm.md +24 -0
  68. package/claude-assets/commands/cfn/switch-api.md +53 -0
  69. package/claude-assets/commands/cfn/workflow.md +295 -0
  70. package/claude-assets/commands/cfn/write-plan.md +104 -0
  71. package/claude-assets/commands/claude-md.js +237 -0
  72. package/claude-assets/commands/claude-soul.js +28 -0
  73. package/claude-assets/commands/cli-integration.js +216 -0
  74. package/claude-assets/commands/coordination/README.md +9 -0
  75. package/claude-assets/commands/coordination/agent-spawn.md +25 -0
  76. package/claude-assets/commands/coordination/coordination-system.md +88 -0
  77. package/claude-assets/commands/coordination/init.md +44 -0
  78. package/claude-assets/commands/coordination/orchestrate.md +43 -0
  79. package/claude-assets/commands/coordination/spawn.md +45 -0
  80. package/claude-assets/commands/coordination/swarm-init.md +85 -0
  81. package/claude-assets/commands/coordination/task-orchestrate.md +25 -0
  82. package/claude-assets/commands/github/README.md +11 -0
  83. package/claude-assets/commands/github/code-review-swarm.md +514 -0
  84. package/claude-assets/commands/github/code-review.md +25 -0
  85. package/claude-assets/commands/github/github-modes.md +147 -0
  86. package/claude-assets/commands/github/github-swarm.md +121 -0
  87. package/claude-assets/commands/github/issue-tracker.md +292 -0
  88. package/claude-assets/commands/github/issue-triage.md +25 -0
  89. package/claude-assets/commands/github/multi-repo-swarm.md +519 -0
  90. package/claude-assets/commands/github/pr-enhance.md +26 -0
  91. package/claude-assets/commands/github/pr-manager.md +170 -0
  92. package/claude-assets/commands/github/project-board-sync.md +471 -0
  93. package/claude-assets/commands/github/release-manager.md +338 -0
  94. package/claude-assets/commands/github/release-swarm.md +544 -0
  95. package/claude-assets/commands/github/repo-analyze.md +25 -0
  96. package/claude-assets/commands/github/repo-architect.md +367 -0
  97. package/claude-assets/commands/github/swarm-issue.md +482 -0
  98. package/claude-assets/commands/github/swarm-pr.md +285 -0
  99. package/claude-assets/commands/github/sync-coordinator.md +301 -0
  100. package/claude-assets/commands/github/workflow-automation.md +442 -0
  101. package/claude-assets/commands/github.js +638 -0
  102. package/claude-assets/commands/hive-mind/README.md +17 -0
  103. package/claude-assets/commands/hive-mind/hive-mind-consensus.md +8 -0
  104. package/claude-assets/commands/hive-mind/hive-mind-init.md +18 -0
  105. package/claude-assets/commands/hive-mind/hive-mind-memory.md +8 -0
  106. package/claude-assets/commands/hive-mind/hive-mind-metrics.md +8 -0
  107. package/claude-assets/commands/hive-mind/hive-mind-resume.md +8 -0
  108. package/claude-assets/commands/hive-mind/hive-mind-sessions.md +8 -0
  109. package/claude-assets/commands/hive-mind/hive-mind-spawn.md +21 -0
  110. package/claude-assets/commands/hive-mind/hive-mind-status.md +8 -0
  111. package/claude-assets/commands/hive-mind/hive-mind-stop.md +8 -0
  112. package/claude-assets/commands/hive-mind/hive-mind-wizard.md +8 -0
  113. package/claude-assets/commands/hive-mind/hive-mind.md +27 -0
  114. package/claude-assets/commands/hooks/README.md +11 -0
  115. package/claude-assets/commands/hooks/overview.md +58 -0
  116. package/claude-assets/commands/hooks/post-edit.md +117 -0
  117. package/claude-assets/commands/hooks/post-task.md +112 -0
  118. package/claude-assets/commands/hooks/pre-edit.md +113 -0
  119. package/claude-assets/commands/hooks/pre-task.md +111 -0
  120. package/claude-assets/commands/hooks/session-end.md +118 -0
  121. package/claude-assets/commands/hooks/session-start.md +9 -0
  122. package/claude-assets/commands/hooks/setup.md +103 -0
  123. package/claude-assets/commands/hooks.js +651 -0
  124. package/claude-assets/commands/index.js +119 -0
  125. package/claude-assets/commands/memory/README.md +9 -0
  126. package/claude-assets/commands/memory/memory-bank.md +58 -0
  127. package/claude-assets/commands/memory/memory-persist.md +25 -0
  128. package/claude-assets/commands/memory/memory-search.md +25 -0
  129. package/claude-assets/commands/memory/memory-usage.md +25 -0
  130. package/claude-assets/commands/memory/neural.md +47 -0
  131. package/claude-assets/commands/memory/usage.md +46 -0
  132. package/claude-assets/commands/monitoring/README.md +9 -0
  133. package/claude-assets/commands/monitoring/agent-metrics.md +25 -0
  134. package/claude-assets/commands/monitoring/agents.md +44 -0
  135. package/claude-assets/commands/monitoring/real-time-view.md +25 -0
  136. package/claude-assets/commands/monitoring/status.md +46 -0
  137. package/claude-assets/commands/monitoring/swarm-monitor.md +25 -0
  138. package/claude-assets/commands/neural.js +572 -0
  139. package/claude-assets/commands/optimization/README.md +9 -0
  140. package/claude-assets/commands/optimization/auto-topology.md +62 -0
  141. package/claude-assets/commands/optimization/cache-manage.md +25 -0
  142. package/claude-assets/commands/optimization/parallel-execute.md +25 -0
  143. package/claude-assets/commands/optimization/parallel-execution.md +50 -0
  144. package/claude-assets/commands/optimization/topology-optimize.md +25 -0
  145. package/claude-assets/commands/pair/README.md +261 -0
  146. package/claude-assets/commands/pair/commands.md +546 -0
  147. package/claude-assets/commands/pair/config.md +510 -0
  148. package/claude-assets/commands/pair/examples.md +512 -0
  149. package/claude-assets/commands/pair/modes.md +348 -0
  150. package/claude-assets/commands/pair/session.md +407 -0
  151. package/claude-assets/commands/pair/start.md +209 -0
  152. package/claude-assets/commands/parse-epic.js +180 -0
  153. package/claude-assets/commands/performance.js +582 -0
  154. package/claude-assets/commands/register-all-commands.js +320 -0
  155. package/claude-assets/commands/register-claude-md.js +82 -0
  156. package/claude-assets/commands/register-claude-soul.js +80 -0
  157. package/claude-assets/commands/sparc/analyzer.md +52 -0
  158. package/claude-assets/commands/sparc/architect.md +53 -0
  159. package/claude-assets/commands/sparc/batch-executor.md +54 -0
  160. package/claude-assets/commands/sparc/coder.md +54 -0
  161. package/claude-assets/commands/sparc/debugger.md +54 -0
  162. package/claude-assets/commands/sparc/designer.md +53 -0
  163. package/claude-assets/commands/sparc/documenter.md +54 -0
  164. package/claude-assets/commands/sparc/innovator.md +54 -0
  165. package/claude-assets/commands/sparc/memory-manager.md +54 -0
  166. package/claude-assets/commands/sparc/optimizer.md +54 -0
  167. package/claude-assets/commands/sparc/orchestrator.md +132 -0
  168. package/claude-assets/commands/sparc/researcher.md +54 -0
  169. package/claude-assets/commands/sparc/reviewer.md +54 -0
  170. package/claude-assets/commands/sparc/sparc-modes.md +174 -0
  171. package/claude-assets/commands/sparc/swarm-coordinator.md +54 -0
  172. package/claude-assets/commands/sparc/tdd.md +54 -0
  173. package/claude-assets/commands/sparc/tester.md +54 -0
  174. package/claude-assets/commands/sparc/workflow-manager.md +54 -0
  175. package/claude-assets/commands/sparc.js +110 -0
  176. package/claude-assets/commands/stream-chain/pipeline.md +121 -0
  177. package/claude-assets/commands/stream-chain/run.md +70 -0
  178. package/claude-assets/commands/swarm/README.md +15 -0
  179. package/claude-assets/commands/swarm/analysis.md +95 -0
  180. package/claude-assets/commands/swarm/development.md +96 -0
  181. package/claude-assets/commands/swarm/examples.md +168 -0
  182. package/claude-assets/commands/swarm/maintenance.md +102 -0
  183. package/claude-assets/commands/swarm/optimization.md +117 -0
  184. package/claude-assets/commands/swarm/research.md +136 -0
  185. package/claude-assets/commands/swarm/swarm-analysis.md +8 -0
  186. package/claude-assets/commands/swarm/swarm-background.md +8 -0
  187. package/claude-assets/commands/swarm/swarm-init.md +19 -0
  188. package/claude-assets/commands/swarm/swarm-modes.md +8 -0
  189. package/claude-assets/commands/swarm/swarm-monitor.md +8 -0
  190. package/claude-assets/commands/swarm/swarm-spawn.md +19 -0
  191. package/claude-assets/commands/swarm/swarm-status.md +8 -0
  192. package/claude-assets/commands/swarm/swarm-strategies.md +8 -0
  193. package/claude-assets/commands/swarm/swarm.md +27 -0
  194. package/claude-assets/commands/swarm/testing.md +131 -0
  195. package/claude-assets/commands/swarm.js +423 -0
  196. package/claude-assets/commands/testing/playwright-e2e.md +288 -0
  197. package/claude-assets/commands/training/README.md +9 -0
  198. package/claude-assets/commands/training/model-update.md +25 -0
  199. package/claude-assets/commands/training/neural-patterns.md +74 -0
  200. package/claude-assets/commands/training/neural-train.md +25 -0
  201. package/claude-assets/commands/training/pattern-learn.md +25 -0
  202. package/claude-assets/commands/training/specialization.md +63 -0
  203. package/claude-assets/commands/truth/start.md +143 -0
  204. package/claude-assets/commands/validate-commands.js +223 -0
  205. package/claude-assets/commands/verify/check.md +50 -0
  206. package/claude-assets/commands/verify/start.md +128 -0
  207. package/claude-assets/commands/workflow.js +606 -0
  208. package/claude-assets/commands/workflows/README.md +9 -0
  209. package/claude-assets/commands/workflows/development.md +78 -0
  210. package/claude-assets/commands/workflows/research.md +63 -0
  211. package/claude-assets/commands/workflows/workflow-create.md +25 -0
  212. package/claude-assets/commands/workflows/workflow-execute.md +25 -0
  213. package/claude-assets/commands/workflows/workflow-export.md +25 -0
  214. package/claude-assets/hooks/cfn-BACKUP_USAGE.md +243 -0
  215. package/claude-assets/hooks/cfn-invoke-post-edit.sh +87 -0
  216. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +79 -0
  217. package/claude-assets/hooks/cfn-post-edit.config.json +37 -0
  218. package/claude-assets/hooks/cfn-post-edit.sh +21 -0
  219. package/claude-assets/hooks/cfn-pre-edit-backup.sh +71 -0
  220. package/claude-assets/hooks/cfn-restore-from-backup.sh +37 -0
  221. package/claude-assets/hooks/post-edit.config.json +12 -0
  222. package/claude-assets/root-claude-distribute/CFN-CLAUDE.md +796 -0
  223. package/claude-assets/skills/CFN-LOOP-VALIDATION.md +202 -0
  224. package/claude-assets/skills/REDIS-COORDINATION.md +187 -0
  225. package/claude-assets/skills/SKILL.md +229 -0
  226. package/claude-assets/skills/agent-discovery/agents-registry.json +484 -0
  227. package/claude-assets/skills/cfn-ace-system/SKILL.md +364 -0
  228. package/claude-assets/skills/cfn-ace-system/add-bullet.sh +145 -0
  229. package/claude-assets/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
  230. package/claude-assets/skills/cfn-ace-system/classify-task.sh +18 -0
  231. package/claude-assets/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
  232. package/claude-assets/skills/cfn-ace-system/extract-tags.sh +385 -0
  233. package/claude-assets/skills/cfn-ace-system/format-negative-context.sh +180 -0
  234. package/claude-assets/skills/cfn-ace-system/init-indexes.sql +160 -0
  235. package/claude-assets/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
  236. package/claude-assets/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
  237. package/claude-assets/skills/cfn-ace-system/invoke-context-query.sh +139 -0
  238. package/claude-assets/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
  239. package/claude-assets/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
  240. package/claude-assets/skills/cfn-ace-system/log-merge.sh +67 -0
  241. package/claude-assets/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
  242. package/claude-assets/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
  243. package/claude-assets/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
  244. package/claude-assets/skills/cfn-ace-system/query-contexts.sh +150 -0
  245. package/claude-assets/skills/cfn-ace-system/query-reflections.sh +35 -0
  246. package/claude-assets/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
  247. package/claude-assets/skills/cfn-ace-system/schema/README.md +723 -0
  248. package/claude-assets/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
  249. package/claude-assets/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
  250. package/claude-assets/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
  251. package/claude-assets/skills/cfn-ace-system/schema/run-migration.sh +231 -0
  252. package/claude-assets/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
  253. package/claude-assets/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
  254. package/claude-assets/skills/cfn-ace-system/score-relevance.sh +253 -0
  255. package/claude-assets/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
  256. package/claude-assets/skills/cfn-ace-system/store-reflection.sh +46 -0
  257. package/claude-assets/skills/cfn-ace-system/test-ace-skill.sh +312 -0
  258. package/claude-assets/skills/cfn-ace-system/track-ab-test.sh +42 -0
  259. package/claude-assets/skills/cfn-ace-system/update-reflection.sh +41 -0
  260. package/claude-assets/skills/cfn-agent-discovery/SKILL.md +40 -0
  261. package/claude-assets/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
  262. package/claude-assets/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
  263. package/claude-assets/skills/cfn-agent-discovery/agents-registry.json +718 -0
  264. package/claude-assets/skills/cfn-agent-discovery/discover-agents.py +184 -0
  265. package/claude-assets/skills/cfn-agent-discovery/discover-agents.sh +87 -0
  266. package/claude-assets/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
  267. package/claude-assets/skills/cfn-agent-discovery/temp_script.py +0 -0
  268. package/claude-assets/skills/cfn-agent-execution/execute-agent.sh +126 -0
  269. package/claude-assets/skills/cfn-agent-output-processing/SKILL.md +359 -0
  270. package/claude-assets/skills/cfn-agent-selector/SKILL.md +90 -0
  271. package/claude-assets/skills/cfn-agent-selector/select-agents.sh +112 -0
  272. package/claude-assets/skills/cfn-agent-spawning/README.md +140 -0
  273. package/claude-assets/skills/cfn-agent-spawning/SKILL.md +135 -0
  274. package/claude-assets/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
  275. package/claude-assets/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
  276. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
  277. package/claude-assets/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
  278. package/claude-assets/skills/cfn-agent-swap/SKILL.md +36 -0
  279. package/claude-assets/skills/cfn-agent-swap/recommend-swap.sh +60 -0
  280. package/claude-assets/skills/cfn-analytics/README.md +58 -0
  281. package/claude-assets/skills/cfn-analytics/description-refinement-guide.md +164 -0
  282. package/claude-assets/skills/cfn-analytics/log-skill-invocation.js +122 -0
  283. package/claude-assets/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
  284. package/claude-assets/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
  285. package/claude-assets/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
  286. package/claude-assets/skills/cfn-analytics/skill-invocations.sql +58 -0
  287. package/claude-assets/skills/cfn-analytics/test-corpus.json +32 -0
  288. package/claude-assets/skills/cfn-analytics/test-data-generator.js +115 -0
  289. package/claude-assets/skills/cfn-analytics/test-manual-override-rate.js +285 -0
  290. package/claude-assets/skills/cfn-analytics/validate-skill-selection.js +188 -0
  291. package/claude-assets/skills/cfn-api-validation/test-endpoints.sh +54 -0
  292. package/claude-assets/skills/cfn-automatic-memory-persistence/SKILL.md +73 -0
  293. package/claude-assets/skills/cfn-automatic-memory-persistence/persist-agent-output.sh +49 -0
  294. package/claude-assets/skills/cfn-automatic-memory-persistence/query-agent-history.sh +35 -0
  295. package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +235 -0
  296. package/claude-assets/skills/cfn-complexity-estimator/SKILL.md +96 -0
  297. package/claude-assets/skills/cfn-complexity-estimator/estimate-complexity.sh +144 -0
  298. package/claude-assets/skills/cfn-config-management/README.md +42 -0
  299. package/claude-assets/skills/cfn-config-management/SKILL.md +34 -0
  300. package/claude-assets/skills/cfn-config-management/check-dependencies.sh +56 -0
  301. package/claude-assets/skills/cfn-config-management/config.json +32 -0
  302. package/claude-assets/skills/cfn-config-management/manage-config.sh +113 -0
  303. package/claude-assets/skills/cfn-context-pruner/SKILL.md +75 -0
  304. package/claude-assets/skills/cfn-context-pruner/prune-context.sh +73 -0
  305. package/claude-assets/skills/cfn-defense-in-depth/SKILL.md +133 -0
  306. package/claude-assets/skills/cfn-dependency-extractor/SKILL.md +35 -0
  307. package/claude-assets/skills/cfn-dependency-extractor/extract-dependencies.sh +66 -0
  308. package/claude-assets/skills/cfn-epic-decomposer/SKILL.md +44 -0
  309. package/claude-assets/skills/cfn-epic-decomposer/decompose-epic.sh +104 -0
  310. package/claude-assets/skills/cfn-event-bus/README.md +299 -0
  311. package/claude-assets/skills/cfn-event-bus/SKILL.md +412 -0
  312. package/claude-assets/skills/cfn-event-bus/config.json +111 -0
  313. package/claude-assets/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
  314. package/claude-assets/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
  315. package/claude-assets/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
  316. package/claude-assets/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
  317. package/claude-assets/skills/cfn-event-bus/test-event-bus.sh +280 -0
  318. package/claude-assets/skills/cfn-fleet-manager/README.md +74 -0
  319. package/claude-assets/skills/cfn-fleet-manager/SKILL.md +412 -0
  320. package/claude-assets/skills/cfn-fleet-manager/config.json +60 -0
  321. package/claude-assets/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
  322. package/claude-assets/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
  323. package/claude-assets/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
  324. package/claude-assets/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
  325. package/claude-assets/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
  326. package/claude-assets/skills/cfn-hook-pipeline/README.md +74 -0
  327. package/claude-assets/skills/cfn-hook-pipeline/SKILL.md +148 -0
  328. package/claude-assets/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
  329. package/claude-assets/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
  330. package/claude-assets/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
  331. package/claude-assets/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
  332. package/claude-assets/skills/cfn-hook-pipeline/security-scan.json +60 -0
  333. package/claude-assets/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
  334. package/claude-assets/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
  335. package/claude-assets/skills/cfn-hybrid-routing/README.md +50 -0
  336. package/claude-assets/skills/cfn-hybrid-routing/SKILL.md +46 -0
  337. package/claude-assets/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
  338. package/claude-assets/skills/cfn-hybrid-routing/config.json +26 -0
  339. package/claude-assets/skills/cfn-hybrid-routing/spawn-worker.sh +44 -0
  340. package/claude-assets/skills/cfn-improvement-recommender/SKILL.md +33 -0
  341. package/claude-assets/skills/cfn-improvement-recommender/recommend-improvements.sh +92 -0
  342. package/claude-assets/skills/cfn-intervention-detector/SKILL.md +39 -0
  343. package/claude-assets/skills/cfn-intervention-detector/detect-intervention.sh +111 -0
  344. package/claude-assets/skills/cfn-intervention-orchestrator/SKILL.md +43 -0
  345. package/claude-assets/skills/cfn-intervention-orchestrator/execute-intervention.sh +59 -0
  346. package/claude-assets/skills/cfn-loop-orchestration/README.md +41 -0
  347. package/claude-assets/skills/cfn-loop-orchestration/SKILL.md +299 -0
  348. package/claude-assets/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  349. package/claude-assets/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  350. package/claude-assets/skills/cfn-loop-orchestration/helpers/context-injection.sh +142 -0
  351. package/claude-assets/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -0
  352. package/claude-assets/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  353. package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  354. package/claude-assets/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  355. package/claude-assets/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +271 -0
  356. package/claude-assets/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  357. package/claude-assets/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  358. package/claude-assets/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  359. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +884 -0
  360. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +840 -0
  361. package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  362. package/claude-assets/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  363. package/claude-assets/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  364. package/claude-assets/skills/cfn-loop-validation/README.md +256 -0
  365. package/claude-assets/skills/cfn-loop-validation/SKILL.md +353 -0
  366. package/claude-assets/skills/cfn-loop-validation/check-dependencies.sh +31 -0
  367. package/claude-assets/skills/cfn-loop-validation/config.json +161 -0
  368. package/claude-assets/skills/cfn-loop-validation/consensus-calculator.js +477 -0
  369. package/claude-assets/skills/cfn-loop-validation/evidence-chain.sql +163 -0
  370. package/claude-assets/skills/cfn-loop-validation/examples/README.md +453 -0
  371. package/claude-assets/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
  372. package/claude-assets/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
  373. package/claude-assets/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
  374. package/claude-assets/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
  375. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
  376. package/claude-assets/skills/cfn-loop-validation/validate-iteration.sh +134 -0
  377. package/claude-assets/skills/cfn-loop-validation.sh +70 -0
  378. package/claude-assets/skills/cfn-loop2-output-processing/SKILL.md +163 -0
  379. package/claude-assets/skills/cfn-loop2-output-processing/execute-and-extract.sh +77 -0
  380. package/claude-assets/skills/cfn-loop2-output-processing/execute-and-extract.sh.backup +36 -0
  381. package/claude-assets/skills/cfn-loop2-output-processing/parse-feedback.sh +147 -0
  382. package/claude-assets/skills/cfn-loop2-output-processing/process-validator-output.sh +275 -0
  383. package/claude-assets/skills/cfn-loop2-output-processing/test-bug27-fix.sh +200 -0
  384. package/claude-assets/skills/cfn-loop2-output-processing/test-loop2-processing.sh +113 -0
  385. package/claude-assets/skills/cfn-loop3-output-processing/AGENT_COMPLETION_PROTOCOL.md +206 -0
  386. package/claude-assets/skills/cfn-loop3-output-processing/SKILL.md +421 -0
  387. package/claude-assets/skills/cfn-loop3-output-processing/calculate-confidence.sh +28 -0
  388. package/claude-assets/skills/cfn-loop3-output-processing/execute-and-extract.sh +85 -0
  389. package/claude-assets/skills/cfn-loop3-output-processing/parse-confidence.sh +31 -0
  390. package/claude-assets/skills/cfn-loop3-output-processing/test-agent-timeout.sh +327 -0
  391. package/claude-assets/skills/cfn-loop3-output-processing/test-loop3-processing.sh +155 -0
  392. package/claude-assets/skills/cfn-loop3-output-processing/verify-deliverables.sh +42 -0
  393. package/claude-assets/skills/cfn-marketing-ad-campaigns/SKILL.md +392 -0
  394. package/claude-assets/skills/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -0
  395. package/claude-assets/skills/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -0
  396. package/claude-assets/skills/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -0
  397. package/claude-assets/skills/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -0
  398. package/claude-assets/skills/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -0
  399. package/claude-assets/skills/cfn-marketing-analytics-data/SKILL.md +124 -0
  400. package/claude-assets/skills/cfn-marketing-analytics-data/operations/get-ad-performance.sh +105 -0
  401. package/claude-assets/skills/cfn-marketing-analytics-data/operations/get-conversion-funnel.sh +102 -0
  402. package/claude-assets/skills/cfn-marketing-analytics-data/operations/get-email-performance.sh +105 -0
  403. package/claude-assets/skills/cfn-marketing-analytics-data/operations/get-social-engagement.sh +105 -0
  404. package/claude-assets/skills/cfn-marketing-analytics-data/operations/get-website-traffic.sh +107 -0
  405. package/claude-assets/skills/cfn-marketing-chatbot-conversations/SKILL.md +340 -0
  406. package/claude-assets/skills/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -0
  407. package/claude-assets/skills/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -0
  408. package/claude-assets/skills/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -0
  409. package/claude-assets/skills/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -0
  410. package/claude-assets/skills/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -0
  411. package/claude-assets/skills/cfn-marketing-competitive-intel/SKILL.md +350 -0
  412. package/claude-assets/skills/cfn-marketing-competitive-intel/operations/get-backlink-profile.sh +154 -0
  413. package/claude-assets/skills/cfn-marketing-competitive-intel/operations/get-keyword-rankings.sh +173 -0
  414. package/claude-assets/skills/cfn-marketing-competitive-intel/operations/get-trending-topics.sh +147 -0
  415. package/claude-assets/skills/cfn-marketing-competitive-intel/operations/monitor-competitor.sh +146 -0
  416. package/claude-assets/skills/cfn-marketing-competitive-intel/operations/search-brand-mentions.sh +167 -0
  417. package/claude-assets/skills/cfn-marketing-crm-contacts/SKILL.md +116 -0
  418. package/claude-assets/skills/cfn-marketing-crm-contacts/operations/add-to-segment.sh +78 -0
  419. package/claude-assets/skills/cfn-marketing-crm-contacts/operations/create-contact.sh +113 -0
  420. package/claude-assets/skills/cfn-marketing-crm-contacts/operations/get-contact.sh +86 -0
  421. package/claude-assets/skills/cfn-marketing-crm-contacts/operations/remove-from-segment.sh +78 -0
  422. package/claude-assets/skills/cfn-marketing-crm-contacts/operations/update-contact.sh +120 -0
  423. package/claude-assets/skills/cfn-marketing-email-campaigns/SKILL.md +106 -0
  424. package/claude-assets/skills/cfn-marketing-email-campaigns/operations/create-campaign.sh +123 -0
  425. package/claude-assets/skills/cfn-marketing-email-campaigns/operations/get-campaign-stats.sh +66 -0
  426. package/claude-assets/skills/cfn-marketing-email-campaigns/operations/list-templates.sh +68 -0
  427. package/claude-assets/skills/cfn-marketing-email-campaigns/operations/schedule-campaign.sh +85 -0
  428. package/claude-assets/skills/cfn-marketing-email-campaigns/operations/send-test-email.sh +81 -0
  429. package/claude-assets/skills/cfn-marketing-landing-pages/SKILL.md +366 -0
  430. package/claude-assets/skills/cfn-marketing-landing-pages/operations/create-ab-test.sh +231 -0
  431. package/claude-assets/skills/cfn-marketing-landing-pages/operations/create-landing-page.sh +190 -0
  432. package/claude-assets/skills/cfn-marketing-landing-pages/operations/get-page-performance.sh +137 -0
  433. package/claude-assets/skills/cfn-marketing-landing-pages/operations/publish-page.sh +120 -0
  434. package/claude-assets/skills/cfn-marketing-landing-pages/operations/unpublish-page.sh +108 -0
  435. package/claude-assets/skills/cfn-marketing-media-monitoring/SKILL.md +202 -0
  436. package/claude-assets/skills/cfn-marketing-media-monitoring/operations/create-crisis-alert.sh +104 -0
  437. package/claude-assets/skills/cfn-marketing-media-monitoring/operations/export-report.sh +92 -0
  438. package/claude-assets/skills/cfn-marketing-media-monitoring/operations/get-sentiment-analysis.sh +85 -0
  439. package/claude-assets/skills/cfn-marketing-media-monitoring/operations/search-mentions.sh +86 -0
  440. package/claude-assets/skills/cfn-marketing-media-outreach/SKILL.md +168 -0
  441. package/claude-assets/skills/cfn-marketing-media-outreach/operations/search-journalists.sh +74 -0
  442. package/claude-assets/skills/cfn-marketing-media-outreach/operations/send-pitch.sh +80 -0
  443. package/claude-assets/skills/cfn-marketing-media-outreach/operations/submit-haro-response.sh +88 -0
  444. package/claude-assets/skills/cfn-marketing-media-outreach/operations/track-pitch-engagement.sh +66 -0
  445. package/claude-assets/skills/cfn-marketing-press-distribution/SKILL.md +159 -0
  446. package/claude-assets/skills/cfn-marketing-press-distribution/operations/distribute-press-release.sh +94 -0
  447. package/claude-assets/skills/cfn-marketing-press-distribution/operations/get-distribution-status.sh +59 -0
  448. package/claude-assets/skills/cfn-marketing-press-distribution/operations/get-pickup-metrics.sh +72 -0
  449. package/claude-assets/skills/cfn-marketing-press-distribution/operations/list-templates.sh +53 -0
  450. package/claude-assets/skills/cfn-marketing-sms-campaigns/SKILL.md +429 -0
  451. package/claude-assets/skills/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -0
  452. package/claude-assets/skills/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -0
  453. package/claude-assets/skills/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -0
  454. package/claude-assets/skills/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -0
  455. package/claude-assets/skills/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -0
  456. package/claude-assets/skills/cfn-marketing-social-publishing/SKILL.md +108 -0
  457. package/claude-assets/skills/cfn-marketing-social-publishing/operations/create-post.sh +104 -0
  458. package/claude-assets/skills/cfn-marketing-social-publishing/operations/delete-post.sh +76 -0
  459. package/claude-assets/skills/cfn-marketing-social-publishing/operations/get-post-stats.sh +66 -0
  460. package/claude-assets/skills/cfn-marketing-social-publishing/operations/schedule-post.sh +85 -0
  461. package/claude-assets/skills/cfn-marketing-social-publishing/operations/upload-media.sh +88 -0
  462. package/claude-assets/skills/cfn-pattern-extraction/SKILL.md +30 -0
  463. package/claude-assets/skills/cfn-pattern-extraction/extract-patterns.sh +80 -0
  464. package/claude-assets/skills/cfn-playbook/SKILL.md +113 -0
  465. package/claude-assets/skills/cfn-playbook/init-playbook.sh +54 -0
  466. package/claude-assets/skills/cfn-playbook/playbook.db +0 -0
  467. package/claude-assets/skills/cfn-playbook/query-playbook.sh +79 -0
  468. package/claude-assets/skills/cfn-playbook/update-playbook.sh +69 -0
  469. package/claude-assets/skills/cfn-playbook-auto-update/SKILL.md +29 -0
  470. package/claude-assets/skills/cfn-playbook-auto-update/auto-update-playbook.sh +86 -0
  471. package/claude-assets/skills/cfn-process-lifecycle/README.md +43 -0
  472. package/claude-assets/skills/cfn-process-lifecycle/SKILL.md +39 -0
  473. package/claude-assets/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
  474. package/claude-assets/skills/cfn-process-lifecycle/config.json +39 -0
  475. package/claude-assets/skills/cfn-process-lifecycle/process-manager.sh +144 -0
  476. package/claude-assets/skills/cfn-product-owner-decision/SKILL.md +332 -0
  477. package/claude-assets/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
  478. package/claude-assets/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
  479. package/claude-assets/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
  480. package/claude-assets/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
  481. package/claude-assets/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
  482. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
  483. package/claude-assets/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
  484. package/claude-assets/skills/cfn-redis-coordination/LOGGING.md +260 -0
  485. package/claude-assets/skills/cfn-redis-coordination/README.md +65 -0
  486. package/claude-assets/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
  487. package/claude-assets/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
  488. package/claude-assets/skills/cfn-redis-coordination/SKILL.md +720 -0
  489. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +124 -0
  490. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
  491. package/claude-assets/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
  492. package/claude-assets/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
  493. package/claude-assets/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
  494. package/claude-assets/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
  495. package/claude-assets/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
  496. package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
  497. package/claude-assets/skills/cfn-redis-coordination/collect-results.sh +75 -0
  498. package/claude-assets/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
  499. package/claude-assets/skills/cfn-redis-coordination/config.json +61 -0
  500. package/claude-assets/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
  501. package/claude-assets/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
  502. package/claude-assets/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
  503. package/claude-assets/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
  504. package/claude-assets/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
  505. package/claude-assets/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
  506. package/claude-assets/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
  507. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
  508. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
  509. package/claude-assets/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
  510. package/claude-assets/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
  511. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
  512. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
  513. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
  514. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
  515. package/claude-assets/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
  516. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
  517. package/claude-assets/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
  518. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
  519. package/claude-assets/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
  520. package/claude-assets/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
  521. package/claude-assets/skills/cfn-redis-coordination/examples/README.md +73 -0
  522. package/claude-assets/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
  523. package/claude-assets/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
  524. package/claude-assets/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
  525. package/claude-assets/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
  526. package/claude-assets/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
  527. package/claude-assets/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
  528. package/claude-assets/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
  529. package/claude-assets/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
  530. package/claude-assets/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
  531. package/claude-assets/skills/cfn-redis-coordination/heartbeat.sh +126 -0
  532. package/claude-assets/skills/cfn-redis-coordination/init-swarm.sh +148 -0
  533. package/claude-assets/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
  534. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
  535. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  536. package/claude-assets/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
  537. package/claude-assets/skills/cfn-redis-coordination/log-event.sh +109 -0
  538. package/claude-assets/skills/cfn-redis-coordination/metrics-export.sh +674 -0
  539. package/claude-assets/skills/cfn-redis-coordination/metrics-schema.json +66 -0
  540. package/claude-assets/skills/cfn-redis-coordination/metrics-storage.md +31 -0
  541. package/claude-assets/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
  542. package/claude-assets/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
  543. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  544. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
  545. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  546. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  547. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  548. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  549. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  550. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  551. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  552. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  553. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  554. package/claude-assets/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  555. package/claude-assets/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
  556. package/claude-assets/skills/cfn-redis-coordination/priority_wake.py +134 -0
  557. package/claude-assets/skills/cfn-redis-coordination/query-dlq.sh +162 -0
  558. package/claude-assets/skills/cfn-redis-coordination/query-logs.sh +103 -0
  559. package/claude-assets/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
  560. package/claude-assets/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
  561. package/claude-assets/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
  562. package/claude-assets/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
  563. package/claude-assets/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
  564. package/claude-assets/skills/cfn-redis-coordination/signal.sh +38 -0
  565. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +86 -0
  566. package/claude-assets/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
  567. package/claude-assets/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
  568. package/claude-assets/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
  569. package/claude-assets/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
  570. package/claude-assets/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
  571. package/claude-assets/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
  572. package/claude-assets/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
  573. package/claude-assets/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
  574. package/claude-assets/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
  575. package/claude-assets/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
  576. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
  577. package/claude-assets/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
  578. package/claude-assets/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
  579. package/claude-assets/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
  580. package/claude-assets/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  581. package/claude-assets/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
  582. package/claude-assets/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  583. package/claude-assets/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
  584. package/claude-assets/skills/cfn-retrospective-report/SKILL.md +31 -0
  585. package/claude-assets/skills/cfn-retrospective-report/generate-report.sh +101 -0
  586. package/claude-assets/skills/cfn-scope-simplifier/SKILL.md +37 -0
  587. package/claude-assets/skills/cfn-scope-simplifier/simplify-scope.sh +68 -0
  588. package/claude-assets/skills/cfn-simplified-agent-lifecycle/COST_ANALYSIS.md +49 -0
  589. package/claude-assets/skills/cfn-simplified-agent-lifecycle/DESIGN.md +98 -0
  590. package/claude-assets/skills/cfn-simplified-agent-lifecycle/MIGRATION_PLAN.md +74 -0
  591. package/claude-assets/skills/cfn-skill-builder/SKILL.md +910 -0
  592. package/claude-assets/skills/cfn-specialist-injection/SKILL.md +41 -0
  593. package/claude-assets/skills/cfn-specialist-injection/recommend-specialist.sh +57 -0
  594. package/claude-assets/skills/cfn-sprint-execution/SKILL.md +27 -0
  595. package/claude-assets/skills/cfn-sprint-execution/execute-sprint-task.sh +59 -0
  596. package/claude-assets/skills/cfn-sprint-execution/execute-sprint.sh +65 -0
  597. package/claude-assets/skills/cfn-sprint-planner/SKILL.md +37 -0
  598. package/claude-assets/skills/cfn-sprint-planner/plan-sprint.sh +85 -0
  599. package/claude-assets/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
  600. package/claude-assets/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
  601. package/claude-assets/skills/cfn-sqlite-memory/README.md +65 -0
  602. package/claude-assets/skills/cfn-sqlite-memory/SKILL.md +415 -0
  603. package/claude-assets/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
  604. package/claude-assets/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
  605. package/claude-assets/skills/cfn-sqlite-memory/config.json +45 -0
  606. package/claude-assets/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
  607. package/claude-assets/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
  608. package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
  609. package/claude-assets/skills/cfn-standardized-error-handling/SKILL.md +56 -0
  610. package/claude-assets/skills/cfn-standardized-error-handling/capture-agent-error.sh +87 -0
  611. package/claude-assets/skills/cfn-standardized-error-handling/test-error-handling.sh +166 -0
  612. package/claude-assets/skills/cfn-task-classifier/SKILL.md +94 -0
  613. package/claude-assets/skills/cfn-task-classifier/USAGE.md +248 -0
  614. package/claude-assets/skills/cfn-task-classifier/classify-task.sh +291 -0
  615. package/claude-assets/skills/cfn-test-execution/README.md +129 -0
  616. package/claude-assets/skills/cfn-test-execution/SKILL.md +128 -0
  617. package/claude-assets/skills/cfn-test-execution/check-dependencies.sh +36 -0
  618. package/claude-assets/skills/cfn-test-execution/test-cache-reader.sh +134 -0
  619. package/claude-assets/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
  620. package/claude-assets/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
  621. package/claude-assets/skills/cfn-transparency-middleware/Cargo.toml +18 -0
  622. package/claude-assets/skills/cfn-transparency-middleware/README.md +74 -0
  623. package/claude-assets/skills/cfn-transparency-middleware/SECURITY.md +41 -0
  624. package/claude-assets/skills/cfn-transparency-middleware/SKILL.md +91 -0
  625. package/claude-assets/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
  626. package/claude-assets/skills/cfn-transparency-middleware/config.json +31 -0
  627. package/claude-assets/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
  628. package/claude-assets/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
  629. package/claude-assets/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
  630. package/claude-assets/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
  631. package/claude-assets/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
  632. package/claude-assets/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
  633. package/claude-assets/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
  634. package/claude-assets/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
  635. package/claude-assets/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
  636. package/claude-assets/skills/cfn-transparency-middleware/memory_query.rs +85 -0
  637. package/claude-assets/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
  638. package/claude-assets/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
  639. package/claude-assets/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
  640. package/claude-assets/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
  641. package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
  642. package/claude-assets/skills/cfn-transparency-middleware/test-integration.sh +162 -0
  643. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
  644. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
  645. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
  646. package/claude-assets/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
  647. package/claude-assets/skills/cfn-validation-templates/SKILL.md +47 -0
  648. package/claude-assets/skills/cfn-validation-templates/content.json +38 -0
  649. package/claude-assets/skills/cfn-validation-templates/data.json +38 -0
  650. package/claude-assets/skills/cfn-validation-templates/design.json +38 -0
  651. package/claude-assets/skills/cfn-validation-templates/infrastructure.json +38 -0
  652. package/claude-assets/skills/cfn-validation-templates/research.json +38 -0
  653. package/claude-assets/skills/cfn-validation-templates/software.json +38 -0
  654. package/claude-assets/skills/cfn-web-portal/DESIGN.md +117 -0
  655. package/claude-assets/skills/cfn-web-portal/SKILL.md +679 -0
  656. package/claude-assets/skills/cfn-web-portal/invoke-portal-agents.sh +129 -0
  657. package/claude-assets/skills/cfn-web-portal/invoke-portal-dashboard.sh +85 -0
  658. package/claude-assets/skills/cfn-web-portal/invoke-portal-events.sh +125 -0
  659. package/claude-assets/skills/cfn-web-portal/invoke-portal-metrics.sh +112 -0
  660. package/claude-assets/skills/cfn-web-portal/invoke-portal-start.sh +135 -0
  661. package/claude-assets/skills/cfn-web-portal/invoke-portal-stop.sh +121 -0
  662. package/claude-assets/skills/cfn-web-portal/test-web-portal-skill.sh +51 -0
  663. package/claude-assets/skills/cfn-web-portal/validate-deployment.sh +85 -0
  664. package/claude-assets/skills/cfn-webapp-testing/README.md +142 -0
  665. package/claude-assets/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  666. package/claude-assets/skills/cfn-webapp-testing/SKILL.md +877 -0
  667. package/claude-assets/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
  668. package/claude-assets/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
  669. package/claude-assets/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
  670. package/claude-assets/skills/cfn-webapp-testing/init-storage.sh +150 -0
  671. package/claude-assets/skills/cfn-webapp-testing/set-baseline.sh +196 -0
  672. package/claude-assets/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
  673. package/claude-assets/skills/consensus-calculator.js +45 -0
  674. package/claude-assets/skills/evidence-chain.sql +66 -0
  675. package/claude-assets/skills/run-all-skill-tests.sh +124 -0
  676. package/claude-assets/skills/test-execution-coordinator-pattern.md +228 -0
  677. package/package.json +4 -3
  678. package/scripts/init-project.js +7 -7
@@ -0,0 +1,877 @@
1
+ # Webapp Testing Skill
2
+
3
+ **Version:** 1.0.0
4
+ **Purpose:** Visual regression testing with screenshot capture, comparison, and baseline management
5
+ **Integration:** Playwright + SQLite + Redis coordination
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ This skill provides comprehensive web application testing with visual regression detection, screenshot management, and CFN Loop integration. Adapted from Anthropic's webapp-testing skill for Claude Flow Novice's distributed architecture.
12
+
13
+ ### Key Features
14
+
15
+ - 📸 **Screenshot Capture** - Multi-viewport, multi-state capture with Playwright
16
+ - 🔍 **Visual Comparison** - Pixel-level diff detection with similarity scoring
17
+ - 📦 **Baseline Management** - Version-controlled reference images with audit trail
18
+ - 🔄 **CFN Loop Integration** - Automatic validation in Loop 2, Product Owner review
19
+ - 🗄️ **SQLite Storage** - Metadata persistence with efficient querying
20
+ - ⚡ **Redis Coordination** - Zero-token agent synchronization
21
+ - 🎯 **Naming Convention** - Hierarchical organization for discoverability
22
+
23
+ ---
24
+
25
+ ## Architecture
26
+
27
+ ### Components
28
+
29
+ ```
30
+ webapp-testing/
31
+ ├── SKILL.md # This file
32
+ ├── SCREENSHOT_NAMING_CONVENTION.md # Naming and storage strategy
33
+ ├── capture-screenshot.sh # Playwright screenshot capture
34
+ ├── compare-screenshots.sh # Visual diff generation
35
+ ├── set-baseline.sh # Baseline management
36
+ ├── update-baseline.sh # Baseline updates with audit
37
+ ├── init-storage.sh # SQLite schema initialization
38
+ ├── query-screenshots.sh # Screenshot search/retrieval
39
+ ├── cleanup-ephemeral.sh # Remove temporary files
40
+ └── test-webapp-testing.sh # Skill validation tests
41
+ ```
42
+
43
+ ### Data Flow
44
+
45
+ ```
46
+ 1. Agent requests screenshot capture
47
+
48
+ 2. capture-screenshot.sh
49
+ - Launch Playwright
50
+ - Capture viewport/state
51
+ - Save to .screenshots/current/
52
+ - Store metadata in SQLite
53
+ - Push Redis notification
54
+
55
+ 3. compare-screenshots.sh (if baseline exists)
56
+ - Retrieve baseline from SQLite
57
+ - Calculate pixel diff
58
+ - Generate diff image (.screenshots/diffs/)
59
+ - Store comparison result in Redis (TTL: 1h)
60
+
61
+ 4. CFN Loop 2 Validator
62
+ - Retrieve comparison results from Redis
63
+ - Review visual diffs
64
+ - Report consensus (approve/iterate)
65
+
66
+ 5. Product Owner Decision
67
+ - If changes approved: update-baseline.sh
68
+ - If changes rejected: iterate Loop 3
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Usage
74
+
75
+ ### 1. Initialize Storage
76
+
77
+ ```bash
78
+ # Create SQLite schema and directory structure
79
+ ./.claude/skills/webapp-testing/init-storage.sh
80
+ ```
81
+
82
+ **Output:**
83
+ - SQLite table: `webapp_screenshots`
84
+ - Directories: `.screenshots/{baselines,current,diffs,archive}/`
85
+ - Redis keys initialized
86
+
87
+ ### 2. Capture Screenshot
88
+
89
+ ```bash
90
+ ./.claude/skills/webapp-testing/capture-screenshot.sh \
91
+ --project "auth-system" \
92
+ --component "login-form" \
93
+ --viewport "1920x1080" \
94
+ --state "default" \
95
+ --variant "light-mode" \
96
+ --url "http://localhost:3000/login" \
97
+ --task-id "cfn-task-123" \
98
+ --agent-id "playwright-tester-456"
99
+ ```
100
+
101
+ **Parameters:**
102
+
103
+ | Parameter | Required | Description | Example |
104
+ |-----------|----------|-------------|---------|
105
+ | `--project` | Yes | Application/feature namespace | `auth-system` |
106
+ | `--component` | Yes | UI component or page | `login-form` |
107
+ | `--viewport` | Yes | Screen dimensions | `1920x1080`, `375x667` |
108
+ | `--state` | Yes | Interaction state | `default`, `hover`, `error` |
109
+ | `--variant` | No | Theme/A-B variant (default: `default`) | `light-mode`, `dark-mode` |
110
+ | `--url` | Yes | Page URL | `http://localhost:3000/login` |
111
+ | `--task-id` | No | CFN task ID | `cfn-task-123` |
112
+ | `--agent-id` | No | Agent identifier | `playwright-tester-456` |
113
+ | `--selector` | No | Specific element to capture | `.login-form` |
114
+ | `--wait-for` | No | Selector to wait for before capture | `.submit-button` |
115
+ | `--timeout` | No | Playwright timeout (ms, default: 30000) | `60000` |
116
+
117
+ **Output:**
118
+
119
+ ```json
120
+ {
121
+ "screenshot_key": "auth-system/login-form/1920x1080/default/light-mode",
122
+ "file_path": ".screenshots/current/auth-system/login-form/1920x1080/default/light-mode_20251024143022.png",
123
+ "file_hash": "sha256:abc123...",
124
+ "viewport_actual": { "width": 1920, "height": 1080 },
125
+ "captured_at": 1729781422,
126
+ "baseline_exists": false
127
+ }
128
+ ```
129
+
130
+ ### 3. Compare to Baseline
131
+
132
+ ```bash
133
+ ./.claude/skills/webapp-testing/compare-screenshots.sh \
134
+ --screenshot-key "auth-system/login-form/1920x1080/default/light-mode" \
135
+ --task-id "cfn-task-123"
136
+ ```
137
+
138
+ **Parameters:**
139
+
140
+ | Parameter | Required | Description |
141
+ |-----------|----------|-------------|
142
+ | `--screenshot-key` | Yes | Screenshot identifier (from capture output) |
143
+ | `--task-id` | Yes | CFN task ID |
144
+ | `--threshold` | No | Similarity threshold 0-1 (default: 0.95) |
145
+ | `--ignore-regions` | No | JSON array of regions to ignore |
146
+
147
+ **Output:**
148
+
149
+ ```json
150
+ {
151
+ "screenshot_key": "auth-system/login-form/1920x1080/default/light-mode",
152
+ "similarity_score": 0.987,
153
+ "diff_pixels": 1234,
154
+ "total_pixels": 2073600,
155
+ "diff_percentage": 0.06,
156
+ "status": "passed",
157
+ "diff_path": ".screenshots/diffs/cfn-task-123/auth-system_login-form_1920x1080_default_light-mode_diff.png",
158
+ "baseline_path": ".screenshots/baselines/auth-system/login-form/1920x1080/default/light-mode.png",
159
+ "current_path": ".screenshots/current/auth-system/login-form/1920x1080/default/light-mode_20251024143022.png"
160
+ }
161
+ ```
162
+
163
+ **Status Values:**
164
+ - `passed` - Similarity ≥ threshold
165
+ - `failed` - Similarity < threshold
166
+ - `no-baseline` - No baseline exists for comparison
167
+
168
+ ### 4. Set Baseline
169
+
170
+ ```bash
171
+ ./.claude/skills/webapp-testing/set-baseline.sh \
172
+ --screenshot-key "auth-system/login-form/1920x1080/default/light-mode" \
173
+ --reason "Initial baseline for login form component"
174
+ ```
175
+
176
+ **Effect:**
177
+ 1. Copy from `current/` to `baselines/` (remove timestamp)
178
+ 2. Update SQLite: `baseline = 1`
179
+ 3. Update Redis cache
180
+ 4. Archive any previous baseline
181
+
182
+ ### 5. Update Baseline
183
+
184
+ ```bash
185
+ ./.claude/skills/webapp-testing/update-baseline.sh \
186
+ --screenshot-key "auth-system/login-form/1920x1080/default/light-mode" \
187
+ --new-file ".screenshots/current/auth-system/login-form/1920x1080/default/light-mode_20251024150000.png" \
188
+ --reason "Updated button style per design review (PR #456)" \
189
+ --approved-by "product-owner-agent-789"
190
+ ```
191
+
192
+ **Effect:**
193
+ 1. Archive old baseline to `.screenshots/archive/{YYYY-MM}/`
194
+ 2. Copy new file to `baselines/`
195
+ 3. Update SQLite record
196
+ 4. Clear Redis cache
197
+ 5. Log to audit trail
198
+
199
+ ---
200
+
201
+ ## CFN Loop Integration
202
+
203
+ ### Loop 3: Implementation
204
+
205
+ **Frontend developer agent:**
206
+
207
+ ```bash
208
+ # Capture screenshots during development
209
+ for STATE in default hover error; do
210
+ ./.claude/skills/webapp-testing/capture-screenshot.sh \
211
+ --project "auth-system" \
212
+ --component "login-form" \
213
+ --viewport "1920x1080" \
214
+ --state "$STATE" \
215
+ --variant "light-mode" \
216
+ --url "http://localhost:3000/login" \
217
+ --task-id "$TASK_ID" \
218
+ --agent-id "$AGENT_ID"
219
+ done
220
+
221
+ # Report confidence
222
+ CONFIDENCE=0.85
223
+ ./.claude/skills/redis-coordination/invoke-waiting-mode.sh report \
224
+ --task-id "$TASK_ID" \
225
+ --agent-id "$AGENT_ID" \
226
+ --confidence "$CONFIDENCE" \
227
+ --iteration 1
228
+ ```
229
+
230
+ ### Loop 2: Validation
231
+
232
+ **Reviewer agent:**
233
+
234
+ ```bash
235
+ # Compare all screenshots to baselines
236
+ COMPARISONS=$(redis-cli keys "screenshot:queue:${TASK_ID}:*" | while read KEY; do
237
+ SCREENSHOT_KEY=$(redis-cli get "$KEY")
238
+ ./.claude/skills/webapp-testing/compare-screenshots.sh \
239
+ --screenshot-key "$SCREENSHOT_KEY" \
240
+ --task-id "$TASK_ID" \
241
+ --threshold 0.95
242
+ done)
243
+
244
+ # Calculate consensus
245
+ FAILED_COUNT=$(echo "$COMPARISONS" | jq -r 'select(.status == "failed") | .screenshot_key' | wc -l)
246
+ TOTAL_COUNT=$(echo "$COMPARISONS" | jq -s 'length')
247
+
248
+ if [ "$FAILED_COUNT" -eq 0 ]; then
249
+ CONFIDENCE=0.95
250
+ FEEDBACK="All visual regression tests passed"
251
+ else
252
+ CONFIDENCE=0.70
253
+ FEEDBACK="Visual regressions detected in $FAILED_COUNT/$TOTAL_COUNT screenshots. Review diffs in .screenshots/diffs/${TASK_ID}/"
254
+ fi
255
+
256
+ # Report consensus
257
+ ./.claude/skills/redis-coordination/invoke-waiting-mode.sh report \
258
+ --task-id "$TASK_ID" \
259
+ --agent-id "$AGENT_ID" \
260
+ --confidence "$CONFIDENCE" \
261
+ --iteration 1
262
+ ```
263
+
264
+ ### Product Owner Decision
265
+
266
+ **After Loop 2 consensus ≥ 0.90:**
267
+
268
+ ```bash
269
+ # Product Owner reviews visual diffs
270
+ DIFF_PATHS=$(redis-cli keys "screenshot:diff:${TASK_ID}:*" | while read KEY; do
271
+ redis-cli get "$KEY" | jq -r '.diff_path'
272
+ done)
273
+
274
+ # Decision logic
275
+ if [[ $(echo "$DIFF_PATHS" | wc -l) -eq 0 ]]; then
276
+ # No diffs, proceed
277
+ DECISION="PROCEED"
278
+ else
279
+ # Review diffs (Product Owner logic here)
280
+ # For now: if diffs exist, require approval
281
+ echo "Visual changes detected. Review diffs:"
282
+ echo "$DIFF_PATHS"
283
+
284
+ # Simulate approval (in production, this would be manual review)
285
+ DECISION="ITERATE" # or "PROCEED" after approval
286
+ fi
287
+
288
+ # If approved, update baselines
289
+ if [ "$DECISION" = "PROCEED" ]; then
290
+ redis-cli keys "screenshot:diff:${TASK_ID}:*" | while read KEY; do
291
+ SCREENSHOT_KEY=$(echo "$KEY" | sed 's/screenshot:diff:[^:]*://')
292
+ CURRENT_FILE=$(redis-cli get "$KEY" | jq -r '.current_path')
293
+
294
+ ./.claude/skills/webapp-testing/update-baseline.sh \
295
+ --screenshot-key "$SCREENSHOT_KEY" \
296
+ --new-file "$CURRENT_FILE" \
297
+ --reason "Approved visual changes from task $TASK_ID" \
298
+ --approved-by "product-owner"
299
+ done
300
+ fi
301
+ ```
302
+
303
+ ---
304
+
305
+ ## Redis Coordination
306
+
307
+ ### Keys and Patterns
308
+
309
+ **Screenshot Capture Queue:**
310
+
311
+ ```bash
312
+ # Add screenshot to capture queue
313
+ redis-cli lpush "screenshot:queue:${TASK_ID}" \
314
+ "auth-system/login-form/1920x1080/default/light-mode"
315
+
316
+ # Wait for captures to complete (orchestrator)
317
+ redis-cli blpop "screenshot:queue:${TASK_ID}:done" 0
318
+ ```
319
+
320
+ **Comparison Results (TTL: 1 hour):**
321
+
322
+ ```bash
323
+ # Store comparison result
324
+ redis-cli setex "screenshot:diff:${TASK_ID}:${SCREENSHOT_KEY}" 3600 \
325
+ '{"similarity_score": 0.987, "status": "passed", "diff_path": "..."}'
326
+
327
+ # Retrieve all comparisons for task
328
+ redis-cli keys "screenshot:diff:${TASK_ID}:*" | while read KEY; do
329
+ redis-cli get "$KEY"
330
+ done | jq -s '.'
331
+ ```
332
+
333
+ **Baseline Cache (TTL: 24 hours):**
334
+
335
+ ```bash
336
+ # Cache baseline file hash
337
+ redis-cli setex "screenshot:baseline:${SCREENSHOT_KEY}" 86400 \
338
+ "sha256:abc123..."
339
+
340
+ # Retrieve cached hash
341
+ CACHED_HASH=$(redis-cli get "screenshot:baseline:${SCREENSHOT_KEY}")
342
+ ```
343
+
344
+ **Agent Coordination:**
345
+
346
+ ```bash
347
+ # Signal screenshot capture complete
348
+ redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:screenshot-complete" "1"
349
+
350
+ # Wait for all agents to complete captures
351
+ redis-cli blpop "swarm:${TASK_ID}:all-screenshots-complete" 0
352
+ ```
353
+
354
+ ---
355
+
356
+ ## SQLite Schema
357
+
358
+ ### Table: `webapp_screenshots`
359
+
360
+ ```sql
361
+ CREATE TABLE IF NOT EXISTS webapp_screenshots (
362
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
363
+ screenshot_key TEXT UNIQUE NOT NULL,
364
+ project TEXT NOT NULL,
365
+ component TEXT NOT NULL,
366
+ viewport TEXT NOT NULL,
367
+ state TEXT NOT NULL,
368
+ variant TEXT NOT NULL DEFAULT 'default',
369
+ file_path TEXT NOT NULL,
370
+ file_hash TEXT NOT NULL,
371
+ baseline BOOLEAN DEFAULT 0,
372
+ captured_at INTEGER NOT NULL,
373
+ task_id TEXT,
374
+ agent_id TEXT,
375
+ metadata TEXT, -- JSON
376
+ UNIQUE(project, component, viewport, state, variant, baseline)
377
+ );
378
+
379
+ CREATE INDEX idx_baseline ON webapp_screenshots(project, component, viewport, state, variant, baseline);
380
+ CREATE INDEX idx_task ON webapp_screenshots(task_id);
381
+ CREATE INDEX idx_component ON webapp_screenshots(project, component);
382
+ CREATE INDEX idx_captured ON webapp_screenshots(captured_at DESC);
383
+ ```
384
+
385
+ ### Table: `screenshot_audit_log`
386
+
387
+ ```sql
388
+ CREATE TABLE IF NOT EXISTS screenshot_audit_log (
389
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
390
+ screenshot_key TEXT NOT NULL,
391
+ action TEXT NOT NULL, -- 'created', 'updated', 'archived', 'deleted'
392
+ reason TEXT,
393
+ old_file_hash TEXT,
394
+ new_file_hash TEXT,
395
+ approved_by TEXT,
396
+ created_at INTEGER NOT NULL,
397
+ task_id TEXT,
398
+ metadata TEXT -- JSON
399
+ );
400
+
401
+ CREATE INDEX idx_audit_screenshot ON screenshot_audit_log(screenshot_key);
402
+ CREATE INDEX idx_audit_created ON screenshot_audit_log(created_at DESC);
403
+ CREATE INDEX idx_audit_task ON screenshot_audit_log(task_id);
404
+ ```
405
+
406
+ ---
407
+
408
+ ## Skill Scripts
409
+
410
+ ### `capture-screenshot.sh`
411
+
412
+ **Purpose:** Capture screenshot with Playwright
413
+
414
+ **Implementation:**
415
+
416
+ ```bash
417
+ #!/bin/bash
418
+ set -e
419
+
420
+ # Parse arguments
421
+ while [[ $# -gt 0 ]]; do
422
+ case $1 in
423
+ --project) PROJECT="$2"; shift 2 ;;
424
+ --component) COMPONENT="$2"; shift 2 ;;
425
+ --viewport) VIEWPORT="$2"; shift 2 ;;
426
+ --state) STATE="$2"; shift 2 ;;
427
+ --variant) VARIANT="${2:-default}"; shift 2 ;;
428
+ --url) URL="$2"; shift 2 ;;
429
+ --task-id) TASK_ID="$2"; shift 2 ;;
430
+ --agent-id) AGENT_ID="$2"; shift 2 ;;
431
+ --selector) SELECTOR="$2"; shift 2 ;;
432
+ --wait-for) WAIT_FOR="$2"; shift 2 ;;
433
+ --timeout) TIMEOUT="${2:-30000}"; shift 2 ;;
434
+ *) echo "Unknown parameter: $1"; exit 1 ;;
435
+ esac
436
+ done
437
+
438
+ # Validate required parameters
439
+ if [ -z "$PROJECT" ] || [ -z "$COMPONENT" ] || [ -z "$VIEWPORT" ] || [ -z "$STATE" ] || [ -z "$URL" ]; then
440
+ echo "Error: Missing required parameters"
441
+ echo "Usage: $0 --project <project> --component <component> --viewport <viewport> --state <state> --url <url>"
442
+ exit 1
443
+ fi
444
+
445
+ # Generate screenshot key and paths
446
+ VARIANT="${VARIANT:-default}"
447
+ TIMESTAMP=$(date +%Y%m%d%H%M%S)
448
+ SCREENSHOT_KEY="${PROJECT}/${COMPONENT}/${VIEWPORT}/${STATE}/${VARIANT}"
449
+ OUTPUT_DIR=".screenshots/current/${PROJECT}/${COMPONENT}/${VIEWPORT}/${STATE}"
450
+ OUTPUT_FILE="${OUTPUT_DIR}/${VARIANT}_${TIMESTAMP}.png"
451
+
452
+ mkdir -p "$OUTPUT_DIR"
453
+
454
+ # Parse viewport dimensions
455
+ IFS='x' read -r WIDTH HEIGHT <<< "$VIEWPORT"
456
+
457
+ # Capture screenshot with Playwright (inline Node.js script)
458
+ node -e "
459
+ const { chromium } = require('playwright');
460
+
461
+ (async () => {
462
+ const browser = await chromium.launch();
463
+ const context = await browser.newContext({
464
+ viewport: { width: ${WIDTH}, height: ${HEIGHT} }
465
+ });
466
+ const page = await context.newPage();
467
+
468
+ await page.goto('${URL}', { waitUntil: 'networkidle', timeout: ${TIMEOUT:-30000} });
469
+
470
+ ${WAIT_FOR:+await page.waitForSelector('${WAIT_FOR}', { timeout: ${TIMEOUT:-30000} });}
471
+
472
+ // Simulate state if needed
473
+ ${SELECTOR:+const element = await page.locator('${SELECTOR}');}
474
+ if ('${STATE}' === 'hover') {
475
+ await ${SELECTOR:+element}${SELECTOR:-.locator('body')}.hover();
476
+ } else if ('${STATE}' === 'focus') {
477
+ await ${SELECTOR:+element}${SELECTOR:-.locator('input').first()}.focus();
478
+ }
479
+
480
+ await page.screenshot({
481
+ path: '${OUTPUT_FILE}',
482
+ ${SELECTOR:+clip: await ${SELECTOR:+element}.boundingBox(),}
483
+ fullPage: ${SELECTOR:+false}${SELECTOR:-true}
484
+ });
485
+
486
+ await browser.close();
487
+
488
+ console.log(JSON.stringify({
489
+ screenshot_key: '${SCREENSHOT_KEY}',
490
+ file_path: '${OUTPUT_FILE}',
491
+ viewport_actual: { width: ${WIDTH}, height: ${HEIGHT} },
492
+ captured_at: Math.floor(Date.now() / 1000)
493
+ }));
494
+ })();
495
+ "
496
+
497
+ # Calculate file hash
498
+ FILE_HASH=$(sha256sum "$OUTPUT_FILE" | awk '{print $1}')
499
+
500
+ # Check if baseline exists
501
+ BASELINE_EXISTS=$(sqlite3 ~/.claude/memory/adaptive-context.db \
502
+ "SELECT COUNT(*) FROM webapp_screenshots WHERE screenshot_key = '${SCREENSHOT_KEY}' AND baseline = 1")
503
+
504
+ # Store metadata in SQLite
505
+ METADATA=$(cat <<EOF
506
+ {
507
+ "browser": "chromium",
508
+ "viewport_actual": { "width": ${WIDTH}, "height": ${HEIGHT} },
509
+ "url": "${URL}",
510
+ "task_id": "${TASK_ID}",
511
+ "agent_id": "${AGENT_ID}",
512
+ "git_commit": "$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown')",
513
+ "git_branch": "$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo 'unknown')"
514
+ }
515
+ EOF
516
+ )
517
+
518
+ sqlite3 ~/.claude/memory/adaptive-context.db <<EOF
519
+ INSERT INTO webapp_screenshots (
520
+ screenshot_key, project, component, viewport, state, variant,
521
+ file_path, file_hash, baseline, captured_at, task_id, agent_id, metadata
522
+ ) VALUES (
523
+ '${SCREENSHOT_KEY}', '${PROJECT}', '${COMPONENT}', '${VIEWPORT}', '${STATE}', '${VARIANT}',
524
+ '${OUTPUT_FILE}', 'sha256:${FILE_HASH}', 0, $(date +%s), '${TASK_ID}', '${AGENT_ID}', '${METADATA}'
525
+ );
526
+ EOF
527
+
528
+ # Push to Redis queue (for orchestrator tracking)
529
+ if [ -n "$TASK_ID" ]; then
530
+ redis-cli lpush "screenshot:queue:${TASK_ID}" "$SCREENSHOT_KEY" > /dev/null
531
+ fi
532
+
533
+ # Output result
534
+ cat <<EOF
535
+ {
536
+ "screenshot_key": "${SCREENSHOT_KEY}",
537
+ "file_path": "${OUTPUT_FILE}",
538
+ "file_hash": "sha256:${FILE_HASH}",
539
+ "viewport_actual": { "width": ${WIDTH}, "height": ${HEIGHT} },
540
+ "captured_at": $(date +%s),
541
+ "baseline_exists": $([[ "$BASELINE_EXISTS" -eq 1 ]] && echo "true" || echo "false")
542
+ }
543
+ EOF
544
+ ```
545
+
546
+ ### `compare-screenshots.sh`
547
+
548
+ **Purpose:** Compare captured screenshot to baseline
549
+
550
+ **Implementation:**
551
+
552
+ ```bash
553
+ #!/bin/bash
554
+ set -e
555
+
556
+ # Parse arguments
557
+ while [[ $# -gt 0 ]]; do
558
+ case $1 in
559
+ --screenshot-key) SCREENSHOT_KEY="$2"; shift 2 ;;
560
+ --task-id) TASK_ID="$2"; shift 2 ;;
561
+ --threshold) THRESHOLD="${2:-0.95}"; shift 2 ;;
562
+ *) echo "Unknown parameter: $1"; exit 1 ;;
563
+ esac
564
+ done
565
+
566
+ # Validate
567
+ if [ -z "$SCREENSHOT_KEY" ] || [ -z "$TASK_ID" ]; then
568
+ echo "Error: Missing required parameters"
569
+ exit 1
570
+ fi
571
+
572
+ # Get baseline and current paths from SQLite
573
+ BASELINE_PATH=$(sqlite3 ~/.claude/memory/adaptive-context.db \
574
+ "SELECT file_path FROM webapp_screenshots WHERE screenshot_key = '${SCREENSHOT_KEY}' AND baseline = 1")
575
+
576
+ CURRENT_PATH=$(sqlite3 ~/.claude/memory/adaptive-context.db \
577
+ "SELECT file_path FROM webapp_screenshots WHERE screenshot_key = '${SCREENSHOT_KEY}' AND baseline = 0 ORDER BY captured_at DESC LIMIT 1")
578
+
579
+ if [ -z "$BASELINE_PATH" ]; then
580
+ # No baseline exists
581
+ echo '{"status": "no-baseline", "screenshot_key": "'$SCREENSHOT_KEY'"}'
582
+ exit 0
583
+ fi
584
+
585
+ if [ -z "$CURRENT_PATH" ]; then
586
+ echo "Error: No current screenshot found for key: $SCREENSHOT_KEY"
587
+ exit 1
588
+ fi
589
+
590
+ # Generate diff path
591
+ DIFF_DIR=".screenshots/diffs/${TASK_ID}"
592
+ mkdir -p "$DIFF_DIR"
593
+ SCREENSHOT_KEY_FLAT=$(echo "$SCREENSHOT_KEY" | tr '/' '_')
594
+ DIFF_PATH="${DIFF_DIR}/${SCREENSHOT_KEY_FLAT}_diff.png"
595
+
596
+ # Compare using pixelmatch (Node.js)
597
+ COMPARISON=$(node -e "
598
+ const fs = require('fs');
599
+ const PNG = require('pngjs').PNG;
600
+ const pixelmatch = require('pixelmatch');
601
+
602
+ const baseline = PNG.sync.read(fs.readFileSync('${BASELINE_PATH}'));
603
+ const current = PNG.sync.read(fs.readFileSync('${CURRENT_PATH}'));
604
+ const { width, height } = baseline;
605
+ const diff = new PNG({ width, height });
606
+
607
+ const numDiffPixels = pixelmatch(
608
+ baseline.data, current.data, diff.data, width, height,
609
+ { threshold: 0.1 }
610
+ );
611
+
612
+ fs.writeFileSync('${DIFF_PATH}', PNG.sync.write(diff));
613
+
614
+ const totalPixels = width * height;
615
+ const diffPercentage = (numDiffPixels / totalPixels) * 100;
616
+ const similarityScore = 1 - (numDiffPixels / totalPixels);
617
+ const status = similarityScore >= ${THRESHOLD} ? 'passed' : 'failed';
618
+
619
+ console.log(JSON.stringify({
620
+ screenshot_key: '${SCREENSHOT_KEY}',
621
+ similarity_score: similarityScore.toFixed(4),
622
+ diff_pixels: numDiffPixels,
623
+ total_pixels: totalPixels,
624
+ diff_percentage: diffPercentage.toFixed(2),
625
+ status: status,
626
+ diff_path: '${DIFF_PATH}',
627
+ baseline_path: '${BASELINE_PATH}',
628
+ current_path: '${CURRENT_PATH}'
629
+ }));
630
+ ")
631
+
632
+ # Store in Redis (TTL: 1 hour)
633
+ redis-cli setex "screenshot:diff:${TASK_ID}:${SCREENSHOT_KEY}" 3600 "$COMPARISON" > /dev/null
634
+
635
+ # Output result
636
+ echo "$COMPARISON"
637
+ ```
638
+
639
+ ### `set-baseline.sh`
640
+
641
+ **Purpose:** Set a screenshot as baseline
642
+
643
+ **Implementation:**
644
+
645
+ ```bash
646
+ #!/bin/bash
647
+ set -e
648
+
649
+ # Parse arguments
650
+ while [[ $# -gt 0 ]]; do
651
+ case $1 in
652
+ --screenshot-key) SCREENSHOT_KEY="$2"; shift 2 ;;
653
+ --reason) REASON="$2"; shift 2 ;;
654
+ *) echo "Unknown parameter: $1"; exit 1 ;;
655
+ esac
656
+ done
657
+
658
+ # Validate
659
+ if [ -z "$SCREENSHOT_KEY" ]; then
660
+ echo "Error: Missing --screenshot-key"
661
+ exit 1
662
+ fi
663
+
664
+ # Parse screenshot key
665
+ IFS='/' read -r PROJECT COMPONENT VIEWPORT STATE VARIANT <<< "$SCREENSHOT_KEY"
666
+
667
+ # Get current screenshot from SQLite
668
+ CURRENT_PATH=$(sqlite3 ~/.claude/memory/adaptive-context.db \
669
+ "SELECT file_path FROM webapp_screenshots WHERE screenshot_key = '${SCREENSHOT_KEY}' AND baseline = 0 ORDER BY captured_at DESC LIMIT 1")
670
+
671
+ if [ -z "$CURRENT_PATH" ]; then
672
+ echo "Error: No current screenshot found for key: $SCREENSHOT_KEY"
673
+ exit 1
674
+ fi
675
+
676
+ # Create baseline directory
677
+ BASELINE_DIR=".screenshots/baselines/${PROJECT}/${COMPONENT}/${VIEWPORT}/${STATE}"
678
+ mkdir -p "$BASELINE_DIR"
679
+ BASELINE_PATH="${BASELINE_DIR}/${VARIANT}.png"
680
+
681
+ # Copy to baselines (remove timestamp from filename)
682
+ cp "$CURRENT_PATH" "$BASELINE_PATH"
683
+
684
+ # Get file hash
685
+ FILE_HASH=$(sha256sum "$BASELINE_PATH" | awk '{print $1}')
686
+
687
+ # Update SQLite (set as baseline)
688
+ sqlite3 ~/.claude/memory/adaptive-context.db <<EOF
689
+ INSERT OR REPLACE INTO webapp_screenshots (
690
+ screenshot_key, project, component, viewport, state, variant,
691
+ file_path, file_hash, baseline, captured_at, task_id, agent_id, metadata
692
+ )
693
+ SELECT
694
+ screenshot_key, project, component, viewport, state, variant,
695
+ '${BASELINE_PATH}', 'sha256:${FILE_HASH}', 1, $(date +%s), task_id, agent_id, metadata
696
+ FROM webapp_screenshots
697
+ WHERE screenshot_key = '${SCREENSHOT_KEY}' AND baseline = 0
698
+ ORDER BY captured_at DESC LIMIT 1;
699
+
700
+ -- Audit log
701
+ INSERT INTO screenshot_audit_log (
702
+ screenshot_key, action, reason, new_file_hash, created_at
703
+ ) VALUES (
704
+ '${SCREENSHOT_KEY}', 'created', '${REASON}', 'sha256:${FILE_HASH}', $(date +%s)
705
+ );
706
+ EOF
707
+
708
+ # Clear Redis cache
709
+ redis-cli del "screenshot:baseline:${SCREENSHOT_KEY}" > /dev/null
710
+
711
+ echo '{"status": "baseline-set", "screenshot_key": "'$SCREENSHOT_KEY'", "baseline_path": "'$BASELINE_PATH'"}'
712
+ ```
713
+
714
+ ---
715
+
716
+ ## Configuration
717
+
718
+ ### `.claude/skills/webapp-testing/config.json`
719
+
720
+ ```json
721
+ {
722
+ "storage": {
723
+ "baselines_dir": ".screenshots/baselines",
724
+ "current_dir": ".screenshots/current",
725
+ "diffs_dir": ".screenshots/diffs",
726
+ "archive_dir": ".screenshots/archive",
727
+ "db_path": "~/.claude/memory/adaptive-context.db"
728
+ },
729
+ "defaults": {
730
+ "viewport": "1920x1080",
731
+ "threshold": 0.95,
732
+ "timeout": 30000,
733
+ "variant": "default"
734
+ },
735
+ "viewports": {
736
+ "desktop": "1920x1080",
737
+ "laptop": "1366x768",
738
+ "tablet": "768x1024",
739
+ "mobile": "375x667",
740
+ "mobile-large": "390x844"
741
+ },
742
+ "redis": {
743
+ "ttl_comparison": 3600,
744
+ "ttl_baseline_cache": 86400
745
+ },
746
+ "cleanup": {
747
+ "archive_retention_days": 90,
748
+ "current_retention_hours": 24,
749
+ "diff_retention_hours": 48
750
+ }
751
+ }
752
+ ```
753
+
754
+ ---
755
+
756
+ ## Best Practices
757
+
758
+ ### 1. Screenshot Naming
759
+
760
+ ✅ **DO:**
761
+ - Use consistent project/component names
762
+ - Follow kebab-case convention
763
+ - Include all relevant states
764
+
765
+ ❌ **DON'T:**
766
+ - Use spaces or special characters
767
+ - Mix naming conventions
768
+ - Skip variant specification
769
+
770
+ ### 2. Baseline Management
771
+
772
+ ✅ **DO:**
773
+ - Review visual changes before updating baselines
774
+ - Document baseline change reasons
775
+ - Version control baselines directory
776
+ - Archive old baselines before updates
777
+
778
+ ❌ **DON'T:**
779
+ - Auto-approve baseline changes without review
780
+ - Update baselines without audit trail
781
+ - Delete old baselines immediately
782
+ - Skip Product Owner approval for visual changes
783
+
784
+ ### 3. CFN Loop Integration
785
+
786
+ ✅ **DO:**
787
+ - Capture screenshots in Loop 3 (implementation)
788
+ - Compare in Loop 2 (validation)
789
+ - Require Product Owner approval for baseline updates
790
+ - Store comparison results in Redis for validator review
791
+
792
+ ❌ **DON'T:**
793
+ - Update baselines in Loop 3 without validation
794
+ - Skip visual regression checks in Loop 2
795
+ - Proceed with failed visual tests without iteration
796
+ - Mix capture and comparison in same loop
797
+
798
+ ### 4. Performance
799
+
800
+ ✅ **DO:**
801
+ - Compress screenshots (pngquant, oxipng)
802
+ - Set appropriate Redis TTLs
803
+ - Clean up ephemeral files regularly
804
+ - Use Redis BLPOP for zero-token coordination
805
+
806
+ ❌ **DON'T:**
807
+ - Store uncompressed screenshots
808
+ - Keep all test runs indefinitely
809
+ - Poll Redis for completion
810
+ - Duplicate baselines across tasks
811
+
812
+ ---
813
+
814
+ ## Troubleshooting
815
+
816
+ ### Playwright Installation
817
+
818
+ ```bash
819
+ # Install Playwright browsers
820
+ npx playwright install chromium
821
+
822
+ # Verify installation
823
+ npx playwright --version
824
+ ```
825
+
826
+ ### SQLite Schema Issues
827
+
828
+ ```bash
829
+ # Reinitialize schema
830
+ ./.claude/skills/webapp-testing/init-storage.sh --force
831
+ ```
832
+
833
+ ### Missing Screenshots
834
+
835
+ ```bash
836
+ # Query for screenshot
837
+ sqlite3 ~/.claude/memory/adaptive-context.db \
838
+ "SELECT * FROM webapp_screenshots WHERE screenshot_key = 'your-key-here'"
839
+
840
+ # Check filesystem
841
+ ls -lah .screenshots/current/your-project/your-component/
842
+ ```
843
+
844
+ ### Comparison Failures
845
+
846
+ ```bash
847
+ # Check if baseline exists
848
+ sqlite3 ~/.claude/memory/adaptive-context.db \
849
+ "SELECT file_path FROM webapp_screenshots WHERE screenshot_key = 'your-key' AND baseline = 1"
850
+
851
+ # Manually set baseline
852
+ ./.claude/skills/webapp-testing/set-baseline.sh \
853
+ --screenshot-key "your-key" \
854
+ --reason "Initial baseline"
855
+ ```
856
+
857
+ ---
858
+
859
+ ## Future Enhancements
860
+
861
+ ### Phase 2
862
+ - [ ] Multi-viewport capture (single command)
863
+ - [ ] Animation frame capture (GIF/video)
864
+ - [ ] Component isolation (auto-crop)
865
+ - [ ] Playwright trace integration
866
+
867
+ ### Phase 3
868
+ - [ ] ML-based anomaly detection
869
+ - [ ] Smart diff highlighting
870
+ - [ ] Figma → screenshot generation
871
+ - [ ] Natural language screenshot queries
872
+
873
+ ---
874
+
875
+ **Status:** Ready for Implementation
876
+ **Dependencies:** Playwright, pngjs, pixelmatch, SQLite, Redis
877
+ **Documentation:** See `SCREENSHOT_NAMING_CONVENTION.md`