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,103 @@
1
+ #!/bin/bash
2
+ ##############################################################################
3
+ # CFN Loop Log Query Tool
4
+ #
5
+ # Usage:
6
+ # ./query-logs.sh --task-id <id> [options]
7
+ #
8
+ # Parameters:
9
+ # --task-id Task/swarm identifier (required)
10
+ # --event-type Filter by event type (optional)
11
+ # --level Filter by log level: DEBUG, INFO, WARN, ERROR (optional)
12
+ # --loop Filter by loop: loop3, loop2, product_owner, coordinator (optional)
13
+ # --agent-id Filter by agent ID (optional)
14
+ # --iteration Filter by iteration number (optional)
15
+ # --limit Maximum number of results (default: 100)
16
+ # --format Output format: json, csv, table (default: json)
17
+ #
18
+ # Examples:
19
+ # # Get all logs for a task
20
+ # ./query-logs.sh --task-id "cfn-task-123"
21
+ #
22
+ # # Get errors only
23
+ # ./query-logs.sh --task-id "cfn-task-123" --level ERROR
24
+ #
25
+ # # Get Loop 3 agent spawns
26
+ # ./query-logs.sh --task-id "cfn-task-123" --event-type agent_spawn --loop loop3
27
+ #
28
+ # # Get latest 10 events in table format
29
+ # ./query-logs.sh --task-id "cfn-task-123" --limit 10 --format table
30
+ ##############################################################################
31
+
32
+ set -euo pipefail
33
+
34
+ # Configuration
35
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
36
+ DB_PATH="${DB_PATH:-${SCRIPT_DIR}/../../data/cfn-loop.db}"
37
+
38
+ # Parameters
39
+ TASK_ID=""
40
+ EVENT_TYPE=""
41
+ LEVEL=""
42
+ LOOP=""
43
+ AGENT_ID=""
44
+ ITERATION=""
45
+ LIMIT=100
46
+ FORMAT="json"
47
+
48
+ # Parse arguments
49
+ while [[ $# -gt 0 ]]; do
50
+ case $1 in
51
+ --task-id) TASK_ID="$2"; shift 2 ;;
52
+ --event-type) EVENT_TYPE="$2"; shift 2 ;;
53
+ --level) LEVEL="$2"; shift 2 ;;
54
+ --loop) LOOP="$2"; shift 2 ;;
55
+ --agent-id) AGENT_ID="$2"; shift 2 ;;
56
+ --iteration) ITERATION="$2"; shift 2 ;;
57
+ --limit) LIMIT="$2"; shift 2 ;;
58
+ --format) FORMAT="$2"; shift 2 ;;
59
+ *) echo "Unknown option: $1" >&2; exit 1 ;;
60
+ esac
61
+ done
62
+
63
+ # Validate required parameters
64
+ if [ -z "$TASK_ID" ]; then
65
+ echo "Error: --task-id is required" >&2
66
+ echo "Usage: $0 --task-id <id> [--event-type <type>] [--level <level>] [--limit <n>] [--format json|csv|table]" >&2
67
+ exit 1
68
+ fi
69
+
70
+ # Check if database exists
71
+ if [ ! -f "$DB_PATH" ]; then
72
+ echo "Error: Database not found at $DB_PATH" >&2
73
+ echo "No logs have been written yet." >&2
74
+ exit 1
75
+ fi
76
+
77
+ # Build query
78
+ QUERY="SELECT * FROM cfn_loop_logs WHERE task_id = '$TASK_ID'"
79
+
80
+ [ -n "$EVENT_TYPE" ] && QUERY="$QUERY AND event_type = '$EVENT_TYPE'"
81
+ [ -n "$LEVEL" ] && QUERY="$QUERY AND level = '$LEVEL'"
82
+ [ -n "$LOOP" ] && QUERY="$QUERY AND loop = '$LOOP'"
83
+ [ -n "$AGENT_ID" ] && QUERY="$QUERY AND agent_id = '$AGENT_ID'"
84
+ [ -n "$ITERATION" ] && QUERY="$QUERY AND iteration = $ITERATION"
85
+
86
+ QUERY="$QUERY ORDER BY timestamp DESC LIMIT $LIMIT"
87
+
88
+ # Execute query with selected format
89
+ case "$FORMAT" in
90
+ json)
91
+ sqlite3 -json "$DB_PATH" "$QUERY"
92
+ ;;
93
+ csv)
94
+ sqlite3 -csv "$DB_PATH" "$QUERY"
95
+ ;;
96
+ table)
97
+ sqlite3 -column -header "$DB_PATH" "$QUERY"
98
+ ;;
99
+ *)
100
+ echo "Error: Invalid format '$FORMAT'. Use: json, csv, or table" >&2
101
+ exit 1
102
+ ;;
103
+ esac
@@ -0,0 +1,58 @@
1
+ #!/bin/bash
2
+
3
+ # Redis Context Retrieval Primitive
4
+ # Updated interface to match orchestrator expectations
5
+ # Supports both legacy (--key) and new (--task-id --key --namespace) interfaces
6
+
7
+ # Initialize variables
8
+ task_id=""
9
+ key=""
10
+ namespace="swarm"
11
+
12
+ # Parse arguments
13
+ while [[ $# -gt 0 ]]; do
14
+ case "$1" in
15
+ --task-id)
16
+ task_id="$2"
17
+ shift 2
18
+ ;;
19
+ --key)
20
+ key="$2"
21
+ shift 2
22
+ ;;
23
+ --namespace)
24
+ namespace="$2"
25
+ shift 2
26
+ ;;
27
+ *)
28
+ echo "Unknown argument: $1" >&2
29
+ exit 1
30
+ ;;
31
+ esac
32
+ done
33
+
34
+ # Construct Redis key based on interface mode
35
+ if [[ -n "$task_id" ]]; then
36
+ # New interface: {namespace}:{task_id}:{key}
37
+ redis_key="${namespace}:${task_id}:${key}"
38
+ else
39
+ # Legacy interface: key is used directly
40
+ redis_key="$key"
41
+ fi
42
+
43
+ # Validate required arguments
44
+ if [[ -z "$redis_key" ]]; then
45
+ echo "Error: Key is required" >&2
46
+ echo "Usage: $0 --task-id <id> --key <key> [--namespace <ns>]" >&2
47
+ echo " or: $0 --key <full-key>" >&2
48
+ exit 1
49
+ fi
50
+
51
+ # Retrieve context from Redis
52
+ context=$(redis-cli get "$redis_key" 2>/dev/null)
53
+
54
+ # Print the context (if exists)
55
+ echo "$context"
56
+
57
+ # Exit successfully
58
+ exit 0
@@ -0,0 +1,371 @@
1
+ #!/bin/bash
2
+
3
+ # select-specialist-agent.sh
4
+ # Adaptive agent specialization based on feedback type
5
+ # Part of CFN Loop Robustness & Validation Enhancement
6
+
7
+ set -euo pipefail
8
+
9
+ # Script configuration
10
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
+ SPECIALIST_REGISTRY="$SCRIPT_DIR/specialist-registry.json"
12
+
13
+ # Default agent when no specialist match found
14
+ DEFAULT_AGENT="general-dev"
15
+
16
+ # Colors for output
17
+ RED='\033[0;31m'
18
+ GREEN='\033[0;32m'
19
+ YELLOW='\033[1;33m'
20
+ BLUE='\033[0;34m'
21
+ NC='\033[0m' # No Color
22
+
23
+ # Logging function
24
+ log() {
25
+ echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')] SPECIALIST-SELECTOR:${NC} $1"
26
+ }
27
+
28
+ error() {
29
+ echo -e "${RED}[ERROR]${NC} $1" >&2
30
+ }
31
+
32
+ success() {
33
+ echo -e "${GREEN}[SUCCESS]${NC} $1"
34
+ }
35
+
36
+ warning() {
37
+ echo -e "${YELLOW}[WARNING]${NC} $1"
38
+ }
39
+
40
+ # Show usage information
41
+ show_usage() {
42
+ cat << EOF
43
+ Adaptive Agent Specialist Selector
44
+
45
+ USAGE:
46
+ $0 --feedback-type <TYPE> [OPTIONS]
47
+ $0 --feedback-text <TEXT> [OPTIONS]
48
+
49
+ REQUIRED:
50
+ --feedback-type <TYPE> Direct feedback category (CRITICAL|WARNING|SUGGESTION|PERFORMANCE|SECURITY|ARCHITECTURE|TESTING|DOCUMENTATION)
51
+ --feedback-text <TEXT> Analyze feedback text to categorize
52
+
53
+ OPTIONS:
54
+ --task-id <ID> Task identifier for logging
55
+ --iteration <N> Iteration number (default: 1)
56
+ --confidence <SCORE> Confidence threshold for auto-selection (default: 0.7)
57
+ --default-agent <AGENT> Fallback agent when no match (default: general-dev)
58
+ --dry-run Show selection without spawning
59
+ --verbose Detailed logging output
60
+ --help Show this help message
61
+
62
+ EXAMPLES:
63
+ # Direct feedback type selection
64
+ $0 --feedback-type SECURITY --task-id "task-123" --iteration 2
65
+
66
+ # Analyze feedback text automatically
67
+ $0 --feedback-text "Memory leak detected in authentication module" --task-id "task-123"
68
+
69
+ # Dry run to test selection logic
70
+ $0 --feedback-text "Database query is slow" --dry-run --verbose
71
+
72
+ SPECIALIST CATEGORIES:
73
+ SECURITY → security-specialist
74
+ PERFORMANCE → performance-specialist
75
+ ARCHITECTURE → architecture-specialist
76
+ TESTING → testing-specialist
77
+ DOCUMENTATION → documentation-specialist
78
+ CRITICAL → security-specialist (default for critical issues)
79
+ WARNING → architecture-specialist (default for warnings)
80
+ SUGGESTION → general-dev (default for suggestions)
81
+
82
+ EOF
83
+ }
84
+
85
+ # Parse command line arguments
86
+ parse_args() {
87
+ FEEDBACK_TYPE=""
88
+ FEEDBACK_TEXT=""
89
+ TASK_ID=""
90
+ ITERATION="1"
91
+ CONFIDENCE="0.7"
92
+ DRY_RUN=false
93
+ VERBOSE=false
94
+
95
+ while [[ $# -gt 0 ]]; do
96
+ case $1 in
97
+ --feedback-type)
98
+ FEEDBACK_TYPE="$2"
99
+ shift 2
100
+ ;;
101
+ --feedback-text)
102
+ FEEDBACK_TEXT="$2"
103
+ shift 2
104
+ ;;
105
+ --task-id)
106
+ TASK_ID="$2"
107
+ shift 2
108
+ ;;
109
+ --iteration)
110
+ ITERATION="$2"
111
+ shift 2
112
+ ;;
113
+ --confidence)
114
+ CONFIDENCE="$2"
115
+ shift 2
116
+ ;;
117
+ --default-agent)
118
+ DEFAULT_AGENT="$2"
119
+ shift 2
120
+ ;;
121
+ --dry-run)
122
+ DRY_RUN=true
123
+ shift
124
+ ;;
125
+ --verbose)
126
+ VERBOSE=true
127
+ shift
128
+ ;;
129
+ --help)
130
+ show_usage
131
+ exit 0
132
+ ;;
133
+ *)
134
+ error "Unknown option: $1"
135
+ show_usage
136
+ exit 1
137
+ ;;
138
+ esac
139
+ done
140
+
141
+ # Validate required arguments
142
+ if [[ -z "$FEEDBACK_TYPE" && -z "$FEEDBACK_TEXT" ]]; then
143
+ error "Either --feedback-type or --feedback-text is required"
144
+ show_usage
145
+ exit 1
146
+ fi
147
+ }
148
+
149
+ # Analyze feedback text to determine category
150
+ analyze_feedback_text() {
151
+ local text="$1"
152
+ local feedback_type=""
153
+
154
+ if [[ "$VERBOSE" == true ]]; then
155
+ log "Analyzing feedback text: '$text'"
156
+ fi
157
+
158
+ # Security keywords
159
+ if echo "$text" | grep -qiE "(security|vulnerability|auth|password|token|injection|xss|csrf|encryption|ssl|tls|hack|breach|malicious)"; then
160
+ feedback_type="SECURITY"
161
+ # Performance keywords
162
+ elif echo "$text" | grep -qiE "(performance|slow|memory|leak|cpu|optimization|cache|bottleneck|latency|throughput|scale|efficiency)"; then
163
+ feedback_type="PERFORMANCE"
164
+ # Architecture keywords
165
+ elif echo "$text" | grep -qiE "(architecture|design|pattern|structure|modular|coupling|cohesion|scalability|maintainability|refactor|component)"; then
166
+ feedback_type="ARCHITECTURE"
167
+ # Testing keywords
168
+ elif echo "$text" | grep -qiE "(test|testing|coverage|unit|integration|e2e|tdd|assert|mock|fixture|spec|validate)"; then
169
+ feedback_type="TESTING"
170
+ # Documentation keywords
171
+ elif echo "$text" | grep -qiE "(documentation|doc|readme|guide|manual|comment|explain|clarify|instruction|tutorial)"; then
172
+ feedback_type="DOCUMENTATION"
173
+ # Critical severity indicators
174
+ elif echo "$text" | grep -qiE "(critical|urgent|broken|failed|crash|error|exception|blocker|showstopper)"; then
175
+ feedback_type="CRITICAL"
176
+ # Warning indicators
177
+ elif echo "$text" | grep -qiE "(warning|caution|risk|potential|should|recommend|consider|improve)"; then
178
+ feedback_type="WARNING"
179
+ else
180
+ feedback_type="SUGGESTION"
181
+ fi
182
+
183
+ if [[ "$VERBOSE" == true ]]; then
184
+ log "Detected feedback type: $feedback_type"
185
+ fi
186
+
187
+ echo "$feedback_type"
188
+ }
189
+
190
+ # Initialize specialist registry
191
+ initialize_registry() {
192
+ if [[ ! -f "$SPECIALIST_REGISTRY" ]]; then
193
+ log "Creating specialist registry"
194
+ mkdir -p "$(dirname "$SPECIALIST_REGISTRY")"
195
+ cat > "$SPECIALIST_REGISTRY" << 'EOF'
196
+ {
197
+ "specialists": {
198
+ "security": {
199
+ "agent": "security-specialist",
200
+ "keywords": ["security", "vulnerability", "auth", "password", "token", "injection", "xss", "csrf", "encryption", "ssl", "tls", "hack", "breach", "malicious"],
201
+ "feedback_types": ["SECURITY", "CRITICAL"],
202
+ "capabilities": ["Security analysis", "Vulnerability assessment", "Authentication/Authorization", "Encryption implementation", "Security testing"],
203
+ "confidence_threshold": 0.8
204
+ },
205
+ "performance": {
206
+ "agent": "performance-specialist",
207
+ "keywords": ["performance", "slow", "memory", "leak", "cpu", "optimization", "cache", "bottleneck", "latency", "throughput", "scale", "efficiency"],
208
+ "feedback_types": ["PERFORMANCE"],
209
+ "capabilities": ["Performance profiling", "Memory optimization", "Caching strategies", "Load testing", "Benchmarking"],
210
+ "confidence_threshold": 0.75
211
+ },
212
+ "architecture": {
213
+ "agent": "architecture-specialist",
214
+ "keywords": ["architecture", "design", "pattern", "structure", "modular", "coupling", "cohesion", "scalability", "maintainability", "refactor", "component"],
215
+ "feedback_types": ["ARCHITECTURE", "WARNING"],
216
+ "capabilities": ["System design", "Pattern implementation", "Refactoring", "Modularity", "Scalability planning"],
217
+ "confidence_threshold": 0.7
218
+ },
219
+ "testing": {
220
+ "agent": "testing-specialist",
221
+ "keywords": ["test", "testing", "coverage", "unit", "integration", "e2e", "tdd", "assert", "mock", "fixture", "spec", "validate"],
222
+ "feedback_types": ["TESTING"],
223
+ "capabilities": ["Test design", "Test automation", "Coverage analysis", "Test-driven development", "Quality assurance"],
224
+ "confidence_threshold": 0.75
225
+ },
226
+ "documentation": {
227
+ "agent": "documentation-specialist",
228
+ "keywords": ["documentation", "doc", "readme", "guide", "manual", "comment", "explain", "clarify", "instruction", "tutorial"],
229
+ "feedback_types": ["DOCUMENTATION"],
230
+ "capabilities": ["Technical writing", "API documentation", "User guides", "Code comments", "Tutorial creation"],
231
+ "confidence_threshold": 0.65
232
+ }
233
+ },
234
+ "fallback_mappings": {
235
+ "CRITICAL": "security",
236
+ "WARNING": "architecture",
237
+ "SUGGESTION": "general"
238
+ },
239
+ "version": "1.0.0",
240
+ "last_updated": "2025-06-17"
241
+ }
242
+ EOF
243
+ log "Specialist registry initialized at $SPECIALIST_REGISTRY"
244
+ fi
245
+ }
246
+
247
+ # Select specialist agent based on feedback type
248
+ select_specialist() {
249
+ local feedback_type="$1"
250
+ local specialist_type=""
251
+ local selected_agent=""
252
+ local confidence=""
253
+
254
+ # Normalize feedback type
255
+ feedback_type=$(echo "$feedback_type" | tr '[:lower:]' '[:upper:]')
256
+
257
+ if [[ "$VERBOSE" == true ]]; then
258
+ log "Selecting specialist for feedback type: $feedback_type"
259
+ fi
260
+
261
+ # Load specialist registry
262
+ if [[ -f "$SPECIALIST_REGISTRY" ]]; then
263
+ # Try direct mapping to specialist type
264
+ specialist_type=$(jq -r ".specialists | to_entries[] | select(.value.feedback_types[] | test(\"^$feedback_type$\"; \"i\")) | .key" "$SPECIALIST_REGISTRY" 2>/dev/null || echo "")
265
+
266
+ # If no direct match, try fallback mappings
267
+ if [[ -z "$specialist_type" ]]; then
268
+ specialist_type=$(jq -r ".fallback_mappings[\"$feedback_type\"] // empty" "$SPECIALIST_REGISTRY" 2>/dev/null || echo "")
269
+ fi
270
+
271
+ # Get agent and confidence if specialist type found
272
+ if [[ -n "$specialist_type" && "$specialist_type" != "null" ]]; then
273
+ selected_agent=$(jq -r ".specialists[\"$specialist_type\"].agent // empty" "$SPECIALIST_REGISTRY" 2>/dev/null || echo "")
274
+ confidence=$(jq -r ".specialists[\"$specialist_type\"].confidence_threshold // $CONFIDENCE" "$SPECIALIST_REGISTRY" 2>/dev/null || echo "$CONFIDENCE")
275
+ fi
276
+ fi
277
+
278
+ # Fallback to default agent if no specialist found
279
+ if [[ -z "$selected_agent" || "$selected_agent" == "null" ]]; then
280
+ selected_agent="$DEFAULT_AGENT"
281
+ confidence="$CONFIDENCE"
282
+ warning "No specialist found for feedback type '$feedback_type', using default agent: $DEFAULT_AGENT"
283
+ else
284
+ success "Selected specialist: $selected_agent (confidence: $confidence)"
285
+ fi
286
+
287
+ echo "$selected_agent:$confidence:$specialist_type"
288
+ }
289
+
290
+ # Spawn specialist agent
291
+ spawn_specialist() {
292
+ local agent="$1"
293
+ local task_id="$2"
294
+ local iteration="$3"
295
+ local specialist_type="$4"
296
+
297
+ if [[ "$DRY_RUN" == true ]]; then
298
+ log "[DRY RUN] Would spawn specialist agent: $agent"
299
+ log "[DRY RUN] Task ID: $task_id"
300
+ log "[DRY RUN] Iteration: $iteration"
301
+ log "[DRY RUN] Specialist type: $specialist_type"
302
+ return 0
303
+ fi
304
+
305
+ log "Spawning specialist agent: $agent"
306
+
307
+ # Spawn agent using CLI
308
+ if command -v npx >/dev/null 2>&1; then
309
+ npx claude-flow-novice spawn agent "$agent" \
310
+ --task-id "$task_id" \
311
+ --iteration "$iteration" \
312
+ --specialist-type "$specialist_type" \
313
+ --feedback-type "$FEEDBACK_TYPE" || {
314
+ error "Failed to spawn specialist agent: $agent"
315
+ return 1
316
+ }
317
+ success "Specialist agent spawned successfully: $agent"
318
+ else
319
+ error "npx command not found. Cannot spawn specialist agent."
320
+ return 1
321
+ fi
322
+ }
323
+
324
+ # Main execution
325
+ main() {
326
+ parse_args "$@"
327
+
328
+ # Initialize registry
329
+ initialize_registry
330
+
331
+ # Determine feedback type
332
+ if [[ -z "$FEEDBACK_TYPE" ]]; then
333
+ FEEDBACK_TYPE=$(analyze_feedback_text "$FEEDBACK_TEXT")
334
+ fi
335
+
336
+ # Select specialist
337
+ local result=$(select_specialist "$FEEDBACK_TYPE")
338
+ local selected_agent=$(echo "$result" | cut -d: -f1)
339
+ local confidence_score=$(echo "$result" | cut -d: -f2)
340
+ local specialist_type=$(echo "$result" | cut -d: -f3)
341
+
342
+ # Log selection details
343
+ if [[ "$VERBOSE" == true ]]; then
344
+ log "Feedback Type: $FEEDBACK_TYPE"
345
+ log "Selected Agent: $selected_agent"
346
+ log "Confidence Score: $confidence_score"
347
+ log "Specialist Type: $specialist_type"
348
+ log "Task ID: ${TASK_ID:-N/A}"
349
+ log "Iteration: $ITERATION"
350
+ fi
351
+
352
+ # Check confidence threshold
353
+ if (( $(echo "$confidence_score >= $CONFIDENCE" | bc -l) )); then
354
+ # Spawn specialist
355
+ spawn_specialist "$selected_agent" "$TASK_ID" "$ITERATION" "$specialist_type"
356
+
357
+ # Return result for orchestrator
358
+ echo "{\"selected_agent\":\"$selected_agent\",\"confidence\":$confidence_score,\"specialist_type\":\"$specialist_type\",\"feedback_type\":\"$FEEDBACK_TYPE\"}"
359
+ else
360
+ warning "Confidence score ($confidence_score) below threshold ($CONFIDENCE), using default agent"
361
+ if [[ "$DRY_RUN" != true ]]; then
362
+ spawn_specialist "$DEFAULT_AGENT" "$TASK_ID" "$ITERATION" "general"
363
+ fi
364
+ echo "{\"selected_agent\":\"$DEFAULT_AGENT\",\"confidence\":$confidence_score,\"specialist_type\":\"general\",\"feedback_type\":\"$FEEDBACK_TYPE\"}"
365
+ fi
366
+ }
367
+
368
+ # Execute main function
369
+ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
370
+ main "$@"
371
+ fi