claude-flow-novice 2.5.2 → 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 (370) 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 -1233
  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 -0
  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/artifacts/reflection-merge-logs/cli-agent-spawning-v2.5.2-merge-report.md +61 -0
  85. package/.claude/commands/CFN_COORDINATOR_PARAMETERS.md +10 -10
  86. package/.claude/commands/cfn-loop-epic.md +43 -19
  87. package/.claude/commands/cfn-loop-single.md +3 -3
  88. package/.claude/commands/cfn-loop-sprints.md +1 -1
  89. package/.claude/commands/cfn-loop.md +45 -32
  90. package/.claude/commands/cfn-mode.md +20 -0
  91. package/.claude/commands/custom-routing-activate.md +37 -123
  92. package/.claude/commands/custom-routing-deactivate.md +27 -124
  93. package/.claude/commands/switch-api.md +41 -16
  94. package/.claude/commands/write-plan.md +104 -0
  95. package/.claude/data/cfn-loop.db +0 -0
  96. package/.claude/data/cfn_loop_logs.db +0 -0
  97. package/.claude/hooks/BACKUP_USAGE.md +243 -0
  98. package/.claude/hooks/post-edit-cfn-retrospective.sh +79 -0
  99. package/.claude/hooks/post-edit.sh +21 -0
  100. package/.claude/hooks/pre-edit-backup.sh +71 -0
  101. package/.claude/hooks/restore-from-backup.sh +37 -0
  102. package/.claude/prompts/cfn-loop-context.md +115 -0
  103. package/.claude/prompts/loop-specific/loop2.md +50 -0
  104. package/.claude/prompts/loop-specific/loop3.md +43 -0
  105. package/.claude/prompts/loop-specific/loop4.md +54 -0
  106. package/.claude/root-claude-distribute/CLAUDE.md +76 -2
  107. package/.claude/skills/ace-system/sprint-7-lessons.json +46 -0
  108. package/.claude/skills/ace-system/store-reflection.sh +33 -136
  109. package/.claude/skills/agent-discovery/SKILL.md +40 -0
  110. package/.claude/skills/agent-discovery/agents-registry-clean.json +0 -0
  111. package/.claude/skills/agent-discovery/agents-registry-fixed.json +19 -0
  112. package/.claude/skills/agent-discovery/agents-registry.json +718 -0
  113. package/.claude/skills/agent-discovery/discover-agents.py +175 -0
  114. package/.claude/skills/agent-discovery/discover-agents.sh +87 -0
  115. package/.claude/skills/agent-discovery/invoke-registry.sh +11 -0
  116. package/.claude/skills/agent-discovery/temp_script.py +0 -0
  117. package/.claude/skills/agent-execution/execute-agent.sh +126 -0
  118. package/.claude/skills/agent-output-processing/SKILL.md +359 -0
  119. package/.claude/skills/agent-selector/SKILL.md +90 -0
  120. package/.claude/skills/agent-selector/select-agents.sh +96 -0
  121. package/.claude/skills/agent-spawning/agent-selection-guide.md +1 -1
  122. package/.claude/skills/agent-swap/SKILL.md +36 -0
  123. package/.claude/skills/agent-swap/recommend-swap.sh +60 -0
  124. package/.claude/skills/api-validation/test-endpoints.sh +54 -0
  125. package/.claude/skills/automatic-memory-persistence/SKILL.md +73 -0
  126. package/.claude/skills/automatic-memory-persistence/persist-agent-output.sh +49 -0
  127. package/.claude/skills/automatic-memory-persistence/query-agent-history.sh +35 -0
  128. package/.claude/skills/automatic-memory-persistence/test-memory-persistence.sh +235 -0
  129. package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
  130. package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
  131. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  132. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  133. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  134. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  135. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  136. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  137. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  138. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  139. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +840 -0
  140. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  141. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  142. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  143. package/.claude/skills/cfn-loop-validation/SKILL.md +307 -217
  144. package/.claude/skills/complexity-estimator/SKILL.md +96 -0
  145. package/.claude/skills/complexity-estimator/estimate-complexity.sh +144 -0
  146. package/.claude/skills/context-pruner/SKILL.md +75 -0
  147. package/.claude/skills/context-pruner/prune-context.sh +73 -0
  148. package/.claude/skills/defense-in-depth/SKILL.md +133 -0
  149. package/.claude/skills/dependency-extractor/SKILL.md +35 -0
  150. package/.claude/skills/dependency-extractor/extract-dependencies.sh +66 -0
  151. package/.claude/skills/epic-decomposer/SKILL.md +44 -0
  152. package/.claude/skills/epic-decomposer/decompose-epic.sh +104 -0
  153. package/.claude/skills/improvement-recommender/SKILL.md +33 -0
  154. package/.claude/skills/improvement-recommender/recommend-improvements.sh +92 -0
  155. package/.claude/skills/intervention-detector/SKILL.md +39 -0
  156. package/.claude/skills/intervention-detector/detect-intervention.sh +111 -0
  157. package/.claude/skills/intervention-orchestrator/SKILL.md +43 -0
  158. package/.claude/skills/intervention-orchestrator/execute-intervention.sh +59 -0
  159. package/.claude/skills/loop2-output-processing/SKILL.md +163 -0
  160. package/.claude/skills/loop2-output-processing/execute-and-extract.sh +77 -0
  161. package/.claude/skills/loop2-output-processing/execute-and-extract.sh.backup +36 -0
  162. package/.claude/skills/loop2-output-processing/parse-feedback.sh +147 -0
  163. package/.claude/skills/loop2-output-processing/process-validator-output.sh +275 -0
  164. package/.claude/skills/loop2-output-processing/test-bug27-fix.sh +200 -0
  165. package/.claude/skills/loop2-output-processing/test-loop2-processing.sh +113 -0
  166. package/.claude/skills/loop3-output-processing/AGENT_COMPLETION_PROTOCOL.md +206 -0
  167. package/.claude/skills/loop3-output-processing/SKILL.md +421 -0
  168. package/.claude/skills/loop3-output-processing/calculate-confidence.sh +28 -0
  169. package/.claude/skills/loop3-output-processing/execute-and-extract.sh +85 -0
  170. package/.claude/skills/loop3-output-processing/parse-confidence.sh +31 -0
  171. package/.claude/skills/loop3-output-processing/test-agent-timeout.sh +327 -0
  172. package/.claude/skills/loop3-output-processing/test-loop3-processing.sh +155 -0
  173. package/.claude/skills/loop3-output-processing/verify-deliverables.sh +42 -0
  174. package/.claude/skills/pattern-extraction/SKILL.md +30 -0
  175. package/.claude/skills/pattern-extraction/extract-patterns.sh +80 -0
  176. package/.claude/skills/playbook/SKILL.md +113 -0
  177. package/.claude/skills/playbook/init-playbook.sh +54 -0
  178. package/.claude/skills/playbook/playbook.db +0 -0
  179. package/.claude/skills/playbook/query-playbook.sh +79 -0
  180. package/.claude/skills/playbook/update-playbook.sh +69 -0
  181. package/.claude/skills/playbook-auto-update/SKILL.md +29 -0
  182. package/.claude/skills/playbook-auto-update/auto-update-playbook.sh +86 -0
  183. package/.claude/skills/product-owner-decision/SKILL.md +332 -0
  184. package/.claude/skills/product-owner-decision/execute-decision.sh +176 -0
  185. package/.claude/skills/product-owner-decision/parse-decision.sh +66 -0
  186. package/.claude/skills/product-owner-decision/validate-deliverables.sh +82 -0
  187. package/.claude/skills/redis-coordination/AGENT_LOGGING.md +280 -0
  188. package/.claude/skills/redis-coordination/LOGGING.md +260 -0
  189. package/.claude/skills/redis-coordination/README.md +30 -29
  190. package/.claude/skills/redis-coordination/SKILL.md +685 -83
  191. package/.claude/skills/redis-coordination/agent-log.sh +124 -0
  192. package/.claude/skills/redis-coordination/analyze-task-complexity.sh +277 -0
  193. package/.claude/skills/redis-coordination/cfn-loop-exec.sh +468 -0
  194. package/.claude/skills/redis-coordination/collect-confidence-scores.sh +179 -0
  195. package/.claude/skills/redis-coordination/collect-results.sh +75 -0
  196. package/.claude/skills/redis-coordination/data/cfn-loop.db +0 -0
  197. package/.claude/skills/redis-coordination/demos/test-iteration-feedback.sh +320 -0
  198. package/.claude/skills/redis-coordination/{test-orchestrator.sh → demos/test-orchestrator.sh} +25 -0
  199. package/.claude/skills/redis-coordination/execute-product-owner-decision.sh +258 -0
  200. package/.claude/skills/redis-coordination/get-agent-timeout.sh +176 -176
  201. package/.claude/skills/redis-coordination/init-swarm.sh +6 -1
  202. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +106 -183
  203. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  204. package/.claude/skills/redis-coordination/log-event.sh +109 -0
  205. package/.claude/skills/redis-coordination/monitor-cfn-violations.sh +391 -0
  206. package/.claude/skills/redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  207. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +31 -933
  208. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  209. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  210. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  211. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  212. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  213. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  214. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  215. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  216. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  217. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  218. package/.claude/skills/redis-coordination/query-logs.sh +103 -0
  219. package/.claude/skills/redis-coordination/retrieve-context.sh +58 -0
  220. package/.claude/skills/redis-coordination/select-specialist-agent.sh +371 -0
  221. package/.claude/skills/redis-coordination/semantic-match-tfidf.py +252 -0
  222. package/.claude/skills/redis-coordination/send-heartbeat.sh +164 -72
  223. package/.claude/skills/redis-coordination/signal.sh +38 -0
  224. package/.claude/skills/redis-coordination/store-context.sh +86 -0
  225. package/.claude/skills/redis-coordination/store-epic-context.sh +123 -0
  226. package/.claude/skills/redis-coordination/test-context-injection.sh +354 -0
  227. package/.claude/skills/redis-coordination/test-timeout-enforcement.sh +513 -0
  228. package/.claude/skills/redis-coordination/tests/convert-line-endings.sh +15 -0
  229. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +101 -101
  230. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +98 -98
  231. package/.claude/skills/redis-coordination/tests/integration-test.sh +169 -169
  232. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +81 -81
  233. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +91 -91
  234. package/.claude/skills/redis-coordination/tests/run-tests.sh +4 -0
  235. package/.claude/skills/redis-coordination/tests/test-primitives.sh +166 -0
  236. package/.claude/skills/redis-coordination/tests/test-utils.sh +53 -121
  237. package/.claude/skills/redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  238. package/.claude/skills/redis-coordination/tests/test_utils.sh +49 -0
  239. package/.claude/skills/redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  240. package/.claude/skills/redis-coordination/validate-parameters.sh +492 -0
  241. package/.claude/skills/retrospective-report/SKILL.md +31 -0
  242. package/.claude/skills/retrospective-report/generate-report.sh +101 -0
  243. package/.claude/skills/run-all-skill-tests.sh +124 -0
  244. package/.claude/skills/scope-simplifier/SKILL.md +37 -0
  245. package/.claude/skills/scope-simplifier/simplify-scope.sh +68 -0
  246. package/.claude/skills/simplified-agent-lifecycle/COST_ANALYSIS.md +49 -0
  247. package/.claude/skills/simplified-agent-lifecycle/DESIGN.md +98 -0
  248. package/.claude/skills/simplified-agent-lifecycle/MIGRATION_PLAN.md +74 -0
  249. package/.claude/skills/skill-builder/SKILL.md +910 -0
  250. package/.claude/skills/specialist-injection/SKILL.md +41 -0
  251. package/.claude/skills/specialist-injection/recommend-specialist.sh +57 -0
  252. package/.claude/skills/sprint-execution/SKILL.md +27 -0
  253. package/.claude/skills/sprint-execution/execute-sprint-task.sh +59 -0
  254. package/.claude/skills/sprint-execution/execute-sprint.sh +65 -0
  255. package/.claude/skills/sprint-planner/SKILL.md +37 -0
  256. package/.claude/skills/sprint-planner/plan-sprint.sh +85 -0
  257. package/.claude/skills/standardized-error-handling/SKILL.md +56 -0
  258. package/.claude/skills/standardized-error-handling/capture-agent-error.sh +87 -0
  259. package/.claude/skills/standardized-error-handling/test-error-handling.sh +166 -0
  260. package/.claude/skills/task-classifier/SKILL.md +94 -0
  261. package/.claude/skills/task-classifier/classify-task.sh +115 -0
  262. package/.claude/skills/validation-templates/SKILL.md +47 -0
  263. package/.claude/skills/validation-templates/content.json +38 -0
  264. package/.claude/skills/validation-templates/data.json +38 -0
  265. package/.claude/skills/validation-templates/design.json +38 -0
  266. package/.claude/skills/validation-templates/infrastructure.json +38 -0
  267. package/.claude/skills/validation-templates/research.json +38 -0
  268. package/.claude/skills/validation-templates/software.json +38 -0
  269. package/.claude/skills/webapp-testing/README.md +142 -0
  270. package/.claude/skills/webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  271. package/.claude/skills/webapp-testing/SKILL.md +877 -0
  272. package/.claude/skills/webapp-testing/capture-screenshot.sh +238 -0
  273. package/.claude/skills/webapp-testing/cfn-loop-integration.sh +265 -0
  274. package/.claude/skills/webapp-testing/compare-screenshots.sh +199 -0
  275. package/.claude/skills/webapp-testing/init-storage.sh +150 -0
  276. package/.claude/skills/webapp-testing/set-baseline.sh +196 -0
  277. package/.claude/skills/webapp-testing/test-webapp-testing.sh +233 -0
  278. package/.claude/spawn-pattern-examples.md +3 -3
  279. package/CLAUDE.md +364 -16
  280. package/README.md +598 -251
  281. package/dist/agents/agent-loader.js +146 -165
  282. package/dist/agents/agent-loader.js.map +1 -1
  283. package/dist/cli/agent-command.js +153 -0
  284. package/dist/cli/agent-command.js.map +1 -0
  285. package/dist/cli/agent-definition-parser.js +183 -0
  286. package/dist/cli/agent-definition-parser.js.map +1 -0
  287. package/dist/cli/agent-executor.js +310 -0
  288. package/dist/cli/agent-executor.js.map +1 -0
  289. package/dist/cli/agent-prompt-builder.js +268 -0
  290. package/dist/cli/agent-prompt-builder.js.map +1 -0
  291. package/dist/cli/agent-spawn.js +56 -2
  292. package/dist/cli/agent-spawn.js.map +1 -1
  293. package/dist/cli/anthropic-client.js +421 -0
  294. package/dist/cli/anthropic-client.js.map +1 -0
  295. package/dist/cli/cfn-context.js +150 -0
  296. package/dist/cli/cfn-context.js.map +1 -1
  297. package/dist/cli/cfn-fork.js +159 -0
  298. package/dist/cli/cfn-fork.js.map +1 -0
  299. package/dist/cli/cli-agent-context.js +358 -0
  300. package/dist/cli/cli-agent-context.js.map +1 -0
  301. package/dist/cli/config-manager.js +109 -91
  302. package/dist/cli/config-manager.js.map +1 -1
  303. package/dist/cli/conversation-fork.js +201 -0
  304. package/dist/cli/conversation-fork.js.map +1 -0
  305. package/dist/cli/index.js +119 -2
  306. package/dist/cli/index.js.map +1 -1
  307. package/dist/cli/iteration-history.js +188 -0
  308. package/dist/cli/iteration-history.js.map +1 -0
  309. package/dist/cli/tool-definitions.js +263 -0
  310. package/dist/cli/tool-definitions.js.map +1 -0
  311. package/dist/cli/tool-executor.js +247 -0
  312. package/dist/cli/tool-executor.js.map +1 -0
  313. package/dist/hello.js +8 -0
  314. package/dist/hello.js.map +1 -0
  315. package/package.json +16 -6
  316. package/scripts/README.md +68 -0
  317. package/scripts/cfn-intervention-example.sh +21 -0
  318. package/scripts/migrate-test-infrastructure.sh +40 -0
  319. package/scripts/switch-api.sh +233 -0
  320. package/scripts/validate-test-migration.sh +49 -0
  321. package/scripts/verify-no-secrets.sh +55 -0
  322. package/.claude/agents/architecture/system-architect.md.backup +0 -603
  323. package/.claude/agents/code-booster.md +0 -131
  324. package/.claude/agents/consensus/performance-benchmarker.md +0 -101
  325. package/.claude/agents/consensus/security-manager.md +0 -107
  326. package/.claude/agents/context-curator.md +0 -167
  327. package/.claude/agents/context-reflector.md +0 -65
  328. package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
  329. package/.claude/agents/core-agents/code-quality-validator.md +0 -149
  330. package/.claude/agents/core-agents/context-curator.md +0 -452
  331. package/.claude/agents/core-agents/context-reflector.md +0 -273
  332. package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -190
  333. package/.claude/agents/core-agents/tester.md +0 -170
  334. package/.claude/agents/development/backend-dev.md +0 -165
  335. package/.claude/agents/devops/devops-engineer.md +0 -148
  336. package/.claude/agents/frontend/interaction-tester.md +0 -139
  337. package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
  338. package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
  339. package/.claude/agents/testing/production-validator.md +0 -179
  340. package/.claude/agents/testing/tdd-london-swarm.md +0 -209
  341. package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
  342. package/.claude/agents/testing/validation/production-validator.md +0 -43
  343. package/dist/coordination/fleet-manager.test.js +0 -141
  344. package/dist/coordination/fleet-manager.test.js.map +0 -1
  345. package/dist/middleware/transparency-middleware.test.js +0 -184
  346. package/dist/middleware/transparency-middleware.test.js.map +0 -1
  347. /package/.claude/agents/{core-agents → developers}/researcher.md +0 -0
  348. /package/.claude/agents/{consensus → specialists}/crdt-synchronizer.md +0 -0
  349. /package/.claude/agents/{consensus → specialists}/quorum-manager.md +0 -0
  350. /package/.claude/agents/{consensus → specialists}/raft-manager.md +0 -0
  351. /package/.claude/{agents/core-agents → agents-ignore}/coordinator.md +0 -0
  352. /package/.claude/{agents/core-agents/cost-savings-coordinator.md → agents-ignore/cost-savings-coordinator.md.backup} +0 -0
  353. /package/.claude/skills/redis-coordination/{phase4-wake-queue-test-report.md → demos/phase4-wake-queue-test-report.md} +0 -0
  354. /package/.claude/skills/redis-coordination/{test-bzpopmin-fix.sh → demos/test-bzpopmin-fix.sh} +0 -0
  355. /package/.claude/skills/redis-coordination/{test-cancel-swarm.sh → demos/test-cancel-swarm.sh} +0 -0
  356. /package/.claude/skills/redis-coordination/{test-dlq.sh → demos/test-dlq.sh} +0 -0
  357. /package/.claude/skills/redis-coordination/{test-priority-wake-phase4-unix.sh → demos/test-priority-wake-phase4-unix.sh} +0 -0
  358. /package/.claude/skills/redis-coordination/{test-priority-wake-phase4.sh → demos/test-priority-wake-phase4.sh} +0 -0
  359. /package/.claude/skills/redis-coordination/{test-priority-wake.sh → demos/test-priority-wake.sh} +0 -0
  360. /package/.claude/skills/redis-coordination/{test-quick-fix.sh → demos/test-quick-fix.sh} +0 -0
  361. /package/.claude/skills/redis-coordination/{test-quorum-absolute.sh → demos/test-quorum-absolute.sh} +0 -0
  362. /package/.claude/skills/redis-coordination/{test-quorum-fallback.sh → demos/test-quorum-fallback.sh} +0 -0
  363. /package/.claude/skills/redis-coordination/{test-quorum-percentage.sh → demos/test-quorum-percentage.sh} +0 -0
  364. /package/.claude/skills/redis-coordination/{test-quorum-with-retry.sh → demos/test-quorum-with-retry.sh} +0 -0
  365. /package/.claude/skills/redis-coordination/{test-quorum.sh → demos/test-quorum.sh} +0 -0
  366. /package/.claude/skills/redis-coordination/{test-shutdown-handling.sh → demos/test-shutdown-handling.sh} +0 -0
  367. /package/.claude/skills/redis-coordination/{test-shutdown.sh → demos/test-shutdown.sh} +0 -0
  368. /package/.claude/skills/redis-coordination/{test-utils-unix.sh → demos/test-utils-unix.sh} +0 -0
  369. /package/.claude/skills/redis-coordination/{test-utils.sh → demos/test-utils.sh} +0 -0
  370. /package/.claude/skills/redis-coordination/{test-waiting-mode.sh → demos/test-waiting-mode.sh} +0 -0
