claude-flow-novice 2.6.0 → 2.9.0

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 (659) hide show
  1. package/.claude/agents/cfn-dev-team/coordinators/README.md +42 -0
  2. package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +440 -0
  3. package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/cto-agent.md +154 -187
  4. package/.claude/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +50 -0
  5. package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/product-owner-agent.md +7 -40
  6. package/.claude/agents/{cfn-loop → cfn-dev-team/coordinators}/product-owner.md +73 -18
  7. package/.claude/agents/cfn-dev-team/developers/README.md +69 -0
  8. package/.claude/agents/cfn-dev-team/developers/backend-dev.md +77 -0
  9. package/.claude/agents/{core-agents → cfn-dev-team/developers}/coder.md +132 -27
  10. package/.claude/agents/cfn-dev-team/developers/react-frontend-engineer.md +121 -0
  11. package/.claude/agents/{frontend → cfn-dev-team/developers}/state-architect.md +1 -0
  12. package/.claude/agents/{frontend → cfn-dev-team/developers}/ui-designer.md +1 -0
  13. package/.claude/agents/cfn-dev-team/reviewers/README.md +58 -0
  14. package/.claude/agents/{analysis → cfn-dev-team/reviewers}/code-quality-validator.md +9 -18
  15. package/.claude/agents/{core-agents → cfn-dev-team/reviewers}/reviewer.md +62 -23
  16. package/.claude/agents/cfn-dev-team/testers/README.md +94 -0
  17. package/.claude/agents/{testing → cfn-dev-team/testers}/e2e/playwright-agent.md +2 -21
  18. package/.claude/agents/{testing → cfn-dev-team/testers}/interaction-tester.md +2 -21
  19. package/.claude/agents/{testing → cfn-dev-team/testers}/playwright-tester.md +1 -1
  20. package/.claude/agents/cfn-dev-team/testers/tester.md +139 -0
  21. package/.claude/agents/cfn-dev-team/testers/unit/tdd-london-swarm.md +49 -0
  22. package/.claude/agents/cfn-dev-team/testers/validation/production-validator.md +33 -0
  23. package/.claude/cfn-data/cfn-loop.db +0 -0
  24. package/.claude/cfn-data/cfn_loop_logs.db +0 -0
  25. package/.claude/commands/{CFN_COORDINATOR_PARAMETERS.md → cfn/CFN_COORDINATOR_PARAMETERS.md} +22 -22
  26. package/.claude/commands/{cfn-loop-epic.md → cfn/cfn-loop-epic.md} +6 -6
  27. package/.claude/commands/{cfn-loop-single.md → cfn/cfn-loop-single.md} +9 -9
  28. package/.claude/commands/{cfn-loop-sprints.md → cfn/cfn-loop-sprints.md} +1 -1
  29. package/.claude/commands/{cfn-loop.md → cfn/cfn-loop.md} +9 -9
  30. package/.claude/commands/cfn/cfn-mode.md +20 -0
  31. package/.claude/commands/{cfn-optimize-agents.md → cfn/cfn-optimize-agents.md} +1 -1
  32. package/.claude/commands/{context-curate.md → cfn/context-curate.md} +2 -2
  33. package/.claude/commands/{context-inject.md → cfn/context-inject.md} +3 -3
  34. package/.claude/commands/{context-reflect.md → cfn/context-reflect.md} +1 -1
  35. package/.claude/commands/{context-stats.md → cfn/context-stats.md} +1 -1
  36. package/.claude/commands/{list-agents-rebuild.md → cfn/list-agents-rebuild.md} +12 -12
  37. package/.claude/commands/cfn/write-plan.md +104 -0
  38. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -0
  39. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +79 -0
  40. package/.claude/hooks/cfn-post-edit.sh +21 -0
  41. package/.claude/hooks/cfn-pre-edit-backup.sh +71 -0
  42. package/.claude/hooks/cfn-restore-from-backup.sh +37 -0
  43. package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
  44. package/.claude/skills/cfn-redis-coordination/README.md +65 -0
  45. package/.claude/skills/cfn-webapp-testing/README.md +142 -0
  46. package/CFN-CLAUDE.md +776 -0
  47. package/README.md +598 -251
  48. package/dist/agents/agent-loader.js +146 -165
  49. package/dist/agents/agent-loader.js.map +1 -1
  50. package/dist/cli/agent-command.js +2 -0
  51. package/dist/cli/agent-command.js.map +1 -1
  52. package/dist/cli/agent-definition-parser.js +7 -0
  53. package/dist/cli/agent-definition-parser.js.map +1 -1
  54. package/dist/cli/agent-executor.js +145 -11
  55. package/dist/cli/agent-executor.js.map +1 -1
  56. package/dist/cli/agent-prompt-builder.js +81 -1
  57. package/dist/cli/agent-prompt-builder.js.map +1 -1
  58. package/dist/cli/agent-spawn.js +10 -1
  59. package/dist/cli/agent-spawn.js.map +1 -1
  60. package/dist/cli/anthropic-client.js +192 -13
  61. package/dist/cli/anthropic-client.js.map +1 -1
  62. package/dist/cli/cfn-context.js +150 -0
  63. package/dist/cli/cfn-context.js.map +1 -1
  64. package/dist/cli/cfn-fork.js +159 -0
  65. package/dist/cli/cfn-fork.js.map +1 -0
  66. package/dist/cli/cli-agent-context.js +8 -3
  67. package/dist/cli/cli-agent-context.js.map +1 -1
  68. package/dist/cli/conversation-fork.js +201 -0
  69. package/dist/cli/conversation-fork.js.map +1 -0
  70. package/dist/cli/index.js +4 -0
  71. package/dist/cli/index.js.map +1 -1
  72. package/dist/cli/init-command.js +20 -0
  73. package/dist/cli/init-command.js.map +1 -0
  74. package/dist/cli/tool-definitions.js +263 -0
  75. package/dist/cli/tool-definitions.js.map +1 -0
  76. package/dist/cli/tool-executor.js +247 -0
  77. package/dist/cli/tool-executor.js.map +1 -0
  78. package/dist/hello.js +8 -0
  79. package/dist/hello.js.map +1 -0
  80. package/package.json +26 -12
  81. package/scripts/README.md +68 -0
  82. package/scripts/cfn-intervention-example.sh +21 -0
  83. package/scripts/init-project.js +148 -0
  84. package/scripts/migrate-test-infrastructure.sh +40 -0
  85. package/scripts/restructure-cfn-namespace.sh +161 -0
  86. package/scripts/validate-test-migration.sh +49 -0
  87. package/scripts/verify-no-secrets.sh +55 -0
  88. package/.claude/SLASH-COMMANDS-READY.md +0 -53
  89. package/.claude/WORKING-SETUP.md +0 -67
  90. package/.claude/ace-system-overview.md +0 -524
  91. package/.claude/agent-principles/agent-template.md +0 -96
  92. package/.claude/agents/CLAUDE.md +0 -995
  93. package/.claude/agents/README-VALIDATION.md +0 -243
  94. package/.claude/agents/agent-principles/README.md +0 -226
  95. package/.claude/agents/agent-principles/agent-type-guidelines.md +0 -465
  96. package/.claude/agents/agent-principles/format-selection.md +0 -224
  97. package/.claude/agents/agent-principles/phase4-template-optimization.md +0 -494
  98. package/.claude/agents/agent-principles/prompt-engineering.md +0 -501
  99. package/.claude/agents/agent-principles/quality-metrics.md +0 -375
  100. package/.claude/agents/analysis/code-analyzer.md +0 -192
  101. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -133
  102. package/.claude/agents/analysis/perf-analyzer.md +0 -230
  103. package/.claude/agents/architecture/system-architect.md +0 -161
  104. package/.claude/agents/architecture/system-architect.md.backup +0 -603
  105. package/.claude/agents/code-booster.md +0 -131
  106. package/.claude/agents/consensus/consensus-builder.md +0 -159
  107. package/.claude/agents/consensus/crdt-synchronizer.md +0 -192
  108. package/.claude/agents/consensus/performance-benchmarker.md +0 -101
  109. package/.claude/agents/consensus/quorum-manager.md +0 -168
  110. package/.claude/agents/consensus/raft-manager.md +0 -106
  111. package/.claude/agents/consensus/security-manager.md +0 -107
  112. package/.claude/agents/context/context-curator.md +0 -84
  113. package/.claude/agents/context/context-reflector.md +0 -81
  114. package/.claude/agents/context-curator.md +0 -167
  115. package/.claude/agents/context-reflector.md +0 -65
  116. package/.claude/agents/core-agents/analyst.md +0 -170
  117. package/.claude/agents/core-agents/architect.md +0 -200
  118. package/.claude/agents/core-agents/base-template-generator.md +0 -188
  119. package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
  120. package/.claude/agents/core-agents/code-quality-validator.md +0 -149
  121. package/.claude/agents/core-agents/context-curator.md +0 -452
  122. package/.claude/agents/core-agents/context-reflector.md +0 -273
  123. package/.claude/agents/core-agents/coordinator.md +0 -182
  124. package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
  125. package/.claude/agents/core-agents/cost-savings-coordinator.md +0 -167
  126. package/.claude/agents/core-agents/performance-benchmarker.md +0 -148
  127. package/.claude/agents/core-agents/planner.md +0 -174
  128. package/.claude/agents/core-agents/security-manager.md +0 -111
  129. package/.claude/agents/core-agents/tester.md +0 -170
  130. package/.claude/agents/custom/agent-builder.md +0 -637
  131. package/.claude/agents/development/backend/dev-backend-api.md +0 -139
  132. package/.claude/agents/development/backend-dev.md +0 -165
  133. package/.claude/agents/development/npm-package-specialist.md +0 -347
  134. package/.claude/agents/devops/devops-engineer.md +0 -148
  135. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -98
  136. package/.claude/agents/documentation/api-docs.md +0 -103
  137. package/.claude/agents/frontend/README.md +0 -640
  138. package/.claude/agents/frontend/interaction-tester.md +0 -139
  139. package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
  140. package/.claude/agents/github/github-commit-agent.md +0 -118
  141. package/.claude/agents/goal/goal-planner.md +0 -183
  142. package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
  143. package/.claude/agents/planning-team/api-designer-persona.md +0 -147
  144. package/.claude/agents/planning-team/security-architect-persona.md +0 -190
  145. package/.claude/agents/planning-team/system-architect-persona.md +0 -190
  146. package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +0 -161
  147. package/.claude/agents/product-owner-team/power-user-persona.md +0 -182
  148. package/.claude/agents/security/security-specialist-existing.md +0 -154
  149. package/.claude/agents/security/security-specialist.md +0 -185
  150. package/.claude/agents/sparc/architecture.md +0 -149
  151. package/.claude/agents/sparc/pseudocode.md +0 -159
  152. package/.claude/agents/sparc/refinement.md +0 -106
  153. package/.claude/agents/sparc/specification.md +0 -157
  154. package/.claude/agents/specialized/cli-agent-optimizer.md +0 -122
  155. package/.claude/agents/specialized/code-booster.md +0 -143
  156. package/.claude/agents/specialized/devops-engineer.md +0 -150
  157. package/.claude/agents/specialized/mobile/mobile-dev.md +0 -210
  158. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -191
  159. package/.claude/agents/specialized/rust-developer.md +0 -166
  160. package/.claude/agents/specialized/rust-enterprise-developer.md +0 -144
  161. package/.claude/agents/specialized/rust-mvp-developer.md +0 -142
  162. package/.claude/agents/testing/production-validator.md +0 -179
  163. package/.claude/agents/testing/tdd-london-swarm.md +0 -209
  164. package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
  165. package/.claude/agents/testing/validation/production-validator.md +0 -43
  166. package/.claude/agents/validate-agent.js +0 -841
  167. package/.claude/agents-ignore/cfn-coordinator-enterprise.md +0 -1303
  168. package/.claude/agents-ignore/cfn-coordinator-mvp.md +0 -942
  169. package/.claude/agents-ignore/cfn-coordinator-standard.md +0 -1062
  170. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator-enhanced.md +0 -145
  171. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator.md +0 -161
  172. package/.claude/agents-ignore/deprecated-coordinators/blocking-coordinator-example.md +0 -732
  173. package/.claude/agents-ignore/deprecated-coordinators/byzantine-coordinator.md +0 -94
  174. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-enterprise.md +0 -323
  175. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-mvp.md +0 -157
  176. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-standard.md +0 -229
  177. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-unified.md +0 -149
  178. package/.claude/agents-ignore/deprecated-coordinators/coordinator-hybrid.md +0 -231
  179. package/.claude/agents-ignore/deprecated-coordinators/gossip-coordinator.md +0 -165
  180. package/.claude/agents-ignore/deprecated-coordinators/hierarchical-coordinator.md +0 -91
  181. package/.claude/agents-ignore/deprecated-coordinators/mesh-coordinator.md +0 -131
  182. package/.claude/agents-ignore/deprecated-coordinators/task-coordinator.md +0 -105
  183. package/.claude/agents-ignore/deprecated-coordinators/test-coordinator.md +0 -141
  184. package/.claude/api-configs/config-current-zai-config.env +0 -62
  185. package/.claude/api-configs/config-test-zai-config.env +0 -62
  186. package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
  187. package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
  188. package/.claude/architecture/mesh-get-polling-design.md +0 -87
  189. package/.claude/architecture/mesh-get-polling-implementation.md +0 -89
  190. package/.claude/architecture/typescript-microservices.md +0 -50
  191. package/.claude/artifacts/reflection-merge-logs/cli-agent-spawning-v2.5.2-merge-report.md +0 -61
  192. package/.claude/cfn-loop-rules.md +0 -73
  193. package/.claude/cfn-mode-patterns.md +0 -571
  194. package/.claude/claude-md-backup-pre-skills.md +0 -15
  195. package/.claude/commands/agents/README.md +0 -10
  196. package/.claude/commands/agents/agent-capabilities.md +0 -21
  197. package/.claude/commands/agents/agent-coordination.md +0 -28
  198. package/.claude/commands/agents/agent-spawning.md +0 -28
  199. package/.claude/commands/agents/agent-types.md +0 -26
  200. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  201. package/.claude/commands/analysis/README.md +0 -9
  202. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  203. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  204. package/.claude/commands/analysis/performance-report.md +0 -25
  205. package/.claude/commands/analysis/token-efficiency.md +0 -45
  206. package/.claude/commands/analysis/token-usage.md +0 -25
  207. package/.claude/commands/automation/README.md +0 -9
  208. package/.claude/commands/automation/auto-agent.md +0 -122
  209. package/.claude/commands/automation/self-healing.md +0 -106
  210. package/.claude/commands/automation/session-memory.md +0 -90
  211. package/.claude/commands/automation/smart-agents.md +0 -73
  212. package/.claude/commands/automation/smart-spawn.md +0 -25
  213. package/.claude/commands/automation/workflow-select.md +0 -25
  214. package/.claude/commands/claude-md.js +0 -237
  215. package/.claude/commands/claude-soul.js +0 -28
  216. package/.claude/commands/cli-integration.js +0 -216
  217. package/.claude/commands/coordination/README.md +0 -9
  218. package/.claude/commands/coordination/agent-spawn.md +0 -25
  219. package/.claude/commands/coordination/coordination-system.md +0 -88
  220. package/.claude/commands/coordination/init.md +0 -44
  221. package/.claude/commands/coordination/orchestrate.md +0 -43
  222. package/.claude/commands/coordination/spawn.md +0 -45
  223. package/.claude/commands/coordination/swarm-init.md +0 -85
  224. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  225. package/.claude/commands/github/README.md +0 -11
  226. package/.claude/commands/github/code-review-swarm.md +0 -514
  227. package/.claude/commands/github/code-review.md +0 -25
  228. package/.claude/commands/github/github-modes.md +0 -147
  229. package/.claude/commands/github/github-swarm.md +0 -121
  230. package/.claude/commands/github/issue-tracker.md +0 -292
  231. package/.claude/commands/github/issue-triage.md +0 -25
  232. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  233. package/.claude/commands/github/pr-enhance.md +0 -26
  234. package/.claude/commands/github/pr-manager.md +0 -170
  235. package/.claude/commands/github/project-board-sync.md +0 -471
  236. package/.claude/commands/github/release-manager.md +0 -338
  237. package/.claude/commands/github/release-swarm.md +0 -544
  238. package/.claude/commands/github/repo-analyze.md +0 -25
  239. package/.claude/commands/github/repo-architect.md +0 -367
  240. package/.claude/commands/github/swarm-issue.md +0 -482
  241. package/.claude/commands/github/swarm-pr.md +0 -285
  242. package/.claude/commands/github/sync-coordinator.md +0 -301
  243. package/.claude/commands/github/workflow-automation.md +0 -442
  244. package/.claude/commands/github.js +0 -638
  245. package/.claude/commands/hive-mind/README.md +0 -17
  246. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -8
  247. package/.claude/commands/hive-mind/hive-mind-init.md +0 -18
  248. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -8
  249. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  250. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  251. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  252. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -21
  253. package/.claude/commands/hive-mind/hive-mind-status.md +0 -8
  254. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  255. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  256. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  257. package/.claude/commands/hooks/README.md +0 -11
  258. package/.claude/commands/hooks/overview.md +0 -58
  259. package/.claude/commands/hooks/post-edit.md +0 -117
  260. package/.claude/commands/hooks/post-task.md +0 -112
  261. package/.claude/commands/hooks/pre-edit.md +0 -113
  262. package/.claude/commands/hooks/pre-task.md +0 -111
  263. package/.claude/commands/hooks/session-end.md +0 -118
  264. package/.claude/commands/hooks/session-start.md +0 -9
  265. package/.claude/commands/hooks/setup.md +0 -103
  266. package/.claude/commands/hooks.js +0 -651
  267. package/.claude/commands/index.js +0 -119
  268. package/.claude/commands/memory/README.md +0 -9
  269. package/.claude/commands/memory/memory-bank.md +0 -58
  270. package/.claude/commands/memory/memory-persist.md +0 -25
  271. package/.claude/commands/memory/memory-search.md +0 -25
  272. package/.claude/commands/memory/memory-usage.md +0 -25
  273. package/.claude/commands/memory/neural.md +0 -47
  274. package/.claude/commands/memory/usage.md +0 -46
  275. package/.claude/commands/monitoring/README.md +0 -9
  276. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  277. package/.claude/commands/monitoring/agents.md +0 -44
  278. package/.claude/commands/monitoring/real-time-view.md +0 -25
  279. package/.claude/commands/monitoring/status.md +0 -46
  280. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  281. package/.claude/commands/neural.js +0 -572
  282. package/.claude/commands/optimization/README.md +0 -9
  283. package/.claude/commands/optimization/auto-topology.md +0 -62
  284. package/.claude/commands/optimization/cache-manage.md +0 -25
  285. package/.claude/commands/optimization/parallel-execute.md +0 -25
  286. package/.claude/commands/optimization/parallel-execution.md +0 -50
  287. package/.claude/commands/optimization/topology-optimize.md +0 -25
  288. package/.claude/commands/pair/README.md +0 -261
  289. package/.claude/commands/pair/commands.md +0 -546
  290. package/.claude/commands/pair/config.md +0 -510
  291. package/.claude/commands/pair/examples.md +0 -512
  292. package/.claude/commands/pair/modes.md +0 -348
  293. package/.claude/commands/pair/session.md +0 -407
  294. package/.claude/commands/pair/start.md +0 -209
  295. package/.claude/commands/parse-epic.js +0 -180
  296. package/.claude/commands/performance.js +0 -582
  297. package/.claude/commands/register-all-commands.js +0 -320
  298. package/.claude/commands/register-claude-md.js +0 -82
  299. package/.claude/commands/register-claude-soul.js +0 -80
  300. package/.claude/commands/sparc/analyzer.md +0 -52
  301. package/.claude/commands/sparc/architect.md +0 -53
  302. package/.claude/commands/sparc/batch-executor.md +0 -54
  303. package/.claude/commands/sparc/coder.md +0 -54
  304. package/.claude/commands/sparc/debugger.md +0 -54
  305. package/.claude/commands/sparc/designer.md +0 -53
  306. package/.claude/commands/sparc/documenter.md +0 -54
  307. package/.claude/commands/sparc/innovator.md +0 -54
  308. package/.claude/commands/sparc/memory-manager.md +0 -54
  309. package/.claude/commands/sparc/optimizer.md +0 -54
  310. package/.claude/commands/sparc/orchestrator.md +0 -132
  311. package/.claude/commands/sparc/researcher.md +0 -54
  312. package/.claude/commands/sparc/reviewer.md +0 -54
  313. package/.claude/commands/sparc/sparc-modes.md +0 -174
  314. package/.claude/commands/sparc/swarm-coordinator.md +0 -54
  315. package/.claude/commands/sparc/tdd.md +0 -54
  316. package/.claude/commands/sparc/tester.md +0 -54
  317. package/.claude/commands/sparc/workflow-manager.md +0 -54
  318. package/.claude/commands/sparc.js +0 -110
  319. package/.claude/commands/stream-chain/pipeline.md +0 -121
  320. package/.claude/commands/stream-chain/run.md +0 -70
  321. package/.claude/commands/swarm/README.md +0 -15
  322. package/.claude/commands/swarm/analysis.md +0 -95
  323. package/.claude/commands/swarm/development.md +0 -96
  324. package/.claude/commands/swarm/examples.md +0 -168
  325. package/.claude/commands/swarm/maintenance.md +0 -102
  326. package/.claude/commands/swarm/optimization.md +0 -117
  327. package/.claude/commands/swarm/research.md +0 -136
  328. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  329. package/.claude/commands/swarm/swarm-background.md +0 -8
  330. package/.claude/commands/swarm/swarm-init.md +0 -19
  331. package/.claude/commands/swarm/swarm-modes.md +0 -8
  332. package/.claude/commands/swarm/swarm-monitor.md +0 -8
  333. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  334. package/.claude/commands/swarm/swarm-status.md +0 -8
  335. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  336. package/.claude/commands/swarm/swarm.md +0 -27
  337. package/.claude/commands/swarm/testing.md +0 -131
  338. package/.claude/commands/swarm.js +0 -423
  339. package/.claude/commands/testing/playwright-e2e.md +0 -288
  340. package/.claude/commands/training/README.md +0 -9
  341. package/.claude/commands/training/model-update.md +0 -25
  342. package/.claude/commands/training/neural-patterns.md +0 -74
  343. package/.claude/commands/training/neural-train.md +0 -25
  344. package/.claude/commands/training/pattern-learn.md +0 -25
  345. package/.claude/commands/training/specialization.md +0 -63
  346. package/.claude/commands/truth/start.md +0 -143
  347. package/.claude/commands/validate-commands.js +0 -223
  348. package/.claude/commands/verify/check.md +0 -50
  349. package/.claude/commands/verify/start.md +0 -128
  350. package/.claude/commands/workflow.js +0 -606
  351. package/.claude/commands/workflows/README.md +0 -9
  352. package/.claude/commands/workflows/development.md +0 -78
  353. package/.claude/commands/workflows/research.md +0 -63
  354. package/.claude/commands/workflows/workflow-create.md +0 -25
  355. package/.claude/commands/workflows/workflow-execute.md +0 -25
  356. package/.claude/commands/workflows/workflow-export.md +0 -25
  357. package/.claude/coordinator-feedback-pattern.md +0 -326
  358. package/.claude/coordinator-patterns.md +0 -126
  359. package/.claude/core/agent-manager.js +0 -80
  360. package/.claude/core/agent-manager.js.map +0 -1
  361. package/.claude/core/config.js +0 -1221
  362. package/.claude/core/config.js.map +0 -1
  363. package/.claude/core/event-bus.js +0 -136
  364. package/.claude/core/event-bus.js.map +0 -1
  365. package/.claude/core/index.js +0 -6
  366. package/.claude/core/index.js.map +0 -1
  367. package/.claude/core/json-persistence.js +0 -112
  368. package/.claude/core/json-persistence.js.map +0 -1
  369. package/.claude/core/logger.js +0 -245
  370. package/.claude/core/logger.js.map +0 -1
  371. package/.claude/core/orchestrator-fixed.js +0 -236
  372. package/.claude/core/orchestrator-fixed.js.map +0 -1
  373. package/.claude/core/orchestrator.js +0 -1136
  374. package/.claude/core/orchestrator.js.map +0 -1
  375. package/.claude/core/persistence.js +0 -185
  376. package/.claude/core/persistence.js.map +0 -1
  377. package/.claude/core/project-manager.js +0 -80
  378. package/.claude/core/project-manager.js.map +0 -1
  379. package/.claude/core/slash-command.js +0 -24
  380. package/.claude/core/version.js +0 -35
  381. package/.claude/core/version.js.map +0 -1
  382. package/.claude/helpers/checkpoint-manager.sh +0 -251
  383. package/.claude/helpers/github-safe.js +0 -106
  384. package/.claude/helpers/github-setup.sh +0 -28
  385. package/.claude/helpers/quick-start.sh +0 -19
  386. package/.claude/helpers/setup-mcp.sh +0 -18
  387. package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
  388. package/.claude/hooks.json +0 -21
  389. package/.claude/logs/sprint1-hybrid-routing-v2-decision.json +0 -18
  390. package/.claude/redis-agent-dependencies.md +0 -494
  391. package/.claude/root-claude-distribute/CLAUDE.md +0 -428
  392. package/.claude/settings.json +0 -129
  393. package/.claude/settings.local.json +0 -33
  394. package/.claude/skills/CFN-LOOP-VALIDATION.md +0 -202
  395. package/.claude/skills/REDIS-COORDINATION.md +0 -187
  396. package/.claude/skills/SKILL.md +0 -229
  397. package/.claude/skills/ace-system/SKILL.md +0 -364
  398. package/.claude/skills/ace-system/add-bullet.sh +0 -145
  399. package/.claude/skills/ace-system/invoke-context-curate.sh +0 -192
  400. package/.claude/skills/ace-system/invoke-context-inject.sh +0 -166
  401. package/.claude/skills/ace-system/invoke-context-query.sh +0 -127
  402. package/.claude/skills/ace-system/invoke-context-reflect.sh +0 -98
  403. package/.claude/skills/ace-system/invoke-context-stats.sh +0 -188
  404. package/.claude/skills/ace-system/log-merge.sh +0 -67
  405. package/.claude/skills/ace-system/query-reflections.sh +0 -35
  406. package/.claude/skills/ace-system/store-reflection.sh +0 -149
  407. package/.claude/skills/ace-system/test-ace-skill.sh +0 -312
  408. package/.claude/skills/ace-system/update-reflection.sh +0 -41
  409. package/.claude/skills/agent-execution/execute-agent.sh +0 -126
  410. package/.claude/skills/agent-spawning/SKILL.md +0 -135
  411. package/.claude/skills/agent-spawning/agent-selection-guide.md +0 -814
  412. package/.claude/skills/agent-spawning/check-dependencies.sh +0 -30
  413. package/.claude/skills/agent-spawning/spawn-agent.sh +0 -263
  414. package/.claude/skills/agent-spawning/spawn-templates.sh +0 -613
  415. package/.claude/skills/analytics/description-refinement-guide.md +0 -164
  416. package/.claude/skills/analytics/log-skill-invocation.js +0 -122
  417. package/.claude/skills/analytics/run-production-criteria-tests.sh +0 -126
  418. package/.claude/skills/analytics/skill-analytics-dashboard.js +0 -113
  419. package/.claude/skills/analytics/skill-invocation-hook.sh +0 -28
  420. package/.claude/skills/analytics/skill-invocations.sql +0 -58
  421. package/.claude/skills/analytics/test-corpus.json +0 -32
  422. package/.claude/skills/analytics/test-data-generator.js +0 -115
  423. package/.claude/skills/analytics/test-manual-override-rate.js +0 -285
  424. package/.claude/skills/analytics/validate-skill-selection.js +0 -188
  425. package/.claude/skills/cfn-loop-validation/SKILL.md +0 -263
  426. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +0 -31
  427. package/.claude/skills/cfn-loop-validation/config.json +0 -161
  428. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +0 -477
  429. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +0 -163
  430. package/.claude/skills/cfn-loop-validation/examples/README.md +0 -453
  431. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +0 -234
  432. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +0 -132
  433. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +0 -115
  434. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +0 -186
  435. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +0 -252
  436. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +0 -134
  437. package/.claude/skills/cfn-loop-validation.sh +0 -70
  438. package/.claude/skills/config-management/SKILL.md +0 -34
  439. package/.claude/skills/config-management/check-dependencies.sh +0 -56
  440. package/.claude/skills/config-management/config.json +0 -32
  441. package/.claude/skills/config-management/manage-config.sh +0 -113
  442. package/.claude/skills/consensus-calculator.js +0 -45
  443. package/.claude/skills/event-bus/SKILL.md +0 -412
  444. package/.claude/skills/event-bus/config.json +0 -111
  445. package/.claude/skills/event-bus/eventbus-wrapper.cjs +0 -69
  446. package/.claude/skills/event-bus/invoke-event-publish.sh +0 -147
  447. package/.claude/skills/event-bus/invoke-event-subscribe.sh +0 -171
  448. package/.claude/skills/event-bus/invoke-lifecycle-track.sh +0 -201
  449. package/.claude/skills/event-bus/test-event-bus.sh +0 -280
  450. package/.claude/skills/evidence-chain.sql +0 -66
  451. package/.claude/skills/fleet-manager/SKILL.md +0 -412
  452. package/.claude/skills/fleet-manager/config.json +0 -60
  453. package/.claude/skills/fleet-manager/invoke-fleet-allocate.sh +0 -182
  454. package/.claude/skills/fleet-manager/invoke-fleet-balance.sh +0 -239
  455. package/.claude/skills/fleet-manager/invoke-fleet-metrics.sh +0 -193
  456. package/.claude/skills/fleet-manager/invoke-fleet-register.sh +0 -124
  457. package/.claude/skills/fleet-manager/test-fleet-manager.sh +0 -345
  458. package/.claude/skills/hook-pipeline/SKILL.md +0 -148
  459. package/.claude/skills/hook-pipeline/auto-resolve.sh +0 -66
  460. package/.claude/skills/hook-pipeline/check-dependencies.sh +0 -40
  461. package/.claude/skills/hook-pipeline/feedback-resolver.sh +0 -452
  462. package/.claude/skills/hook-pipeline/post-edit-handler.sh +0 -154
  463. package/.claude/skills/hook-pipeline/security-scan.json +0 -60
  464. package/.claude/skills/hook-pipeline/security-scanner.sh +0 -121
  465. package/.claude/skills/hook-pipeline/test-root-warning-resolution.sh +0 -148
  466. package/.claude/skills/hybrid-routing/SKILL.md +0 -46
  467. package/.claude/skills/hybrid-routing/check-dependencies.sh +0 -52
  468. package/.claude/skills/hybrid-routing/config.json +0 -26
  469. package/.claude/skills/hybrid-routing/spawn-worker.sh +0 -44
  470. package/.claude/skills/process-lifecycle/SKILL.md +0 -39
  471. package/.claude/skills/process-lifecycle/check-dependencies.sh +0 -58
  472. package/.claude/skills/process-lifecycle/config.json +0 -39
  473. package/.claude/skills/process-lifecycle/process-manager.sh +0 -144
  474. package/.claude/skills/redis-coordination/AGENT_LOGGING.md +0 -280
  475. package/.claude/skills/redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
  476. package/.claude/skills/redis-coordination/HEARTBEAT.md +0 -57
  477. package/.claude/skills/redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  478. package/.claude/skills/redis-coordination/README.md +0 -64
  479. package/.claude/skills/redis-coordination/SECURITY_REVIEW.md +0 -25
  480. package/.claude/skills/redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  481. package/.claude/skills/redis-coordination/SKILL.md +0 -118
  482. package/.claude/skills/redis-coordination/agent-log.sh +0 -124
  483. package/.claude/skills/redis-coordination/agent-recovery.sh +0 -75
  484. package/.claude/skills/redis-coordination/cancel-swarm.sh +0 -221
  485. package/.claude/skills/redis-coordination/cfn-loop-relaunch.sh +0 -29
  486. package/.claude/skills/redis-coordination/check-dependencies.sh +0 -32
  487. package/.claude/skills/redis-coordination/complete-swarm.sh +0 -75
  488. package/.claude/skills/redis-coordination/config.json +0 -61
  489. package/.claude/skills/redis-coordination/examples/README.md +0 -73
  490. package/.claude/skills/redis-coordination/examples/grafana-dashboard.json +0 -352
  491. package/.claude/skills/redis-coordination/examples/hierarchical-pattern.sh +0 -127
  492. package/.claude/skills/redis-coordination/examples/mesh-pattern.sh +0 -171
  493. package/.claude/skills/redis-coordination/examples/timeout-handling.sh +0 -227
  494. package/.claude/skills/redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  495. package/.claude/skills/redis-coordination/get-agent-timeout.sh +0 -177
  496. package/.claude/skills/redis-coordination/heartbeat-functions.sh +0 -137
  497. package/.claude/skills/redis-coordination/heartbeat-protocol.md +0 -106
  498. package/.claude/skills/redis-coordination/heartbeat.sh +0 -126
  499. package/.claude/skills/redis-coordination/init-swarm.sh +0 -148
  500. package/.claude/skills/redis-coordination/invoke-redis-pattern.sh +0 -220
  501. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +0 -417
  502. package/.claude/skills/redis-coordination/list-active-swarms.sh +0 -147
  503. package/.claude/skills/redis-coordination/metrics-export.sh +0 -674
  504. package/.claude/skills/redis-coordination/metrics-schema.json +0 -66
  505. package/.claude/skills/redis-coordination/metrics-storage.md +0 -31
  506. package/.claude/skills/redis-coordination/monitor-heartbeats.sh +0 -101
  507. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +0 -993
  508. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
  509. package/.claude/skills/redis-coordination/phase4-wake-queue-test-report.md +0 -82
  510. package/.claude/skills/redis-coordination/priority-wake-mechanism.md +0 -75
  511. package/.claude/skills/redis-coordination/priority_wake.py +0 -134
  512. package/.claude/skills/redis-coordination/query-dlq.sh +0 -162
  513. package/.claude/skills/redis-coordination/redis-pattern.sh +0 -619
  514. package/.claude/skills/redis-coordination/send-heartbeat.sh +0 -73
  515. package/.claude/skills/redis-coordination/store-epic-context.sh +0 -123
  516. package/.claude/skills/redis-coordination/test-bzpopmin-fix.sh +0 -274
  517. package/.claude/skills/redis-coordination/test-cancel-swarm.sh +0 -276
  518. package/.claude/skills/redis-coordination/test-dlq.sh +0 -129
  519. package/.claude/skills/redis-coordination/test-iteration-feedback.sh +0 -320
  520. package/.claude/skills/redis-coordination/test-orchestrator.sh +0 -224
  521. package/.claude/skills/redis-coordination/test-priority-wake-phase4-unix.sh +0 -148
  522. package/.claude/skills/redis-coordination/test-priority-wake-phase4.sh +0 -163
  523. package/.claude/skills/redis-coordination/test-priority-wake.sh +0 -138
  524. package/.claude/skills/redis-coordination/test-quick-fix.sh +0 -81
  525. package/.claude/skills/redis-coordination/test-quorum-absolute.sh +0 -45
  526. package/.claude/skills/redis-coordination/test-quorum-fallback.sh +0 -68
  527. package/.claude/skills/redis-coordination/test-quorum-percentage.sh +0 -56
  528. package/.claude/skills/redis-coordination/test-quorum-with-retry.sh +0 -81
  529. package/.claude/skills/redis-coordination/test-quorum.sh +0 -57
  530. package/.claude/skills/redis-coordination/test-shutdown-handling.sh +0 -187
  531. package/.claude/skills/redis-coordination/test-shutdown.sh +0 -160
  532. package/.claude/skills/redis-coordination/test-utils-unix.sh +0 -97
  533. package/.claude/skills/redis-coordination/test-utils.sh +0 -97
  534. package/.claude/skills/redis-coordination/test-waiting-mode.sh +0 -59
  535. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +0 -102
  536. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +0 -99
  537. package/.claude/skills/redis-coordination/tests/integration-test.sh +0 -170
  538. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +0 -82
  539. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +0 -92
  540. package/.claude/skills/redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  541. package/.claude/skills/redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  542. package/.claude/skills/redis-coordination/tests/test-utils.sh +0 -122
  543. package/.claude/skills/skill-builder/SKILL.md +0 -910
  544. package/.claude/skills/sqlite-memory/IMPLEMENTATION_REPORT.md +0 -393
  545. package/.claude/skills/sqlite-memory/QUICK_REFERENCE.md +0 -204
  546. package/.claude/skills/sqlite-memory/SKILL.md +0 -415
  547. package/.claude/skills/sqlite-memory/acl-queries.sql +0 -452
  548. package/.claude/skills/sqlite-memory/check-dependencies.sh +0 -36
  549. package/.claude/skills/sqlite-memory/config.json +0 -45
  550. package/.claude/skills/sqlite-memory/memory-cli.sh +0 -88
  551. package/.claude/skills/sqlite-memory/test-state-persistence.js +0 -187
  552. package/.claude/skills/sqlite-memory/ttl-cleanup.sh +0 -274
  553. package/.claude/skills/test-execution/SKILL.md +0 -128
  554. package/.claude/skills/test-execution/check-dependencies.sh +0 -36
  555. package/.claude/skills/test-execution/test-cache-reader.sh +0 -134
  556. package/.claude/skills/test-execution/test-concurrent-conflicts.sh +0 -115
  557. package/.claude/skills/test-execution/test-coordinator-pattern.sh +0 -109
  558. package/.claude/skills/test-execution-coordinator-pattern.md +0 -228
  559. package/.claude/skills/transparency-middleware/Cargo.toml +0 -18
  560. package/.claude/skills/transparency-middleware/SECURITY.md +0 -41
  561. package/.claude/skills/transparency-middleware/SKILL.md +0 -91
  562. package/.claude/skills/transparency-middleware/TEST_RESULTS.md +0 -174
  563. package/.claude/skills/transparency-middleware/config.json +0 -31
  564. package/.claude/skills/transparency-middleware/examples/basic-usage.ts +0 -39
  565. package/.claude/skills/transparency-middleware/examples/batch-processing.ts +0 -52
  566. package/.claude/skills/transparency-middleware/examples/custom-filtering.ts +0 -61
  567. package/.claude/skills/transparency-middleware/invoke-transparency-filter.sh +0 -98
  568. package/.claude/skills/transparency-middleware/invoke-transparency-init.sh +0 -224
  569. package/.claude/skills/transparency-middleware/invoke-transparency-level.sh +0 -333
  570. package/.claude/skills/transparency-middleware/invoke-transparency-metrics.sh +0 -345
  571. package/.claude/skills/transparency-middleware/invoke-transparency-observe.sh +0 -140
  572. package/.claude/skills/transparency-middleware/invoke-transparency-stop.sh +0 -235
  573. package/.claude/skills/transparency-middleware/memory_query.rs +0 -85
  574. package/.claude/skills/transparency-middleware/memory_repository.rs +0 -140
  575. package/.claude/skills/transparency-middleware/memory_schema.rs +0 -64
  576. package/.claude/skills/transparency-middleware/middleware-config.sh +0 -29
  577. package/.claude/skills/transparency-middleware/performance-benchmark.sh +0 -79
  578. package/.claude/skills/transparency-middleware/test-e2e.sh +0 -406
  579. package/.claude/skills/transparency-middleware/test-integration.sh +0 -162
  580. package/.claude/skills/transparency-middleware/test-transparency-skill.sh +0 -368
  581. package/.claude/skills/transparency-middleware/test-transparency-skill.sh.unix +0 -126
  582. package/.claude/skills/transparency-middleware/tests/input-validation.sh +0 -93
  583. package/.claude/skills/transparency-middleware/wrap-agent.sh +0 -132
  584. package/.claude/skills/web-portal/DESIGN.md +0 -117
  585. package/.claude/skills/web-portal/SKILL.md +0 -679
  586. package/.claude/skills/web-portal/invoke-portal-agents.sh +0 -129
  587. package/.claude/skills/web-portal/invoke-portal-dashboard.sh +0 -85
  588. package/.claude/skills/web-portal/invoke-portal-events.sh +0 -125
  589. package/.claude/skills/web-portal/invoke-portal-metrics.sh +0 -112
  590. package/.claude/skills/web-portal/invoke-portal-start.sh +0 -135
  591. package/.claude/skills/web-portal/invoke-portal-stop.sh +0 -121
  592. package/.claude/skills/web-portal/test-web-portal-skill.sh +0 -51
  593. package/.claude/skills/web-portal/validate-deployment.sh +0 -85
  594. package/.claude/slash-commands.json +0 -92
  595. package/.claude/spawn-pattern-examples.md +0 -500
  596. package/.claude/sprint-configs/cfn-naming-standardization.json +0 -729
  597. package/.claude/sprint-reports/sprint-1.4-self-correction-monitoring.json +0 -64
  598. package/.claude/swarm-memory.db +0 -0
  599. package/.claude/templates/agent-optimization-plan.md +0 -439
  600. package/.claude/templates/bulk-optimization-strategy.md +0 -367
  601. package/.claude/templates/cfn-loop-mechanics.md +0 -80
  602. package/.claude/templates/coordinator-patterns.md +0 -75
  603. package/.claude/templates/memory-operations.md +0 -200
  604. package/.claude/templates/post-edit-validation.md +0 -109
  605. package/.claude/templates/redis-coordination.md +0 -140
  606. package/.claude/templates/remaining-agent-analysis.md +0 -121
  607. package/.claude/templates/swarm-coordination.md +0 -103
  608. package/.claude/templates/team-dynamics.md +0 -82
  609. package/CLAUDE.md +0 -502
  610. package/dist/cli/cli-agent-context.test.js +0 -451
  611. package/dist/cli/cli-agent-context.test.js.map +0 -1
  612. package/dist/coordination/fleet-manager.test.js +0 -141
  613. package/dist/coordination/fleet-manager.test.js.map +0 -1
  614. package/dist/middleware/transparency-middleware.test.js +0 -184
  615. package/dist/middleware/transparency-middleware.test.js.map +0 -1
  616. package/readme/CLAUDE.md +0 -429
  617. /package/.claude/agents/{core-agents → cfn-dev-team/developers}/researcher.md +0 -0
  618. /package/.claude/commands/{README.md → cfn/README.md} +0 -0
  619. /package/.claude/commands/{auto-compact.md → cfn/auto-compact.md} +0 -0
  620. /package/.claude/commands/{cfn-claude-sync.md → cfn/cfn-claude-sync.md} +0 -0
  621. /package/.claude/commands/{cfn-loop-document.md → cfn/cfn-loop-document.md} +0 -0
  622. /package/.claude/commands/{claude-md.md → cfn/claude-md.md} +0 -0
  623. /package/.claude/commands/{claude-soul.md → cfn/claude-soul.md} +0 -0
  624. /package/.claude/commands/{context-query.md → cfn/context-query.md} +0 -0
  625. /package/.claude/commands/{cost-savings-off.md → cfn/cost-savings-off.md} +0 -0
  626. /package/.claude/commands/{cost-savings-on.md → cfn/cost-savings-on.md} +0 -0
  627. /package/.claude/commands/{cost-savings-status.md → cfn/cost-savings-status.md} +0 -0
  628. /package/.claude/commands/{custom-routing-activate.md → cfn/custom-routing-activate.md} +0 -0
  629. /package/.claude/commands/{custom-routing-deactivate.md → cfn/custom-routing-deactivate.md} +0 -0
  630. /package/.claude/commands/{dependency-recommendations.md → cfn/dependency-recommendations.md} +0 -0
  631. /package/.claude/commands/{fullstack.md → cfn/fullstack.md} +0 -0
  632. /package/.claude/commands/{github-commit.md → cfn/github-commit.md} +0 -0
  633. /package/.claude/commands/{github.md → cfn/github.md} +0 -0
  634. /package/.claude/commands/{hello-world-tests.md → cfn/hello-world-tests.md} +0 -0
  635. /package/.claude/commands/{hooks.md → cfn/hooks.md} +0 -0
  636. /package/.claude/commands/{launch-web-dashboard.md → cfn/launch-web-dashboard.md} +0 -0
  637. /package/.claude/commands/{metrics-summary.md → cfn/metrics-summary.md} +0 -0
  638. /package/.claude/commands/{neural.md → cfn/neural.md} +0 -0
  639. /package/.claude/commands/{parse-epic.md → cfn/parse-epic.md} +0 -0
  640. /package/.claude/commands/{performance.md → cfn/performance.md} +0 -0
  641. /package/.claude/commands/{sparc.md → cfn/sparc.md} +0 -0
  642. /package/.claude/commands/{suggest-improvements.md → cfn/suggest-improvements.md} +0 -0
  643. /package/.claude/commands/{suggest-templates.md → cfn/suggest-templates.md} +0 -0
  644. /package/.claude/commands/{swarm.md → cfn/swarm.md} +0 -0
  645. /package/.claude/commands/{switch-api.md → cfn/switch-api.md} +0 -0
  646. /package/.claude/commands/{workflow.md → cfn/workflow.md} +0 -0
  647. /package/.claude/hooks/{invoke-post-edit.sh → cfn-invoke-post-edit.sh} +0 -0
  648. /package/.claude/hooks/{post-edit.config.json → cfn-post-edit.config.json} +0 -0
  649. /package/.claude/skills/{agent-spawning → cfn-agent-spawning}/README.md +0 -0
  650. /package/.claude/skills/{analytics → cfn-analytics}/README.md +0 -0
  651. /package/.claude/skills/{config-management → cfn-config-management}/README.md +0 -0
  652. /package/.claude/skills/{event-bus → cfn-event-bus}/README.md +0 -0
  653. /package/.claude/skills/{fleet-manager → cfn-fleet-manager}/README.md +0 -0
  654. /package/.claude/skills/{hook-pipeline → cfn-hook-pipeline}/README.md +0 -0
  655. /package/.claude/skills/{hybrid-routing → cfn-hybrid-routing}/README.md +0 -0
  656. /package/.claude/skills/{process-lifecycle → cfn-process-lifecycle}/README.md +0 -0
  657. /package/.claude/skills/{sqlite-memory → cfn-sqlite-memory}/README.md +0 -0
  658. /package/.claude/skills/{test-execution → cfn-test-execution}/README.md +0 -0
  659. /package/.claude/skills/{transparency-middleware → cfn-transparency-middleware}/README.md +0 -0
