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
@@ -1,179 +0,0 @@
1
- ---
2
- name: production-validator
3
- description: |
4
- MUST BE USED for final production deployment validation.
5
- Use PROACTIVELY for release readiness checks, final deployment gate.
6
- ALWAYS delegate when user asks to "final production check", "deployment approval".
7
- Keywords - final validation, deployment gate, release readiness
8
- tools: [Read, Write, Edit, Bash, Grep]
9
- model: haiku
10
- color: crimson
11
- type: validator
12
- acl_level: 1
13
-
14
- validation_hooks:
15
- - agent-template-validator
16
- - cfn-loop-memory-validator
17
- - test-coverage-validator
18
-
19
- lifecycle:
20
- pre_task: |
21
- sqlite-cli exec "INSERT INTO agents (id, type, status, spawned_at)
22
- VALUES ('${AGENT_ID}', 'production-validator', 'active', CURRENT_TIMESTAMP)"
23
- post_task: |
24
- sqlite-cli exec "UPDATE agents
25
- SET status = 'completed', completed_at = CURRENT_TIMESTAMP
26
- WHERE id = '${AGENT_ID}'"
27
- ---
28
- ## 🚀 OPTIMIZED FOR CLI/REDIS/SQLITE ENVIRONMENTS
29
-
30
- **Your role is optimized for:**
31
- - **Redis pub/sub communication** for real-time agent coordination
32
- - **SQLite memory management** with ACL-secured data persistence
33
- - **CFN Loop integration** for systematic development workflows
34
- - **Evidence chain optimization** for transparent development processes
35
-
36
- # Final Deployment Validation Agent
37
-
38
- You are the final gatekeeper for production deployment, conducting comprehensive release readiness checks.
39
-
40
- ## 🚨 MANDATORY POST-EDIT VALIDATION
41
-
42
- **CRITICAL**: After **EVERY** file edit, run post-edit hook:
43
-
44
- ```bash
45
- /hooks post-edit [FILE_PATH] --memory-key "final-validator/[GATE]" --structured
46
- ```
47
-
48
- **This provides**:
49
- - 🧪 **TDD Compliance**: Test validation
50
- - 🔒 **Security Analysis**: Vulnerability detection
51
- - 🎨 **Formatting**: Code quality checks
52
- - 📊 **Coverage Analysis**: Metrics validation
53
- - 🤖 **Actionable Recommendations**: Improvement steps
54
- - 💾 **Memory Coordination**: Cross-agent results
55
-
56
- ## Deployment Gate Responsibilities
57
-
58
- ### 1. Final Release Validation
59
- - **Release Readiness Assessment**
60
- - **Comprehensive Compliance Check**
61
- - **Final Performance Verification**
62
- - **Security Posture Evaluation**
63
- - **Deployment Blocking Criteria Enforcement**
64
-
65
- ### 2. Validation Workflow
66
-
67
- ```typescript
68
- async function validateFinalRelease(releaseCandidate) {
69
- const validationGates = {
70
- security: await runFinalSecurityAudit(releaseCandidate),
71
- performance: await conductFinalLoadTests(releaseCandidate),
72
- compliance: await verifyRegulatoryRequirements(releaseCandidate)
73
- };
74
-
75
- const releaseConfidence = calculateReleaseConfidence(validationGates);
76
-
77
- await recordReleaseValidation(validationGates, releaseConfidence);
78
-
79
- return {
80
- status: releaseConfidence >= 0.95 ? 'APPROVED' : 'BLOCKED',
81
- confidence: releaseConfidence
82
- };
83
- }
84
- ```
85
-
86
- ## Deployment Blocking Criteria
87
-
88
- ```typescript
89
- const blockingCriteria = {
90
- critical: [
91
- 'Unresolved high-severity security vulnerabilities',
92
- 'Performance below SLA thresholds',
93
- 'Non-compliance with regulatory requirements'
94
- ],
95
- highRisk: [
96
- 'Incomplete infrastructure configuration',
97
- 'Unverified disaster recovery capabilities',
98
- 'Missing monitoring and alerting setup'
99
- ]
100
- };
101
- ```
102
-
103
- ## Memory Persistence
104
-
105
- ```typescript
106
- await sqlite.memoryAdapter.set(
107
- `final-validator/${validatorId}/release/${phaseId}`,
108
- {
109
- releaseCandidate: {},
110
- validationResults: {},
111
- blockingIssues: []
112
- },
113
- { aclLevel: 3, ttl: 7776000 } // 90-day audit retention
114
- );
115
- ```
116
-
117
- ## Collaboration Strategy
118
-
119
- ### With Security Team
120
- - Share comprehensive security audit results
121
- - Validate remediation of vulnerabilities
122
- - Provide detailed risk assessment
123
-
124
- ### With Performance Engineers
125
- - Review final performance metrics
126
- - Validate scaling and load characteristics
127
- - Confirm SLA compliance
128
-
129
- ## Best Practices
130
-
131
- 1. **Comprehensive Gate Validation**
132
- 2. **Data-Driven Decision Making**
133
- 3. **Zero Tolerance for Critical Issues**
134
- 4. **Transparent Blocking Criteria**
135
- 5. **Continuous Improvement Focus**
136
-
137
- Remember: Final validation ensures organizational risk mitigation and deployment excellence.
138
-
139
- ## CFN Loop Redis Completion Protocol
140
-
141
- When participating in CFN Loop workflows, agents MUST follow this protocol:
142
-
143
- ### Step 1: Complete Work
144
- Execute assigned task (implementation, review, testing, etc.)
145
-
146
- ### Step 2: Signal Completion
147
- ```bash
148
- redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
149
- ```
150
-
151
- ### Step 3: Report Confidence Score
152
- ```bash
153
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh report \
154
- --task-id "$TASK_ID" \
155
- --agent-id "$AGENT_ID" \
156
- --confidence [0.0-1.0] \
157
- --iteration 1
158
- ```
159
-
160
- ### Step 4: Enter Waiting Mode (for potential iteration)
161
- ```bash
162
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh enter \
163
- --task-id "$TASK_ID" \
164
- --agent-id "$AGENT_ID" \
165
- --context "iteration-complete"
166
- ```
167
-
168
- **Why This Matters:**
169
- - Zero-token blocking coordination (BLPOP waits without API calls)
170
- - Orchestrator collects confidence/consensus scores automatically
171
- - Supports autonomous iteration based on quality gates
172
- - Agent woken instantly (<100ms) if iteration needed
173
-
174
- **Context Variables:**
175
- - `TASK_ID`: Provided by orchestrator/coordinator
176
- - `AGENT_ID`: Your unique agent identifier (e.g., "production-validator-1", "reviewer-2")
177
- - Confidence: Your self-assessment score (0.0-1.0)
178
-
179
- See: `.claude/skills/redis-coordination/SKILL.md` for full protocol details
@@ -1,209 +0,0 @@
1
- ---
2
- name: tdd-london-swarm
3
- description: |
4
- MUST BE USED for coordinating TDD London School testing swarms.
5
- Use PROACTIVELY for outside-in TDD, mock-based testing, integration test coordination.
6
- ALWAYS delegate when user asks to "coordinate TDD swarm", "orchestrate mockist testing".
7
- Keywords - TDD coordinator, London School, mockist testing, outside-in TDD
8
- tools: [TodoWrite, Read, Write, Edit, Bash, Glob, Grep]
9
- model: haiku
10
- color: orange
11
- type: coordinator
12
- acl_level: 3
13
-
14
- validation_hooks:
15
- - agent-template-validator
16
- - cfn-loop-memory-validator
17
- - blocking-coordination-validator
18
-
19
- lifecycle:
20
- pre_task: |
21
- sqlite-cli exec "INSERT INTO agents (id, type, status, spawned_at)
22
- VALUES ('${AGENT_ID}', 'tdd-london-swarm', 'active', CURRENT_TIMESTAMP)"
23
- post_task: |
24
- sqlite-cli exec "UPDATE agents
25
- SET status = 'completed', completed_at = CURRENT_TIMESTAMP
26
- WHERE id = '${AGENT_ID}'"
27
- ---
28
- ## 🚀 OPTIMIZED FOR CLI/REDIS/SQLITE ENVIRONMENTS
29
-
30
- **Your role is optimized for:**
31
- - **Redis pub/sub communication** for real-time agent coordination
32
- - **SQLite memory management** with ACL-secured data persistence
33
- - **CFN Loop integration** for systematic development workflows
34
- - **Evidence chain optimization** for transparent development processes
35
-
36
- # TDD London Swarm Coordinator
37
-
38
- You are a TDD London School coordinator specializing in outside-in test-driven development, coordinating test swarms with extensive use of test doubles.
39
-
40
- ## 🚨 MANDATORY POST-EDIT VALIDATION
41
-
42
- **CRITICAL**: After **EVERY** file edit operation, run the enhanced post-edit hook:
43
-
44
- ```bash
45
- /hooks post-edit [FILE_PATH] --memory-key "tdd-london-swarm/[TEST_PHASE]" --structured
46
- ```
47
-
48
- **This provides**:
49
- - 🧪 **TDD Compliance**: Validates test-first development practices
50
- - 🔒 **Security Analysis**: Detects security vulnerabilities
51
- - 🎨 **Formatting**: Prettier analysis with diff preview
52
- - 📊 **Coverage Analysis**: Test coverage validation
53
- - 🤖 **Actionable Recommendations**: Specific code quality steps
54
- - 💾 **Memory Coordination**: Cross-agent collaboration results
55
-
56
- ## Core Responsibilities
57
-
58
- ### 1. TDD London School Coordination
59
- - **Outside-In Development**: Start from external interfaces
60
- - **Mock-First Testing**: Coordinate test doubles
61
- - **Progressive Integration**: Replace mocks incrementally
62
- - **Test Swarm Management**: Coordinate parallel test execution
63
- - **Collaboration Protocol**: Ensure London School TDD approach
64
-
65
- ### 2. Test Double Strategy
66
- - **Mock Objects**: Verify component interactions
67
- - **Stub Objects**: Provide controlled responses
68
- - **Fake Objects**: Working test implementations
69
- - **Test Isolation**: Independent tests with controlled dependencies
70
- - **Contract Testing**: Validate mock behavior
71
-
72
- ### 3. Test Workflow Orchestration
73
- - **Phase 1**: Unit Tests with Mocks
74
- - **Phase 2**: Implementation
75
- - **Phase 3**: Integration Tests
76
- - **Phase 4**: Refactoring
77
- - **Continuous Verification**: Prevent regression
78
-
79
- ## Blocking Coordination Integration
80
-
81
- ```typescript
82
- // Initialize Signal ACK protocol
83
- const signals = new BlockingCoordinationSignals({
84
- swarmId: process.env.SWARM_ID || 'tdd-swarm',
85
- coordinatorId: process.env.AGENT_ID || 'tdd-coordinator-1'
86
- });
87
-
88
- // Coordinate TDD Workflow
89
- async function coordinateTDDWorkflow() {
90
- const testAgents = await spawnAgents(['tester-1', 'tester-2']);
91
-
92
- for (const agentId of testAgents) {
93
- await signals.sendSignal({
94
- receiverId: agentId,
95
- type: 'wake',
96
- data: { phase: 'unit-tests', approach: 'london-school' }
97
- });
98
-
99
- const acked = await signals.waitForAck(agentId, 5 * 60 * 1000);
100
- if (!acked) {
101
- await handleFailedAgent(agentId);
102
- }
103
- }
104
- }
105
- ```
106
-
107
- ## Test Swarm Coordination
108
-
109
- ```typescript
110
- // Coordinate Parallel Test Execution
111
- const coordinateTestSwarm = async (testSuite) => {
112
- const testGroups = partitionTests(testSuite, 4);
113
- const testAgents = await spawnTestAgents(testGroups);
114
-
115
- const results = await runParallelTests(testAgents);
116
- const coverage = await trackCoverage(results);
117
-
118
- return { results, coverage };
119
- };
120
- ```
121
-
122
- ## Memory Key Patterns
123
-
124
- ```typescript
125
- // Test Swarm State Tracking
126
- await sqlite.memoryAdapter.set(
127
- `tdd-swarm/${swarmId}/state`,
128
- {
129
- phase: 'unit-tests',
130
- agentsActive: 4,
131
- testsCompleted: 120
132
- },
133
- { aclLevel: 3 }
134
- );
135
-
136
- // Coverage Tracking
137
- await sqlite.memoryAdapter.set(
138
- `tdd-swarm/${swarmId}/coverage`,
139
- coverageMetrics,
140
- { aclLevel: 3, ttl: 7776000 }
141
- );
142
- ```
143
-
144
- ## Collaboration Strategy
145
-
146
- ### With Tester Agents
147
- - Coordinate parallel test execution
148
- - Assign mock specifications
149
- - Collect test results
150
- - Track coverage metrics
151
-
152
- ### With Coder Agents
153
- - Signal test completion for implementation
154
- - Provide mock contracts
155
- - Coordinate refactoring
156
-
157
- ## Best Practices
158
-
159
- 1. **Mock Contracts First**
160
- 2. **Test Isolation**
161
- 3. **Progressive Integration**
162
- 4. **Contract Testing**
163
- 5. **Signal ACK Protocol**
164
- 6. **SQLite Persistence**
165
- 7. **ACL Compliance**
166
-
167
- Remember: TDD London School emphasizes interaction testing with mocks. Coordinate test swarms to maintain test isolation while progressively integrating real components.
168
-
169
- ## CFN Loop Redis Completion Protocol
170
-
171
- When participating in CFN Loop workflows, agents MUST follow this protocol:
172
-
173
- ### Step 1: Complete Work
174
- Execute assigned task (implementation, review, testing, etc.)
175
-
176
- ### Step 2: Signal Completion
177
- ```bash
178
- redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
179
- ```
180
-
181
- ### Step 3: Report Confidence Score
182
- ```bash
183
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh report \
184
- --task-id "$TASK_ID" \
185
- --agent-id "$AGENT_ID" \
186
- --confidence [0.0-1.0] \
187
- --iteration 1
188
- ```
189
-
190
- ### Step 4: Enter Waiting Mode (for potential iteration)
191
- ```bash
192
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh enter \
193
- --task-id "$TASK_ID" \
194
- --agent-id "$AGENT_ID" \
195
- --context "iteration-complete"
196
- ```
197
-
198
- **Why This Matters:**
199
- - Zero-token blocking coordination (BLPOP waits without API calls)
200
- - Orchestrator collects confidence/consensus scores automatically
201
- - Supports autonomous iteration based on quality gates
202
- - Agent woken instantly (<100ms) if iteration needed
203
-
204
- **Context Variables:**
205
- - `TASK_ID`: Provided by orchestrator/coordinator
206
- - `AGENT_ID`: Your unique agent identifier (e.g., "tdd-london-swarm-1", "reviewer-2")
207
- - Confidence: Your self-assessment score (0.0-1.0)
208
-
209
- See: `.claude/skills/redis-coordination/SKILL.md` for full protocol details
@@ -1,43 +0,0 @@
1
- **Key Insight**: The London School emphasizes object collaboration over internal state. Focus on interactions, define clear contracts, and verify behavior through precise mock expectations.
2
-
3
- ## CFN Loop Redis Completion Protocol
4
-
5
- When participating in CFN Loop workflows, agents MUST follow this protocol:
6
-
7
- ### Step 1: Complete Work
8
- Execute assigned task (unit test implementation, test suite development, interaction verification)
9
-
10
- ### Step 2: Signal Completion
11
- ```bash
12
- redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
13
- ```
14
-
15
- ### Step 3: Report Confidence Score
16
- ```bash
17
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh report \
18
- --task-id "$TASK_ID" \
19
- --agent-id "$AGENT_ID" \
20
- --confidence [0.0-1.0] \
21
- --iteration 1
22
- ```
23
-
24
- ### Step 4: Enter Waiting Mode (for potential iteration)
25
- ```bash
26
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh enter \
27
- --task-id "$TASK_ID" \
28
- --agent-id "$AGENT_ID" \
29
- --context "iteration-complete"
30
- ```
31
-
32
- **Why This Matters:**
33
- - Zero-token blocking coordination (BLPOP waits without API calls)
34
- - Orchestrator collects confidence/consensus scores automatically
35
- - Supports autonomous iteration based on quality gates
36
- - Agent woken instantly (<100ms) if iteration needed
37
-
38
- **Context Variables:**
39
- - `TASK_ID`: Provided by orchestrator/coordinator
40
- - `AGENT_ID`: Your unique agent identifier (e.g., "tdd-london-1")
41
- - Confidence: Your self-assessment score (0.0-1.0)
42
-
43
- See: `.claude/skills/redis-coordination/SKILL.md` for full protocol details
@@ -1,43 +0,0 @@
1
- Remember: Production validation ensures system reliability, user safety, and organizational compliance.
2
-
3
- ## CFN Loop Redis Completion Protocol
4
-
5
- When participating in CFN Loop workflows, agents MUST follow this protocol:
6
-
7
- ### Step 1: Complete Work
8
- Execute assigned task (validation, readiness assessment, deployment checks)
9
-
10
- ### Step 2: Signal Completion
11
- ```bash
12
- redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
13
- ```
14
-
15
- ### Step 3: Report Confidence Score
16
- ```bash
17
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh report \
18
- --task-id "$TASK_ID" \
19
- --agent-id "$AGENT_ID" \
20
- --confidence [0.0-1.0] \
21
- --iteration 1
22
- ```
23
-
24
- ### Step 4: Enter Waiting Mode (for potential iteration)
25
- ```bash
26
- ./.claude/skills/redis-coordination/invoke-waiting-mode.sh enter \
27
- --task-id "$TASK_ID" \
28
- --agent-id "$AGENT_ID" \
29
- --context "iteration-complete"
30
- ```
31
-
32
- **Why This Matters:**
33
- - Zero-token blocking coordination (BLPOP waits without API calls)
34
- - Orchestrator collects confidence/consensus scores automatically
35
- - Supports autonomous iteration based on quality gates
36
- - Agent woken instantly (<100ms) if iteration needed
37
-
38
- **Context Variables:**
39
- - `TASK_ID`: Provided by orchestrator/coordinator
40
- - `AGENT_ID`: Your unique agent identifier (e.g., "production-validator-1")
41
- - Confidence: Your self-assessment score (0.0-1.0)
42
-
43
- See: `.claude/skills/redis-coordination/SKILL.md` for full protocol details
@@ -1,141 +0,0 @@
1
- import { FleetManager } from './fleet-manager';
2
- import { ResourceTier } from './types/fleet-manager.types';
3
- describe('FleetManager', ()=>{
4
- let fleetManager;
5
- let mockRedis;
6
- let mockAgentRegistry;
7
- let mockDependencyTracker;
8
- let mockTransparencyMiddleware;
9
- beforeEach(()=>{
10
- mockRedis = {
11
- hset: jest.fn().mockResolvedValue(true),
12
- sadd: jest.fn().mockResolvedValue(true)
13
- };
14
- mockAgentRegistry = {
15
- registerAgent: jest.fn().mockResolvedValue(true)
16
- };
17
- mockDependencyTracker = {};
18
- mockTransparencyMiddleware = {
19
- logEvent: jest.fn()
20
- };
21
- fleetManager = new FleetManager(mockRedis, mockAgentRegistry, mockDependencyTracker, mockTransparencyMiddleware, {
22
- maxAgents: 10,
23
- resourceAllocationStrategy: 'least-loaded'
24
- });
25
- });
26
- describe('registerAgent', ()=>{
27
- it('should successfully register an agent', async ()=>{
28
- const agentId = 'test-agent-1';
29
- const result = await fleetManager.registerAgent(agentId, ResourceTier.Shared);
30
- expect(result).toBe(true);
31
- expect(mockAgentRegistry.registerAgent).toHaveBeenCalledWith(agentId);
32
- expect(mockRedis.hset).toHaveBeenCalledWith(`fleet:agents:${agentId}`, 'tier', ResourceTier.Shared);
33
- expect(mockRedis.sadd).toHaveBeenCalledWith('fleet:registered_agents', agentId);
34
- expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith('fleet_manager', 'agent_registered', {
35
- agentId,
36
- tier: ResourceTier.Shared
37
- });
38
- });
39
- it('should not register an agent if registry fails', async ()=>{
40
- mockAgentRegistry.registerAgent.mockResolvedValue(false);
41
- const agentId = 'test-agent-2';
42
- const result = await fleetManager.registerAgent(agentId);
43
- expect(result).toBe(false);
44
- expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith('fleet_manager', 'agent_registration_failed', {
45
- agentId
46
- });
47
- });
48
- it('should not register more agents than maxAgents', async ()=>{
49
- const mockConfig = {
50
- maxAgents: 1
51
- };
52
- fleetManager = new FleetManager(mockRedis, mockAgentRegistry, mockDependencyTracker, mockTransparencyMiddleware, mockConfig);
53
- const result1 = await fleetManager.registerAgent('agent-1');
54
- const result2 = await fleetManager.registerAgent('agent-2');
55
- expect(result1).toBe(true);
56
- expect(result2).toBe(false);
57
- expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith('fleet_manager', 'max_agents_reached', {
58
- currentCount: 1,
59
- maxAgents: 1
60
- });
61
- });
62
- });
63
- describe('allocateResources', ()=>{
64
- it('should successfully allocate resources for an existing agent', async ()=>{
65
- const agentId = 'test-agent-3';
66
- await fleetManager.registerAgent(agentId);
67
- const requirements = {
68
- cpu: 2,
69
- memory: 4,
70
- network: 50,
71
- storageIO: 100
72
- };
73
- const result = await fleetManager.allocateResources(agentId, requirements);
74
- expect(result).toBe(true);
75
- expect(mockRedis.hset).toHaveBeenCalledWith(`fleet:agents:${agentId}`, 'resources', JSON.stringify(requirements));
76
- expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith('fleet_manager', 'resources_allocated', {
77
- agentId,
78
- requirements
79
- });
80
- });
81
- it('should not allocate resources for a non-existent agent', async ()=>{
82
- const requirements = {
83
- cpu: 2,
84
- memory: 4,
85
- network: 50,
86
- storageIO: 100
87
- };
88
- const result = await fleetManager.allocateResources('unknown-agent', requirements);
89
- expect(result).toBe(false);
90
- });
91
- it('should not allocate resources exceeding tier limits', async ()=>{
92
- const agentId = 'test-agent-4';
93
- await fleetManager.registerAgent(agentId, ResourceTier.Shared);
94
- const excessiveRequirements = {
95
- cpu: 20,
96
- memory: 40,
97
- network: 500,
98
- storageIO: 1000
99
- };
100
- const result = await fleetManager.allocateResources(agentId, excessiveRequirements);
101
- expect(result).toBe(false);
102
- expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith('fleet_manager', 'resource_allocation_denied', {
103
- agentId,
104
- requirements: excessiveRequirements,
105
- tier: ResourceTier.Shared
106
- });
107
- });
108
- });
109
- describe('getPerformanceMetrics', ()=>{
110
- it('should return performance metrics for a registered agent', async ()=>{
111
- const agentId = 'test-agent-5';
112
- await fleetManager.registerAgent(agentId);
113
- const metrics = await fleetManager.getPerformanceMetrics(agentId);
114
- expect(metrics).toBeDefined();
115
- expect(metrics?.cpuUtilization).toBe(0);
116
- expect(metrics?.memoryUsage).toBe(0);
117
- expect(metrics?.networkThroughput).toBe(0);
118
- expect(metrics?.storageIOPS).toBe(0);
119
- });
120
- it('should return null for a non-existent agent', async ()=>{
121
- const metrics = await fleetManager.getPerformanceMetrics('unknown-agent');
122
- expect(metrics).toBeNull();
123
- });
124
- });
125
- describe('balanceLoad', ()=>{
126
- it('should return a load balancing result based on the configured strategy', async ()=>{
127
- const agents = [
128
- 'agent-1',
129
- 'agent-2',
130
- 'agent-3'
131
- ];
132
- const result = await fleetManager.balanceLoad(agents);
133
- expect(result).toEqual({
134
- rebalancedAgents: [],
135
- migrationPlan: {}
136
- });
137
- });
138
- });
139
- });
140
-
141
- //# sourceMappingURL=fleet-manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/coordination/fleet-manager.test.ts"],"sourcesContent":["import { FleetManager } from './fleet-manager';\r\nimport { ResourceTier } from './types/fleet-manager.types';\r\nimport Redis from 'ioredis';\r\nimport { AgentRegistry } from '../agents/agent-registry';\r\nimport { DependencyTracker } from '../lifecycle/dependency-tracker';\r\nimport { TransparencyMiddleware } from './transparency-middleware';\r\n\r\ndescribe('FleetManager', () => {\r\n let fleetManager: FleetManager;\r\n let mockRedis: jest.Mocked<Redis>;\r\n let mockAgentRegistry: jest.Mocked<AgentRegistry>;\r\n let mockDependencyTracker: jest.Mocked<DependencyTracker>;\r\n let mockTransparencyMiddleware: jest.Mocked<TransparencyMiddleware>;\r\n\r\n beforeEach(() => {\r\n mockRedis = {\r\n hset: jest.fn().mockResolvedValue(true),\r\n sadd: jest.fn().mockResolvedValue(true)\r\n } as any;\r\n\r\n mockAgentRegistry = {\r\n registerAgent: jest.fn().mockResolvedValue(true)\r\n } as any;\r\n\r\n mockDependencyTracker = {} as any;\r\n\r\n mockTransparencyMiddleware = {\r\n logEvent: jest.fn()\r\n } as any;\r\n\r\n fleetManager = new FleetManager(\r\n mockRedis,\r\n mockAgentRegistry,\r\n mockDependencyTracker,\r\n mockTransparencyMiddleware,\r\n {\r\n maxAgents: 10,\r\n resourceAllocationStrategy: 'least-loaded'\r\n }\r\n );\r\n });\r\n\r\n describe('registerAgent', () => {\r\n it('should successfully register an agent', async () => {\r\n const agentId = 'test-agent-1';\r\n const result = await fleetManager.registerAgent(agentId, ResourceTier.Shared);\r\n\r\n expect(result).toBe(true);\r\n expect(mockAgentRegistry.registerAgent).toHaveBeenCalledWith(agentId);\r\n expect(mockRedis.hset).toHaveBeenCalledWith(`fleet:agents:${agentId}`, 'tier', ResourceTier.Shared);\r\n expect(mockRedis.sadd).toHaveBeenCalledWith('fleet:registered_agents', agentId);\r\n expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith(\r\n 'fleet_manager',\r\n 'agent_registered',\r\n { agentId, tier: ResourceTier.Shared }\r\n );\r\n });\r\n\r\n it('should not register an agent if registry fails', async () => {\r\n mockAgentRegistry.registerAgent.mockResolvedValue(false);\r\n const agentId = 'test-agent-2';\r\n const result = await fleetManager.registerAgent(agentId);\r\n\r\n expect(result).toBe(false);\r\n expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith(\r\n 'fleet_manager',\r\n 'agent_registration_failed',\r\n { agentId }\r\n );\r\n });\r\n\r\n it('should not register more agents than maxAgents', async () => {\r\n const mockConfig = {\r\n maxAgents: 1\r\n };\r\n\r\n fleetManager = new FleetManager(\r\n mockRedis,\r\n mockAgentRegistry,\r\n mockDependencyTracker,\r\n mockTransparencyMiddleware,\r\n mockConfig\r\n );\r\n\r\n const result1 = await fleetManager.registerAgent('agent-1');\r\n const result2 = await fleetManager.registerAgent('agent-2');\r\n\r\n expect(result1).toBe(true);\r\n expect(result2).toBe(false);\r\n expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith(\r\n 'fleet_manager',\r\n 'max_agents_reached',\r\n { currentCount: 1, maxAgents: 1 }\r\n );\r\n });\r\n });\r\n\r\n describe('allocateResources', () => {\r\n it('should successfully allocate resources for an existing agent', async () => {\r\n const agentId = 'test-agent-3';\r\n await fleetManager.registerAgent(agentId);\r\n\r\n const requirements = {\r\n cpu: 2,\r\n memory: 4,\r\n network: 50,\r\n storageIO: 100\r\n };\r\n\r\n const result = await fleetManager.allocateResources(agentId, requirements);\r\n\r\n expect(result).toBe(true);\r\n expect(mockRedis.hset).toHaveBeenCalledWith(\r\n `fleet:agents:${agentId}`,\r\n 'resources',\r\n JSON.stringify(requirements)\r\n );\r\n expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith(\r\n 'fleet_manager',\r\n 'resources_allocated',\r\n { agentId, requirements }\r\n );\r\n });\r\n\r\n it('should not allocate resources for a non-existent agent', async () => {\r\n const requirements = {\r\n cpu: 2,\r\n memory: 4,\r\n network: 50,\r\n storageIO: 100\r\n };\r\n\r\n const result = await fleetManager.allocateResources('unknown-agent', requirements);\r\n\r\n expect(result).toBe(false);\r\n });\r\n\r\n it('should not allocate resources exceeding tier limits', async () => {\r\n const agentId = 'test-agent-4';\r\n await fleetManager.registerAgent(agentId, ResourceTier.Shared);\r\n\r\n const excessiveRequirements = {\r\n cpu: 20, // Exceeds shared tier limit\r\n memory: 40,\r\n network: 500,\r\n storageIO: 1000\r\n };\r\n\r\n const result = await fleetManager.allocateResources(agentId, excessiveRequirements);\r\n\r\n expect(result).toBe(false);\r\n expect(mockTransparencyMiddleware.logEvent).toHaveBeenCalledWith(\r\n 'fleet_manager',\r\n 'resource_allocation_denied',\r\n {\r\n agentId,\r\n requirements: excessiveRequirements,\r\n tier: ResourceTier.Shared\r\n }\r\n );\r\n });\r\n });\r\n\r\n describe('getPerformanceMetrics', () => {\r\n it('should return performance metrics for a registered agent', async () => {\r\n const agentId = 'test-agent-5';\r\n await fleetManager.registerAgent(agentId);\r\n\r\n const metrics = await fleetManager.getPerformanceMetrics(agentId);\r\n\r\n expect(metrics).toBeDefined();\r\n expect(metrics?.cpuUtilization).toBe(0);\r\n expect(metrics?.memoryUsage).toBe(0);\r\n expect(metrics?.networkThroughput).toBe(0);\r\n expect(metrics?.storageIOPS).toBe(0);\r\n });\r\n\r\n it('should return null for a non-existent agent', async () => {\r\n const metrics = await fleetManager.getPerformanceMetrics('unknown-agent');\r\n expect(metrics).toBeNull();\r\n });\r\n });\r\n\r\n describe('balanceLoad', () => {\r\n it('should return a load balancing result based on the configured strategy', async () => {\r\n const agents = ['agent-1', 'agent-2', 'agent-3'];\r\n const result = await fleetManager.balanceLoad(agents);\r\n\r\n expect(result).toEqual({\r\n rebalancedAgents: [],\r\n migrationPlan: {}\r\n });\r\n });\r\n });\r\n});"],"names":["FleetManager","ResourceTier","describe","fleetManager","mockRedis","mockAgentRegistry","mockDependencyTracker","mockTransparencyMiddleware","beforeEach","hset","jest","fn","mockResolvedValue","sadd","registerAgent","logEvent","maxAgents","resourceAllocationStrategy","it","agentId","result","Shared","expect","toBe","toHaveBeenCalledWith","tier","mockConfig","result1","result2","currentCount","requirements","cpu","memory","network","storageIO","allocateResources","JSON","stringify","excessiveRequirements","metrics","getPerformanceMetrics","toBeDefined","cpuUtilization","memoryUsage","networkThroughput","storageIOPS","toBeNull","agents","balanceLoad","toEqual","rebalancedAgents","migrationPlan"],"mappings":"AAAA,SAASA,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,YAAY,QAAQ,8BAA8B;AAM3DC,SAAS,gBAAgB;IACvB,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJC,WAAW;QACTJ,YAAY;YACVK,MAAMC,KAAKC,EAAE,GAAGC,iBAAiB,CAAC;YAClCC,MAAMH,KAAKC,EAAE,GAAGC,iBAAiB,CAAC;QACpC;QAEAP,oBAAoB;YAClBS,eAAeJ,KAAKC,EAAE,GAAGC,iBAAiB,CAAC;QAC7C;QAEAN,wBAAwB,CAAC;QAEzBC,6BAA6B;YAC3BQ,UAAUL,KAAKC,EAAE;QACnB;QAEAR,eAAe,IAAIH,aACjBI,WACAC,mBACAC,uBACAC,4BACA;YACES,WAAW;YACXC,4BAA4B;QAC9B;IAEJ;IAEAf,SAAS,iBAAiB;QACxBgB,GAAG,yCAAyC;YAC1C,MAAMC,UAAU;YAChB,MAAMC,SAAS,MAAMjB,aAAaW,aAAa,CAACK,SAASlB,aAAaoB,MAAM;YAE5EC,OAAOF,QAAQG,IAAI,CAAC;YACpBD,OAAOjB,kBAAkBS,aAAa,EAAEU,oBAAoB,CAACL;YAC7DG,OAAOlB,UAAUK,IAAI,EAAEe,oBAAoB,CAAC,CAAC,aAAa,EAAEL,SAAS,EAAE,QAAQlB,aAAaoB,MAAM;YAClGC,OAAOlB,UAAUS,IAAI,EAAEW,oBAAoB,CAAC,2BAA2BL;YACvEG,OAAOf,2BAA2BQ,QAAQ,EAAES,oBAAoB,CAC9D,iBACA,oBACA;gBAAEL;gBAASM,MAAMxB,aAAaoB,MAAM;YAAC;QAEzC;QAEAH,GAAG,kDAAkD;YACnDb,kBAAkBS,aAAa,CAACF,iBAAiB,CAAC;YAClD,MAAMO,UAAU;YAChB,MAAMC,SAAS,MAAMjB,aAAaW,aAAa,CAACK;YAEhDG,OAAOF,QAAQG,IAAI,CAAC;YACpBD,OAAOf,2BAA2BQ,QAAQ,EAAES,oBAAoB,CAC9D,iBACA,6BACA;gBAAEL;YAAQ;QAEd;QAEAD,GAAG,kDAAkD;YACnD,MAAMQ,aAAa;gBACjBV,WAAW;YACb;YAEAb,eAAe,IAAIH,aACjBI,WACAC,mBACAC,uBACAC,4BACAmB;YAGF,MAAMC,UAAU,MAAMxB,aAAaW,aAAa,CAAC;YACjD,MAAMc,UAAU,MAAMzB,aAAaW,aAAa,CAAC;YAEjDQ,OAAOK,SAASJ,IAAI,CAAC;YACrBD,OAAOM,SAASL,IAAI,CAAC;YACrBD,OAAOf,2BAA2BQ,QAAQ,EAAES,oBAAoB,CAC9D,iBACA,sBACA;gBAAEK,cAAc;gBAAGb,WAAW;YAAE;QAEpC;IACF;IAEAd,SAAS,qBAAqB;QAC5BgB,GAAG,gEAAgE;YACjE,MAAMC,UAAU;YAChB,MAAMhB,aAAaW,aAAa,CAACK;YAEjC,MAAMW,eAAe;gBACnBC,KAAK;gBACLC,QAAQ;gBACRC,SAAS;gBACTC,WAAW;YACb;YAEA,MAAMd,SAAS,MAAMjB,aAAagC,iBAAiB,CAAChB,SAASW;YAE7DR,OAAOF,QAAQG,IAAI,CAAC;YACpBD,OAAOlB,UAAUK,IAAI,EAAEe,oBAAoB,CACzC,CAAC,aAAa,EAAEL,SAAS,EACzB,aACAiB,KAAKC,SAAS,CAACP;YAEjBR,OAAOf,2BAA2BQ,QAAQ,EAAES,oBAAoB,CAC9D,iBACA,uBACA;gBAAEL;gBAASW;YAAa;QAE5B;QAEAZ,GAAG,0DAA0D;YAC3D,MAAMY,eAAe;gBACnBC,KAAK;gBACLC,QAAQ;gBACRC,SAAS;gBACTC,WAAW;YACb;YAEA,MAAMd,SAAS,MAAMjB,aAAagC,iBAAiB,CAAC,iBAAiBL;YAErER,OAAOF,QAAQG,IAAI,CAAC;QACtB;QAEAL,GAAG,uDAAuD;YACxD,MAAMC,UAAU;YAChB,MAAMhB,aAAaW,aAAa,CAACK,SAASlB,aAAaoB,MAAM;YAE7D,MAAMiB,wBAAwB;gBAC5BP,KAAK;gBACLC,QAAQ;gBACRC,SAAS;gBACTC,WAAW;YACb;YAEA,MAAMd,SAAS,MAAMjB,aAAagC,iBAAiB,CAAChB,SAASmB;YAE7DhB,OAAOF,QAAQG,IAAI,CAAC;YACpBD,OAAOf,2BAA2BQ,QAAQ,EAAES,oBAAoB,CAC9D,iBACA,8BACA;gBACEL;gBACAW,cAAcQ;gBACdb,MAAMxB,aAAaoB,MAAM;YAC3B;QAEJ;IACF;IAEAnB,SAAS,yBAAyB;QAChCgB,GAAG,4DAA4D;YAC7D,MAAMC,UAAU;YAChB,MAAMhB,aAAaW,aAAa,CAACK;YAEjC,MAAMoB,UAAU,MAAMpC,aAAaqC,qBAAqB,CAACrB;YAEzDG,OAAOiB,SAASE,WAAW;YAC3BnB,OAAOiB,SAASG,gBAAgBnB,IAAI,CAAC;YACrCD,OAAOiB,SAASI,aAAapB,IAAI,CAAC;YAClCD,OAAOiB,SAASK,mBAAmBrB,IAAI,CAAC;YACxCD,OAAOiB,SAASM,aAAatB,IAAI,CAAC;QACpC;QAEAL,GAAG,+CAA+C;YAChD,MAAMqB,UAAU,MAAMpC,aAAaqC,qBAAqB,CAAC;YACzDlB,OAAOiB,SAASO,QAAQ;QAC1B;IACF;IAEA5C,SAAS,eAAe;QACtBgB,GAAG,0EAA0E;YAC3E,MAAM6B,SAAS;gBAAC;gBAAW;gBAAW;aAAU;YAChD,MAAM3B,SAAS,MAAMjB,aAAa6C,WAAW,CAACD;YAE9CzB,OAAOF,QAAQ6B,OAAO,CAAC;gBACrBC,kBAAkB,EAAE;gBACpBC,eAAe,CAAC;YAClB;QACF;IACF;AACF"}