@@ -0,0 +1,332 @@
1
+ # Product Owner Decision Skill
2
+
3
+ **Version:** 1.0.0
4
+ **Status:** Production
5
+ **Purpose:** Strategic decision-making for CFN Loop progression with guaranteed execution
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ Provides autonomous Product Owner decision execution with:
12
+ - **Guaranteed Redis coordination** (orchestrator-controlled)
13
+ - **Output parsing with fallback patterns**
14
+ - **Decision validation** (ensures PROCEED/ITERATE/ABORT detection)
15
+ - **Context injection** (consensus, iteration, success criteria)
16
+
17
+ **Key Principle:** Orchestrator controls Redis coordination, agents focus on decision analysis.
18
+
19
+ ---
20
+
21
+ ## Architecture
22
+
23
+ ### Skill Components
24
+
25
+ ```
26
+ .claude/skills/product-owner-decision/
27
+ ├── SKILL.md # This file
28
+ ├── execute-decision.sh # Main decision execution wrapper
29
+ ├── parse-decision.sh # Output parsing with fallback patterns
30
+ └── validate-deliverables.sh # Deliverable verification logic
31
+ ```
32
+
33
+ ### Decision Flow
34
+
35
+ ```
36
+ 1. Orchestrator → Spawn Product Owner with context
37
+ 2. Skill → Capture agent output
38
+ 3. Skill → Parse decision (PROCEED/ITERATE/ABORT)
39
+ 4. Skill → Validate deliverables (for PROCEED)
40
+ 5. Skill → Push decision to Redis
41
+ 6. Skill → Signal completion
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Usage
47
+
48
+ ### From Orchestrator (orchestrate-cfn-loop.sh)
49
+
50
+ ```bash
51
+ # Replace Product Owner spawn+wait with skill execution
52
+ DECISION_RESULT=$(./.claude/skills/product-owner-decision/execute-decision.sh \
53
+ --task-id "$TASK_ID" \
54
+ --agent-id "$PO_UNIQUE_ID" \
55
+ --consensus "$LOOP2_CONSENSUS" \
56
+ --threshold "$CONSENSUS" \
57
+ --iteration "$ITERATION" \
58
+ --max-iterations "$MAX_ITERATIONS")
59
+
60
+ DECISION_TYPE=$(echo "$DECISION_RESULT" | jq -r '.decision')
61
+ ```
62
+
63
+ ### From Slash Commands
64
+
65
+ ```bash
66
+ # Automatic - orchestrator uses skill by default
67
+ /cfn-loop "Implement feature" --mode=standard
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Parameters
73
+
74
+ ### execute-decision.sh
75
+
76
+ | Parameter | Required | Description | Example |
77
+ |-----------|----------|-------------|---------|
78
+ | `--task-id` | Yes | CFN Loop task identifier | `cfn-auth-system-123` |
79
+ | `--agent-id` | Yes | Product Owner agent ID | `product-owner-1` |
80
+ | `--consensus` | Yes | Loop 2 consensus score | `0.92` |
81
+ | `--threshold` | Yes | Consensus threshold | `0.90` |
82
+ | `--iteration` | Yes | Current iteration number | `2` |
83
+ | `--max-iterations` | Yes | Max iterations allowed | `10` |
84
+ | `--success-criteria` | No | JSON success criteria | `{"tests":"pass"}` |
85
+
86
+ ---
87
+
88
+ ## Decision Logic (GOAP Framework)
89
+
90
+ ### PROCEED
91
+ ```bash
92
+ Consensus >= Threshold
93
+ AND Deliverables exist (for implementation tasks)
94
+ AND Iteration <= Max
95
+ ```
96
+
97
+ ### ITERATE
98
+ ```bash
99
+ Consensus < Threshold
100
+ AND Iteration < Max
101
+ ```
102
+
103
+ ### ABORT
104
+ ```bash
105
+ Iteration >= Max
106
+ OR Unrecoverable failure
107
+ ```
108
+
109
+ ---
110
+
111
+ ## Output Parsing
112
+
113
+ ### Pattern Matching (Robust)
114
+
115
+ ```bash
116
+ # Primary: Labeled decision
117
+ grep -oiE "Decision:\s*(PROCEED|ITERATE|ABORT)"
118
+
119
+ # Fallback 1: Standalone keyword
120
+ grep -oE "(PROCEED|ITERATE|ABORT)"
121
+
122
+ # Fallback 2: Case-insensitive variations
123
+ grep -oiE "(proceed|iterate|abort)"
124
+ ```
125
+
126
+ ### Validation
127
+
128
+ ```bash
129
+ if [ -z "$DECISION_TYPE" ]; then
130
+ echo "❌ ERROR: Could not parse decision"
131
+ echo "Product Owner output: $PO_OUTPUT"
132
+ exit 1
133
+ fi
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Deliverable Verification
139
+
140
+ ### For PROCEED Decisions
141
+
142
+ ```bash
143
+ # Check git status for file changes
144
+ FILES_CHANGED=$(git status --short | grep -E "^(A|M|\?\?)" | wc -l)
145
+
146
+ if [ "$FILES_CHANGED" -eq 0 ]; then
147
+ # Override PROCEED → ITERATE
148
+ DECISION_TYPE="ITERATE"
149
+ REASONING="No deliverables created - consensus on plans only"
150
+ fi
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Redis Coordination
156
+
157
+ ### Keys Used
158
+
159
+ ```bash
160
+ # Decision storage
161
+ swarm:${TASK_ID}:${AGENT_ID}:decision
162
+
163
+ # Completion signal
164
+ swarm:${TASK_ID}:${AGENT_ID}:done
165
+
166
+ # Metrics
167
+ swarm:${TASK_ID}:metrics:product_owner_decisions
168
+ ```
169
+
170
+ ### Decision JSON Format
171
+
172
+ ```json
173
+ {
174
+ "decision": "PROCEED|ITERATE|ABORT",
175
+ "reasoning": "Explanation of decision",
176
+ "confidence": 0.90,
177
+ "iteration": 2,
178
+ "consensus": 0.92,
179
+ "deliverables_verified": true
180
+ }
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Error Handling
186
+
187
+ ### Agent Timeout
188
+ ```bash
189
+ # Use agent-specific timeout
190
+ PO_TIMEOUT=$(get_agent_timeout "product-owner" "$TASK_ID")
191
+ timeout "$PO_TIMEOUT" npx claude-flow-novice agent product-owner ...
192
+ ```
193
+
194
+ ### Parse Failure
195
+ ```bash
196
+ # Fallback to ABORT with error context
197
+ DECISION_TYPE="ABORT"
198
+ REASONING="Failed to parse Product Owner decision after $RETRY_COUNT attempts"
199
+ ```
200
+
201
+ ### Deliverable Verification Failure
202
+ ```bash
203
+ # Override PROCEED → ITERATE
204
+ DECISION_TYPE="ITERATE"
205
+ REASONING="Deliverable verification failed - no files created"
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Testing
211
+
212
+ ### Unit Tests
213
+
214
+ ```bash
215
+ # Test decision parsing
216
+ ./.claude/skills/product-owner-decision/test-parse-decision.sh
217
+
218
+ # Test deliverable verification
219
+ ./.claude/skills/product-owner-decision/test-deliverable-verification.sh
220
+ ```
221
+
222
+ ### Integration Tests
223
+
224
+ ```bash
225
+ # Test full CFN Loop with Product Owner decisions
226
+ ./.claude/skills/redis-coordination/test-orchestrator.sh
227
+ ```
228
+
229
+ ---
230
+
231
+ ## Advantages Over Template-Based Approach
232
+
233
+ | Aspect | Template-Based | Skill-Based |
234
+ |--------|----------------|-------------|
235
+ | **Execution Guarantee** | ❌ Agent decides | ✅ Script enforces |
236
+ | **Redis Coordination** | ❌ Agent must execute | ✅ Orchestrator controls |
237
+ | **Output Parsing** | ❌ None | ✅ Robust fallback patterns |
238
+ | **Deliverable Verification** | ❌ Manual | ✅ Automated |
239
+ | **Error Handling** | ❌ Agent-dependent | ✅ Skill-controlled |
240
+ | **Testability** | ❌ Hard to test | ✅ Unit + integration tests |
241
+
242
+ ---
243
+
244
+ ## Migration from Template-Based
245
+
246
+ ### Before (BUG #11)
247
+ ```markdown
248
+ ## Decision Execution Protocol (CRITICAL)
249
+ **YOUR TASK:** Use the Bash tool to execute:
250
+ bash ./.claude/skills/redis-coordination/execute-product-owner-decision.sh
251
+ ```
252
+
253
+ Agent output: `bash execute-product-owner-decision.sh` (NOT executed)
254
+
255
+ ### After (Skill-Based)
256
+ ```bash
257
+ # Orchestrator uses skill directly
258
+ DECISION_RESULT=$(./.claude/skills/product-owner-decision/execute-decision.sh \
259
+ --task-id "$TASK_ID" ...)
260
+ ```
261
+
262
+ Skill executes, parses, validates, pushes to Redis → Guaranteed
263
+
264
+ ---
265
+
266
+ ## Agent Template Simplification
267
+
268
+ Product Owner template becomes pure decision analysis:
269
+
270
+ ```markdown
271
+ ## Decision Framework
272
+
273
+ Make strategic decision for CFN Loop progression:
274
+
275
+ - **PROCEED:** Quality threshold met, deliverables complete
276
+ - **ITERATE:** Improvements needed, iterations remaining
277
+ - **ABORT:** Max iterations reached or unrecoverable failure
278
+
279
+ Consider:
280
+ - Loop 2 consensus vs threshold
281
+ - Current iteration vs max iterations
282
+ - Deliverable completeness
283
+ - Success criteria satisfaction
284
+
285
+ Output format:
286
+ Decision: PROCEED|ITERATE|ABORT
287
+ Reasoning: [explanation]
288
+ ```
289
+
290
+ Agent focuses on **analysis**, skill handles **execution**.
291
+
292
+ ---
293
+
294
+ ## Metrics
295
+
296
+ ### Decision Tracking
297
+ ```bash
298
+ # Store all Product Owner decisions
299
+ redis-cli LPUSH "swarm:${TASK_ID}:metrics:product_owner_decisions" "$DECISION_JSON"
300
+
301
+ # Count decision types
302
+ redis-cli INCR "swarm:metrics:decisions:proceed"
303
+ redis-cli INCR "swarm:metrics:decisions:iterate"
304
+ redis-cli INCR "swarm:metrics:decisions:abort"
305
+ ```
306
+
307
+ ### Performance
308
+ ```bash
309
+ # Decision latency (time from Loop 2 complete to decision)
310
+ DECISION_START=$(date +%s)
311
+ DECISION_RESULT=$(execute-decision.sh ...)
312
+ DECISION_END=$(date +%s)
313
+ LATENCY=$((DECISION_END - DECISION_START))
314
+ ```
315
+
316
+ ---
317
+
318
+ ## Related Skills
319
+
320
+ - **Redis Coordination** (`.claude/skills/redis-coordination/SKILL.md`)
321
+ - **CFN Loop Validation** (`.claude/skills/cfn-loop-validation/SKILL.md`)
322
+
323
+ ---
324
+
325
+ ## Version History
326
+
327
+ ### 1.0.0 (2025-10-20)
328
+ - Initial skill creation
329
+ - Solves BUG #11 (Product Owner execution failure)
330
+ - Orchestrator-controlled decision execution
331
+ - Robust output parsing with fallbacks
332
+ - Automated deliverable verification
@@ -0,0 +1,176 @@
1
+ #!/bin/bash
2
+ # Product Owner Decision Skill - Main Execution Wrapper
3
+ # Guarantees decision execution via output parsing (solves BUG #11)
4
+
5
+ set -euo pipefail
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+
9
+ # Parse arguments
10
+ TASK_ID=""
11
+ AGENT_ID=""
12
+ CONSENSUS=""
13
+ THRESHOLD=""
14
+ ITERATION=""
15
+ MAX_ITERATIONS=""
16
+ SUCCESS_CRITERIA=""
17
+ EXPECTED_FILES=""
18
+
19
+ while [[ $# -gt 0 ]]; do
20
+ case $1 in
21
+ --task-id)
22
+ TASK_ID="$2"
23
+ shift 2
24
+ ;;
25
+ --agent-id)
26
+ AGENT_ID="$2"
27
+ shift 2
28
+ ;;
29
+ --consensus)
30
+ CONSENSUS="$2"
31
+ shift 2
32
+ ;;
33
+ --threshold)
34
+ THRESHOLD="$2"
35
+ shift 2
36
+ ;;
37
+ --iteration)
38
+ ITERATION="$2"
39
+ shift 2
40
+ ;;
41
+ --max-iterations)
42
+ MAX_ITERATIONS="$2"
43
+ shift 2
44
+ ;;
45
+ --success-criteria)
46
+ SUCCESS_CRITERIA="$2"
47
+ shift 2
48
+ ;;
49
+ --expected-files)
50
+ EXPECTED_FILES="$2"
51
+ shift 2
52
+ ;;
53
+ *)
54
+ echo "Unknown option: $1" >&2
55
+ exit 1
56
+ ;;
57
+ esac
58
+ done
59
+
60
+ # Validate required parameters
61
+ if [ -z "$TASK_ID" ] || [ -z "$AGENT_ID" ] || [ -z "$CONSENSUS" ] || \
62
+ [ -z "$THRESHOLD" ] || [ -z "$ITERATION" ] || [ -z "$MAX_ITERATIONS" ]; then
63
+ echo "ERROR: Missing required parameters" >&2
64
+ echo "Usage: $0 --task-id TASK_ID --agent-id AGENT_ID --consensus CONSENSUS --threshold THRESHOLD --iteration ITERATION --max-iterations MAX_ITERATIONS [--success-criteria JSON]" >&2
65
+ exit 1
66
+ fi
67
+
68
+ # Build Product Owner context
69
+ PO_CONTEXT="CFN Loop iteration $ITERATION complete.
70
+
71
+ Loop 2 Consensus: $CONSENSUS (threshold: $THRESHOLD)
72
+ Task ID: $TASK_ID
73
+ Agent ID: $AGENT_ID
74
+ Max Iterations: $MAX_ITERATIONS
75
+
76
+ Make your strategic decision: PROCEED, ITERATE, or ABORT
77
+
78
+ Decision Framework:
79
+ - PROCEED: Consensus >= $THRESHOLD AND deliverables verified
80
+ - ITERATE: Consensus < $THRESHOLD AND iteration < $MAX_ITERATIONS
81
+ - ABORT: Max iterations reached without consensus
82
+
83
+ Output your decision clearly with reasoning.
84
+ Format: Decision: [PROCEED|ITERATE|ABORT]"
85
+
86
+ # Inject CFN Loop context if injection script exists
87
+ INJECT_SCRIPT="$SCRIPT_DIR/../cfn-loop-orchestration/inject-loop-context.sh"
88
+ if [[ -x "$INJECT_SCRIPT" ]]; then
89
+ PO_CONTEXT=$("$INJECT_SCRIPT" "loop4" "$PO_CONTEXT" 2>/dev/null || echo "$PO_CONTEXT")
90
+ fi
91
+
92
+ # Get agent timeout (if get_agent_timeout function available)
93
+ if command -v get_agent_timeout &>/dev/null; then
94
+ PO_TIMEOUT=$(get_agent_timeout "product-owner" "$TASK_ID")
95
+ else
96
+ PO_TIMEOUT=900 # Default 15 minutes
97
+ fi
98
+
99
+ # Spawn Product Owner and capture output
100
+ PO_OUTPUT=$(timeout "$PO_TIMEOUT" npx claude-flow-novice agent product-owner \
101
+ --task-id "$TASK_ID" \
102
+ --agent-id "$AGENT_ID" \
103
+ --context "$PO_CONTEXT" 2>&1 || true)
104
+
105
+ # Parse decision using skill parser
106
+ DECISION_TYPE=$("$SCRIPT_DIR/parse-decision.sh" --output "$PO_OUTPUT")
107
+
108
+ if [ -z "$DECISION_TYPE" ]; then
109
+ echo "❌ ERROR: Could not parse Product Owner decision" >&2
110
+ echo "Product Owner output:" >&2
111
+ echo "$PO_OUTPUT" >&2
112
+
113
+ # Fallback to ABORT on parse failure
114
+ DECISION_TYPE="ABORT"
115
+ REASONING="Failed to parse Product Owner decision from output"
116
+ CONFIDENCE=0.50
117
+ else
118
+ # Extract reasoning (context around decision)
119
+ REASONING=$(echo "$PO_OUTPUT" | grep -A5 -i "decision" | tail -5 | tr '\n' ' ' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
120
+ CONFIDENCE=0.90
121
+ fi
122
+
123
+ # Validate deliverables for PROCEED decisions
124
+ if [ "$DECISION_TYPE" = "PROCEED" ]; then
125
+ DELIVERABLE_ARGS="--task-id $TASK_ID"
126
+ if [ -n "$EXPECTED_FILES" ]; then
127
+ DELIVERABLE_ARGS="$DELIVERABLE_ARGS --expected-files $EXPECTED_FILES"
128
+ fi
129
+
130
+ DELIVERABLE_STATUS=$("$SCRIPT_DIR/validate-deliverables.sh" $DELIVERABLE_ARGS)
131
+
132
+ if [ "$DELIVERABLE_STATUS" = "FAILED" ]; then
133
+ # Retrieve missing files from Redis (if available)
134
+ MISSING_FILES_JSON=$(redis-cli get "swarm:${TASK_ID}:missing-files" 2>/dev/null || echo "[]")
135
+ MISSING_FILES_LIST=$(echo "$MISSING_FILES_JSON" | jq -r '.[]' | tr '\n' ', ' | sed 's/,$//')
136
+
137
+ # Override PROCEED → ITERATE
138
+ DECISION_TYPE="ITERATE"
139
+ if [ -n "$MISSING_FILES_LIST" ]; then
140
+ REASONING="Deliverable verification failed - missing files: $MISSING_FILES_LIST"
141
+ else
142
+ REASONING="Deliverable verification failed - no files created (consensus on plans only)"
143
+ fi
144
+ CONFIDENCE=0.75
145
+ fi
146
+ fi
147
+
148
+ # Build decision JSON
149
+ DECISION_JSON=$(jq -n \
150
+ --arg decision "$DECISION_TYPE" \
151
+ --arg reasoning "${REASONING:-Parsed from Product Owner output}" \
152
+ --arg confidence "$CONFIDENCE" \
153
+ --arg iteration "$ITERATION" \
154
+ --arg consensus "$CONSENSUS" \
155
+ '{
156
+ decision: $decision,
157
+ reasoning: $reasoning,
158
+ confidence: ($confidence | tonumber),
159
+ iteration: ($iteration | tonumber),
160
+ consensus: ($consensus | tonumber),
161
+ timestamp: (now | todate)
162
+ }')
163
+
164
+ # Push decision to Redis (orchestrator's responsibility, not agent's)
165
+ DECISION_KEY="swarm:${TASK_ID}:${AGENT_ID}:decision"
166
+ echo "$DECISION_JSON" | redis-cli -x LPUSH "$DECISION_KEY" >/dev/null
167
+
168
+ # Signal Product Owner completion
169
+ redis-cli LPUSH "swarm:${TASK_ID}:${AGENT_ID}:done" "complete" >/dev/null
170
+
171
+ # Store decision in metrics
172
+ redis-cli LPUSH "swarm:${TASK_ID}:metrics:product_owner_decisions" "$DECISION_JSON" >/dev/null
173
+ redis-cli INCR "swarm:metrics:decisions:$(echo "$DECISION_TYPE" | tr '[:upper:]' '[:lower:]')" >/dev/null
174
+
175
+ # Output decision JSON for orchestrator
176
+ echo "$DECISION_JSON"
@@ -0,0 +1,66 @@
1
+ #!/bin/bash
2
+ # Product Owner Decision Parser - Robust pattern matching with fallbacks
3
+
4
+ set -euo pipefail
5
+
6
+ # Parse arguments
7
+ OUTPUT=""
8
+
9
+ while [[ $# -gt 0 ]]; do
10
+ case $1 in
11
+ --output)
12
+ OUTPUT="$2"
13
+ shift 2
14
+ ;;
15
+ *)
16
+ echo "Unknown option: $1" >&2
17
+ exit 1
18
+ ;;
19
+ esac
20
+ done
21
+
22
+ if [ -z "$OUTPUT" ]; then
23
+ echo "ERROR: --output required" >&2
24
+ exit 1
25
+ fi
26
+
27
+ # Pattern 1: Labeled decision (most explicit)
28
+ # Example: "Decision: PROCEED"
29
+ DECISION=$(echo "$OUTPUT" | grep -oiE "Decision:\s*(PROCEED|ITERATE|ABORT)" | \
30
+ grep -oE "(PROCEED|ITERATE|ABORT)" | head -1)
31
+
32
+ if [ -n "$DECISION" ]; then
33
+ echo "$DECISION"
34
+ exit 0
35
+ fi
36
+
37
+ # Pattern 2: Standalone keyword (first occurrence)
38
+ # Example: "I recommend we PROCEED with..."
39
+ DECISION=$(echo "$OUTPUT" | grep -oE "(PROCEED|ITERATE|ABORT)" | head -1)
40
+
41
+ if [ -n "$DECISION" ]; then
42
+ echo "$DECISION"
43
+ exit 0
44
+ fi
45
+
46
+ # Pattern 3: Case-insensitive fallback
47
+ # Example: "proceed with deployment"
48
+ DECISION=$(echo "$OUTPUT" | grep -oiE "(proceed|iterate|abort)" | head -1 | tr '[:lower:]' '[:upper:]')
49
+
50
+ if [ -n "$DECISION" ]; then
51
+ echo "$DECISION"
52
+ exit 0
53
+ fi
54
+
55
+ # Pattern 4: JSON format fallback
56
+ # Example: {"decision": "PROCEED"}
57
+ DECISION=$(echo "$OUTPUT" | jq -r '.decision // empty' 2>/dev/null | grep -oE "(PROCEED|ITERATE|ABORT)" | head -1)
58
+
59
+ if [ -n "$DECISION" ]; then
60
+ echo "$DECISION"
61
+ exit 0
62
+ fi
63
+
64
+ # No decision found - return empty (caller handles fallback to ABORT)
65
+ echo ""
66
+ exit 0
@@ -0,0 +1,82 @@
1
+ #!/bin/bash
2
+ # Deliverable Verification - Prevent "consensus on vapor"
3
+
4
+ set -euo pipefail
5
+
6
+ # Parse arguments
7
+ TASK_ID=""
8
+ EXPECTED_FILES=""
9
+
10
+ while [[ $# -gt 0 ]]; do
11
+ case $1 in
12
+ --task-id)
13
+ TASK_ID="$2"
14
+ shift 2
15
+ ;;
16
+ --expected-files)
17
+ EXPECTED_FILES="$2"
18
+ shift 2
19
+ ;;
20
+ *)
21
+ echo "Unknown option: $1" >&2
22
+ exit 1
23
+ ;;
24
+ esac
25
+ done
26
+
27
+ if [ -z "$TASK_ID" ]; then
28
+ echo "ERROR: --task-id required" >&2
29
+ exit 1
30
+ fi
31
+
32
+ # Get task description from Redis
33
+ TASK_DESC=$(redis-cli GET "swarm:${TASK_ID}:task" 2>/dev/null || echo "")
34
+
35
+ # Check if task requires implementation (file creation)
36
+ REQUIRES_FILES=false
37
+ if echo "$TASK_DESC" | grep -qiE "create|build|implement|generate|file|component|module|test|write|add"; then
38
+ REQUIRES_FILES=true
39
+ fi
40
+
41
+ # If task doesn't require files, skip verification
42
+ if [ "$REQUIRES_FILES" = false ]; then
43
+ echo "PASSED"
44
+ exit 0
45
+ fi
46
+
47
+ # If expected files specified, verify actual existence
48
+ if [ -n "$EXPECTED_FILES" ]; then
49
+ MISSING_FILES=()
50
+ IFS=',' read -ra FILES <<< "$EXPECTED_FILES"
51
+
52
+ for file in "${FILES[@]}"; do
53
+ # Trim whitespace
54
+ file=$(echo "$file" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
55
+
56
+ if [ ! -f "$file" ]; then
57
+ MISSING_FILES+=("$file")
58
+ fi
59
+ done
60
+
61
+ if [ ${#MISSING_FILES[@]} -gt 0 ]; then
62
+ echo "FAILED"
63
+ # Store missing files in Redis for orchestrator feedback
64
+ MISSING_JSON=$(printf '%s\n' "${MISSING_FILES[@]}" | jq -R . | jq -s -c .)
65
+ redis-cli setex "swarm:${TASK_ID}:missing-files" 300 "$MISSING_JSON" >/dev/null
66
+ exit 0
67
+ else
68
+ echo "PASSED"
69
+ exit 0
70
+ fi
71
+ fi
72
+
73
+ # Fallback: Check for file changes in git (backward compatibility)
74
+ FILES_CREATED=$(git status --short 2>/dev/null | grep -E "^(A|M|\?\?)" | wc -l)
75
+
76
+ if [ "$FILES_CREATED" -eq 0 ]; then
77
+ echo "FAILED"
78
+ exit 0
79
+ else
80
+ echo "PASSED"
81
+ exit 0
82
+ fi