claude-flow-novice 2.6.0 → 2.8.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 (364) hide show
  1. package/.claude/adaptive-context/cfn-v3-reflection.json +21 -0
  2. package/.claude/agents/AGENT_LIFECYCLE.md +495 -0
  3. package/.claude/agents/CLAUDE.md +1002 -995
  4. package/.claude/agents/accessibility-advocate.md +457 -0
  5. package/.claude/agents/agent-principles/README.md +226 -226
  6. package/.claude/agents/agent-principles/agent-type-guidelines.md +10 -0
  7. package/.claude/agents/agent-principles/format-selection.md +10 -0
  8. package/.claude/agents/agent-principles/phase4-template-optimization.md +502 -494
  9. package/.claude/agents/agent-principles/prompt-engineering.md +8 -0
  10. package/.claude/agents/agent-principles/quality-metrics.md +8 -0
  11. package/.claude/agents/analysis/code-analyzer.md +7 -17
  12. package/.claude/agents/analysis/code-review/analyze-code-quality.md +2 -104
  13. package/.claude/agents/analysis/perf-analyzer.md +2 -196
  14. package/.claude/agents/context/context-curator.md +78 -84
  15. package/.claude/agents/context/context-reflector.md +27 -81
  16. package/.claude/agents/coordinators/README.md +42 -0
  17. package/.claude/agents/coordinators/cfn-v3-coordinator.md +440 -0
  18. package/.claude/agents/{product-owner-team → coordinators}/cto-agent.md +154 -187
  19. package/.claude/agents/coordinators/multi-sprint-coordinator.md +50 -0
  20. package/.claude/agents/{product-owner-team → coordinators}/product-owner-agent.md +6 -39
  21. package/.claude/agents/{cfn-loop → coordinators}/product-owner.md +72 -17
  22. package/.claude/agents/core-agents/reviewer.md +114 -135
  23. package/.claude/agents/custom/agent-builder.md +637 -637
  24. package/.claude/agents/developers/README.md +69 -0
  25. package/.claude/agents/developers/backend-dev.md +77 -0
  26. package/.claude/agents/{core-agents → developers}/coder.md +131 -26
  27. package/.claude/agents/developers/react-frontend-engineer.md +121 -0
  28. package/.claude/agents/{frontend → developers}/state-architect.md +1 -0
  29. package/.claude/agents/{frontend → developers}/ui-designer.md +1 -0
  30. package/.claude/agents/development/backend/dev-backend-api.md +0 -29
  31. package/.claude/agents/development/npm-package-specialist.md +355 -347
  32. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +8 -0
  33. package/.claude/agents/documentation/api-docs.md +8 -0
  34. package/.claude/agents/github/github-commit-agent.md +125 -117
  35. package/.claude/agents/goal/goal-planner.md +8 -0
  36. package/.claude/agents/infrastructure/README.md +100 -0
  37. package/.claude/agents/{specialized → infrastructure}/devops-engineer.md +131 -150
  38. package/.claude/agents/planners/README.md +94 -0
  39. package/.claude/agents/{core-agents → planners}/analyst.md +1 -22
  40. package/.claude/agents/{planning-team → planners}/api-designer-persona.md +8 -0
  41. package/.claude/agents/{core-agents → planners}/architect.md +7 -20
  42. package/.claude/agents/{core-agents → planners}/planner.md +0 -21
  43. package/.claude/agents/{planning-team → planners}/security-architect-persona.md +8 -28
  44. package/.claude/agents/{planning-team → planners}/system-architect-persona.md +6 -38
  45. package/.claude/agents/{architecture → planners}/system-architect.md +12 -17
  46. package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +132 -161
  47. package/.claude/agents/product-owner-team/power-user-persona.md +149 -182
  48. package/.claude/agents/retrospective-analyst.md +84 -0
  49. package/.claude/agents/reviewers/README.md +58 -0
  50. package/.claude/agents/{analysis → reviewers}/code-quality-validator.md +8 -17
  51. package/.claude/agents/reviewers/reviewer.md +181 -0
  52. package/.claude/agents/sparc/architecture.md +6 -25
  53. package/.claude/agents/sparc/pseudocode.md +6 -0
  54. package/.claude/agents/sparc/refinement.md +6 -0
  55. package/.claude/agents/sparc/specification.md +1 -0
  56. package/.claude/agents/specialists/README.md +60 -0
  57. package/.claude/agents/{core-agents → specialists}/base-template-generator.md +8 -21
  58. package/.claude/agents/{specialized → specialists}/cli-agent-optimizer.md +1 -1
  59. package/.claude/agents/{specialized → specialists}/code-booster.md +1 -0
  60. package/.claude/agents/{consensus → specialists}/consensus-builder.md +1 -17
  61. package/.claude/agents/{specialized/mobile → specialists}/mobile-dev.md +0 -20
  62. package/.claude/agents/{core-agents → specialists}/performance-benchmarker.md +134 -148
  63. package/.claude/agents/{specialized → specialists}/rust-developer.md +1 -20
  64. package/.claude/agents/{specialized → specialists}/rust-enterprise-developer.md +1 -20
  65. package/.claude/agents/{specialized → specialists}/rust-mvp-developer.md +1 -20
  66. package/.claude/agents/{core-agents → specialists}/security-manager.md +68 -88
  67. package/.claude/agents/{security → specialists}/security-specialist-existing.md +6 -57
  68. package/.claude/agents/{security → specialists}/security-specialist.md +6 -30
  69. package/.claude/agents/{specialized/mobile → specialists}/spec-mobile-react-native.md +2 -21
  70. package/.claude/agents/testers/README.md +94 -0
  71. package/.claude/agents/{testing → testers}/e2e/playwright-agent.md +1 -20
  72. package/.claude/agents/{testing → testers}/interaction-tester.md +1 -20
  73. package/.claude/agents/{testing → testers}/playwright-tester.md +1 -1
  74. package/.claude/agents/testers/tester.md +139 -0
  75. package/.claude/agents/testers/unit/tdd-london-swarm.md +49 -0
  76. package/.claude/agents/testers/validation/production-validator.md +33 -0
  77. package/.claude/agents-ignore/cfn-loop-coordinator.md +157 -0
  78. package/.claude/agents-ignore/cfn-loop-coordinator.md.backup +156 -0
  79. package/.claude/agents-ignore/coordinator.md.backup +182 -0
  80. package/.claude/agents-ignore/cost-savings-cfn-loop-coordinator.md +760 -0
  81. package/.claude/agents-ignore/cost-savings-coordinator.md +173 -0
  82. package/.claude/artifacts/ace-reflections/REFLECT-001-summary.json +39 -0
  83. package/.claude/artifacts/ace-reflections/sprint-7_$(date -u +/"%Y%m%d_%H%M%S/").json" +47 -0
  84. package/.claude/commands/CFN_COORDINATOR_PARAMETERS.md +10 -10
  85. package/.claude/commands/cfn-loop-epic.md +3 -3
  86. package/.claude/commands/cfn-loop-single.md +3 -3
  87. package/.claude/commands/cfn-loop-sprints.md +1 -1
  88. package/.claude/commands/cfn-loop.md +3 -3
  89. package/.claude/commands/cfn-mode.md +20 -0
  90. package/.claude/commands/write-plan.md +104 -0
  91. package/.claude/data/cfn-loop.db +0 -0
  92. package/.claude/data/cfn_loop_logs.db +0 -0
  93. package/.claude/hooks/BACKUP_USAGE.md +243 -0
  94. package/.claude/hooks/post-edit-cfn-retrospective.sh +79 -0
  95. package/.claude/hooks/post-edit.sh +21 -0
  96. package/.claude/hooks/pre-edit-backup.sh +71 -0
  97. package/.claude/hooks/restore-from-backup.sh +37 -0
  98. package/.claude/prompts/cfn-loop-context.md +115 -0
  99. package/.claude/prompts/loop-specific/loop2.md +50 -0
  100. package/.claude/prompts/loop-specific/loop3.md +43 -0
  101. package/.claude/prompts/loop-specific/loop4.md +54 -0
  102. package/.claude/root-claude-distribute/CLAUDE.md +76 -2
  103. package/.claude/skills/ace-system/sprint-7-lessons.json +46 -0
  104. package/.claude/skills/ace-system/store-reflection.sh +33 -136
  105. package/.claude/skills/agent-discovery/SKILL.md +40 -0
  106. package/.claude/skills/agent-discovery/agents-registry-clean.json +0 -0
  107. package/.claude/skills/agent-discovery/agents-registry-fixed.json +19 -0
  108. package/.claude/skills/agent-discovery/agents-registry.json +718 -0
  109. package/.claude/skills/agent-discovery/discover-agents.py +175 -0
  110. package/.claude/skills/agent-discovery/discover-agents.sh +87 -0
  111. package/.claude/skills/agent-discovery/invoke-registry.sh +11 -0
  112. package/.claude/skills/agent-discovery/temp_script.py +0 -0
  113. package/.claude/skills/agent-output-processing/SKILL.md +359 -0
  114. package/.claude/skills/agent-selector/SKILL.md +90 -0
  115. package/.claude/skills/agent-selector/select-agents.sh +96 -0
  116. package/.claude/skills/agent-spawning/agent-selection-guide.md +1 -1
  117. package/.claude/skills/agent-swap/SKILL.md +36 -0
  118. package/.claude/skills/agent-swap/recommend-swap.sh +60 -0
  119. package/.claude/skills/api-validation/test-endpoints.sh +54 -0
  120. package/.claude/skills/automatic-memory-persistence/SKILL.md +73 -0
  121. package/.claude/skills/automatic-memory-persistence/persist-agent-output.sh +49 -0
  122. package/.claude/skills/automatic-memory-persistence/query-agent-history.sh +35 -0
  123. package/.claude/skills/automatic-memory-persistence/test-memory-persistence.sh +235 -0
  124. package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
  125. package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
  126. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  127. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  128. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  129. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  130. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  131. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  132. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  133. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  134. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +840 -0
  135. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  136. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  137. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  138. package/.claude/skills/cfn-loop-validation/SKILL.md +307 -217
  139. package/.claude/skills/complexity-estimator/SKILL.md +96 -0
  140. package/.claude/skills/complexity-estimator/estimate-complexity.sh +144 -0
  141. package/.claude/skills/context-pruner/SKILL.md +75 -0
  142. package/.claude/skills/context-pruner/prune-context.sh +73 -0
  143. package/.claude/skills/defense-in-depth/SKILL.md +133 -0
  144. package/.claude/skills/dependency-extractor/SKILL.md +35 -0
  145. package/.claude/skills/dependency-extractor/extract-dependencies.sh +66 -0
  146. package/.claude/skills/epic-decomposer/SKILL.md +44 -0
  147. package/.claude/skills/epic-decomposer/decompose-epic.sh +104 -0
  148. package/.claude/skills/improvement-recommender/SKILL.md +33 -0
  149. package/.claude/skills/improvement-recommender/recommend-improvements.sh +92 -0
  150. package/.claude/skills/intervention-detector/SKILL.md +39 -0
  151. package/.claude/skills/intervention-detector/detect-intervention.sh +111 -0
  152. package/.claude/skills/intervention-orchestrator/SKILL.md +43 -0
  153. package/.claude/skills/intervention-orchestrator/execute-intervention.sh +59 -0
  154. package/.claude/skills/loop2-output-processing/SKILL.md +163 -0
  155. package/.claude/skills/loop2-output-processing/execute-and-extract.sh +77 -0
  156. package/.claude/skills/loop2-output-processing/execute-and-extract.sh.backup +36 -0
  157. package/.claude/skills/loop2-output-processing/parse-feedback.sh +147 -0
  158. package/.claude/skills/loop2-output-processing/process-validator-output.sh +275 -0
  159. package/.claude/skills/loop2-output-processing/test-bug27-fix.sh +200 -0
  160. package/.claude/skills/loop2-output-processing/test-loop2-processing.sh +113 -0
  161. package/.claude/skills/loop3-output-processing/AGENT_COMPLETION_PROTOCOL.md +206 -0
  162. package/.claude/skills/loop3-output-processing/SKILL.md +421 -0
  163. package/.claude/skills/loop3-output-processing/calculate-confidence.sh +28 -0
  164. package/.claude/skills/loop3-output-processing/execute-and-extract.sh +85 -0
  165. package/.claude/skills/loop3-output-processing/parse-confidence.sh +31 -0
  166. package/.claude/skills/loop3-output-processing/test-agent-timeout.sh +327 -0
  167. package/.claude/skills/loop3-output-processing/test-loop3-processing.sh +155 -0
  168. package/.claude/skills/loop3-output-processing/verify-deliverables.sh +42 -0
  169. package/.claude/skills/pattern-extraction/SKILL.md +30 -0
  170. package/.claude/skills/pattern-extraction/extract-patterns.sh +80 -0
  171. package/.claude/skills/playbook/SKILL.md +113 -0
  172. package/.claude/skills/playbook/init-playbook.sh +54 -0
  173. package/.claude/skills/playbook/playbook.db +0 -0
  174. package/.claude/skills/playbook/query-playbook.sh +79 -0
  175. package/.claude/skills/playbook/update-playbook.sh +69 -0
  176. package/.claude/skills/playbook-auto-update/SKILL.md +29 -0
  177. package/.claude/skills/playbook-auto-update/auto-update-playbook.sh +86 -0
  178. package/.claude/skills/product-owner-decision/SKILL.md +332 -0
  179. package/.claude/skills/product-owner-decision/execute-decision.sh +176 -0
  180. package/.claude/skills/product-owner-decision/parse-decision.sh +66 -0
  181. package/.claude/skills/product-owner-decision/validate-deliverables.sh +82 -0
  182. package/.claude/skills/redis-coordination/LOGGING.md +260 -0
  183. package/.claude/skills/redis-coordination/README.md +30 -29
  184. package/.claude/skills/redis-coordination/SKILL.md +685 -83
  185. package/.claude/skills/redis-coordination/analyze-task-complexity.sh +277 -0
  186. package/.claude/skills/redis-coordination/cfn-loop-exec.sh +468 -0
  187. package/.claude/skills/redis-coordination/collect-confidence-scores.sh +179 -0
  188. package/.claude/skills/redis-coordination/collect-results.sh +75 -0
  189. package/.claude/skills/redis-coordination/data/cfn-loop.db +0 -0
  190. package/.claude/skills/redis-coordination/{test-orchestrator.sh → demos/test-orchestrator.sh} +25 -0
  191. package/.claude/skills/redis-coordination/execute-product-owner-decision.sh +258 -0
  192. package/.claude/skills/redis-coordination/get-agent-timeout.sh +176 -176
  193. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +93 -227
  194. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  195. package/.claude/skills/redis-coordination/log-event.sh +109 -0
  196. package/.claude/skills/redis-coordination/monitor-cfn-violations.sh +391 -0
  197. package/.claude/skills/redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  198. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +31 -993
  199. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  200. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  201. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  202. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  203. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  204. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  205. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  206. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  207. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  208. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  209. package/.claude/skills/redis-coordination/query-logs.sh +103 -0
  210. package/.claude/skills/redis-coordination/retrieve-context.sh +58 -0
  211. package/.claude/skills/redis-coordination/select-specialist-agent.sh +371 -0
  212. package/.claude/skills/redis-coordination/semantic-match-tfidf.py +252 -0
  213. package/.claude/skills/redis-coordination/send-heartbeat.sh +164 -72
  214. package/.claude/skills/redis-coordination/signal.sh +38 -0
  215. package/.claude/skills/redis-coordination/store-context.sh +86 -0
  216. package/.claude/skills/redis-coordination/test-context-injection.sh +354 -0
  217. package/.claude/skills/redis-coordination/test-timeout-enforcement.sh +513 -0
  218. package/.claude/skills/redis-coordination/tests/convert-line-endings.sh +15 -0
  219. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +101 -101
  220. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +98 -98
  221. package/.claude/skills/redis-coordination/tests/integration-test.sh +169 -169
  222. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +81 -81
  223. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +91 -91
  224. package/.claude/skills/redis-coordination/tests/run-tests.sh +4 -0
  225. package/.claude/skills/redis-coordination/tests/test-primitives.sh +166 -0
  226. package/.claude/skills/redis-coordination/tests/test-utils.sh +53 -121
  227. package/.claude/skills/redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  228. package/.claude/skills/redis-coordination/tests/test_utils.sh +49 -0
  229. package/.claude/skills/redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  230. package/.claude/skills/redis-coordination/validate-parameters.sh +492 -0
  231. package/.claude/skills/retrospective-report/SKILL.md +31 -0
  232. package/.claude/skills/retrospective-report/generate-report.sh +101 -0
  233. package/.claude/skills/run-all-skill-tests.sh +124 -0
  234. package/.claude/skills/scope-simplifier/SKILL.md +37 -0
  235. package/.claude/skills/scope-simplifier/simplify-scope.sh +68 -0
  236. package/.claude/skills/simplified-agent-lifecycle/COST_ANALYSIS.md +49 -0
  237. package/.claude/skills/simplified-agent-lifecycle/DESIGN.md +98 -0
  238. package/.claude/skills/simplified-agent-lifecycle/MIGRATION_PLAN.md +74 -0
  239. package/.claude/skills/specialist-injection/SKILL.md +41 -0
  240. package/.claude/skills/specialist-injection/recommend-specialist.sh +57 -0
  241. package/.claude/skills/sprint-execution/SKILL.md +27 -0
  242. package/.claude/skills/sprint-execution/execute-sprint-task.sh +59 -0
  243. package/.claude/skills/sprint-execution/execute-sprint.sh +65 -0
  244. package/.claude/skills/sprint-planner/SKILL.md +37 -0
  245. package/.claude/skills/sprint-planner/plan-sprint.sh +85 -0
  246. package/.claude/skills/standardized-error-handling/SKILL.md +56 -0
  247. package/.claude/skills/standardized-error-handling/capture-agent-error.sh +87 -0
  248. package/.claude/skills/standardized-error-handling/test-error-handling.sh +166 -0
  249. package/.claude/skills/task-classifier/SKILL.md +94 -0
  250. package/.claude/skills/task-classifier/classify-task.sh +115 -0
  251. package/.claude/skills/validation-templates/SKILL.md +47 -0
  252. package/.claude/skills/validation-templates/content.json +38 -0
  253. package/.claude/skills/validation-templates/data.json +38 -0
  254. package/.claude/skills/validation-templates/design.json +38 -0
  255. package/.claude/skills/validation-templates/infrastructure.json +38 -0
  256. package/.claude/skills/validation-templates/research.json +38 -0
  257. package/.claude/skills/validation-templates/software.json +38 -0
  258. package/.claude/skills/webapp-testing/README.md +142 -0
  259. package/.claude/skills/webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  260. package/.claude/skills/webapp-testing/SKILL.md +877 -0
  261. package/.claude/skills/webapp-testing/capture-screenshot.sh +238 -0
  262. package/.claude/skills/webapp-testing/cfn-loop-integration.sh +265 -0
  263. package/.claude/skills/webapp-testing/compare-screenshots.sh +199 -0
  264. package/.claude/skills/webapp-testing/init-storage.sh +150 -0
  265. package/.claude/skills/webapp-testing/set-baseline.sh +196 -0
  266. package/.claude/skills/webapp-testing/test-webapp-testing.sh +233 -0
  267. package/.claude/spawn-pattern-examples.md +3 -3
  268. package/CLAUDE.md +319 -45
  269. package/README.md +598 -251
  270. package/dist/agents/agent-loader.js +146 -165
  271. package/dist/agents/agent-loader.js.map +1 -1
  272. package/dist/cli/agent-command.js +2 -0
  273. package/dist/cli/agent-command.js.map +1 -1
  274. package/dist/cli/agent-definition-parser.js +7 -0
  275. package/dist/cli/agent-definition-parser.js.map +1 -1
  276. package/dist/cli/agent-executor.js +145 -11
  277. package/dist/cli/agent-executor.js.map +1 -1
  278. package/dist/cli/agent-prompt-builder.js +81 -1
  279. package/dist/cli/agent-prompt-builder.js.map +1 -1
  280. package/dist/cli/agent-spawn.js +10 -1
  281. package/dist/cli/agent-spawn.js.map +1 -1
  282. package/dist/cli/anthropic-client.js +192 -13
  283. package/dist/cli/anthropic-client.js.map +1 -1
  284. package/dist/cli/cfn-context.js +150 -0
  285. package/dist/cli/cfn-context.js.map +1 -1
  286. package/dist/cli/cfn-fork.js +159 -0
  287. package/dist/cli/cfn-fork.js.map +1 -0
  288. package/dist/cli/cli-agent-context.js +8 -3
  289. package/dist/cli/cli-agent-context.js.map +1 -1
  290. package/dist/cli/config-manager.js +109 -91
  291. package/dist/cli/config-manager.js.map +1 -1
  292. package/dist/cli/conversation-fork.js +201 -0
  293. package/dist/cli/conversation-fork.js.map +1 -0
  294. package/dist/cli/index.js +4 -0
  295. package/dist/cli/index.js.map +1 -1
  296. package/dist/cli/tool-definitions.js +263 -0
  297. package/dist/cli/tool-definitions.js.map +1 -0
  298. package/dist/cli/tool-executor.js +247 -0
  299. package/dist/cli/tool-executor.js.map +1 -0
  300. package/dist/hello.js +8 -0
  301. package/dist/hello.js.map +1 -0
  302. package/package.json +14 -6
  303. package/scripts/README.md +68 -0
  304. package/scripts/cfn-intervention-example.sh +21 -0
  305. package/scripts/migrate-test-infrastructure.sh +40 -0
  306. package/scripts/validate-test-migration.sh +49 -0
  307. package/scripts/verify-no-secrets.sh +55 -0
  308. package/.claude/agents/architecture/system-architect.md.backup +0 -603
  309. package/.claude/agents/code-booster.md +0 -131
  310. package/.claude/agents/consensus/performance-benchmarker.md +0 -101
  311. package/.claude/agents/consensus/security-manager.md +0 -107
  312. package/.claude/agents/context-curator.md +0 -167
  313. package/.claude/agents/context-reflector.md +0 -65
  314. package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
  315. package/.claude/agents/core-agents/code-quality-validator.md +0 -149
  316. package/.claude/agents/core-agents/context-curator.md +0 -452
  317. package/.claude/agents/core-agents/context-reflector.md +0 -273
  318. package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
  319. package/.claude/agents/core-agents/tester.md +0 -170
  320. package/.claude/agents/development/backend-dev.md +0 -165
  321. package/.claude/agents/devops/devops-engineer.md +0 -148
  322. package/.claude/agents/frontend/interaction-tester.md +0 -139
  323. package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
  324. package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
  325. package/.claude/agents/testing/production-validator.md +0 -179
  326. package/.claude/agents/testing/tdd-london-swarm.md +0 -209
  327. package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
  328. package/.claude/agents/testing/validation/production-validator.md +0 -43
  329. package/.claude/api-configs/config-current-zai-config.env +0 -62
  330. package/.claude/api-configs/config-test-zai-config.env +0 -62
  331. package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
  332. package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
  333. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
  334. package/dist/cli/cli-agent-context.test.js +0 -451
  335. package/dist/cli/cli-agent-context.test.js.map +0 -1
  336. package/dist/coordination/fleet-manager.test.js +0 -141
  337. package/dist/coordination/fleet-manager.test.js.map +0 -1
  338. package/dist/middleware/transparency-middleware.test.js +0 -184
  339. package/dist/middleware/transparency-middleware.test.js.map +0 -1
  340. /package/.claude/agents/{core-agents → developers}/researcher.md +0 -0
  341. /package/.claude/agents/{consensus → specialists}/crdt-synchronizer.md +0 -0
  342. /package/.claude/agents/{consensus → specialists}/quorum-manager.md +0 -0
  343. /package/.claude/agents/{consensus → specialists}/raft-manager.md +0 -0
  344. /package/.claude/{agents/core-agents → agents-ignore}/coordinator.md +0 -0
  345. /package/.claude/{agents/core-agents/cost-savings-coordinator.md → agents-ignore/cost-savings-coordinator.md.backup} +0 -0
  346. /package/.claude/skills/redis-coordination/{phase4-wake-queue-test-report.md → demos/phase4-wake-queue-test-report.md} +0 -0
  347. /package/.claude/skills/redis-coordination/{test-bzpopmin-fix.sh → demos/test-bzpopmin-fix.sh} +0 -0
  348. /package/.claude/skills/redis-coordination/{test-cancel-swarm.sh → demos/test-cancel-swarm.sh} +0 -0
  349. /package/.claude/skills/redis-coordination/{test-dlq.sh → demos/test-dlq.sh} +0 -0
  350. /package/.claude/skills/redis-coordination/{test-iteration-feedback.sh → demos/test-iteration-feedback.sh} +0 -0
  351. /package/.claude/skills/redis-coordination/{test-priority-wake-phase4-unix.sh → demos/test-priority-wake-phase4-unix.sh} +0 -0
  352. /package/.claude/skills/redis-coordination/{test-priority-wake-phase4.sh → demos/test-priority-wake-phase4.sh} +0 -0
  353. /package/.claude/skills/redis-coordination/{test-priority-wake.sh → demos/test-priority-wake.sh} +0 -0
  354. /package/.claude/skills/redis-coordination/{test-quick-fix.sh → demos/test-quick-fix.sh} +0 -0
  355. /package/.claude/skills/redis-coordination/{test-quorum-absolute.sh → demos/test-quorum-absolute.sh} +0 -0
  356. /package/.claude/skills/redis-coordination/{test-quorum-fallback.sh → demos/test-quorum-fallback.sh} +0 -0
  357. /package/.claude/skills/redis-coordination/{test-quorum-percentage.sh → demos/test-quorum-percentage.sh} +0 -0
  358. /package/.claude/skills/redis-coordination/{test-quorum-with-retry.sh → demos/test-quorum-with-retry.sh} +0 -0
  359. /package/.claude/skills/redis-coordination/{test-quorum.sh → demos/test-quorum.sh} +0 -0
  360. /package/.claude/skills/redis-coordination/{test-shutdown-handling.sh → demos/test-shutdown-handling.sh} +0 -0
  361. /package/.claude/skills/redis-coordination/{test-shutdown.sh → demos/test-shutdown.sh} +0 -0
  362. /package/.claude/skills/redis-coordination/{test-utils-unix.sh → demos/test-utils-unix.sh} +0 -0
  363. /package/.claude/skills/redis-coordination/{test-utils.sh → demos/test-utils.sh} +0 -0
  364. /package/.claude/skills/redis-coordination/{test-waiting-mode.sh → demos/test-waiting-mode.sh} +0 -0