@@ -1,933 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- ##############################################################################
4
- # CFN Loop Orchestration v2.0.0
5
- # Manages multi-loop CFN execution with dependency tracking and consensus
6
- #
7
- # Usage:
8
- # ./orchestrate-cfn-loop.sh --task-id <id> \
9
- # --mode <mvp|standard|enterprise> \
10
- # --loop3-agents <agent1,agent2,...> \
11
- # --loop2-agents <agent1,agent2,...> \
12
- # --product-owner <agent-id> \
13
- # [--max-iterations <n>] \
14
- # [--min-quorum-loop3 <n|n%|0.n>] \
15
- # [--min-quorum-loop2 <n|n%|0.n>]
16
- #
17
- # CFN Loop Structure (CORRECTED):
18
- # Loop 3 (Primary Swarm - Self Validation)
19
- # ↓
20
- # IF Loop 3 self-validation gate FAILS → RELAUNCH Loop 3 (skip Loop 2)
21
- # IF Loop 3 self-validation gate PASSES → Proceed to Loop 2
22
- # ↓
23
- # Loop 2 (Consensus Validators)
24
- # ↓
25
- # Product Owner Decision
26
- #
27
- # Dependency Enforcement:
28
- # - Loop 3 agents self-validate via confidence scores
29
- # - Gate check determines if Loop 2 validators should be engaged
30
- # - Loop 2 agents WAIT for gate pass signal before starting work
31
- # - Product Owner BLOCKS until all Loop 2 agents signal completion
32
- # - Uses Redis BLPOP for zero-token waiting
33
- #
34
- # Quorum Configuration:
35
- # - Absolute: --min-quorum-loop3 3 (requires exactly 3 agents)
36
- # - Percentage: --min-quorum-loop3 85% (requires 85% of agents)
37
- # - Decimal: --min-quorum-loop3 0.66 (requires 66% of agents)
38
- # - Default: 0.66 (2/3 majority) if not specified
39
- #
40
- # Agent Requirements:
41
- # Loop 3 (Implementers):
42
- # 1. Complete work
43
- # 2. Signal done: redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
44
- # 3. Report confidence: invoke-waiting-mode.sh report --confidence <0.0-1.0>
45
- # 4. Enter waiting: invoke-waiting-mode.sh enter (for potential iteration)
46
- #
47
- # Loop 2 (Validators):
48
- # 1. WAIT for gate pass: redis-cli blpop "swarm:${TASK_ID}:gate-passed" 0
49
- # 2. Retrieve Loop 3 results for review
50
- # 3. Perform validation
51
- # 4. Signal done: redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
52
- # 5. Report consensus: invoke-waiting-mode.sh report --confidence <0.0-1.0>
53
- # 6. Enter waiting: invoke-waiting-mode.sh enter (for potential iteration)
54
- ##############################################################################
55
-
56
- set -euo pipefail
57
-
58
- # Configuration
59
- TASK_ID=""
60
- MODE="standard"
61
- LOOP3_AGENTS=""
62
- LOOP2_AGENTS=""
63
- PRODUCT_OWNER=""
64
- MAX_ITERATIONS=10
65
- TIMEOUT=3600 # 1 hour timeout for agent completion
66
- RETRY_COUNT=3
67
- RETRY_DELAY=5000 # Base delay in milliseconds
68
- MIN_QUORUM_LOOP3="" # Minimum agents required for Loop 3 (absolute or percentage)
69
- MIN_QUORUM_LOOP2="" # Minimum agents required for Loop 2 (absolute or percentage)
70
- ORCHESTRATOR_PID=$$
71
- SHUTDOWN_MONITOR_PID=""
72
- SHUTDOWN_REQUESTED=0
73
- LOOP3_HEARTBEAT_MONITOR_PID=""
74
- LOOP2_HEARTBEAT_MONITOR_PID=""
75
-
76
- # Thresholds by mode
77
- declare -A GATE_THRESHOLD=(
78
- [mvp]=0.70
79
- [standard]=0.75
80
- [enterprise]=0.75
81
- )
82
-
83
- declare -A CONSENSUS_THRESHOLD=(
84
- [mvp]=0.80
85
- [standard]=0.90
86
- [enterprise]=0.95
87
- )
88
-
89
- # Parse arguments
90
- while [[ $# -gt 0 ]]; do
91
- case $1 in
92
- --task-id)
93
- TASK_ID="$2"
94
- shift 2
95
- ;;
96
- --mode)
97
- MODE="$2"
98
- shift 2
99
- ;;
100
- --loop3-agents)
101
- LOOP3_AGENTS="$2"
102
- shift 2
103
- ;;
104
- --loop2-agents)
105
- LOOP2_AGENTS="$2"
106
- shift 2
107
- ;;
108
- --product-owner)
109
- PRODUCT_OWNER="$2"
110
- shift 2
111
- ;;
112
- --max-iterations)
113
- MAX_ITERATIONS="$2"
114
- shift 2
115
- ;;
116
- --retry-count)
117
- RETRY_COUNT="$2"
118
- shift 2
119
- ;;
120
- --retry-delay)
121
- RETRY_DELAY="$2"
122
- shift 2
123
- ;;
124
- --timeout)
125
- TIMEOUT="$2"
126
- shift 2
127
- ;;
128
- --min-quorum-loop3)
129
- MIN_QUORUM_LOOP3="$2"
130
- shift 2
131
- ;;
132
- --min-quorum-loop2)
133
- MIN_QUORUM_LOOP2="$2"
134
- shift 2
135
- ;;
136
- *)
137
- echo "Unknown option: $1"
138
- exit 1
139
- ;;
140
- esac
141
- done
142
-
143
- # Validation
144
- if [ -z "$TASK_ID" ] || [ -z "$LOOP3_AGENTS" ] || [ -z "$LOOP2_AGENTS" ] || [ -z "$PRODUCT_OWNER" ]; then
145
- echo "Error: Required parameters missing"
146
- echo "Usage: $0 --task-id <id> --mode <mode> --loop3-agents <agents> --loop2-agents <agents> --product-owner <agent>"
147
- exit 1
148
- fi
149
-
150
- GATE=${GATE_THRESHOLD[$MODE]}
151
- CONSENSUS=${CONSENSUS_THRESHOLD[$MODE]}
152
-
153
- # Set default quorum values if not specified (66% = 2/3 majority)
154
- MIN_QUORUM_LOOP3=${MIN_QUORUM_LOOP3:-0.66}
155
- MIN_QUORUM_LOOP2=${MIN_QUORUM_LOOP2:-0.66}
156
-
157
- ##############################################################################
158
- # Shutdown Handling Functions
159
- ##############################################################################
160
- function cleanup_and_exit() {
161
- local exit_code="${1:-130}"
162
- local reason="${2:-user_interrupt}"
163
-
164
- # Set shutdown flag to stop any ongoing operations
165
- SHUTDOWN_REQUESTED=1
166
-
167
- echo ""
168
- echo "=============================================="
169
- echo "🛑 Orchestrator shutting down gracefully..."
170
- echo "=============================================="
171
- echo "Reason: $reason"
172
- echo "Exit Code: $exit_code"
173
-
174
- # Kill shutdown monitor if running
175
- if [ -n "$SHUTDOWN_MONITOR_PID" ] && kill -0 "$SHUTDOWN_MONITOR_PID" 2>/dev/null; then
176
- kill "$SHUTDOWN_MONITOR_PID" 2>/dev/null || true
177
- wait "$SHUTDOWN_MONITOR_PID" 2>/dev/null || true
178
- fi
179
-
180
- # Stop heartbeat monitors if running
181
- if [ -n "${LOOP3_HEARTBEAT_MONITOR_PID:-}" ]; then
182
- echo "Stopping Loop 3 heartbeat monitor..."
183
- stop_heartbeat_monitor "$TASK_ID" "loop3" "$LOOP3_HEARTBEAT_MONITOR_PID"
184
- fi
185
- if [ -n "${LOOP2_HEARTBEAT_MONITOR_PID:-}" ]; then
186
- echo "Stopping Loop 2 heartbeat monitor..."
187
- stop_heartbeat_monitor "$TASK_ID" "loop2" "$LOOP2_HEARTBEAT_MONITOR_PID"
188
- fi
189
-
190
- # Mark swarm as cancelled if initialized
191
- if [ -n "$TASK_ID" ] && [ -n "${SWARM_ID:-}" ]; then
192
- echo "Marking swarm as cancelled..."
193
- ./.claude/skills/redis-coordination/complete-swarm.sh \
194
- --swarm-id "$SWARM_ID" \
195
- --final-metric "status=cancelled" \
196
- --final-metric "shutdown_reason=$reason" 2>/dev/null || echo " ⚠️ Failed to mark swarm as cancelled"
197
- fi
198
-
199
- # Clean up Redis keys
200
- if [ -n "$TASK_ID" ]; then
201
- echo "Cleaning up Redis keys..."
202
- local keys_deleted=$(redis-cli --scan --pattern "swarm:${TASK_ID}:*" | xargs -r redis-cli DEL 2>/dev/null || echo "0")
203
- echo " Deleted $keys_deleted Redis keys"
204
- fi
205
-
206
- # Clean up heartbeat monitor marker files
207
- rm -f /tmp/heartbeat-monitor-${TASK_ID}-*.active 2>/dev/null || true
208
-
209
- echo "=============================================="
210
- echo "Shutdown complete"
211
- echo "=============================================="
212
-
213
- exit "$exit_code"
214
- }
215
-
216
- # Trap SIGTERM and SIGINT for graceful shutdown
217
- trap 'echo "[TRAP] Caught SIGINT" >&2; cleanup_and_exit 130 "SIGINT_received"' SIGINT
218
- trap 'echo "[TRAP] Caught SIGTERM" >&2; cleanup_and_exit 143 "SIGTERM_received"' SIGTERM
219
-
220
- ##############################################################################
221
- # Start Shutdown Monitor (Background Process)
222
- ##############################################################################
223
- function start_shutdown_monitor() {
224
- local task_id="$1"
225
-
226
- (
227
- # Block on shutdown channel (zero-token waiting)
228
- SHUTDOWN_KEY="swarm:${task_id}:shutdown"
229
- SHUTDOWN_RESULT=$(redis-cli BLPOP "$SHUTDOWN_KEY" 0 2>/dev/null || echo "")
230
-
231
- if [ -n "$SHUTDOWN_RESULT" ]; then
232
- # Extract shutdown payload (format: key value)
233
- SHUTDOWN_PAYLOAD=$(echo "$SHUTDOWN_RESULT" | tail -1)
234
- REASON=$(echo "$SHUTDOWN_PAYLOAD" | jq -r '.reason // "external_shutdown"' 2>/dev/null || echo "external_shutdown")
235
-
236
- echo ""
237
- echo "🛑 Shutdown signal received from Redis channel: $REASON"
238
- echo " Sending SIGTERM to orchestrator PID: $ORCHESTRATOR_PID"
239
-
240
- # Send SIGTERM to main orchestrator process
241
- if kill -TERM "$ORCHESTRATOR_PID" 2>/dev/null; then
242
- echo " ✅ SIGTERM sent successfully"
243
- else
244
- echo " ❌ Failed to send SIGTERM (process may have already exited)"
245
- exit 0
246
- fi
247
- fi
248
- ) &
249
-
250
- SHUTDOWN_MONITOR_PID=$!
251
- echo "Shutdown monitor started (PID: $SHUTDOWN_MONITOR_PID)"
252
- }
253
-
254
- ##############################################################################
255
- # Quorum Calculation Function
256
- ##############################################################################
257
- function calculate_quorum() {
258
- local quorum_spec="$1"
259
- local total_agents="$2"
260
-
261
- # If no quorum specified, require all agents
262
- if [ -z "$quorum_spec" ]; then
263
- echo "$total_agents"
264
- return 0
265
- fi
266
-
267
- # Check if percentage format (e.g., "85%")
268
- if [[ "$quorum_spec" =~ %$ ]]; then
269
- # Extract percentage value (remove % suffix)
270
- local pct="${quorum_spec%\%}"
271
- # Calculate: ceil(total_agents * pct / 100)
272
- echo "scale=0; ($total_agents * $pct + 50) / 100" | bc
273
- # Check if decimal (0.0-1.0), treat as fraction
274
- elif [[ "$quorum_spec" =~ ^0?\.[0-9]+$ ]]; then
275
- # Calculate: ceil(total_agents * fraction)
276
- echo "scale=0; ($quorum_spec * $total_agents + 0.5) / 1" | bc
277
- else
278
- # Absolute number - validate it doesn't exceed total
279
- if [ "$quorum_spec" -gt "$total_agents" ]; then
280
- echo "Error: Quorum ($quorum_spec) exceeds total agents ($total_agents)" >&2
281
- return 1
282
- fi
283
- echo "$quorum_spec"
284
- fi
285
- }
286
-
287
- ##############################################################################
288
- # Dead Letter Queue (DLQ) Functions
289
- ##############################################################################
290
- function write_to_dlq() {
291
- local agent="$1"
292
- local reason="$2"
293
- local retry_count="$3"
294
-
295
- DLQ_KEY="swarm:${TASK_ID}:dlq:${agent}"
296
- DLQ_ENTRY=$(jq -n \
297
- --arg reason "$reason" \
298
- --arg retries "$retry_count" \
299
- --arg ts "$(date +%s)" \
300
- '{reason: $reason, retry_count: ($retries | tonumber), timestamp: ($ts | tonumber)}')
301
-
302
- echo "$DLQ_ENTRY" | redis-cli -x LPUSH "$DLQ_KEY" >/dev/null
303
- redis-cli EXPIRE "$DLQ_KEY" 604800 >/dev/null # 7 days TTL
304
-
305
- echo " ❌ $agent → DLQ (reason: $reason, retries: $retry_count)"
306
- }
307
-
308
- ##############################################################################
309
- # Exponential Backoff Retry Function
310
- ##############################################################################
311
- function retry_with_backoff() {
312
- local agent="$1"
313
- local attempt="$2"
314
- local max_retries="$3"
315
- local base_delay="$4"
316
-
317
- # Check for shutdown before sleeping
318
- if [ "$SHUTDOWN_REQUESTED" -eq 1 ]; then
319
- echo " [SHUTDOWN] Skipping backoff delay for $agent" >&2
320
- return 0
321
- fi
322
-
323
- # Exponential backoff: delay = base_delay * (2 ^ attempt)
324
- local delay=$(echo "$base_delay * (2 ^ $attempt)" | bc)
325
- local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
326
-
327
- echo " [$timestamp] [Retry $attempt/$max_retries] Waiting ${delay}ms before retry for $agent..."
328
-
329
- # Use interruptible sleep - sleep in small increments and check for shutdown
330
- local delay_sec=$(echo "scale=3; $delay / 1000" | bc)
331
- local elapsed=0
332
- while (( $(echo "$elapsed < $delay_sec" | bc -l) )); do
333
- # Sleep for 0.5s increments (or remaining time if less)
334
- local remaining=$(echo "$delay_sec - $elapsed" | bc)
335
- local sleep_time=$(echo "if ($remaining < 0.5) $remaining else 0.5" | bc)
336
-
337
- sleep "$sleep_time" &
338
- wait $! 2>/dev/null || return 0 # If wait is interrupted (SIGTERM), return immediately
339
-
340
- elapsed=$(echo "$elapsed + $sleep_time" | bc)
341
-
342
- # Check for shutdown after each sleep increment
343
- if [ "$SHUTDOWN_REQUESTED" -eq 1 ]; then
344
- echo " [SHUTDOWN] Interrupted backoff delay for $agent" >&2
345
- return 0
346
- fi
347
- done
348
- }
349
-
350
- ##############################################################################
351
- # Heartbeat Monitoring Functions
352
- ##############################################################################
353
- declare -A MISSED_HEARTBEATS # Track missed heartbeats per agent
354
-
355
- function check_agent_heartbeat() {
356
- local agent="$1"
357
- local task_id="$2"
358
-
359
- HB_KEY="swarm:${task_id}:${agent}:heartbeat"
360
- HB_DATA=$(redis-cli GET "$HB_KEY" 2>/dev/null || echo "")
361
-
362
- if [ -z "$HB_DATA" ] || [ "$HB_DATA" = "(nil)" ]; then
363
- return 1 # Dead
364
- else
365
- return 0 # Alive
366
- fi
367
- }
368
-
369
- function check_heartbeats_loop() {
370
- local task_id="$1"
371
- local loop_name="$2"
372
- shift 2
373
- local agents=("$@")
374
-
375
- for AGENT in "${agents[@]}"; do
376
- # Skip agents already marked as failed
377
- if [[ " ${LOOP3_FAILED_AGENTS[@]} ${LOOP2_FAILED_AGENTS[@]} " =~ " ${AGENT} " ]]; then
378
- continue
379
- fi
380
-
381
- if ! check_agent_heartbeat "$AGENT" "$task_id"; then
382
- MISSED_HEARTBEATS["$AGENT"]=$((${MISSED_HEARTBEATS["$AGENT"]:-0} + 1))
383
-
384
- if [ ${MISSED_HEARTBEATS["$AGENT"]} -ge 2 ]; then
385
- local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
386
- echo " [$timestamp] [$loop_name] ⚠️ $AGENT appears hung (no heartbeat for 60s)" >&2
387
-
388
- # Determine which loop this agent belongs to and check quorum
389
- if [[ " ${LOOP3_AGENTS} " =~ " ${AGENT} " ]]; then
390
- REMAINING=$((${#LOOP3_COMPLETED_AGENTS[@]}))
391
- REQUIRED=$(calculate_quorum "$MIN_QUORUM_LOOP3" "$LOOP3_TOTAL")
392
- elif [[ " ${LOOP2_AGENTS} " =~ " ${LOOP2_AGENTS} " ]]; then
393
- REMAINING=$((${#LOOP2_COMPLETED_AGENTS[@]}))
394
- REQUIRED=$(calculate_quorum "$MIN_QUORUM_LOOP2" "$LOOP2_TOTAL")
395
- else
396
- continue
397
- fi
398
-
399
- if [ $REMAINING -ge $REQUIRED ]; then
400
- echo " [$timestamp] [$loop_name] ℹ️ Continuing with quorum (${REMAINING}/${REQUIRED} agents)" >&2
401
- else
402
- echo " [$timestamp] [$loop_name] ⚠️ Cannot meet quorum without $AGENT (${REMAINING}/${REQUIRED})" >&2
403
- fi
404
- fi
405
- else
406
- MISSED_HEARTBEATS["$AGENT"]=0 # Reset counter
407
- fi
408
- done
409
- }
410
-
411
- function start_heartbeat_monitor() {
412
- local task_id="$1"
413
- local loop_name="$2"
414
- shift 2
415
- local agents=("$@")
416
-
417
- # Create marker file for this monitor
418
- local monitor_marker="/tmp/heartbeat-monitor-${task_id}-${loop_name}.active"
419
- touch "$monitor_marker"
420
-
421
- (
422
- while [ -f "$monitor_marker" ]; do
423
- # Check for shutdown
424
- if [ "$SHUTDOWN_REQUESTED" -eq 1 ]; then
425
- break
426
- fi
427
-
428
- check_heartbeats_loop "$task_id" "$loop_name" "${agents[@]}"
429
- sleep 30
430
- done
431
- ) &
432
-
433
- echo "$!" # Return PID
434
- }
435
-
436
- function stop_heartbeat_monitor() {
437
- local task_id="$1"
438
- local loop_name="$2"
439
- local monitor_pid="$3"
440
-
441
- # Remove marker file to stop the monitor loop
442
- rm -f "/tmp/heartbeat-monitor-${task_id}-${loop_name}.active"
443
-
444
- # Kill monitor process if still running
445
- if [ -n "$monitor_pid" ] && kill -0 "$monitor_pid" 2>/dev/null; then
446
- kill "$monitor_pid" 2>/dev/null || true
447
- wait "$monitor_pid" 2>/dev/null || true
448
- fi
449
- }
450
-
451
- ##############################################################################
452
- # Get Agent-Specific Timeout
453
- ##############################################################################
454
- function get_agent_timeout() {
455
- local agent="$1"
456
- local task_id="$2"
457
-
458
- # Use get-agent-timeout.sh helper script
459
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
460
- AGENT_TIMEOUT=$("$SCRIPT_DIR/get-agent-timeout.sh" --task-id "$task_id" --agent-id "$agent" 2>/dev/null || echo "$TIMEOUT")
461
-
462
- echo "$AGENT_TIMEOUT"
463
- }
464
-
465
- ##############################################################################
466
- # BLPOP with Retry Logic
467
- ##############################################################################
468
- function blpop_with_retry() {
469
- local agent="$1"
470
- local done_key="$2"
471
- local timeout="$3"
472
- local retry_count="$4"
473
- local retry_delay="$5"
474
-
475
- for ATTEMPT in $(seq 1 $retry_count); do
476
- # Check for shutdown before attempting BLPOP
477
- if [ "$SHUTDOWN_REQUESTED" -eq 1 ]; then
478
- echo " [SHUTDOWN] Aborting BLPOP for $agent" >&2
479
- return 1
480
- fi
481
-
482
- # Use Redis's native BLPOP timeout instead of shell timeout command
483
- # This allows SIGTERM to properly interrupt the process
484
- RESULT=$(redis-cli blpop "$done_key" "$timeout" 2>/dev/null || echo "")
485
-
486
- if [ -n "$RESULT" ]; then
487
- echo "$RESULT"
488
- return 0 # Success
489
- fi
490
-
491
- # Check for shutdown after BLPOP timeout
492
- if [ "$SHUTDOWN_REQUESTED" -eq 1 ]; then
493
- echo " [SHUTDOWN] Aborting retry for $agent" >&2
494
- return 1
495
- fi
496
-
497
- # Log retry attempt (to stderr so it's visible during command substitution)
498
- local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
499
- echo " [$timestamp] ⚠️ BLPOP attempt $ATTEMPT/$retry_count failed for $agent" >&2
500
-
501
- if [ $ATTEMPT -lt $retry_count ]; then
502
- # METRICS: Increment retry counter
503
- redis-cli INCR "swarm:${TASK_ID}:metrics:retry_count" >/dev/null
504
-
505
- retry_with_backoff "$agent" "$ATTEMPT" "$retry_count" "$retry_delay" >&2
506
- else
507
- # Final failure - write to DLQ
508
- echo " [$timestamp] ❌ FINAL FAILURE: $agent after $retry_count attempts" >&2
509
- write_to_dlq "$agent" "timeout_after_retries" "$retry_count"
510
- return 1
511
- fi
512
- done
513
-
514
- return 1
515
- }
516
-
517
- echo "=== CFN Loop Orchestration ==="
518
- echo "Task ID: $TASK_ID"
519
- echo "Mode: $MODE (Gate: $GATE, Consensus: $CONSENSUS)"
520
- echo "Max Iterations: $MAX_ITERATIONS"
521
- echo ""
522
-
523
- # Initialize swarm using general Redis coordination primitive
524
- SWARM_ID="swarm-${TASK_ID}"
525
- ALL_AGENTS="${LOOP3_AGENTS},${LOOP2_AGENTS},${PRODUCT_OWNER}"
526
-
527
- # Build CFN-specific metadata
528
- CFN_METADATA=$(cat <<EOF
529
- {
530
- "mode": "$MODE",
531
- "loop3_agents": "$LOOP3_AGENTS",
532
- "loop2_agents": "$LOOP2_AGENTS",
533
- "product_owner": "$PRODUCT_OWNER",
534
- "workflow_type": "cfn_loop"
535
- }
536
- EOF
537
- )
538
-
539
- # Use general init-swarm primitive
540
- ./.claude/skills/redis-coordination/init-swarm.sh \
541
- --swarm-id "$SWARM_ID" \
542
- --agents "$ALL_AGENTS" \
543
- --task-id "$TASK_ID" \
544
- --topology "hierarchical" \
545
- --metadata "$CFN_METADATA" > /dev/null
546
-
547
- # Start shutdown monitor in background
548
- start_shutdown_monitor "$TASK_ID"
549
-
550
- echo ""
551
-
552
- # Iteration loop
553
- for ITERATION in $(seq 1 $MAX_ITERATIONS); do
554
- echo "=== Iteration $ITERATION/$MAX_ITERATIONS ==="
555
-
556
- # METRICS: Iteration start timestamp
557
- ITERATION_START=$(date +%s%N | cut -b1-13) # milliseconds
558
- redis-cli LPUSH "swarm:${TASK_ID}:metrics:iteration_start" "$ITERATION_START" >/dev/null
559
-
560
- # Step 1: Spawn Loop 3 agents via CLI
561
- echo "[Loop 3] Spawning implementers via CLI..."
562
- IFS=',' read -ra AGENTS <<< "$LOOP3_AGENTS"
563
-
564
- for AGENT in "${AGENTS[@]}"; do
565
- echo " Spawning: npx cfn-spawn agent $AGENT --task-id $TASK_ID --iteration $ITERATION"
566
-
567
- # Spawn agent in background via CLI (using cfn-spawn pattern)
568
- npx cfn-spawn agent "$AGENT" \
569
- --task-id "$TASK_ID" \
570
- --iteration "$ITERATION" \
571
- --context "Loop 3 implementation" \
572
- --mode "$MODE" &
573
-
574
- AGENT_PID=$!
575
- echo " ✅ Spawned $AGENT (PID: $AGENT_PID)"
576
- done
577
-
578
- echo ""
579
-
580
- # Step 2: Wait for Loop 3 agents to complete
581
- echo "[Loop 3] Waiting for implementers to complete..."
582
-
583
- LOOP3_TOTAL=${#AGENTS[@]}
584
- LOOP3_REQUIRED=$(calculate_quorum "$MIN_QUORUM_LOOP3" "$LOOP3_TOTAL")
585
- LOOP3_COMPLETED_AGENTS=()
586
- LOOP3_FAILED_AGENTS=()
587
-
588
- echo "[Loop 3] Quorum: $LOOP3_REQUIRED/$LOOP3_TOTAL agents required"
589
-
590
- # Start Loop 3 heartbeat monitor
591
- echo "[Loop 3] Starting heartbeat monitor (checking every 30s)..."
592
- LOOP3_HEARTBEAT_MONITOR_PID=$(start_heartbeat_monitor "$TASK_ID" "loop3" "${AGENTS[@]}")
593
-
594
- for AGENT in "${AGENTS[@]}"; do
595
- DONE_KEY="swarm:${TASK_ID}:${AGENT}:done"
596
-
597
- # Get agent-specific timeout
598
- AGENT_TIMEOUT=$(get_agent_timeout "$AGENT" "$TASK_ID")
599
- echo " Waiting for $AGENT (timeout: ${AGENT_TIMEOUT}s)..."
600
-
601
- # METRICS: Agent latency start
602
- AGENT_START=$(date +%s%N | cut -b1-13)
603
-
604
- # BLPOP with retry logic using agent-specific timeout
605
- if RESULT=$(blpop_with_retry "$AGENT" "$DONE_KEY" "$AGENT_TIMEOUT" "$RETRY_COUNT" "$RETRY_DELAY"); then
606
- # METRICS: Agent latency end
607
- AGENT_END=$(date +%s%N | cut -b1-13)
608
- LATENCY=$((AGENT_END - AGENT_START))
609
-
610
- # Store latency metric with agent label and loop context
611
- METRIC=$(jq -nc \
612
- --arg agent "$AGENT" \
613
- --arg latency "$LATENCY" \
614
- --arg loop "loop3" \
615
- --arg iteration "$ITERATION" \
616
- '{agent: $agent, latency_ms: ($latency | tonumber), loop: $loop, iteration: ($iteration | tonumber)}')
617
- echo "$METRIC" | redis-cli -x LPUSH "swarm:${TASK_ID}:metrics:agent_latency" >/dev/null
618
-
619
- echo " ✅ $AGENT complete (${LATENCY}ms)"
620
- LOOP3_COMPLETED_AGENTS+=("$AGENT")
621
- else
622
- echo " ❌ $AGENT failed after $RETRY_COUNT retry attempts"
623
- LOOP3_FAILED_AGENTS+=("$AGENT")
624
-
625
- # METRICS: Increment timeout counter
626
- redis-cli INCR "swarm:${TASK_ID}:metrics:timeout_count" >/dev/null
627
- fi
628
- done
629
-
630
- # Stop Loop 3 heartbeat monitor
631
- echo "[Loop 3] Stopping heartbeat monitor..."
632
- stop_heartbeat_monitor "$TASK_ID" "loop3" "$LOOP3_HEARTBEAT_MONITOR_PID"
633
- LOOP3_HEARTBEAT_MONITOR_PID=""
634
-
635
- # Validate quorum
636
- if [ ${#LOOP3_COMPLETED_AGENTS[@]} -ge "$LOOP3_REQUIRED" ]; then
637
- echo "[Loop 3] ✅ Quorum met: ${#LOOP3_COMPLETED_AGENTS[@]}/$LOOP3_REQUIRED agents completed"
638
- if [ ${#LOOP3_FAILED_AGENTS[@]} -gt 0 ]; then
639
- echo "[Loop 3] ⚠️ Failed agents (continuing with quorum): ${LOOP3_FAILED_AGENTS[*]}"
640
-
641
- # METRICS: Increment quorum fallback counter
642
- redis-cli INCR "swarm:${TASK_ID}:metrics:quorum_fallback" >/dev/null
643
- fi
644
- else
645
- echo "[Loop 3] ❌ Quorum FAILED: ${#LOOP3_COMPLETED_AGENTS[@]} < $LOOP3_REQUIRED"
646
- echo "[Loop 3] Failed agents: ${LOOP3_FAILED_AGENTS[*]}"
647
- exit 1
648
- fi
649
- echo ""
650
-
651
- # Step 2: Collect Loop 3 confidence scores (only from completed agents)
652
- echo "[Loop 3] Collecting confidence scores from ${#LOOP3_COMPLETED_AGENTS[@]} agents..."
653
- LOOP3_COMPLETED_IDS=$(IFS=','; echo "${LOOP3_COMPLETED_AGENTS[*]}")
654
- LOOP3_CONSENSUS=$(./.claude/skills/redis-coordination/invoke-waiting-mode.sh collect \
655
- --task-id "$TASK_ID" \
656
- --agent-ids "$LOOP3_COMPLETED_IDS" | tail -1)
657
-
658
- echo "[Loop 3] Average confidence: $LOOP3_CONSENSUS (from ${#LOOP3_COMPLETED_AGENTS[@]}/${LOOP3_TOTAL} agents)"
659
-
660
- # METRICS: Store Loop 3 consensus score
661
- LOOP3_METRIC=$(jq -nc \
662
- --arg consensus "$LOOP3_CONSENSUS" \
663
- --arg iteration "$ITERATION" \
664
- '{consensus: ($consensus | tonumber), iteration: ($iteration | tonumber)}')
665
- echo "$LOOP3_METRIC" | redis-cli -x LPUSH "swarm:${TASK_ID}:metrics:loop3_consensus" >/dev/null
666
-
667
- # Gate check
668
- if (( $(echo "$LOOP3_CONSENSUS < $GATE" | bc -l) )); then
669
- echo "❌ Gate FAILED ($LOOP3_CONSENSUS < $GATE)"
670
- echo "Decision: RELAUNCH iteration $((ITERATION + 1))"
671
-
672
- # METRICS: Increment gate failure counter
673
- redis-cli INCR "swarm:${TASK_ID}:metrics:gate_failures" >/dev/null
674
-
675
- # Wake Loop 3 agents for next iteration with MEDIUM priority (priority=30)
676
- IFS=',' read -ra AGENTS <<< "$LOOP3_AGENTS"
677
- for AGENT in "${AGENTS[@]}"; do
678
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh wake \
679
- --task-id "$TASK_ID" \
680
- --agent-id "$AGENT" \
681
- --priority 30 \
682
- --reason "gate_failed" \
683
- --iteration $((ITERATION + 1)) \
684
- --feedback "Improve confidence from $LOOP3_CONSENSUS to >$GATE"
685
- done
686
-
687
- continue # Next iteration
688
- fi
689
-
690
- echo "✅ Gate PASSED ($LOOP3_CONSENSUS >= $GATE)"
691
- echo ""
692
-
693
- # Signal Loop 2 validators that gate has passed (they can start work)
694
- GATE_PASS_KEY="swarm:${TASK_ID}:gate-passed"
695
- redis-cli lpush "$GATE_PASS_KEY" "{\"iteration\": $ITERATION, \"loop3_confidence\": $LOOP3_CONSENSUS}" > /dev/null
696
- echo "[Loop 3] Gate pass signal sent to Loop 2 validators"
697
- echo ""
698
-
699
- # Step 3: Spawn Loop 2 validators via CLI
700
- echo "[Loop 2] Spawning validators via CLI..."
701
- IFS=',' read -ra VALIDATORS <<< "$LOOP2_AGENTS"
702
-
703
- for VALIDATOR in "${VALIDATORS[@]}"; do
704
- echo " Spawning: npx cfn-spawn agent $VALIDATOR --task-id $TASK_ID --iteration $ITERATION"
705
-
706
- # Spawn validator in background via CLI (using cfn-spawn pattern)
707
- npx cfn-spawn agent "$VALIDATOR" \
708
- --task-id "$TASK_ID" \
709
- --iteration "$ITERATION" \
710
- --context "Loop 2 validation" \
711
- --mode "$MODE" &
712
-
713
- VALIDATOR_PID=$!
714
- echo " ✅ Spawned $VALIDATOR (PID: $VALIDATOR_PID)"
715
- done
716
-
717
- echo ""
718
-
719
- # Step 4: Wait for Loop 2 validators to complete
720
- echo "[Loop 2] Waiting for validators to complete..."
721
-
722
- LOOP2_TOTAL=${#VALIDATORS[@]}
723
- LOOP2_REQUIRED=$(calculate_quorum "$MIN_QUORUM_LOOP2" "$LOOP2_TOTAL")
724
- LOOP2_COMPLETED_AGENTS=()
725
- LOOP2_FAILED_AGENTS=()
726
-
727
- echo "[Loop 2] Quorum: $LOOP2_REQUIRED/$LOOP2_TOTAL agents required"
728
-
729
- # Start Loop 2 heartbeat monitor
730
- echo "[Loop 2] Starting heartbeat monitor (checking every 30s)..."
731
- LOOP2_HEARTBEAT_MONITOR_PID=$(start_heartbeat_monitor "$TASK_ID" "loop2" "${VALIDATORS[@]}")
732
-
733
- for VALIDATOR in "${VALIDATORS[@]}"; do
734
- DONE_KEY="swarm:${TASK_ID}:${VALIDATOR}:done"
735
-
736
- # Get agent-specific timeout
737
- AGENT_TIMEOUT=$(get_agent_timeout "$VALIDATOR" "$TASK_ID")
738
- echo " Waiting for $VALIDATOR (timeout: ${AGENT_TIMEOUT}s)..."
739
-
740
- # METRICS: Agent latency start
741
- AGENT_START=$(date +%s%N | cut -b1-13)
742
-
743
- # BLPOP with retry logic using agent-specific timeout
744
- if RESULT=$(blpop_with_retry "$VALIDATOR" "$DONE_KEY" "$AGENT_TIMEOUT" "$RETRY_COUNT" "$RETRY_DELAY"); then
745
- # METRICS: Agent latency end
746
- AGENT_END=$(date +%s%N | cut -b1-13)
747
- LATENCY=$((AGENT_END - AGENT_START))
748
-
749
- # Store latency metric with agent label and loop context
750
- METRIC=$(jq -nc \
751
- --arg agent "$VALIDATOR" \
752
- --arg latency "$LATENCY" \
753
- --arg loop "loop2" \
754
- --arg iteration "$ITERATION" \
755
- '{agent: $agent, latency_ms: ($latency | tonumber), loop: $loop, iteration: ($iteration | tonumber)}')
756
- echo "$METRIC" | redis-cli -x LPUSH "swarm:${TASK_ID}:metrics:agent_latency" >/dev/null
757
-
758
- echo " ✅ $VALIDATOR complete (${LATENCY}ms)"
759
- LOOP2_COMPLETED_AGENTS+=("$VALIDATOR")
760
- else
761
- echo " ❌ $VALIDATOR failed after $RETRY_COUNT retry attempts"
762
- LOOP2_FAILED_AGENTS+=("$VALIDATOR")
763
-
764
- # METRICS: Increment timeout counter
765
- redis-cli INCR "swarm:${TASK_ID}:metrics:timeout_count" >/dev/null
766
- fi
767
- done
768
-
769
- # Stop Loop 2 heartbeat monitor
770
- echo "[Loop 2] Stopping heartbeat monitor..."
771
- stop_heartbeat_monitor "$TASK_ID" "loop2" "$LOOP2_HEARTBEAT_MONITOR_PID"
772
- LOOP2_HEARTBEAT_MONITOR_PID=""
773
-
774
- # Validate quorum
775
- if [ ${#LOOP2_COMPLETED_AGENTS[@]} -ge "$LOOP2_REQUIRED" ]; then
776
- echo "[Loop 2] ✅ Quorum met: ${#LOOP2_COMPLETED_AGENTS[@]}/$LOOP2_REQUIRED agents completed"
777
- if [ ${#LOOP2_FAILED_AGENTS[@]} -gt 0 ]; then
778
- echo "[Loop 2] ⚠️ Failed agents (continuing with quorum): ${LOOP2_FAILED_AGENTS[*]}"
779
-
780
- # METRICS: Increment quorum fallback counter
781
- redis-cli INCR "swarm:${TASK_ID}:metrics:quorum_fallback" >/dev/null
782
- fi
783
- else
784
- echo "[Loop 2] ❌ Quorum FAILED: ${#LOOP2_COMPLETED_AGENTS[@]} < $LOOP2_REQUIRED"
785
- echo "[Loop 2] Failed agents: ${LOOP2_FAILED_AGENTS[*]}"
786
- exit 1
787
- fi
788
- echo ""
789
-
790
- # Step 4: Collect Loop 2 consensus scores (only from completed agents)
791
- echo "[Loop 2] Collecting consensus scores from ${#LOOP2_COMPLETED_AGENTS[@]} agents..."
792
- LOOP2_COMPLETED_IDS=$(IFS=','; echo "${LOOP2_COMPLETED_AGENTS[*]}")
793
- LOOP2_CONSENSUS=$(./.claude/skills/redis-coordination/invoke-waiting-mode.sh collect \
794
- --task-id "$TASK_ID" \
795
- --agent-ids "$LOOP2_COMPLETED_IDS" | tail -1)
796
-
797
- echo "[Loop 2] Average consensus: $LOOP2_CONSENSUS (from ${#LOOP2_COMPLETED_AGENTS[@]}/${LOOP2_TOTAL} agents)"
798
-
799
- # METRICS: Store Loop 2 consensus score
800
- LOOP2_METRIC=$(jq -nc \
801
- --arg consensus "$LOOP2_CONSENSUS" \
802
- --arg iteration "$ITERATION" \
803
- '{consensus: ($consensus | tonumber), iteration: ($iteration | tonumber)}')
804
- echo "$LOOP2_METRIC" | redis-cli -x LPUSH "swarm:${TASK_ID}:metrics:loop2_consensus" >/dev/null
805
-
806
- # Consensus check
807
- if (( $(echo "$LOOP2_CONSENSUS >= $CONSENSUS" | bc -l) )); then
808
- echo "✅ CONSENSUS REACHED ($LOOP2_CONSENSUS >= $CONSENSUS)"
809
- echo ""
810
-
811
- # Wake Product Owner with CRITICAL priority (priority=5)
812
- echo "[Coordinator] Waking Product Owner with CRITICAL priority..."
813
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh wake \
814
- --task-id "$TASK_ID" \
815
- --agent-id "$PRODUCT_OWNER" \
816
- --priority 5 \
817
- --reason "consensus_ready" \
818
- --iteration "$ITERATION" \
819
- --feedback "Loop 2 consensus: $LOOP2_CONSENSUS"
820
-
821
- # Wait for Product Owner decision
822
- echo "[Product Owner] Waiting for GOAP decision..."
823
- DECISION_KEY="swarm:${TASK_ID}:${PRODUCT_OWNER}:decision"
824
-
825
- # Get agent-specific timeout for Product Owner
826
- PO_TIMEOUT=$(get_agent_timeout "$PRODUCT_OWNER" "$TASK_ID")
827
- echo "[Product Owner] Using timeout: ${PO_TIMEOUT}s"
828
-
829
- # BLPOP with retry logic for decision using agent-specific timeout
830
- if ! DECISION_RESULT=$(blpop_with_retry "$PRODUCT_OWNER" "$DECISION_KEY" "$PO_TIMEOUT" "$RETRY_COUNT" "$RETRY_DELAY"); then
831
- echo "❌ ERROR: Product Owner failed after $RETRY_COUNT retry attempts"
832
- exit 1
833
- fi
834
-
835
- # Extract decision from BLPOP result (format: key value)
836
- DECISION=$(echo "$DECISION_RESULT" | tail -1)
837
-
838
- DECISION_TYPE=$(echo "$DECISION" | jq -r '.decision')
839
-
840
- echo "[Product Owner] Decision: $DECISION_TYPE"
841
-
842
- if [ "$DECISION_TYPE" = "PROCEED" ]; then
843
- echo ""
844
- echo "🎉 CFN Loop Complete!"
845
- echo "Final Consensus: $LOOP2_CONSENSUS (Iteration $ITERATION)"
846
-
847
- # METRICS: Iteration end timestamp and duration
848
- ITERATION_END=$(date +%s%N | cut -b1-13)
849
- ITERATION_DURATION=$((ITERATION_END - ITERATION_START))
850
-
851
- # Store final iteration duration metric
852
- DURATION_METRIC=$(jq -nc \
853
- --arg duration "$ITERATION_DURATION" \
854
- --arg iteration "$ITERATION" \
855
- '{duration_ms: ($duration | tonumber), iteration: ($iteration | tonumber)}')
856
- echo "$DURATION_METRIC" | redis-cli -x LPUSH "swarm:${TASK_ID}:metrics:iteration_duration" >/dev/null
857
-
858
- # Wake all agents with completion signal - CRITICAL priority (priority=5)
859
- echo "[Coordinator] Waking all agents with CRITICAL priority for completion..."
860
- IFS=',' read -ra ALL_AGENTS <<< "$LOOP3_AGENTS,$LOOP2_AGENTS"
861
- for AGENT in "${ALL_AGENTS[@]}"; do
862
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh wake \
863
- --task-id "$TASK_ID" \
864
- --agent-id "$AGENT" \
865
- --priority 5 \
866
- --reason "cfn_complete" \
867
- --iteration "$ITERATION"
868
- done
869
-
870
- # Use general complete-swarm primitive
871
- ./.claude/skills/redis-coordination/complete-swarm.sh \
872
- --swarm-id "$SWARM_ID" \
873
- --final-metric "final_consensus=$LOOP2_CONSENSUS" \
874
- --final-metric "total_iterations=$ITERATION" > /dev/null
875
-
876
- exit 0
877
- fi
878
-
879
- else
880
- echo "⚠️ CONSENSUS NOT REACHED ($LOOP2_CONSENSUS < $CONSENSUS)"
881
- echo "Decision: RELAUNCH iteration $((ITERATION + 1))"
882
- echo ""
883
- fi
884
-
885
- # METRICS: Iteration end timestamp and duration (for relaunch scenario)
886
- ITERATION_END=$(date +%s%N | cut -b1-13)
887
- ITERATION_DURATION=$((ITERATION_END - ITERATION_START))
888
-
889
- # Store iteration duration metric
890
- DURATION_METRIC=$(jq -nc \
891
- --arg duration "$ITERATION_DURATION" \
892
- --arg iteration "$ITERATION" \
893
- '{duration_ms: ($duration | tonumber), iteration: ($iteration | tonumber)}')
894
- echo "$DURATION_METRIC" | redis-cli -x LPUSH "swarm:${TASK_ID}:metrics:iteration_duration" >/dev/null
895
-
896
- # Relaunch next iteration
897
- if [ $ITERATION -eq $MAX_ITERATIONS ]; then
898
- echo "❌ Maximum iterations ($MAX_ITERATIONS) reached without consensus"
899
- exit 1
900
- fi
901
-
902
- # Wake agents for next iteration with role-based priorities
903
- echo "[Coordinator] Waking agents for iteration $((ITERATION + 1)) with priorities..."
904
-
905
- # Wake Loop 3 implementers with MEDIUM priority (priority=30)
906
- IFS=',' read -ra LOOP3_ARRAY <<< "$LOOP3_AGENTS"
907
- for AGENT in "${LOOP3_ARRAY[@]}"; do
908
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh wake \
909
- --task-id "$TASK_ID" \
910
- --agent-id "$AGENT" \
911
- --priority 30 \
912
- --reason "cfn_loop_iteration" \
913
- --iteration $((ITERATION + 1)) \
914
- --feedback "Improve consensus from $LOOP2_CONSENSUS to >=$CONSENSUS"
915
- done
916
-
917
- # Wake Loop 2 validators with HIGH priority (priority=10)
918
- IFS=',' read -ra LOOP2_ARRAY <<< "$LOOP2_AGENTS"
919
- for AGENT in "${LOOP2_ARRAY[@]}"; do
920
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh wake \
921
- --task-id "$TASK_ID" \
922
- --agent-id "$AGENT" \
923
- --priority 10 \
924
- --reason "cfn_loop_iteration" \
925
- --iteration $((ITERATION + 1)) \
926
- --feedback "Improve consensus from $LOOP2_CONSENSUS to >=$CONSENSUS"
927
- done
928
-
929
- echo ""
930
- done
931
-
932
- echo "❌ CFN Loop failed after $MAX_ITERATIONS iterations"
933
- exit 1