claude-flow-novice 2.6.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/.claude/agents/cfn-dev-team/coordinators/README.md +42 -0
  2. package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +440 -0
  3. package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/cto-agent.md +154 -187
  4. package/.claude/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +50 -0
  5. package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/product-owner-agent.md +7 -40
  6. package/.claude/agents/{cfn-loop → cfn-dev-team/coordinators}/product-owner.md +73 -18
  7. package/.claude/agents/cfn-dev-team/developers/README.md +69 -0
  8. package/.claude/agents/cfn-dev-team/developers/backend-dev.md +77 -0
  9. package/.claude/agents/{core-agents → cfn-dev-team/developers}/coder.md +132 -27
  10. package/.claude/agents/cfn-dev-team/developers/react-frontend-engineer.md +121 -0
  11. package/.claude/agents/{frontend → cfn-dev-team/developers}/state-architect.md +1 -0
  12. package/.claude/agents/{frontend → cfn-dev-team/developers}/ui-designer.md +1 -0
  13. package/.claude/agents/cfn-dev-team/reviewers/README.md +58 -0
  14. package/.claude/agents/{analysis → cfn-dev-team/reviewers}/code-quality-validator.md +9 -18
  15. package/.claude/agents/{core-agents → cfn-dev-team/reviewers}/reviewer.md +62 -23
  16. package/.claude/agents/cfn-dev-team/testers/README.md +94 -0
  17. package/.claude/agents/{testing → cfn-dev-team/testers}/e2e/playwright-agent.md +2 -21
  18. package/.claude/agents/{testing → cfn-dev-team/testers}/interaction-tester.md +2 -21
  19. package/.claude/agents/{testing → cfn-dev-team/testers}/playwright-tester.md +1 -1
  20. package/.claude/agents/cfn-dev-team/testers/tester.md +139 -0
  21. package/.claude/agents/cfn-dev-team/testers/unit/tdd-london-swarm.md +49 -0
  22. package/.claude/agents/cfn-dev-team/testers/validation/production-validator.md +33 -0
  23. package/.claude/cfn-data/cfn-loop.db +0 -0
  24. package/.claude/cfn-data/cfn_loop_logs.db +0 -0
  25. package/.claude/commands/{CFN_COORDINATOR_PARAMETERS.md → cfn/CFN_COORDINATOR_PARAMETERS.md} +22 -22
  26. package/.claude/commands/{cfn-loop-epic.md → cfn/cfn-loop-epic.md} +6 -6
  27. package/.claude/commands/{cfn-loop-single.md → cfn/cfn-loop-single.md} +9 -9
  28. package/.claude/commands/{cfn-loop-sprints.md → cfn/cfn-loop-sprints.md} +1 -1
  29. package/.claude/commands/{cfn-loop.md → cfn/cfn-loop.md} +9 -9
  30. package/.claude/commands/cfn/cfn-mode.md +20 -0
  31. package/.claude/commands/{cfn-optimize-agents.md → cfn/cfn-optimize-agents.md} +1 -1
  32. package/.claude/commands/{context-curate.md → cfn/context-curate.md} +2 -2
  33. package/.claude/commands/{context-inject.md → cfn/context-inject.md} +3 -3
  34. package/.claude/commands/{context-reflect.md → cfn/context-reflect.md} +1 -1
  35. package/.claude/commands/{context-stats.md → cfn/context-stats.md} +1 -1
  36. package/.claude/commands/{list-agents-rebuild.md → cfn/list-agents-rebuild.md} +12 -12
  37. package/.claude/commands/cfn/write-plan.md +104 -0
  38. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -0
  39. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +79 -0
  40. package/.claude/hooks/cfn-post-edit.sh +21 -0
  41. package/.claude/hooks/cfn-pre-edit-backup.sh +71 -0
  42. package/.claude/hooks/cfn-restore-from-backup.sh +37 -0
  43. package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
  44. package/.claude/skills/cfn-redis-coordination/README.md +65 -0
  45. package/.claude/skills/cfn-webapp-testing/README.md +142 -0
  46. package/CFN-CLAUDE.md +776 -0
  47. package/README.md +598 -251
  48. package/dist/agents/agent-loader.js +146 -165
  49. package/dist/agents/agent-loader.js.map +1 -1
  50. package/dist/cli/agent-command.js +2 -0
  51. package/dist/cli/agent-command.js.map +1 -1
  52. package/dist/cli/agent-definition-parser.js +7 -0
  53. package/dist/cli/agent-definition-parser.js.map +1 -1
  54. package/dist/cli/agent-executor.js +145 -11
  55. package/dist/cli/agent-executor.js.map +1 -1
  56. package/dist/cli/agent-prompt-builder.js +81 -1
  57. package/dist/cli/agent-prompt-builder.js.map +1 -1
  58. package/dist/cli/agent-spawn.js +10 -1
  59. package/dist/cli/agent-spawn.js.map +1 -1
  60. package/dist/cli/anthropic-client.js +192 -13
  61. package/dist/cli/anthropic-client.js.map +1 -1
  62. package/dist/cli/cfn-context.js +150 -0
  63. package/dist/cli/cfn-context.js.map +1 -1
  64. package/dist/cli/cfn-fork.js +159 -0
  65. package/dist/cli/cfn-fork.js.map +1 -0
  66. package/dist/cli/cli-agent-context.js +8 -3
  67. package/dist/cli/cli-agent-context.js.map +1 -1
  68. package/dist/cli/conversation-fork.js +201 -0
  69. package/dist/cli/conversation-fork.js.map +1 -0
  70. package/dist/cli/index.js +4 -0
  71. package/dist/cli/index.js.map +1 -1
  72. package/dist/cli/init-command.js +20 -0
  73. package/dist/cli/init-command.js.map +1 -0
  74. package/dist/cli/tool-definitions.js +263 -0
  75. package/dist/cli/tool-definitions.js.map +1 -0
  76. package/dist/cli/tool-executor.js +247 -0
  77. package/dist/cli/tool-executor.js.map +1 -0
  78. package/dist/hello.js +8 -0
  79. package/dist/hello.js.map +1 -0
  80. package/package.json +26 -12
  81. package/scripts/README.md +68 -0
  82. package/scripts/cfn-intervention-example.sh +21 -0
  83. package/scripts/init-project.js +148 -0
  84. package/scripts/migrate-test-infrastructure.sh +40 -0
  85. package/scripts/restructure-cfn-namespace.sh +161 -0
  86. package/scripts/validate-test-migration.sh +49 -0
  87. package/scripts/verify-no-secrets.sh +55 -0
  88. package/.claude/SLASH-COMMANDS-READY.md +0 -53
  89. package/.claude/WORKING-SETUP.md +0 -67
  90. package/.claude/ace-system-overview.md +0 -524
  91. package/.claude/agent-principles/agent-template.md +0 -96
  92. package/.claude/agents/CLAUDE.md +0 -995
  93. package/.claude/agents/README-VALIDATION.md +0 -243
  94. package/.claude/agents/agent-principles/README.md +0 -226
  95. package/.claude/agents/agent-principles/agent-type-guidelines.md +0 -465
  96. package/.claude/agents/agent-principles/format-selection.md +0 -224
  97. package/.claude/agents/agent-principles/phase4-template-optimization.md +0 -494
  98. package/.claude/agents/agent-principles/prompt-engineering.md +0 -501
  99. package/.claude/agents/agent-principles/quality-metrics.md +0 -375
  100. package/.claude/agents/analysis/code-analyzer.md +0 -192
  101. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -133
  102. package/.claude/agents/analysis/perf-analyzer.md +0 -230
  103. package/.claude/agents/architecture/system-architect.md +0 -161
  104. package/.claude/agents/architecture/system-architect.md.backup +0 -603
  105. package/.claude/agents/code-booster.md +0 -131
  106. package/.claude/agents/consensus/consensus-builder.md +0 -159
  107. package/.claude/agents/consensus/crdt-synchronizer.md +0 -192
  108. package/.claude/agents/consensus/performance-benchmarker.md +0 -101
  109. package/.claude/agents/consensus/quorum-manager.md +0 -168
  110. package/.claude/agents/consensus/raft-manager.md +0 -106
  111. package/.claude/agents/consensus/security-manager.md +0 -107
  112. package/.claude/agents/context/context-curator.md +0 -84
  113. package/.claude/agents/context/context-reflector.md +0 -81
  114. package/.claude/agents/context-curator.md +0 -167
  115. package/.claude/agents/context-reflector.md +0 -65
  116. package/.claude/agents/core-agents/analyst.md +0 -170
  117. package/.claude/agents/core-agents/architect.md +0 -200
  118. package/.claude/agents/core-agents/base-template-generator.md +0 -188
  119. package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
  120. package/.claude/agents/core-agents/code-quality-validator.md +0 -149
  121. package/.claude/agents/core-agents/context-curator.md +0 -452
  122. package/.claude/agents/core-agents/context-reflector.md +0 -273
  123. package/.claude/agents/core-agents/coordinator.md +0 -182
  124. package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
  125. package/.claude/agents/core-agents/cost-savings-coordinator.md +0 -167
  126. package/.claude/agents/core-agents/performance-benchmarker.md +0 -148
  127. package/.claude/agents/core-agents/planner.md +0 -174
  128. package/.claude/agents/core-agents/security-manager.md +0 -111
  129. package/.claude/agents/core-agents/tester.md +0 -170
  130. package/.claude/agents/custom/agent-builder.md +0 -637
  131. package/.claude/agents/development/backend/dev-backend-api.md +0 -139
  132. package/.claude/agents/development/backend-dev.md +0 -165
  133. package/.claude/agents/development/npm-package-specialist.md +0 -347
  134. package/.claude/agents/devops/devops-engineer.md +0 -148
  135. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -98
  136. package/.claude/agents/documentation/api-docs.md +0 -103
  137. package/.claude/agents/frontend/README.md +0 -640
  138. package/.claude/agents/frontend/interaction-tester.md +0 -139
  139. package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
  140. package/.claude/agents/github/github-commit-agent.md +0 -118
  141. package/.claude/agents/goal/goal-planner.md +0 -183
  142. package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
  143. package/.claude/agents/planning-team/api-designer-persona.md +0 -147
  144. package/.claude/agents/planning-team/security-architect-persona.md +0 -190
  145. package/.claude/agents/planning-team/system-architect-persona.md +0 -190
  146. package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +0 -161
  147. package/.claude/agents/product-owner-team/power-user-persona.md +0 -182
  148. package/.claude/agents/security/security-specialist-existing.md +0 -154
  149. package/.claude/agents/security/security-specialist.md +0 -185
  150. package/.claude/agents/sparc/architecture.md +0 -149
  151. package/.claude/agents/sparc/pseudocode.md +0 -159
  152. package/.claude/agents/sparc/refinement.md +0 -106
  153. package/.claude/agents/sparc/specification.md +0 -157
  154. package/.claude/agents/specialized/cli-agent-optimizer.md +0 -122
  155. package/.claude/agents/specialized/code-booster.md +0 -143
  156. package/.claude/agents/specialized/devops-engineer.md +0 -150
  157. package/.claude/agents/specialized/mobile/mobile-dev.md +0 -210
  158. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -191
  159. package/.claude/agents/specialized/rust-developer.md +0 -166
  160. package/.claude/agents/specialized/rust-enterprise-developer.md +0 -144
  161. package/.claude/agents/specialized/rust-mvp-developer.md +0 -142
  162. package/.claude/agents/testing/production-validator.md +0 -179
  163. package/.claude/agents/testing/tdd-london-swarm.md +0 -209
  164. package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
  165. package/.claude/agents/testing/validation/production-validator.md +0 -43
  166. package/.claude/agents/validate-agent.js +0 -841
  167. package/.claude/agents-ignore/cfn-coordinator-enterprise.md +0 -1303
  168. package/.claude/agents-ignore/cfn-coordinator-mvp.md +0 -942
  169. package/.claude/agents-ignore/cfn-coordinator-standard.md +0 -1062
  170. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator-enhanced.md +0 -145
  171. package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator.md +0 -161
  172. package/.claude/agents-ignore/deprecated-coordinators/blocking-coordinator-example.md +0 -732
  173. package/.claude/agents-ignore/deprecated-coordinators/byzantine-coordinator.md +0 -94
  174. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-enterprise.md +0 -323
  175. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-mvp.md +0 -157
  176. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-standard.md +0 -229
  177. package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-unified.md +0 -149
  178. package/.claude/agents-ignore/deprecated-coordinators/coordinator-hybrid.md +0 -231
  179. package/.claude/agents-ignore/deprecated-coordinators/gossip-coordinator.md +0 -165
  180. package/.claude/agents-ignore/deprecated-coordinators/hierarchical-coordinator.md +0 -91
  181. package/.claude/agents-ignore/deprecated-coordinators/mesh-coordinator.md +0 -131
  182. package/.claude/agents-ignore/deprecated-coordinators/task-coordinator.md +0 -105
  183. package/.claude/agents-ignore/deprecated-coordinators/test-coordinator.md +0 -141
  184. package/.claude/api-configs/config-current-zai-config.env +0 -62
  185. package/.claude/api-configs/config-test-zai-config.env +0 -62
  186. package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
  187. package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
  188. package/.claude/architecture/mesh-get-polling-design.md +0 -87
  189. package/.claude/architecture/mesh-get-polling-implementation.md +0 -89
  190. package/.claude/architecture/typescript-microservices.md +0 -50
  191. package/.claude/artifacts/reflection-merge-logs/cli-agent-spawning-v2.5.2-merge-report.md +0 -61
  192. package/.claude/cfn-loop-rules.md +0 -73
  193. package/.claude/cfn-mode-patterns.md +0 -571
  194. package/.claude/claude-md-backup-pre-skills.md +0 -15
  195. package/.claude/commands/agents/README.md +0 -10
  196. package/.claude/commands/agents/agent-capabilities.md +0 -21
  197. package/.claude/commands/agents/agent-coordination.md +0 -28
  198. package/.claude/commands/agents/agent-spawning.md +0 -28
  199. package/.claude/commands/agents/agent-types.md +0 -26
  200. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  201. package/.claude/commands/analysis/README.md +0 -9
  202. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  203. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  204. package/.claude/commands/analysis/performance-report.md +0 -25
  205. package/.claude/commands/analysis/token-efficiency.md +0 -45
  206. package/.claude/commands/analysis/token-usage.md +0 -25
  207. package/.claude/commands/automation/README.md +0 -9
  208. package/.claude/commands/automation/auto-agent.md +0 -122
  209. package/.claude/commands/automation/self-healing.md +0 -106
  210. package/.claude/commands/automation/session-memory.md +0 -90
  211. package/.claude/commands/automation/smart-agents.md +0 -73
  212. package/.claude/commands/automation/smart-spawn.md +0 -25
  213. package/.claude/commands/automation/workflow-select.md +0 -25
  214. package/.claude/commands/claude-md.js +0 -237
  215. package/.claude/commands/claude-soul.js +0 -28
  216. package/.claude/commands/cli-integration.js +0 -216
  217. package/.claude/commands/coordination/README.md +0 -9
  218. package/.claude/commands/coordination/agent-spawn.md +0 -25
  219. package/.claude/commands/coordination/coordination-system.md +0 -88
  220. package/.claude/commands/coordination/init.md +0 -44
  221. package/.claude/commands/coordination/orchestrate.md +0 -43
  222. package/.claude/commands/coordination/spawn.md +0 -45
  223. package/.claude/commands/coordination/swarm-init.md +0 -85
  224. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  225. package/.claude/commands/github/README.md +0 -11
  226. package/.claude/commands/github/code-review-swarm.md +0 -514
  227. package/.claude/commands/github/code-review.md +0 -25
  228. package/.claude/commands/github/github-modes.md +0 -147
  229. package/.claude/commands/github/github-swarm.md +0 -121
  230. package/.claude/commands/github/issue-tracker.md +0 -292
  231. package/.claude/commands/github/issue-triage.md +0 -25
  232. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  233. package/.claude/commands/github/pr-enhance.md +0 -26
  234. package/.claude/commands/github/pr-manager.md +0 -170
  235. package/.claude/commands/github/project-board-sync.md +0 -471
  236. package/.claude/commands/github/release-manager.md +0 -338
  237. package/.claude/commands/github/release-swarm.md +0 -544
  238. package/.claude/commands/github/repo-analyze.md +0 -25
  239. package/.claude/commands/github/repo-architect.md +0 -367
  240. package/.claude/commands/github/swarm-issue.md +0 -482
  241. package/.claude/commands/github/swarm-pr.md +0 -285
  242. package/.claude/commands/github/sync-coordinator.md +0 -301
  243. package/.claude/commands/github/workflow-automation.md +0 -442
  244. package/.claude/commands/github.js +0 -638
  245. package/.claude/commands/hive-mind/README.md +0 -17
  246. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -8
  247. package/.claude/commands/hive-mind/hive-mind-init.md +0 -18
  248. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -8
  249. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  250. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  251. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  252. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -21
  253. package/.claude/commands/hive-mind/hive-mind-status.md +0 -8
  254. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  255. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  256. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  257. package/.claude/commands/hooks/README.md +0 -11
  258. package/.claude/commands/hooks/overview.md +0 -58
  259. package/.claude/commands/hooks/post-edit.md +0 -117
  260. package/.claude/commands/hooks/post-task.md +0 -112
  261. package/.claude/commands/hooks/pre-edit.md +0 -113
  262. package/.claude/commands/hooks/pre-task.md +0 -111
  263. package/.claude/commands/hooks/session-end.md +0 -118
  264. package/.claude/commands/hooks/session-start.md +0 -9
  265. package/.claude/commands/hooks/setup.md +0 -103
  266. package/.claude/commands/hooks.js +0 -651
  267. package/.claude/commands/index.js +0 -119
  268. package/.claude/commands/memory/README.md +0 -9
  269. package/.claude/commands/memory/memory-bank.md +0 -58
  270. package/.claude/commands/memory/memory-persist.md +0 -25
  271. package/.claude/commands/memory/memory-search.md +0 -25
  272. package/.claude/commands/memory/memory-usage.md +0 -25
  273. package/.claude/commands/memory/neural.md +0 -47
  274. package/.claude/commands/memory/usage.md +0 -46
  275. package/.claude/commands/monitoring/README.md +0 -9
  276. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  277. package/.claude/commands/monitoring/agents.md +0 -44
  278. package/.claude/commands/monitoring/real-time-view.md +0 -25
  279. package/.claude/commands/monitoring/status.md +0 -46
  280. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  281. package/.claude/commands/neural.js +0 -572
  282. package/.claude/commands/optimization/README.md +0 -9
  283. package/.claude/commands/optimization/auto-topology.md +0 -62
  284. package/.claude/commands/optimization/cache-manage.md +0 -25
  285. package/.claude/commands/optimization/parallel-execute.md +0 -25
  286. package/.claude/commands/optimization/parallel-execution.md +0 -50
  287. package/.claude/commands/optimization/topology-optimize.md +0 -25
  288. package/.claude/commands/pair/README.md +0 -261
  289. package/.claude/commands/pair/commands.md +0 -546
  290. package/.claude/commands/pair/config.md +0 -510
  291. package/.claude/commands/pair/examples.md +0 -512
  292. package/.claude/commands/pair/modes.md +0 -348
  293. package/.claude/commands/pair/session.md +0 -407
  294. package/.claude/commands/pair/start.md +0 -209
  295. package/.claude/commands/parse-epic.js +0 -180
  296. package/.claude/commands/performance.js +0 -582
  297. package/.claude/commands/register-all-commands.js +0 -320
  298. package/.claude/commands/register-claude-md.js +0 -82
  299. package/.claude/commands/register-claude-soul.js +0 -80
  300. package/.claude/commands/sparc/analyzer.md +0 -52
  301. package/.claude/commands/sparc/architect.md +0 -53
  302. package/.claude/commands/sparc/batch-executor.md +0 -54
  303. package/.claude/commands/sparc/coder.md +0 -54
  304. package/.claude/commands/sparc/debugger.md +0 -54
  305. package/.claude/commands/sparc/designer.md +0 -53
  306. package/.claude/commands/sparc/documenter.md +0 -54
  307. package/.claude/commands/sparc/innovator.md +0 -54
  308. package/.claude/commands/sparc/memory-manager.md +0 -54
  309. package/.claude/commands/sparc/optimizer.md +0 -54
  310. package/.claude/commands/sparc/orchestrator.md +0 -132
  311. package/.claude/commands/sparc/researcher.md +0 -54
  312. package/.claude/commands/sparc/reviewer.md +0 -54
  313. package/.claude/commands/sparc/sparc-modes.md +0 -174
  314. package/.claude/commands/sparc/swarm-coordinator.md +0 -54
  315. package/.claude/commands/sparc/tdd.md +0 -54
  316. package/.claude/commands/sparc/tester.md +0 -54
  317. package/.claude/commands/sparc/workflow-manager.md +0 -54
  318. package/.claude/commands/sparc.js +0 -110
  319. package/.claude/commands/stream-chain/pipeline.md +0 -121
  320. package/.claude/commands/stream-chain/run.md +0 -70
  321. package/.claude/commands/swarm/README.md +0 -15
  322. package/.claude/commands/swarm/analysis.md +0 -95
  323. package/.claude/commands/swarm/development.md +0 -96
  324. package/.claude/commands/swarm/examples.md +0 -168
  325. package/.claude/commands/swarm/maintenance.md +0 -102
  326. package/.claude/commands/swarm/optimization.md +0 -117
  327. package/.claude/commands/swarm/research.md +0 -136
  328. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  329. package/.claude/commands/swarm/swarm-background.md +0 -8
  330. package/.claude/commands/swarm/swarm-init.md +0 -19
  331. package/.claude/commands/swarm/swarm-modes.md +0 -8
  332. package/.claude/commands/swarm/swarm-monitor.md +0 -8
  333. package/.claude/commands/swarm/swarm-spawn.md +0 -19
  334. package/.claude/commands/swarm/swarm-status.md +0 -8
  335. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  336. package/.claude/commands/swarm/swarm.md +0 -27
  337. package/.claude/commands/swarm/testing.md +0 -131
  338. package/.claude/commands/swarm.js +0 -423
  339. package/.claude/commands/testing/playwright-e2e.md +0 -288
  340. package/.claude/commands/training/README.md +0 -9
  341. package/.claude/commands/training/model-update.md +0 -25
  342. package/.claude/commands/training/neural-patterns.md +0 -74
  343. package/.claude/commands/training/neural-train.md +0 -25
  344. package/.claude/commands/training/pattern-learn.md +0 -25
  345. package/.claude/commands/training/specialization.md +0 -63
  346. package/.claude/commands/truth/start.md +0 -143
  347. package/.claude/commands/validate-commands.js +0 -223
  348. package/.claude/commands/verify/check.md +0 -50
  349. package/.claude/commands/verify/start.md +0 -128
  350. package/.claude/commands/workflow.js +0 -606
  351. package/.claude/commands/workflows/README.md +0 -9
  352. package/.claude/commands/workflows/development.md +0 -78
  353. package/.claude/commands/workflows/research.md +0 -63
  354. package/.claude/commands/workflows/workflow-create.md +0 -25
  355. package/.claude/commands/workflows/workflow-execute.md +0 -25
  356. package/.claude/commands/workflows/workflow-export.md +0 -25
  357. package/.claude/coordinator-feedback-pattern.md +0 -326
  358. package/.claude/coordinator-patterns.md +0 -126
  359. package/.claude/core/agent-manager.js +0 -80
  360. package/.claude/core/agent-manager.js.map +0 -1
  361. package/.claude/core/config.js +0 -1221
  362. package/.claude/core/config.js.map +0 -1
  363. package/.claude/core/event-bus.js +0 -136
  364. package/.claude/core/event-bus.js.map +0 -1
  365. package/.claude/core/index.js +0 -6
  366. package/.claude/core/index.js.map +0 -1
  367. package/.claude/core/json-persistence.js +0 -112
  368. package/.claude/core/json-persistence.js.map +0 -1
  369. package/.claude/core/logger.js +0 -245
  370. package/.claude/core/logger.js.map +0 -1
  371. package/.claude/core/orchestrator-fixed.js +0 -236
  372. package/.claude/core/orchestrator-fixed.js.map +0 -1
  373. package/.claude/core/orchestrator.js +0 -1136
  374. package/.claude/core/orchestrator.js.map +0 -1
  375. package/.claude/core/persistence.js +0 -185
  376. package/.claude/core/persistence.js.map +0 -1
  377. package/.claude/core/project-manager.js +0 -80
  378. package/.claude/core/project-manager.js.map +0 -1
  379. package/.claude/core/slash-command.js +0 -24
  380. package/.claude/core/version.js +0 -35
  381. package/.claude/core/version.js.map +0 -1
  382. package/.claude/helpers/checkpoint-manager.sh +0 -251
  383. package/.claude/helpers/github-safe.js +0 -106
  384. package/.claude/helpers/github-setup.sh +0 -28
  385. package/.claude/helpers/quick-start.sh +0 -19
  386. package/.claude/helpers/setup-mcp.sh +0 -18
  387. package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
  388. package/.claude/hooks.json +0 -21
  389. package/.claude/logs/sprint1-hybrid-routing-v2-decision.json +0 -18
  390. package/.claude/redis-agent-dependencies.md +0 -494
  391. package/.claude/root-claude-distribute/CLAUDE.md +0 -428
  392. package/.claude/settings.json +0 -129
  393. package/.claude/settings.local.json +0 -33
  394. package/.claude/skills/CFN-LOOP-VALIDATION.md +0 -202
  395. package/.claude/skills/REDIS-COORDINATION.md +0 -187
  396. package/.claude/skills/SKILL.md +0 -229
  397. package/.claude/skills/ace-system/SKILL.md +0 -364
  398. package/.claude/skills/ace-system/add-bullet.sh +0 -145
  399. package/.claude/skills/ace-system/invoke-context-curate.sh +0 -192
  400. package/.claude/skills/ace-system/invoke-context-inject.sh +0 -166
  401. package/.claude/skills/ace-system/invoke-context-query.sh +0 -127
  402. package/.claude/skills/ace-system/invoke-context-reflect.sh +0 -98
  403. package/.claude/skills/ace-system/invoke-context-stats.sh +0 -188
  404. package/.claude/skills/ace-system/log-merge.sh +0 -67
  405. package/.claude/skills/ace-system/query-reflections.sh +0 -35
  406. package/.claude/skills/ace-system/store-reflection.sh +0 -149
  407. package/.claude/skills/ace-system/test-ace-skill.sh +0 -312
  408. package/.claude/skills/ace-system/update-reflection.sh +0 -41
  409. package/.claude/skills/agent-execution/execute-agent.sh +0 -126
  410. package/.claude/skills/agent-spawning/SKILL.md +0 -135
  411. package/.claude/skills/agent-spawning/agent-selection-guide.md +0 -814
  412. package/.claude/skills/agent-spawning/check-dependencies.sh +0 -30
  413. package/.claude/skills/agent-spawning/spawn-agent.sh +0 -263
  414. package/.claude/skills/agent-spawning/spawn-templates.sh +0 -613
  415. package/.claude/skills/analytics/description-refinement-guide.md +0 -164
  416. package/.claude/skills/analytics/log-skill-invocation.js +0 -122
  417. package/.claude/skills/analytics/run-production-criteria-tests.sh +0 -126
  418. package/.claude/skills/analytics/skill-analytics-dashboard.js +0 -113
  419. package/.claude/skills/analytics/skill-invocation-hook.sh +0 -28
  420. package/.claude/skills/analytics/skill-invocations.sql +0 -58
  421. package/.claude/skills/analytics/test-corpus.json +0 -32
  422. package/.claude/skills/analytics/test-data-generator.js +0 -115
  423. package/.claude/skills/analytics/test-manual-override-rate.js +0 -285
  424. package/.claude/skills/analytics/validate-skill-selection.js +0 -188
  425. package/.claude/skills/cfn-loop-validation/SKILL.md +0 -263
  426. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +0 -31
  427. package/.claude/skills/cfn-loop-validation/config.json +0 -161
  428. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +0 -477
  429. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +0 -163
  430. package/.claude/skills/cfn-loop-validation/examples/README.md +0 -453
  431. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +0 -234
  432. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +0 -132
  433. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +0 -115
  434. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +0 -186
  435. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +0 -252
  436. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +0 -134
  437. package/.claude/skills/cfn-loop-validation.sh +0 -70
  438. package/.claude/skills/config-management/SKILL.md +0 -34
  439. package/.claude/skills/config-management/check-dependencies.sh +0 -56
  440. package/.claude/skills/config-management/config.json +0 -32
  441. package/.claude/skills/config-management/manage-config.sh +0 -113
  442. package/.claude/skills/consensus-calculator.js +0 -45
  443. package/.claude/skills/event-bus/SKILL.md +0 -412
  444. package/.claude/skills/event-bus/config.json +0 -111
  445. package/.claude/skills/event-bus/eventbus-wrapper.cjs +0 -69
  446. package/.claude/skills/event-bus/invoke-event-publish.sh +0 -147
  447. package/.claude/skills/event-bus/invoke-event-subscribe.sh +0 -171
  448. package/.claude/skills/event-bus/invoke-lifecycle-track.sh +0 -201
  449. package/.claude/skills/event-bus/test-event-bus.sh +0 -280
  450. package/.claude/skills/evidence-chain.sql +0 -66
  451. package/.claude/skills/fleet-manager/SKILL.md +0 -412
  452. package/.claude/skills/fleet-manager/config.json +0 -60
  453. package/.claude/skills/fleet-manager/invoke-fleet-allocate.sh +0 -182
  454. package/.claude/skills/fleet-manager/invoke-fleet-balance.sh +0 -239
  455. package/.claude/skills/fleet-manager/invoke-fleet-metrics.sh +0 -193
  456. package/.claude/skills/fleet-manager/invoke-fleet-register.sh +0 -124
  457. package/.claude/skills/fleet-manager/test-fleet-manager.sh +0 -345
  458. package/.claude/skills/hook-pipeline/SKILL.md +0 -148
  459. package/.claude/skills/hook-pipeline/auto-resolve.sh +0 -66
  460. package/.claude/skills/hook-pipeline/check-dependencies.sh +0 -40
  461. package/.claude/skills/hook-pipeline/feedback-resolver.sh +0 -452
  462. package/.claude/skills/hook-pipeline/post-edit-handler.sh +0 -154
  463. package/.claude/skills/hook-pipeline/security-scan.json +0 -60
  464. package/.claude/skills/hook-pipeline/security-scanner.sh +0 -121
  465. package/.claude/skills/hook-pipeline/test-root-warning-resolution.sh +0 -148
  466. package/.claude/skills/hybrid-routing/SKILL.md +0 -46
  467. package/.claude/skills/hybrid-routing/check-dependencies.sh +0 -52
  468. package/.claude/skills/hybrid-routing/config.json +0 -26
  469. package/.claude/skills/hybrid-routing/spawn-worker.sh +0 -44
  470. package/.claude/skills/process-lifecycle/SKILL.md +0 -39
  471. package/.claude/skills/process-lifecycle/check-dependencies.sh +0 -58
  472. package/.claude/skills/process-lifecycle/config.json +0 -39
  473. package/.claude/skills/process-lifecycle/process-manager.sh +0 -144
  474. package/.claude/skills/redis-coordination/AGENT_LOGGING.md +0 -280
  475. package/.claude/skills/redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
  476. package/.claude/skills/redis-coordination/HEARTBEAT.md +0 -57
  477. package/.claude/skills/redis-coordination/HEARTBEAT_MONITORING.md +0 -267
  478. package/.claude/skills/redis-coordination/README.md +0 -64
  479. package/.claude/skills/redis-coordination/SECURITY_REVIEW.md +0 -25
  480. package/.claude/skills/redis-coordination/SHUTDOWN_HANDLING.md +0 -164
  481. package/.claude/skills/redis-coordination/SKILL.md +0 -118
  482. package/.claude/skills/redis-coordination/agent-log.sh +0 -124
  483. package/.claude/skills/redis-coordination/agent-recovery.sh +0 -75
  484. package/.claude/skills/redis-coordination/cancel-swarm.sh +0 -221
  485. package/.claude/skills/redis-coordination/cfn-loop-relaunch.sh +0 -29
  486. package/.claude/skills/redis-coordination/check-dependencies.sh +0 -32
  487. package/.claude/skills/redis-coordination/complete-swarm.sh +0 -75
  488. package/.claude/skills/redis-coordination/config.json +0 -61
  489. package/.claude/skills/redis-coordination/examples/README.md +0 -73
  490. package/.claude/skills/redis-coordination/examples/grafana-dashboard.json +0 -352
  491. package/.claude/skills/redis-coordination/examples/hierarchical-pattern.sh +0 -127
  492. package/.claude/skills/redis-coordination/examples/mesh-pattern.sh +0 -171
  493. package/.claude/skills/redis-coordination/examples/timeout-handling.sh +0 -227
  494. package/.claude/skills/redis-coordination/examples/waiting-mode-pattern.sh +0 -239
  495. package/.claude/skills/redis-coordination/get-agent-timeout.sh +0 -177
  496. package/.claude/skills/redis-coordination/heartbeat-functions.sh +0 -137
  497. package/.claude/skills/redis-coordination/heartbeat-protocol.md +0 -106
  498. package/.claude/skills/redis-coordination/heartbeat.sh +0 -126
  499. package/.claude/skills/redis-coordination/init-swarm.sh +0 -148
  500. package/.claude/skills/redis-coordination/invoke-redis-pattern.sh +0 -220
  501. package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +0 -417
  502. package/.claude/skills/redis-coordination/list-active-swarms.sh +0 -147
  503. package/.claude/skills/redis-coordination/metrics-export.sh +0 -674
  504. package/.claude/skills/redis-coordination/metrics-schema.json +0 -66
  505. package/.claude/skills/redis-coordination/metrics-storage.md +0 -31
  506. package/.claude/skills/redis-coordination/monitor-heartbeats.sh +0 -101
  507. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +0 -993
  508. package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
  509. package/.claude/skills/redis-coordination/phase4-wake-queue-test-report.md +0 -82
  510. package/.claude/skills/redis-coordination/priority-wake-mechanism.md +0 -75
  511. package/.claude/skills/redis-coordination/priority_wake.py +0 -134
  512. package/.claude/skills/redis-coordination/query-dlq.sh +0 -162
  513. package/.claude/skills/redis-coordination/redis-pattern.sh +0 -619
  514. package/.claude/skills/redis-coordination/send-heartbeat.sh +0 -73
  515. package/.claude/skills/redis-coordination/store-epic-context.sh +0 -123
  516. package/.claude/skills/redis-coordination/test-bzpopmin-fix.sh +0 -274
  517. package/.claude/skills/redis-coordination/test-cancel-swarm.sh +0 -276
  518. package/.claude/skills/redis-coordination/test-dlq.sh +0 -129
  519. package/.claude/skills/redis-coordination/test-iteration-feedback.sh +0 -320
  520. package/.claude/skills/redis-coordination/test-orchestrator.sh +0 -224
  521. package/.claude/skills/redis-coordination/test-priority-wake-phase4-unix.sh +0 -148
  522. package/.claude/skills/redis-coordination/test-priority-wake-phase4.sh +0 -163
  523. package/.claude/skills/redis-coordination/test-priority-wake.sh +0 -138
  524. package/.claude/skills/redis-coordination/test-quick-fix.sh +0 -81
  525. package/.claude/skills/redis-coordination/test-quorum-absolute.sh +0 -45
  526. package/.claude/skills/redis-coordination/test-quorum-fallback.sh +0 -68
  527. package/.claude/skills/redis-coordination/test-quorum-percentage.sh +0 -56
  528. package/.claude/skills/redis-coordination/test-quorum-with-retry.sh +0 -81
  529. package/.claude/skills/redis-coordination/test-quorum.sh +0 -57
  530. package/.claude/skills/redis-coordination/test-shutdown-handling.sh +0 -187
  531. package/.claude/skills/redis-coordination/test-shutdown.sh +0 -160
  532. package/.claude/skills/redis-coordination/test-utils-unix.sh +0 -97
  533. package/.claude/skills/redis-coordination/test-utils.sh +0 -97
  534. package/.claude/skills/redis-coordination/test-waiting-mode.sh +0 -59
  535. package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +0 -102
  536. package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +0 -99
  537. package/.claude/skills/redis-coordination/tests/integration-test.sh +0 -170
  538. package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +0 -82
  539. package/.claude/skills/redis-coordination/tests/run-test-suite.sh +0 -92
  540. package/.claude/skills/redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
  541. package/.claude/skills/redis-coordination/tests/test-heartbeat-simple.sh +0 -124
  542. package/.claude/skills/redis-coordination/tests/test-utils.sh +0 -122
  543. package/.claude/skills/skill-builder/SKILL.md +0 -910
  544. package/.claude/skills/sqlite-memory/IMPLEMENTATION_REPORT.md +0 -393
  545. package/.claude/skills/sqlite-memory/QUICK_REFERENCE.md +0 -204
  546. package/.claude/skills/sqlite-memory/SKILL.md +0 -415
  547. package/.claude/skills/sqlite-memory/acl-queries.sql +0 -452
  548. package/.claude/skills/sqlite-memory/check-dependencies.sh +0 -36
  549. package/.claude/skills/sqlite-memory/config.json +0 -45
  550. package/.claude/skills/sqlite-memory/memory-cli.sh +0 -88
  551. package/.claude/skills/sqlite-memory/test-state-persistence.js +0 -187
  552. package/.claude/skills/sqlite-memory/ttl-cleanup.sh +0 -274
  553. package/.claude/skills/test-execution/SKILL.md +0 -128
  554. package/.claude/skills/test-execution/check-dependencies.sh +0 -36
  555. package/.claude/skills/test-execution/test-cache-reader.sh +0 -134
  556. package/.claude/skills/test-execution/test-concurrent-conflicts.sh +0 -115
  557. package/.claude/skills/test-execution/test-coordinator-pattern.sh +0 -109
  558. package/.claude/skills/test-execution-coordinator-pattern.md +0 -228
  559. package/.claude/skills/transparency-middleware/Cargo.toml +0 -18
  560. package/.claude/skills/transparency-middleware/SECURITY.md +0 -41
  561. package/.claude/skills/transparency-middleware/SKILL.md +0 -91
  562. package/.claude/skills/transparency-middleware/TEST_RESULTS.md +0 -174
  563. package/.claude/skills/transparency-middleware/config.json +0 -31
  564. package/.claude/skills/transparency-middleware/examples/basic-usage.ts +0 -39
  565. package/.claude/skills/transparency-middleware/examples/batch-processing.ts +0 -52
  566. package/.claude/skills/transparency-middleware/examples/custom-filtering.ts +0 -61
  567. package/.claude/skills/transparency-middleware/invoke-transparency-filter.sh +0 -98
  568. package/.claude/skills/transparency-middleware/invoke-transparency-init.sh +0 -224
  569. package/.claude/skills/transparency-middleware/invoke-transparency-level.sh +0 -333
  570. package/.claude/skills/transparency-middleware/invoke-transparency-metrics.sh +0 -345
  571. package/.claude/skills/transparency-middleware/invoke-transparency-observe.sh +0 -140
  572. package/.claude/skills/transparency-middleware/invoke-transparency-stop.sh +0 -235
  573. package/.claude/skills/transparency-middleware/memory_query.rs +0 -85
  574. package/.claude/skills/transparency-middleware/memory_repository.rs +0 -140
  575. package/.claude/skills/transparency-middleware/memory_schema.rs +0 -64
  576. package/.claude/skills/transparency-middleware/middleware-config.sh +0 -29
  577. package/.claude/skills/transparency-middleware/performance-benchmark.sh +0 -79
  578. package/.claude/skills/transparency-middleware/test-e2e.sh +0 -406
  579. package/.claude/skills/transparency-middleware/test-integration.sh +0 -162
  580. package/.claude/skills/transparency-middleware/test-transparency-skill.sh +0 -368
  581. package/.claude/skills/transparency-middleware/test-transparency-skill.sh.unix +0 -126
  582. package/.claude/skills/transparency-middleware/tests/input-validation.sh +0 -93
  583. package/.claude/skills/transparency-middleware/wrap-agent.sh +0 -132
  584. package/.claude/skills/web-portal/DESIGN.md +0 -117
  585. package/.claude/skills/web-portal/SKILL.md +0 -679
  586. package/.claude/skills/web-portal/invoke-portal-agents.sh +0 -129
  587. package/.claude/skills/web-portal/invoke-portal-dashboard.sh +0 -85
  588. package/.claude/skills/web-portal/invoke-portal-events.sh +0 -125
  589. package/.claude/skills/web-portal/invoke-portal-metrics.sh +0 -112
  590. package/.claude/skills/web-portal/invoke-portal-start.sh +0 -135
  591. package/.claude/skills/web-portal/invoke-portal-stop.sh +0 -121
  592. package/.claude/skills/web-portal/test-web-portal-skill.sh +0 -51
  593. package/.claude/skills/web-portal/validate-deployment.sh +0 -85
  594. package/.claude/slash-commands.json +0 -92
  595. package/.claude/spawn-pattern-examples.md +0 -500
  596. package/.claude/sprint-configs/cfn-naming-standardization.json +0 -729
  597. package/.claude/sprint-reports/sprint-1.4-self-correction-monitoring.json +0 -64
  598. package/.claude/swarm-memory.db +0 -0
  599. package/.claude/templates/agent-optimization-plan.md +0 -439
  600. package/.claude/templates/bulk-optimization-strategy.md +0 -367
  601. package/.claude/templates/cfn-loop-mechanics.md +0 -80
  602. package/.claude/templates/coordinator-patterns.md +0 -75
  603. package/.claude/templates/memory-operations.md +0 -200
  604. package/.claude/templates/post-edit-validation.md +0 -109
  605. package/.claude/templates/redis-coordination.md +0 -140
  606. package/.claude/templates/remaining-agent-analysis.md +0 -121
  607. package/.claude/templates/swarm-coordination.md +0 -103
  608. package/.claude/templates/team-dynamics.md +0 -82
  609. package/CLAUDE.md +0 -502
  610. package/dist/cli/cli-agent-context.test.js +0 -451
  611. package/dist/cli/cli-agent-context.test.js.map +0 -1
  612. package/dist/coordination/fleet-manager.test.js +0 -141
  613. package/dist/coordination/fleet-manager.test.js.map +0 -1
  614. package/dist/middleware/transparency-middleware.test.js +0 -184
  615. package/dist/middleware/transparency-middleware.test.js.map +0 -1
  616. package/readme/CLAUDE.md +0 -429
  617. /package/.claude/agents/{core-agents → cfn-dev-team/developers}/researcher.md +0 -0
  618. /package/.claude/commands/{README.md → cfn/README.md} +0 -0
  619. /package/.claude/commands/{auto-compact.md → cfn/auto-compact.md} +0 -0
  620. /package/.claude/commands/{cfn-claude-sync.md → cfn/cfn-claude-sync.md} +0 -0
  621. /package/.claude/commands/{cfn-loop-document.md → cfn/cfn-loop-document.md} +0 -0
  622. /package/.claude/commands/{claude-md.md → cfn/claude-md.md} +0 -0
  623. /package/.claude/commands/{claude-soul.md → cfn/claude-soul.md} +0 -0
  624. /package/.claude/commands/{context-query.md → cfn/context-query.md} +0 -0
  625. /package/.claude/commands/{cost-savings-off.md → cfn/cost-savings-off.md} +0 -0
  626. /package/.claude/commands/{cost-savings-on.md → cfn/cost-savings-on.md} +0 -0
  627. /package/.claude/commands/{cost-savings-status.md → cfn/cost-savings-status.md} +0 -0
  628. /package/.claude/commands/{custom-routing-activate.md → cfn/custom-routing-activate.md} +0 -0
  629. /package/.claude/commands/{custom-routing-deactivate.md → cfn/custom-routing-deactivate.md} +0 -0
  630. /package/.claude/commands/{dependency-recommendations.md → cfn/dependency-recommendations.md} +0 -0
  631. /package/.claude/commands/{fullstack.md → cfn/fullstack.md} +0 -0
  632. /package/.claude/commands/{github-commit.md → cfn/github-commit.md} +0 -0
  633. /package/.claude/commands/{github.md → cfn/github.md} +0 -0
  634. /package/.claude/commands/{hello-world-tests.md → cfn/hello-world-tests.md} +0 -0
  635. /package/.claude/commands/{hooks.md → cfn/hooks.md} +0 -0
  636. /package/.claude/commands/{launch-web-dashboard.md → cfn/launch-web-dashboard.md} +0 -0
  637. /package/.claude/commands/{metrics-summary.md → cfn/metrics-summary.md} +0 -0
  638. /package/.claude/commands/{neural.md → cfn/neural.md} +0 -0
  639. /package/.claude/commands/{parse-epic.md → cfn/parse-epic.md} +0 -0
  640. /package/.claude/commands/{performance.md → cfn/performance.md} +0 -0
  641. /package/.claude/commands/{sparc.md → cfn/sparc.md} +0 -0
  642. /package/.claude/commands/{suggest-improvements.md → cfn/suggest-improvements.md} +0 -0
  643. /package/.claude/commands/{suggest-templates.md → cfn/suggest-templates.md} +0 -0
  644. /package/.claude/commands/{swarm.md → cfn/swarm.md} +0 -0
  645. /package/.claude/commands/{switch-api.md → cfn/switch-api.md} +0 -0
  646. /package/.claude/commands/{workflow.md → cfn/workflow.md} +0 -0
  647. /package/.claude/hooks/{invoke-post-edit.sh → cfn-invoke-post-edit.sh} +0 -0
  648. /package/.claude/hooks/{post-edit.config.json → cfn-post-edit.config.json} +0 -0
  649. /package/.claude/skills/{agent-spawning → cfn-agent-spawning}/README.md +0 -0
  650. /package/.claude/skills/{analytics → cfn-analytics}/README.md +0 -0
  651. /package/.claude/skills/{config-management → cfn-config-management}/README.md +0 -0
  652. /package/.claude/skills/{event-bus → cfn-event-bus}/README.md +0 -0
  653. /package/.claude/skills/{fleet-manager → cfn-fleet-manager}/README.md +0 -0
  654. /package/.claude/skills/{hook-pipeline → cfn-hook-pipeline}/README.md +0 -0
  655. /package/.claude/skills/{hybrid-routing → cfn-hybrid-routing}/README.md +0 -0
  656. /package/.claude/skills/{process-lifecycle → cfn-process-lifecycle}/README.md +0 -0
  657. /package/.claude/skills/{sqlite-memory → cfn-sqlite-memory}/README.md +0 -0
  658. /package/.claude/skills/{test-execution → cfn-test-execution}/README.md +0 -0
  659. /package/.claude/skills/{transparency-middleware → cfn-transparency-middleware}/README.md +0 -0