@@ -0,0 +1,175 @@
1
+ #!/usr/bin/env python3
2
+
3
+ import os
4
+ import re
5
+ import sys
6
+ import json
7
+ import logging
8
+ from datetime import datetime
9
+
10
+ import yaml # Make sure to `pip install PyYAML`
11
+
12
+ AGENTS_DIR = "/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/agents"
13
+ OUTPUT_FILE = "/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/agent-discovery/agents-registry.json"
14
+
15
+ # Configure logging
16
+ logging.basicConfig(
17
+ level=logging.INFO,
18
+ format='%(asctime)s - %(levelname)s: %(message)s',
19
+ datefmt='%Y-%m-%d %H:%M:%S'
20
+ )
21
+ logger = logging.getLogger(__name__)
22
+
23
+ # Mapping agent types to loops
24
+ LOOP_MAPPING = {
25
+ "backend-dev": "loop3",
26
+ "frontend-dev": "loop3",
27
+ "coder": "loop3",
28
+ "developer": "loop3",
29
+ "api-designer": "loop3",
30
+ "devops": "loop3",
31
+ "security-specialist": "loop3",
32
+ "researcher": "loop3",
33
+ "reviewer": "loop2",
34
+ "tester": "loop2",
35
+ "validator": "loop2",
36
+ "auditor": "loop2",
37
+ "coordinator": "coordinator",
38
+ "strategic": "strategic"
39
+ }
40
+
41
+ def clean_windows_endings(content):
42
+ """Remove Windows line endings."""
43
+ return content.replace('\r', '')
44
+
45
+ def extract_frontmatter(file_path):
46
+ """
47
+ Extract and parse frontmatter from markdown file using PyYAML.
48
+ Handles multiline descriptions and Windows line endings.
49
+ """
50
+ try:
51
+ with open(file_path, 'r', encoding='utf-8') as f:
52
+ content = clean_windows_endings(f.read())
53
+ match = re.search(r'^---\n(.*?)\n---', content, re.DOTALL | re.MULTILINE)
54
+
55
+ if not match:
56
+ logger.warning(f"No frontmatter found in {file_path}")
57
+ return None
58
+
59
+ frontmatter_str = match.group(1)
60
+
61
+ # Use PyYAML for robust parsing
62
+ try:
63
+ frontmatter = yaml.safe_load(frontmatter_str)
64
+ return frontmatter
65
+ except yaml.YAMLError as e:
66
+ logger.error(f"YAML parsing error in {file_path}: {e}")
67
+ return None
68
+
69
+ except Exception as e:
70
+ logger.error(f"Error reading {file_path}: {e}")
71
+ return None
72
+
73
+ def determine_loop(agent_type):
74
+ """Determine the loop for an agent type."""
75
+ agent_type = str(agent_type).lower()
76
+ return LOOP_MAPPING.get(agent_type, "strategic")
77
+
78
+ def process_agents():
79
+ """Process all agent files and generate registry."""
80
+ agents = []
81
+ skipped_files = []
82
+
83
+ # Use os.walk to recursively search for .md files
84
+ for root, dirs, files in os.walk(AGENTS_DIR):
85
+ # Skip hidden directories
86
+ dirs[:] = [d for d in dirs if not d.startswith('.')]
87
+
88
+ for filename in files:
89
+ if not filename.endswith('.md'):
90
+ continue
91
+
92
+ # Skip documentation files
93
+ if filename in ['AGENT_LIFECYCLE.md', 'CLAUDE.md', 'README.md', 'README-VALIDATION.md', 'index.md']:
94
+ continue
95
+
96
+ file_path = os.path.join(root, filename)
97
+
98
+ # Skip git files
99
+ if '/.git/' in file_path:
100
+ continue
101
+
102
+ frontmatter = extract_frontmatter(file_path)
103
+
104
+ if not frontmatter:
105
+ skipped_files.append(file_path)
106
+ continue
107
+
108
+ # Extract required fields with fallbacks
109
+ name = str(frontmatter.get('name', filename.replace('.md', '')))
110
+ description = str(frontmatter.get('description', ''))
111
+ agent_type = str(frontmatter.get('type', 'specialist'))
112
+ keywords = frontmatter.get('keywords', [])
113
+
114
+ # Handle potential list conversion
115
+ if not isinstance(keywords, list):
116
+ keywords = [keywords] if keywords else []
117
+
118
+ # Determine loop
119
+ loop = determine_loop(agent_type)
120
+
121
+ # Create agent entry
122
+ agent_entry = {
123
+ "name": name,
124
+ "description": description,
125
+ "type": agent_type,
126
+ "loop": loop,
127
+ "keywords": keywords,
128
+ "file": file_path # Include file path for tracking
129
+ }
130
+
131
+ logger.info(f"Processing agent: {name}")
132
+ logger.debug(f"Agent details: {json.dumps(agent_entry, indent=2)}")
133
+
134
+ agents.append(agent_entry)
135
+
136
+ # Prepare registry
137
+ registry = {
138
+ "agents": agents,
139
+ "last_updated": datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ'),
140
+ "total_agents": len(agents)
141
+ }
142
+
143
+ # Ensure output directory exists
144
+ os.makedirs(os.path.dirname(OUTPUT_FILE), exist_ok=True)
145
+
146
+ # Write to file
147
+ try:
148
+ with open(OUTPUT_FILE, 'w', encoding='utf-8') as f:
149
+ json.dump(registry, f, indent=2)
150
+
151
+ logger.info(f"Agent registry generated: {OUTPUT_FILE}")
152
+ logger.info(f"Total agents discovered: {len(agents)}")
153
+
154
+ if skipped_files:
155
+ logger.warning(f"Skipped files: {', '.join(skipped_files)}")
156
+
157
+ # Verify file was written
158
+ if os.path.getsize(OUTPUT_FILE) > 0:
159
+ logger.info("File successfully generated and not empty.")
160
+ else:
161
+ raise ValueError("Output file is empty.")
162
+
163
+ except Exception as e:
164
+ logger.error(f"Error writing registry: {e}")
165
+ sys.exit(1)
166
+
167
+ def main():
168
+ try:
169
+ process_agents()
170
+ except Exception as e:
171
+ logger.critical(f"Unhandled exception: {e}", exc_info=True)
172
+ sys.exit(1)
173
+
174
+ if __name__ == "__main__":
175
+ main()
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Logging function
5
+ log() {
6
+ echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*" >&2
7
+ }
8
+
9
+ # Error handler
10
+ handle_error() {
11
+ log "ERROR: An error occurred in line $1"
12
+ log "Last command failed: $BASH_COMMAND"
13
+ exit 1
14
+ }
15
+
16
+ # Trap errors
17
+ trap 'handle_error $LINENO' ERR
18
+
19
+ # Path to Python script
20
+ PYTHON_SCRIPT="/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/agent-discovery/discover-agents.py"
21
+
22
+ # Output file
23
+ OUTPUT_FILE="/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/agent-discovery/agents-registry.json"
24
+
25
+ # Logging file
26
+ LOG_FILE="/tmp/agent-discovery.log"
27
+
28
+ log "Starting agent discovery process"
29
+
30
+ # Check Python is available
31
+ if ! command -v python3 &> /dev/null; then
32
+ log "ERROR: Python3 is not installed"
33
+ exit 1
34
+ fi
35
+
36
+ # Ensure we have required packages
37
+ log "Installing required Python packages"
38
+
39
+ # Try multiple methods to install PyYAML
40
+ install_methods=(
41
+ "python3 -m pip install --user --break-system-packages pyyaml"
42
+ "python3 -m venv /tmp/pyenv && /tmp/pyenv/bin/pip install pyyaml"
43
+ "pip3 install --user pyyaml"
44
+ "pip install --user pyyaml"
45
+ )
46
+
47
+ installed=false
48
+ for method in "${install_methods[@]}"; do
49
+ log "Trying installation method: $method"
50
+ if $method; then
51
+ installed=true
52
+ break
53
+ fi
54
+ done
55
+
56
+ if [ "$installed" = false ]; then
57
+ log "ERROR: Could not install PyYAML"
58
+ exit 1
59
+ fi
60
+
61
+ # Run Python discovery script with logging
62
+ log "Running discovery script"
63
+ python3 "$PYTHON_SCRIPT" 2>&1 | tee "$LOG_FILE"
64
+
65
+ # Check script succeeded
66
+ if [ ! -f "$OUTPUT_FILE" ]; then
67
+ log "ERROR: Output file was not generated"
68
+ exit 1
69
+ fi
70
+
71
+ # Optional: Run jq to validate JSON (if jq is available)
72
+ if command -v jq &> /dev/null; then
73
+ log "Validating JSON output"
74
+ if jq '.' "$OUTPUT_FILE" > /dev/null 2>&1; then
75
+ log "✅ JSON is valid"
76
+ else
77
+ log "❌ Invalid JSON"
78
+ exit 1
79
+ fi
80
+ fi
81
+
82
+ # Show total agents
83
+ total_agents=$(jq '.total_agents' "$OUTPUT_FILE" 2>/dev/null || echo 0)
84
+ log "Total agents discovered: $total_agents"
85
+
86
+ # Final success log
87
+ log "Agent discovery completed successfully"
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ # Invoke Agent Registry Discovery
3
+
4
+ # Ensure script runs from project root
5
+ cd "$(git rev-parse --show-toplevel)" || exit 1
6
+
7
+ # Run discovery script
8
+ ./skills/agent-discovery/discover-agents.py
9
+
10
+ # Optional: output registry to stdout
11
+ cat .claude/skills/agent-discovery/agents-registry.json
File without changes
@@ -0,0 +1,359 @@
1
+ # Agent Output Processing Skill (Universal)
2
+
3
+ **Version:** 1.0.0
4
+ **Status:** Production
5
+ **Purpose:** Guaranteed structured output extraction from any agent type
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ **Problem Solved:** Agent templates cannot force tool execution or guarantee output format.
12
+
13
+ **Solution:** Orchestrator-controlled output processing with robust parsing, validation, and Redis coordination.
14
+
15
+ **Applicable To:** Any agent requiring structured output (Product Owner, validators, analyzers, decision-makers)
16
+
17
+ ---
18
+
19
+ ## Core Principle
20
+
21
+ ```
22
+ Agent Templates → Focus on analysis/decision-making
23
+ Skills → Handle execution/coordination/formatting
24
+ Orchestrators → Control workflow and Redis state
25
+ ```
26
+
27
+ **Why This Works:**
28
+ - ✅ Agents do what they're good at (analysis)
29
+ - ✅ Skills enforce structure (parsing, validation)
30
+ - ✅ Orchestrators maintain coordination (Redis, timing)
31
+ - ✅ No reliance on agent tool usage compliance
32
+
33
+ ---
34
+
35
+ ## Architecture
36
+
37
+ ### Generic Flow
38
+
39
+ ```
40
+ 1. Orchestrator → Spawn agent with structured context
41
+ 2. Skill → Capture agent stdout/stderr
42
+ 3. Skill → Parse output (pattern matching with fallbacks)
43
+ 4. Skill → Validate output (business logic checks)
44
+ 5. Skill → Transform to required format (JSON, etc.)
45
+ 6. Skill → Push to Redis (coordination state)
46
+ 7. Skill → Signal completion
47
+ ```
48
+
49
+ ### Skill Components
50
+
51
+ ```
52
+ .claude/skills/agent-output-processing/
53
+ ├── SKILL.md # This file
54
+ ├── execute-with-parsing.sh # Generic agent wrapper
55
+ ├── parse-structured-output.sh # Multi-pattern parser
56
+ ├── validate-output.sh # Validation framework
57
+ └── patterns/ # Agent-specific patterns
58
+ ├── product-owner.json # PROCEED/ITERATE/ABORT
59
+ ├── validator.json # confidence + feedback
60
+ ├── analyzer.json # metrics + recommendations
61
+ └── decision-maker.json # choice + reasoning
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Usage Patterns
67
+
68
+ ### Pattern 1: Decision Output (Product Owner)
69
+
70
+ **Output Requirements:** Must extract PROCEED/ITERATE/ABORT
71
+
72
+ ```bash
73
+ RESULT=$(./.claude/skills/agent-output-processing/execute-with-parsing.sh \
74
+ --agent-type "product-owner" \
75
+ --pattern-file "patterns/product-owner.json" \
76
+ --task-id "$TASK_ID" \
77
+ --agent-id "$AGENT_ID" \
78
+ --context "Loop 2 consensus: 0.92" \
79
+ --redis-key "swarm:${TASK_ID}:${AGENT_ID}:decision")
80
+
81
+ DECISION=$(echo "$RESULT" | jq -r '.decision')
82
+ ```
83
+
84
+ **Pattern File (patterns/product-owner.json):**
85
+ ```json
86
+ {
87
+ "name": "product-owner-decision",
88
+ "required_fields": ["decision"],
89
+ "patterns": [
90
+ {
91
+ "field": "decision",
92
+ "regex": "Decision:\\s*(PROCEED|ITERATE|ABORT)",
93
+ "extract": "keyword",
94
+ "fallbacks": [
95
+ "(PROCEED|ITERATE|ABORT)",
96
+ "(?i)(proceed|iterate|abort)"
97
+ ]
98
+ },
99
+ {
100
+ "field": "reasoning",
101
+ "regex": "Reasoning:\\s*(.+)",
102
+ "extract": "capture_group"
103
+ }
104
+ ],
105
+ "validation": {
106
+ "decision": {
107
+ "type": "enum",
108
+ "values": ["PROCEED", "ITERATE", "ABORT"]
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
114
+ ### Pattern 2: Confidence + Feedback (Validators)
115
+
116
+ **Output Requirements:** Must extract confidence score and feedback list
117
+
118
+ ```bash
119
+ RESULT=$(./.claude/skills/agent-output-processing/execute-with-parsing.sh \
120
+ --agent-type "reviewer" \
121
+ --pattern-file "patterns/validator.json" \
122
+ --task-id "$TASK_ID" \
123
+ --agent-id "$AGENT_ID" \
124
+ --context "Review Loop 3 implementation" \
125
+ --redis-key "swarm:${TASK_ID}:${AGENT_ID}:result")
126
+
127
+ CONFIDENCE=$(echo "$RESULT" | jq -r '.confidence')
128
+ FEEDBACK=$(echo "$RESULT" | jq -r '.feedback[]')
129
+ ```
130
+
131
+ **Pattern File (patterns/validator.json):**
132
+ ```json
133
+ {
134
+ "name": "validator-result",
135
+ "required_fields": ["confidence"],
136
+ "patterns": [
137
+ {
138
+ "field": "confidence",
139
+ "regex": "Confidence:\\s*([0-9.]+)",
140
+ "extract": "float",
141
+ "fallbacks": [
142
+ "confidence[:\\s]+([0-9.]+)",
143
+ "score[:\\s]+([0-9.]+)"
144
+ ]
145
+ },
146
+ {
147
+ "field": "feedback",
148
+ "regex": "Feedback:\\s*\\n([\\s\\S]+?)(?=\\n\\n|$)",
149
+ "extract": "multiline_list"
150
+ }
151
+ ],
152
+ "validation": {
153
+ "confidence": {
154
+ "type": "float",
155
+ "min": 0.0,
156
+ "max": 1.0
157
+ }
158
+ }
159
+ }
160
+ ```
161
+
162
+ ### Pattern 3: Metrics + Recommendations (Analyzers)
163
+
164
+ **Output Requirements:** Must extract metrics object and recommendation list
165
+
166
+ ```bash
167
+ RESULT=$(./.claude/skills/agent-output-processing/execute-with-parsing.sh \
168
+ --agent-type "code-analyzer" \
169
+ --pattern-file "patterns/analyzer.json" \
170
+ --task-id "$TASK_ID" \
171
+ --agent-id "$AGENT_ID" \
172
+ --context "Analyze codebase quality" \
173
+ --redis-key "swarm:${TASK_ID}:${AGENT_ID}:analysis")
174
+
175
+ COMPLEXITY=$(echo "$RESULT" | jq -r '.metrics.complexity')
176
+ RECOMMENDATIONS=$(echo "$RESULT" | jq -r '.recommendations[]')
177
+ ```
178
+
179
+ ---
180
+
181
+ ## Implementation
182
+
183
+ ### execute-with-parsing.sh
184
+
185
+ ```bash
186
+ #!/bin/bash
187
+ set -euo pipefail
188
+
189
+ # Parse arguments
190
+ AGENT_TYPE=""
191
+ PATTERN_FILE=""
192
+ TASK_ID=""
193
+ AGENT_ID=""
194
+ CONTEXT=""
195
+ REDIS_KEY=""
196
+ TIMEOUT=900
197
+
198
+ while [[ $# -gt 0 ]]; do
199
+ case $1 in
200
+ --agent-type) AGENT_TYPE="$2"; shift 2 ;;
201
+ --pattern-file) PATTERN_FILE="$2"; shift 2 ;;
202
+ --task-id) TASK_ID="$2"; shift 2 ;;
203
+ --agent-id) AGENT_ID="$2"; shift 2 ;;
204
+ --context) CONTEXT="$2"; shift 2 ;;
205
+ --redis-key) REDIS_KEY="$2"; shift 2 ;;
206
+ --timeout) TIMEOUT="$2"; shift 2 ;;
207
+ *) echo "Unknown: $1"; exit 1 ;;
208
+ esac
209
+ done
210
+
211
+ # Spawn agent and capture output
212
+ AGENT_OUTPUT=$(timeout "$TIMEOUT" npx claude-flow-novice agent "$AGENT_TYPE" \
213
+ --task-id "$TASK_ID" \
214
+ --agent-id "$AGENT_ID" \
215
+ --context "$CONTEXT" 2>&1 || true)
216
+
217
+ # Parse structured output using pattern file
218
+ PARSED_OUTPUT=$(./parse-structured-output.sh \
219
+ --pattern-file "$PATTERN_FILE" \
220
+ --output "$AGENT_OUTPUT")
221
+
222
+ # Validate parsed output
223
+ if ! ./validate-output.sh --pattern-file "$PATTERN_FILE" --data "$PARSED_OUTPUT"; then
224
+ echo "ERROR: Output validation failed" >&2
225
+ exit 1
226
+ fi
227
+
228
+ # Push to Redis if key provided
229
+ if [ -n "$REDIS_KEY" ]; then
230
+ echo "$PARSED_OUTPUT" | redis-cli -x LPUSH "$REDIS_KEY" >/dev/null
231
+ redis-cli LPUSH "swarm:${TASK_ID}:${AGENT_ID}:done" "complete" >/dev/null
232
+ fi
233
+
234
+ # Output structured result
235
+ echo "$PARSED_OUTPUT"
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Benefits Over Template-Based
241
+
242
+ | Aspect | Template-Based | Skill-Based (Universal) |
243
+ |--------|----------------|-------------------------|
244
+ | **Execution Guarantee** | ❌ Agent decides | ✅ Skill enforces |
245
+ | **Output Format** | ❌ Inconsistent | ✅ Guaranteed structure |
246
+ | **Parsing Robustness** | ❌ None | ✅ Multi-pattern fallbacks |
247
+ | **Validation** | ❌ Manual | ✅ Automated schema checks |
248
+ | **Redis Coordination** | ❌ Agent-dependent | ✅ Skill-controlled |
249
+ | **Reusability** | ❌ Per-agent templates | ✅ Universal pattern system |
250
+ | **Testability** | ❌ Hard to test | ✅ Unit tests per pattern |
251
+ | **Extensibility** | ❌ Template changes | ✅ Add pattern files |
252
+
253
+ ---
254
+
255
+ ## Agent-Specific Implementations
256
+
257
+ ### Existing: Product Owner Decision
258
+ **Location:** `.claude/skills/product-owner-decision/`
259
+ **Pattern:** PROCEED/ITERATE/ABORT extraction
260
+ **Status:** ✅ Operational (BUG #11 fix)
261
+
262
+ ### Future: Validator Agents
263
+ **Pattern:** Confidence + feedback extraction
264
+ **Use Case:** Loop 2 validators (reviewer, tester, security)
265
+ **Benefit:** Guaranteed confidence scoring
266
+
267
+ ### Future: Analyzer Agents
268
+ **Pattern:** Metrics + recommendations extraction
269
+ **Use Case:** Code quality, performance, security analyzers
270
+ **Benefit:** Structured analysis output
271
+
272
+ ---
273
+
274
+ ## Migration Strategy
275
+
276
+ ### Phase 1: Product Owner (✅ Complete)
277
+ - Created dedicated skill
278
+ - Integrated with orchestrator
279
+ - Solves BUG #11
280
+
281
+ ### Phase 2: Validators (Planned)
282
+ - Extract confidence scores reliably
283
+ - Parse feedback into structured lists
284
+ - Prevent 0.0 confidence issues
285
+
286
+ ### Phase 3: All Decision-Making Agents (Future)
287
+ - Standardize output processing
288
+ - Centralize pattern definitions
289
+ - Enable cross-agent consistency
290
+
291
+ ---
292
+
293
+ ## Testing
294
+
295
+ ### Unit Tests
296
+ ```bash
297
+ # Test pattern parsing
298
+ ./test-parse-structured-output.sh --pattern-file patterns/product-owner.json
299
+
300
+ # Test validation logic
301
+ ./test-validate-output.sh --pattern-file patterns/validator.json
302
+ ```
303
+
304
+ ### Integration Tests
305
+ ```bash
306
+ # Test full agent execution with parsing
307
+ ./test-execute-with-parsing.sh --agent-type product-owner
308
+ ```
309
+
310
+ ---
311
+
312
+ ## Related Skills
313
+
314
+ - **Product Owner Decision** (`.claude/skills/product-owner-decision/SKILL.md`) - Specific implementation
315
+ - **Redis Coordination** (`.claude/skills/redis-coordination/SKILL.md`) - State management
316
+ - **CFN Loop Validation** (`.claude/skills/cfn-loop-validation/SKILL.md`) - Quality gates
317
+
318
+ ---
319
+
320
+ ## Lessons Learned
321
+
322
+ ### ANTI-PATTERN: Template-Forced Tool Usage
323
+ **What Doesn't Work:** Telling agents "Use Bash tool to execute X"
324
+
325
+ **Why:** Agents interpret instructions autonomously, treating code blocks as documentation
326
+
327
+ **Better:** Capture agent output and parse it with robust patterns
328
+
329
+ ### PATTERN: Orchestrator Control
330
+ **Principle:** Coordination belongs in orchestrators/skills, not agent templates
331
+
332
+ **Rationale:**
333
+ - Agents focus on analysis (what they do well)
334
+ - Skills handle structure (parsing, validation)
335
+ - Orchestrators manage coordination (Redis, timing)
336
+
337
+ ### PATTERN: Multi-Fallback Parsing
338
+ **Principle:** Use multiple pattern matching strategies with increasing leniency
339
+
340
+ **Example:**
341
+ 1. Strict: "Decision: PROCEED" (labeled, exact case)
342
+ 2. Moderate: "PROCEED" (standalone keyword)
343
+ 3. Lenient: "proceed" (case-insensitive)
344
+ 4. Desperate: JSON extraction
345
+
346
+ ---
347
+
348
+ ## Version History
349
+
350
+ ### 1.0.0 (2025-10-20)
351
+ - Initial skill creation
352
+ - Generalized from Product Owner fix
353
+ - Universal pattern-based output processing
354
+ - Validation framework
355
+ - Redis coordination integration
356
+
357
+ ---
358
+
359
+ **Summary:** This skill provides universal output processing for any agent type, eliminating reliance on template-based tool usage compliance and guaranteeing structured, validated results.