@@ -1,841 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Agent Profile Validator
5
- *
6
- * Validates agent profiles against CLAUDE.md standards and design principles.
7
- * Checks frontmatter, prompt format, quality, and provides actionable recommendations.
8
- *
9
- * Usage:
10
- * node validate-agent.js <path-to-agent.md>
11
- * node validate-agent.js --all
12
- *
13
- * @module validate-agent
14
- */
15
-
16
- import { readFile, readdir } from 'fs/promises';
17
- import { resolve, dirname, basename, join } from 'path';
18
- import { fileURLToPath } from 'url';
19
-
20
- const __filename = fileURLToPath(import.meta.url);
21
- const __dirname = dirname(__filename);
22
-
23
- // ============================================================================
24
- // Configuration
25
- // ============================================================================
26
-
27
- const APPROVED_TOOLS = [
28
- 'Read', 'Write', 'Edit', 'MultiEdit', 'Bash', 'Glob', 'Grep', 'TodoWrite'
29
- ];
30
-
31
- const APPROVED_MODELS = [
32
- 'sonnet', 'haiku', 'opus', 'sonnet-3-5', 'sonnet-4-5', 'haiku'
33
- ];
34
-
35
- const VALID_COLOR_FORMATS = [
36
- /^[a-z]+$/i, // Named colors: "orange", "green"
37
- /^#[0-9A-F]{6}$/i, // Hex colors: "#FF9800"
38
- /^rgb\(\d+,\s*\d+,\s*\d+\)$/i // RGB colors: "rgb(255, 152, 0)"
39
- ];
40
-
41
- const AGENT_TYPES = [
42
- 'coder', 'reviewer', 'tester', 'planner', 'researcher', 'coordinator',
43
- 'backend-dev', 'api-docs', 'system-architect', 'code-analyzer',
44
- 'mobile-dev', 'tdd-london-swarm', 'production-validator',
45
- 'perf-analyzer', 'performance-benchmarker', 'task-orchestrator'
46
- ];
47
-
48
- // ============================================================================
49
- // YAML Parser (Simplified - handles basic YAML)
50
- // ============================================================================
51
-
52
- function parseYAML(yamlString) {
53
- const lines = yamlString.split('\n');
54
- const result = {};
55
- let currentKey = null;
56
- let currentArray = null;
57
- let inMultiline = false;
58
- let multilineKey = null;
59
- let multilineContent = [];
60
-
61
- for (const line of lines) {
62
- const trimmed = line.trim();
63
-
64
- // Skip empty lines and comments
65
- if (!trimmed || trimmed.startsWith('#')) continue;
66
-
67
- // Handle multiline blocks
68
- if (trimmed.endsWith('|') || trimmed.endsWith('>')) {
69
- multilineKey = trimmed.slice(0, -1).replace(':', '').trim();
70
- inMultiline = true;
71
- multilineContent = [];
72
- continue;
73
- }
74
-
75
- if (inMultiline) {
76
- if (line.startsWith(' ')) {
77
- multilineContent.push(line.slice(2));
78
- } else {
79
- result[multilineKey] = multilineContent.join('\n');
80
- inMultiline = false;
81
- multilineKey = null;
82
- }
83
- }
84
-
85
- // Handle array items
86
- if (trimmed.startsWith('- ')) {
87
- const value = trimmed.slice(2).trim();
88
- if (currentArray) {
89
- currentArray.push(value);
90
- }
91
- continue;
92
- }
93
-
94
- // Handle key-value pairs
95
- if (trimmed.includes(':')) {
96
- const [key, ...valueParts] = trimmed.split(':');
97
- const value = valueParts.join(':').trim();
98
-
99
- currentKey = key.trim();
100
-
101
- if (value === '') {
102
- // Start of array or object
103
- currentArray = [];
104
- result[currentKey] = currentArray;
105
- } else {
106
- // Simple value
107
- currentArray = null;
108
- // Try to parse as number or boolean
109
- if (value === 'true') result[currentKey] = true;
110
- else if (value === 'false') result[currentKey] = false;
111
- else if (!isNaN(value) && value !== '') result[currentKey] = Number(value);
112
- else result[currentKey] = value.replace(/^['"]|['"]$/g, ''); // Remove quotes
113
- }
114
- }
115
- }
116
-
117
- // Close any remaining multiline
118
- if (inMultiline && multilineKey) {
119
- result[multilineKey] = multilineContent.join('\n');
120
- }
121
-
122
- return result;
123
- }
124
-
125
- // ============================================================================
126
- // Format Detection & Classification
127
- // ============================================================================
128
-
129
- /**
130
- * Classifies agent prompt format based on content analysis
131
- */
132
- function classifyFormat(content, frontmatter) {
133
- const promptContent = content.split('---').slice(2).join('---');
134
- const lines = promptContent.split('\n').filter(line => line.trim());
135
- const wordCount = promptContent.split(/\s+/).length;
136
-
137
- // Count code blocks
138
- const codeBlockCount = (promptContent.match(/```/g) || []).length / 2;
139
-
140
- // Count structured sections
141
- const hasCapabilities = frontmatter.capabilities !== undefined;
142
- const hasHooks = frontmatter.hooks !== undefined;
143
- const hasLifecycle = frontmatter.lifecycle !== undefined;
144
-
145
- // Classification logic based on empirical findings
146
- const classification = {
147
- format: 'unknown',
148
- confidence: 0,
149
- characteristics: {},
150
- tokens: 0,
151
- words: wordCount
152
- };
153
-
154
- // CODE-HEAVY: 2000+ tokens, multiple code examples, implementation patterns
155
- if (codeBlockCount >= 3 && wordCount > 1500) {
156
- classification.format = 'code-heavy';
157
- classification.confidence = 0.9;
158
- classification.tokens = 2000 + Math.floor(wordCount * 0.75);
159
- classification.characteristics = {
160
- codeBlocks: codeBlockCount,
161
- hasExamples: true,
162
- hasImplementationPatterns: true,
163
- verbosity: 'high'
164
- };
165
- }
166
- // METADATA: 1000-1500 tokens, structured frontmatter, YAML/TS blocks
167
- else if ((hasCapabilities || hasHooks || hasLifecycle) && codeBlockCount >= 1) {
168
- classification.format = 'metadata';
169
- classification.confidence = 0.85;
170
- classification.tokens = 1000 + Math.floor(wordCount * 0.5);
171
- classification.characteristics = {
172
- codeBlocks: codeBlockCount,
173
- hasStructuredMetadata: true,
174
- hasCapabilities,
175
- hasHooks,
176
- hasLifecycle,
177
- verbosity: 'medium'
178
- };
179
- }
180
- // MINIMAL: 500-800 tokens, lean prompts, reasoning-focused
181
- else if (wordCount < 1000 && codeBlockCount <= 1) {
182
- classification.format = 'minimal';
183
- classification.confidence = 0.8;
184
- classification.tokens = 500 + Math.floor(wordCount * 0.33);
185
- classification.characteristics = {
186
- codeBlocks: codeBlockCount,
187
- reasoningFocused: true,
188
- verbosity: 'low'
189
- };
190
- }
191
- // METADATA as default middle ground
192
- else {
193
- classification.format = 'metadata';
194
- classification.confidence = 0.6;
195
- classification.tokens = 1000;
196
- classification.characteristics = {
197
- codeBlocks: codeBlockCount,
198
- verbosity: 'medium'
199
- };
200
- }
201
-
202
- return classification;
203
- }
204
-
205
- /**
206
- * Estimates task complexity based on agent type and description
207
- */
208
- function estimateComplexity(frontmatter, content) {
209
- const description = (frontmatter.description || '').toLowerCase();
210
- const promptContent = content.toLowerCase();
211
-
212
- const indicators = {
213
- basic: ['simple', 'basic', 'string', 'array', 'validation', 'parse', 'format', 'convert'],
214
- medium: ['multiple', 'integrate', 'refactor', 'concurrent', 'cache', 'queue', 'worker', 'pipeline'],
215
- complex: ['architecture', 'system', 'distributed', 'scalable', 'design', 'trade-off', 'performance-critical', 'zero-copy']
216
- };
217
-
218
- const scores = {
219
- basic: 0,
220
- medium: 0,
221
- complex: 0
222
- };
223
-
224
- // Score based on keywords
225
- for (const [level, keywords] of Object.entries(indicators)) {
226
- for (const keyword of keywords) {
227
- if (description.includes(keyword)) scores[level]++;
228
- if (promptContent.includes(keyword)) scores[level] += 0.5;
229
- }
230
- }
231
-
232
- // Determine complexity
233
- const maxScore = Math.max(...Object.values(scores));
234
- if (maxScore === 0) return { complexity: 'medium', confidence: 'low', scores };
235
-
236
- const complexity = Object.keys(scores).find(key => scores[key] === maxScore);
237
- const confidence = maxScore >= 2 ? 'high' : maxScore >= 1 ? 'medium' : 'low';
238
-
239
- return { complexity, confidence, scores };
240
- }
241
-
242
- /**
243
- * Recommends optimal format based on agent type and complexity
244
- */
245
- function recommendFormat(agentType, complexity) {
246
- // Always minimal for architectural reasoning
247
- if (agentType === 'architect' || agentType === 'system-architect') {
248
- return {
249
- recommended: 'minimal',
250
- reason: 'Architectural agents need reasoning freedom, not examples',
251
- confidence: 'high'
252
- };
253
- }
254
-
255
- // Always minimal for reviewers
256
- if (agentType === 'reviewer' || agentType === 'code-analyzer') {
257
- return {
258
- recommended: 'minimal',
259
- reason: 'Review agents need to reason about code, not follow patterns',
260
- confidence: 'high'
261
- };
262
- }
263
-
264
- // Always metadata for researchers
265
- if (agentType === 'researcher') {
266
- return {
267
- recommended: 'metadata',
268
- reason: 'Research needs structured output format',
269
- confidence: 'high'
270
- };
271
- }
272
-
273
- // Coder agents: complexity-based selection (validated)
274
- if (agentType === 'coder' || agentType === 'backend-dev' || agentType === 'mobile-dev') {
275
- if (complexity === 'basic') {
276
- return {
277
- recommended: 'code-heavy',
278
- reason: 'Basic tasks benefit from examples (+43% quality boost validated)',
279
- confidence: 'high',
280
- evidence: 'Empirically validated on Rust benchmarks'
281
- };
282
- }
283
- if (complexity === 'complex') {
284
- return {
285
- recommended: 'minimal',
286
- reason: 'Complex tasks need reasoning, examples constrain solution space',
287
- confidence: 'high',
288
- evidence: 'Validated: 0% quality gap between formats on complex tasks'
289
- };
290
- }
291
- return {
292
- recommended: 'metadata',
293
- reason: 'Medium complexity benefits from structure without over-constraining',
294
- confidence: 'medium'
295
- };
296
- }
297
-
298
- // Tester agents: similar to coders
299
- if (agentType === 'tester' || agentType === 'tdd-london-swarm') {
300
- if (complexity === 'basic') {
301
- return {
302
- recommended: 'code-heavy',
303
- reason: 'Test structure and patterns benefit from examples',
304
- confidence: 'medium'
305
- };
306
- }
307
- return {
308
- recommended: 'metadata',
309
- reason: 'Test organization needs structure',
310
- confidence: 'medium'
311
- };
312
- }
313
-
314
- // Default: metadata as safe middle ground
315
- return {
316
- recommended: 'metadata',
317
- reason: 'Balanced approach for general tasks',
318
- confidence: 'medium'
319
- };
320
- }
321
-
322
- // ============================================================================
323
- // Validation Functions
324
- // ============================================================================
325
-
326
- /**
327
- * Validates frontmatter structure and required fields
328
- */
329
- function validateFrontmatter(frontmatter) {
330
- const issues = [];
331
- const warnings = [];
332
-
333
- // Required fields
334
- if (!frontmatter.name) {
335
- issues.push({
336
- severity: 'error',
337
- field: 'name',
338
- message: 'Missing required field: name',
339
- fix: 'Add "name: agent-name" to frontmatter'
340
- });
341
- }
342
-
343
- if (!frontmatter.description) {
344
- issues.push({
345
- severity: 'error',
346
- field: 'description',
347
- message: 'Missing required field: description',
348
- fix: 'Add "description: ..." to frontmatter'
349
- });
350
- } else if (frontmatter.description.length < 50) {
351
- warnings.push({
352
- severity: 'warning',
353
- field: 'description',
354
- message: 'Description is too short (< 50 chars)',
355
- fix: 'Expand description to include key capabilities and use cases'
356
- });
357
- }
358
-
359
- // Tools validation
360
- if (!frontmatter.tools) {
361
- warnings.push({
362
- severity: 'warning',
363
- field: 'tools',
364
- message: 'Missing tools specification',
365
- fix: 'Add "tools: Read, Write, Edit, ..." to frontmatter'
366
- });
367
- } else {
368
- const tools = typeof frontmatter.tools === 'string'
369
- ? frontmatter.tools.split(',').map(t => t.trim())
370
- : frontmatter.tools;
371
-
372
- const invalidTools = tools.filter(tool => !APPROVED_TOOLS.includes(tool));
373
- if (invalidTools.length > 0) {
374
- issues.push({
375
- severity: 'error',
376
- field: 'tools',
377
- message: `Invalid tools: ${invalidTools.join(', ')}`,
378
- fix: `Use only approved tools: ${APPROVED_TOOLS.join(', ')}`
379
- });
380
- }
381
- }
382
-
383
- // Model validation
384
- if (!frontmatter.model) {
385
- warnings.push({
386
- severity: 'warning',
387
- field: 'model',
388
- message: 'Missing model specification',
389
- fix: 'Add "model: sonnet" (or haiku, opus) to frontmatter'
390
- });
391
- } else if (!APPROVED_MODELS.includes(frontmatter.model)) {
392
- warnings.push({
393
- severity: 'warning',
394
- field: 'model',
395
- message: `Uncommon model: ${frontmatter.model}`,
396
- fix: `Consider using: ${APPROVED_MODELS.slice(0, 3).join(', ')}`
397
- });
398
- }
399
-
400
- // Color validation
401
- if (!frontmatter.color) {
402
- warnings.push({
403
- severity: 'warning',
404
- field: 'color',
405
- message: 'Missing color specification',
406
- fix: 'Add "color: blue" (or hex "#0000FF") to frontmatter'
407
- });
408
- } else {
409
- const colorValid = VALID_COLOR_FORMATS.some(regex => regex.test(frontmatter.color));
410
- if (!colorValid) {
411
- issues.push({
412
- severity: 'error',
413
- field: 'color',
414
- message: `Invalid color format: ${frontmatter.color}`,
415
- fix: 'Use named color (e.g., "orange"), hex (e.g., "#FF9800"), or RGB (e.g., "rgb(255, 152, 0)")'
416
- });
417
- }
418
- }
419
-
420
- return { issues, warnings };
421
- }
422
-
423
- /**
424
- * Analyzes prompt quality and structure
425
- */
426
- function analyzePromptQuality(content) {
427
- const promptContent = content.split('---').slice(2).join('---');
428
- const recommendations = [];
429
-
430
- // Check for clear role definition
431
- const hasRoleDefinition = /you are|your role|you specialize in/i.test(promptContent.slice(0, 500));
432
- if (!hasRoleDefinition) {
433
- recommendations.push({
434
- category: 'role-clarity',
435
- message: 'Add clear role definition in first paragraph',
436
- example: 'Start with "You are a [Role] specialized in..."'
437
- });
438
- }
439
-
440
- // Check for specific responsibilities
441
- const hasResponsibilities = /responsibilities|duties|tasks|core functions/i.test(promptContent);
442
- if (!hasResponsibilities) {
443
- recommendations.push({
444
- category: 'structure',
445
- message: 'Add clear responsibilities section',
446
- example: '## Core Responsibilities\n1. [Responsibility 1]\n2. [Responsibility 2]'
447
- });
448
- }
449
-
450
- // Check for anti-patterns
451
- const negativeCount = (promptContent.match(/don't|never|avoid(?!\s+memory leaks)/gi) || []).length;
452
- if (negativeCount > 5) {
453
- recommendations.push({
454
- category: 'anti-pattern',
455
- message: `Excessive negative instructions (${negativeCount} found)`,
456
- fix: 'Rephrase as positive guidance: "Use X instead of Y"'
457
- });
458
- }
459
-
460
- return { recommendations };
461
- }
462
-
463
- /**
464
- * Checks format alignment with task complexity
465
- */
466
- function checkFormatAlignment(agentType, format, complexity) {
467
- const recommendation = recommendFormat(agentType, complexity.complexity);
468
- const alignment = {
469
- aligned: format.format === recommendation.recommended,
470
- currentFormat: format.format,
471
- recommendedFormat: recommendation.recommended,
472
- reason: recommendation.reason,
473
- confidence: recommendation.confidence,
474
- evidence: recommendation.evidence || 'Hypothesized from validated coder agent patterns'
475
- };
476
-
477
- if (!alignment.aligned) {
478
- alignment.impact = estimateImpact(format.format, recommendation.recommended, complexity.complexity);
479
- }
480
-
481
- return alignment;
482
- }
483
-
484
- /**
485
- * Estimates impact of format mismatch
486
- */
487
- function estimateImpact(currentFormat, recommendedFormat, complexity) {
488
- const impacts = {
489
- 'basic-minimal-to-code-heavy': '+43% quality boost (validated)',
490
- 'basic-metadata-to-code-heavy': '+10-15% quality improvement',
491
- 'complex-code-heavy-to-minimal': '0% quality gap, 10% faster response',
492
- 'complex-metadata-to-minimal': '0-3% quality gap, 5% faster response'
493
- };
494
-
495
- const key = `${complexity}-${currentFormat}-to-${recommendedFormat}`;
496
- return impacts[key] || 'Marginal impact expected';
497
- }
498
-
499
- // ============================================================================
500
- // Validation Orchestration
501
- // ============================================================================
502
-
503
- /**
504
- * Performs complete validation of an agent profile
505
- */
506
- async function validateAgent(filePath) {
507
- const content = await readFile(filePath, 'utf-8');
508
-
509
- // Parse frontmatter (handle both \n--- and ---\n endings)
510
- const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
511
- if (!frontmatterMatch) {
512
- return {
513
- valid: false,
514
- file: filePath,
515
- agentType: 'unknown',
516
- complianceScore: 0,
517
- frontmatter: {
518
- valid: false,
519
- issues: [{
520
- severity: 'error',
521
- field: 'frontmatter',
522
- message: 'No frontmatter found',
523
- fix: 'Add YAML frontmatter at the beginning of the file'
524
- }],
525
- warnings: []
526
- },
527
- format: {
528
- classification: { format: 'unknown', confidence: 0, characteristics: {}, tokens: 0, words: 0 },
529
- complexity: { complexity: 'unknown', confidence: 'low', scores: { basic: 0, medium: 0, complex: 0 } },
530
- alignment: { aligned: false, currentFormat: 'unknown', recommendedFormat: 'minimal', reason: 'No frontmatter', confidence: 'low', evidence: 'N/A' }
531
- },
532
- quality: { recommendations: [] },
533
- summary: 'CRITICAL ERROR: No frontmatter found'
534
- };
535
- }
536
-
537
- let frontmatter;
538
- try {
539
- frontmatter = parseYAML(frontmatterMatch[1]);
540
- } catch (err) {
541
- return {
542
- valid: false,
543
- file: filePath,
544
- agentType: 'unknown',
545
- complianceScore: 0,
546
- frontmatter: {
547
- valid: false,
548
- issues: [{
549
- severity: 'error',
550
- field: 'frontmatter',
551
- message: `Invalid YAML syntax: ${err.message}`,
552
- fix: 'Fix YAML syntax errors in frontmatter'
553
- }],
554
- warnings: []
555
- },
556
- format: {
557
- classification: { format: 'unknown', confidence: 0, characteristics: {}, tokens: 0, words: 0 },
558
- complexity: { complexity: 'unknown', confidence: 'low', scores: { basic: 0, medium: 0, complex: 0 } },
559
- alignment: { aligned: false, currentFormat: 'unknown', recommendedFormat: 'minimal', reason: 'Invalid YAML', confidence: 'low', evidence: 'N/A' }
560
- },
561
- quality: { recommendations: [] },
562
- summary: `CRITICAL ERROR: Invalid YAML syntax`
563
- };
564
- }
565
-
566
- // Run validations
567
- const frontmatterValidation = validateFrontmatter(frontmatter);
568
- const formatClassification = classifyFormat(content, frontmatter);
569
- const complexityEstimate = estimateComplexity(frontmatter, content);
570
- const qualityAnalysis = analyzePromptQuality(content);
571
-
572
- // Determine agent type
573
- const agentType = frontmatter.name || 'unknown';
574
- const detectedType = AGENT_TYPES.find(type => agentType.toLowerCase().includes(type)) || 'unknown';
575
-
576
- const formatAlignment = checkFormatAlignment(detectedType, formatClassification, complexityEstimate);
577
-
578
- // Calculate compliance score
579
- const totalIssues = frontmatterValidation.issues.length;
580
- const totalWarnings = frontmatterValidation.warnings.length;
581
- const totalRecommendations = qualityAnalysis.recommendations.length;
582
-
583
- const complianceScore = Math.max(0, 100 - (totalIssues * 20) - (totalWarnings * 5) - (totalRecommendations * 2));
584
-
585
- return {
586
- valid: totalIssues === 0,
587
- file: filePath,
588
- agentType: detectedType || 'unknown',
589
- complianceScore,
590
- frontmatter: {
591
- valid: frontmatterValidation.issues.length === 0,
592
- issues: frontmatterValidation.issues,
593
- warnings: frontmatterValidation.warnings
594
- },
595
- format: {
596
- classification: formatClassification,
597
- complexity: complexityEstimate,
598
- alignment: formatAlignment
599
- },
600
- quality: qualityAnalysis,
601
- summary: generateSummary(complianceScore, formatAlignment, frontmatterValidation, qualityAnalysis)
602
- };
603
- }
604
-
605
- /**
606
- * Generates human-readable summary
607
- */
608
- function generateSummary(score, alignment, frontmatter, quality) {
609
- const status = score >= 90 ? 'Excellent' : score >= 75 ? 'Good' : score >= 60 ? 'Fair' : 'Needs Improvement';
610
-
611
- const summary = [`Agent Profile Status: ${status} (${score}/100)`];
612
-
613
- if (frontmatter.issues.length > 0) {
614
- summary.push(`⚠️ ${frontmatter.issues.length} critical issue(s) found`);
615
- }
616
-
617
- if (!alignment.aligned) {
618
- summary.push(`📊 Format mismatch: Using ${alignment.currentFormat}, recommend ${alignment.recommendedFormat}`);
619
- summary.push(` Reason: ${alignment.reason}`);
620
- summary.push(` Impact: ${alignment.impact || 'See recommendations'}`);
621
- } else {
622
- summary.push(`✅ Format aligned with best practices (${alignment.currentFormat})`);
623
- }
624
-
625
- if (quality.recommendations.length > 0) {
626
- summary.push(`💡 ${quality.recommendations.length} improvement recommendation(s)`);
627
- }
628
-
629
- return summary.join('\n');
630
- }
631
-
632
- // ============================================================================
633
- // CLI Interface
634
- // ============================================================================
635
-
636
- /**
637
- * Formats validation results for console output
638
- */
639
- function formatOutput(result) {
640
- const sections = [];
641
-
642
- // Header
643
- sections.push('═'.repeat(80));
644
- sections.push(`AGENT VALIDATION REPORT: ${basename(result.file)}`);
645
- sections.push('═'.repeat(80));
646
- sections.push('');
647
-
648
- // Summary
649
- sections.push('SUMMARY');
650
- sections.push('─'.repeat(80));
651
- sections.push(result.summary);
652
- sections.push('');
653
-
654
- // Format Analysis
655
- sections.push('FORMAT ANALYSIS');
656
- sections.push('─'.repeat(80));
657
- sections.push(`Detected Format: ${result.format.classification.format.toUpperCase()}`);
658
- sections.push(`Confidence: ${(result.format.classification.confidence * 100).toFixed(0)}%`);
659
- sections.push(`Estimated Tokens: ~${result.format.classification.tokens}`);
660
- sections.push(`Word Count: ${result.format.classification.words}`);
661
- sections.push('');
662
- sections.push('Characteristics:');
663
- for (const [key, value] of Object.entries(result.format.classification.characteristics)) {
664
- sections.push(` • ${key}: ${value}`);
665
- }
666
- sections.push('');
667
-
668
- // Complexity Estimate
669
- sections.push('COMPLEXITY ANALYSIS');
670
- sections.push('─'.repeat(80));
671
- sections.push(`Estimated Complexity: ${result.format.complexity.complexity.toUpperCase()}`);
672
- sections.push(`Confidence: ${result.format.complexity.confidence.toUpperCase()}`);
673
- sections.push('Indicator Scores:');
674
- for (const [level, score] of Object.entries(result.format.complexity.scores)) {
675
- sections.push(` • ${level}: ${score.toFixed(1)}`);
676
- }
677
- sections.push('');
678
-
679
- // Format Alignment
680
- sections.push('FORMAT RECOMMENDATION');
681
- sections.push('─'.repeat(80));
682
- sections.push(`Current Format: ${result.format.alignment.currentFormat.toUpperCase()}`);
683
- sections.push(`Recommended Format: ${result.format.alignment.recommendedFormat.toUpperCase()}`);
684
- sections.push(`Alignment: ${result.format.alignment.aligned ? '✅ ALIGNED' : '⚠️ MISALIGNED'}`);
685
- sections.push(`Confidence: ${result.format.alignment.confidence.toUpperCase()}`);
686
- sections.push(`Reason: ${result.format.alignment.reason}`);
687
- if (result.format.alignment.evidence) {
688
- sections.push(`Evidence: ${result.format.alignment.evidence}`);
689
- }
690
- if (result.format.alignment.impact) {
691
- sections.push(`Expected Impact: ${result.format.alignment.impact}`);
692
- }
693
- sections.push('');
694
-
695
- // Issues
696
- if (result.frontmatter.issues.length > 0) {
697
- sections.push('CRITICAL ISSUES');
698
- sections.push('─'.repeat(80));
699
- result.frontmatter.issues.forEach((issue, i) => {
700
- sections.push(`${i + 1}. [${issue.field}] ${issue.message}`);
701
- sections.push(` Fix: ${issue.fix}`);
702
- sections.push('');
703
- });
704
- }
705
-
706
- // Warnings
707
- if (result.frontmatter.warnings.length > 0) {
708
- sections.push('WARNINGS');
709
- sections.push('─'.repeat(80));
710
- result.frontmatter.warnings.forEach((warning, i) => {
711
- sections.push(`${i + 1}. [${warning.field}] ${warning.message}`);
712
- sections.push(` Fix: ${warning.fix}`);
713
- sections.push('');
714
- });
715
- }
716
-
717
- // Recommendations
718
- if (result.quality.recommendations.length > 0) {
719
- sections.push('IMPROVEMENT RECOMMENDATIONS');
720
- sections.push('─'.repeat(80));
721
- result.quality.recommendations.forEach((rec, i) => {
722
- sections.push(`${i + 1}. [${rec.category}] ${rec.message}`);
723
- if (rec.impact) sections.push(` Impact: ${rec.impact}`);
724
- if (rec.example) sections.push(` Example: ${rec.example}`);
725
- if (rec.fix) sections.push(` Fix: ${rec.fix}`);
726
- sections.push('');
727
- });
728
- }
729
-
730
- // Footer
731
- sections.push('═'.repeat(80));
732
- sections.push(`Compliance Score: ${result.complianceScore}/100`);
733
- sections.push('═'.repeat(80));
734
-
735
- return sections.join('\n');
736
- }
737
-
738
- /**
739
- * Find all agent markdown files recursively
740
- */
741
- async function findAgentFiles(dir, results = []) {
742
- const entries = await readdir(dir, { withFileTypes: true });
743
-
744
- for (const entry of entries) {
745
- const fullPath = join(dir, entry.name);
746
-
747
- if (entry.isDirectory() && entry.name !== 'node_modules') {
748
- await findAgentFiles(fullPath, results);
749
- } else if (entry.isFile() && entry.name.endsWith('.md')) {
750
- // Skip certain files
751
- if (!entry.name.includes('README') && !entry.name.includes('CLAUDE_AGENT_DESIGN_PRINCIPLES')) {
752
- results.push(fullPath);
753
- }
754
- }
755
- }
756
-
757
- return results;
758
- }
759
-
760
- /**
761
- * Main CLI entry point
762
- */
763
- async function main() {
764
- const args = process.argv.slice(2);
765
-
766
- if (args.length === 0) {
767
- console.error('Usage: node validate-agent.js <path-to-agent.md>');
768
- console.error(' node validate-agent.js --all');
769
- process.exit(1);
770
- }
771
-
772
- if (args[0] === '--all') {
773
- // Validate all agents
774
- const agentsDir = resolve(__dirname);
775
- const agentFiles = await findAgentFiles(agentsDir);
776
-
777
- console.log(`Found ${agentFiles.length} agent files to validate\n`);
778
-
779
- const results = [];
780
- for (const file of agentFiles) {
781
- try {
782
- const result = await validateAgent(file);
783
- results.push(result);
784
-
785
- // Print summary for each
786
- const relPath = file.replace(agentsDir + '/', '');
787
- console.log(`${relPath}: ${result.valid ? '✅' : '❌'} Score: ${result.complianceScore}/100`);
788
- } catch (err) {
789
- console.error(`Error validating ${file}: ${err.message}`);
790
- }
791
- }
792
-
793
- // Summary statistics
794
- console.log('\n' + '═'.repeat(80));
795
- console.log('VALIDATION SUMMARY');
796
- console.log('═'.repeat(80));
797
- console.log(`Total Agents: ${results.length}`);
798
- console.log(`Passed: ${results.filter(r => r.valid).length}`);
799
- console.log(`Failed: ${results.filter(r => !r.valid).length}`);
800
- console.log(`Average Score: ${(results.reduce((sum, r) => sum + r.complianceScore, 0) / results.length).toFixed(1)}/100`);
801
- console.log('');
802
-
803
- // Top performers
804
- const topPerformers = results.sort((a, b) => b.complianceScore - a.complianceScore).slice(0, 5);
805
- console.log('Top 5 Performers:');
806
- topPerformers.forEach((r, i) => {
807
- console.log(` ${i + 1}. ${basename(r.file)}: ${r.complianceScore}/100`);
808
- });
809
- console.log('');
810
-
811
- // Needs improvement
812
- const needsImprovement = results.filter(r => r.complianceScore < 75).length;
813
- if (needsImprovement > 0) {
814
- console.log(`⚠️ ${needsImprovement} agent(s) need improvement (score < 75)`);
815
- }
816
-
817
- } else {
818
- // Validate single agent
819
- const filePath = resolve(process.cwd(), args[0]);
820
-
821
- try {
822
- const result = await validateAgent(filePath);
823
- console.log(formatOutput(result));
824
-
825
- // Exit code based on validation result
826
- process.exit(result.valid ? 0 : 1);
827
- } catch (err) {
828
- console.error(`Error: ${err.message}`);
829
- console.error('Stack:', err.stack);
830
- process.exit(1);
831
- }
832
- }
833
- }
834
-
835
- // Run if called directly
836
- main().catch(err => {
837
- console.error('Fatal error:', err);
838
- process.exit(1);
839
- });
840
-
841
- export { validateAgent, classifyFormat, estimateComplexity, recommendFormat };