claude-flow 3.32.9 → 3.32.11

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 (451) hide show
  1. package/.claude/.proven-config-version +1 -0
  2. package/.claude/agents/MIGRATION_SUMMARY.md +221 -221
  3. package/.claude/agents/analysis/analyze-code-quality.md +57 -57
  4. package/.claude/agents/analysis/code-analyzer.md +188 -188
  5. package/.claude/agents/analysis/code-review/analyze-code-quality.md +57 -57
  6. package/.claude/agents/architecture/system-design/arch-system-design.md +35 -35
  7. package/.claude/agents/base-template-generator.md +41 -41
  8. package/.claude/agents/consensus/byzantine-coordinator.md +42 -42
  9. package/.claude/agents/consensus/crdt-synchronizer.md +976 -976
  10. package/.claude/agents/consensus/gossip-coordinator.md +42 -42
  11. package/.claude/agents/consensus/performance-benchmarker.md +830 -830
  12. package/.claude/agents/consensus/quorum-manager.md +802 -802
  13. package/.claude/agents/consensus/raft-manager.md +42 -42
  14. package/.claude/agents/consensus/security-manager.md +601 -601
  15. package/.claude/agents/core/coder.md +254 -254
  16. package/.claude/agents/core/planner.md +151 -151
  17. package/.claude/agents/core/researcher.md +173 -173
  18. package/.claude/agents/core/reviewer.md +308 -308
  19. package/.claude/agents/core/tester.md +299 -299
  20. package/.claude/agents/custom/test-long-runner.md +43 -43
  21. package/.claude/agents/data/ml/data-ml-model.md +75 -75
  22. package/.claude/agents/database-specialist.md +9 -9
  23. package/.claude/agents/development/backend/dev-backend-api.md +28 -28
  24. package/.claude/agents/development/dev-backend-api.md +177 -177
  25. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +51 -51
  26. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +62 -62
  27. package/.claude/agents/dual-mode/codex-coordinator.md +206 -206
  28. package/.claude/agents/dual-mode/codex-worker.md +190 -190
  29. package/.claude/agents/dual-mode/dual-orchestrator.md +253 -253
  30. package/.claude/agents/flow-nexus/app-store.md +87 -87
  31. package/.claude/agents/flow-nexus/authentication.md +68 -68
  32. package/.claude/agents/flow-nexus/challenges.md +80 -80
  33. package/.claude/agents/flow-nexus/neural-network.md +87 -87
  34. package/.claude/agents/flow-nexus/payments.md +82 -82
  35. package/.claude/agents/flow-nexus/sandbox.md +75 -75
  36. package/.claude/agents/flow-nexus/swarm.md +75 -75
  37. package/.claude/agents/flow-nexus/user-tools.md +95 -95
  38. package/.claude/agents/flow-nexus/workflow.md +83 -83
  39. package/.claude/agents/github/code-review-swarm.md +520 -520
  40. package/.claude/agents/github/github-modes.md +153 -153
  41. package/.claude/agents/github/issue-tracker.md +298 -298
  42. package/.claude/agents/github/multi-repo-swarm.md +524 -524
  43. package/.claude/agents/github/pr-manager.md +162 -162
  44. package/.claude/agents/github/project-board-sync.md +477 -477
  45. package/.claude/agents/github/release-manager.md +337 -337
  46. package/.claude/agents/github/release-swarm.md +550 -550
  47. package/.claude/agents/github/repo-architect.md +364 -364
  48. package/.claude/agents/github/swarm-issue.md +550 -550
  49. package/.claude/agents/github/swarm-pr.md +401 -401
  50. package/.claude/agents/github/sync-coordinator.md +424 -424
  51. package/.claude/agents/github/workflow-automation.md +604 -604
  52. package/.claude/agents/goal/agent.md +816 -816
  53. package/.claude/agents/goal/code-goal-planner.md +444 -444
  54. package/.claude/agents/goal/goal-planner.md +167 -167
  55. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +128 -128
  56. package/.claude/agents/hive-mind/queen-coordinator.md +201 -201
  57. package/.claude/agents/hive-mind/scout-explorer.md +240 -240
  58. package/.claude/agents/hive-mind/swarm-memory-manager.md +191 -191
  59. package/.claude/agents/hive-mind/worker-specialist.md +215 -215
  60. package/.claude/agents/neural/safla-neural.md +73 -73
  61. package/.claude/agents/optimization/benchmark-suite.md +662 -662
  62. package/.claude/agents/optimization/load-balancer.md +428 -428
  63. package/.claude/agents/optimization/performance-monitor.md +669 -669
  64. package/.claude/agents/optimization/resource-allocator.md +671 -671
  65. package/.claude/agents/optimization/topology-optimizer.md +805 -805
  66. package/.claude/agents/payments/agentic-payments.md +126 -126
  67. package/.claude/agents/project-coordinator.md +8 -8
  68. package/.claude/agents/python-specialist.md +9 -9
  69. package/.claude/agents/reasoning/agent.md +816 -816
  70. package/.claude/agents/reasoning/goal-planner.md +72 -72
  71. package/.claude/agents/security-auditor.md +9 -9
  72. package/.claude/agents/sona/sona-learning-optimizer.md +65 -65
  73. package/.claude/agents/sparc/architecture.md +452 -452
  74. package/.claude/agents/sparc/pseudocode.md +298 -298
  75. package/.claude/agents/sparc/refinement.md +503 -503
  76. package/.claude/agents/sparc/specification.md +257 -257
  77. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +87 -87
  78. package/.claude/agents/sublinear/consensus-coordinator.md +337 -337
  79. package/.claude/agents/sublinear/matrix-optimizer.md +184 -184
  80. package/.claude/agents/sublinear/pagerank-analyzer.md +298 -298
  81. package/.claude/agents/sublinear/performance-optimizer.md +367 -367
  82. package/.claude/agents/sublinear/trading-predictor.md +245 -245
  83. package/.claude/agents/swarm/adaptive-coordinator.md +363 -363
  84. package/.claude/agents/swarm/hierarchical-coordinator.md +299 -299
  85. package/.claude/agents/swarm/mesh-coordinator.md +362 -362
  86. package/.claude/agents/templates/automation-smart-agent.md +184 -184
  87. package/.claude/agents/templates/coordinator-swarm-init.md +82 -82
  88. package/.claude/agents/templates/github-pr-manager.md +154 -154
  89. package/.claude/agents/templates/implementer-sparc-coder.md +242 -242
  90. package/.claude/agents/templates/memory-coordinator.md +162 -162
  91. package/.claude/agents/templates/migration-plan.md +723 -723
  92. package/.claude/agents/templates/orchestrator-task.md +119 -119
  93. package/.claude/agents/templates/performance-analyzer.md +178 -178
  94. package/.claude/agents/templates/sparc-coordinator.md +162 -162
  95. package/.claude/agents/testing/production-validator.md +372 -372
  96. package/.claude/agents/testing/tdd-london-swarm.md +221 -221
  97. package/.claude/agents/testing/unit/tdd-london-swarm.md +221 -221
  98. package/.claude/agents/testing/validation/production-validator.md +372 -372
  99. package/.claude/agents/typescript-specialist.md +9 -9
  100. package/.claude/agents/v3/database-specialist.md +9 -9
  101. package/.claude/agents/v3/project-coordinator.md +8 -8
  102. package/.claude/agents/v3/python-specialist.md +9 -9
  103. package/.claude/agents/v3/test-architect.md +9 -9
  104. package/.claude/agents/v3/typescript-specialist.md +9 -9
  105. package/.claude/agents/v3/v3-integration-architect.md +311 -311
  106. package/.claude/agents/v3/v3-memory-specialist.md +280 -280
  107. package/.claude/agents/v3/v3-performance-engineer.md +362 -362
  108. package/.claude/agents/v3/v3-queen-coordinator.md +62 -62
  109. package/.claude/agents/v3/v3-security-architect.md +139 -139
  110. package/.claude/checkpoints/1767754460.json +8 -8
  111. package/.claude/commands/agents/README.md +10 -10
  112. package/.claude/commands/agents/agent-capabilities.md +21 -21
  113. package/.claude/commands/agents/agent-coordination.md +28 -28
  114. package/.claude/commands/agents/agent-spawning.md +28 -28
  115. package/.claude/commands/agents/agent-types.md +26 -26
  116. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +53 -53
  117. package/.claude/commands/analysis/README.md +9 -9
  118. package/.claude/commands/analysis/bottleneck-detect.md +162 -162
  119. package/.claude/commands/analysis/performance-bottlenecks.md +58 -58
  120. package/.claude/commands/analysis/performance-report.md +25 -25
  121. package/.claude/commands/analysis/token-efficiency.md +44 -44
  122. package/.claude/commands/analysis/token-usage.md +25 -25
  123. package/.claude/commands/automation/README.md +9 -9
  124. package/.claude/commands/automation/auto-agent.md +122 -122
  125. package/.claude/commands/automation/self-healing.md +105 -105
  126. package/.claude/commands/automation/session-memory.md +89 -89
  127. package/.claude/commands/automation/smart-agents.md +72 -72
  128. package/.claude/commands/automation/smart-spawn.md +25 -25
  129. package/.claude/commands/automation/workflow-select.md +25 -25
  130. package/.claude/commands/claude-flow-help.md +103 -103
  131. package/.claude/commands/claude-flow-memory.md +107 -107
  132. package/.claude/commands/claude-flow-swarm.md +205 -205
  133. package/.claude/commands/coordination/README.md +9 -9
  134. package/.claude/commands/coordination/agent-spawn.md +25 -25
  135. package/.claude/commands/coordination/init.md +44 -44
  136. package/.claude/commands/coordination/orchestrate.md +43 -43
  137. package/.claude/commands/coordination/spawn.md +45 -45
  138. package/.claude/commands/coordination/swarm-init.md +85 -85
  139. package/.claude/commands/coordination/task-orchestrate.md +25 -25
  140. package/.claude/commands/flow-nexus/app-store.md +123 -123
  141. package/.claude/commands/flow-nexus/challenges.md +119 -119
  142. package/.claude/commands/flow-nexus/login-registration.md +64 -64
  143. package/.claude/commands/flow-nexus/neural-network.md +133 -133
  144. package/.claude/commands/flow-nexus/payments.md +115 -115
  145. package/.claude/commands/flow-nexus/sandbox.md +82 -82
  146. package/.claude/commands/flow-nexus/swarm.md +86 -86
  147. package/.claude/commands/flow-nexus/user-tools.md +151 -151
  148. package/.claude/commands/flow-nexus/workflow.md +114 -114
  149. package/.claude/commands/github/README.md +11 -11
  150. package/.claude/commands/github/code-review-swarm.md +513 -513
  151. package/.claude/commands/github/code-review.md +25 -25
  152. package/.claude/commands/github/github-modes.md +146 -146
  153. package/.claude/commands/github/github-swarm.md +121 -121
  154. package/.claude/commands/github/issue-tracker.md +291 -291
  155. package/.claude/commands/github/issue-triage.md +25 -25
  156. package/.claude/commands/github/multi-repo-swarm.md +518 -518
  157. package/.claude/commands/github/pr-enhance.md +26 -26
  158. package/.claude/commands/github/pr-manager.md +169 -169
  159. package/.claude/commands/github/project-board-sync.md +470 -470
  160. package/.claude/commands/github/release-manager.md +337 -337
  161. package/.claude/commands/github/release-swarm.md +543 -543
  162. package/.claude/commands/github/repo-analyze.md +25 -25
  163. package/.claude/commands/github/repo-architect.md +366 -366
  164. package/.claude/commands/github/swarm-issue.md +481 -481
  165. package/.claude/commands/github/swarm-pr.md +284 -284
  166. package/.claude/commands/github/sync-coordinator.md +300 -300
  167. package/.claude/commands/github/workflow-automation.md +441 -441
  168. package/.claude/commands/hive-mind/README.md +17 -17
  169. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -8
  170. package/.claude/commands/hive-mind/hive-mind-init.md +18 -18
  171. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -8
  172. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -8
  173. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -8
  174. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -8
  175. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -21
  176. package/.claude/commands/hive-mind/hive-mind-status.md +8 -8
  177. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -8
  178. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -8
  179. package/.claude/commands/hive-mind/hive-mind.md +27 -27
  180. package/.claude/commands/hooks/README.md +11 -11
  181. package/.claude/commands/hooks/overview.md +57 -57
  182. package/.claude/commands/hooks/post-edit.md +117 -117
  183. package/.claude/commands/hooks/post-task.md +112 -112
  184. package/.claude/commands/hooks/pre-edit.md +113 -113
  185. package/.claude/commands/hooks/pre-task.md +111 -111
  186. package/.claude/commands/hooks/session-end.md +118 -118
  187. package/.claude/commands/hooks/setup.md +102 -102
  188. package/.claude/commands/memory/README.md +9 -9
  189. package/.claude/commands/memory/memory-persist.md +25 -25
  190. package/.claude/commands/memory/memory-search.md +25 -25
  191. package/.claude/commands/memory/memory-usage.md +25 -25
  192. package/.claude/commands/memory/neural.md +47 -47
  193. package/.claude/commands/monitoring/README.md +9 -9
  194. package/.claude/commands/monitoring/agent-metrics.md +25 -25
  195. package/.claude/commands/monitoring/agents.md +44 -44
  196. package/.claude/commands/monitoring/real-time-view.md +25 -25
  197. package/.claude/commands/monitoring/status.md +46 -46
  198. package/.claude/commands/monitoring/swarm-monitor.md +25 -25
  199. package/.claude/commands/optimization/README.md +9 -9
  200. package/.claude/commands/optimization/auto-topology.md +61 -61
  201. package/.claude/commands/optimization/cache-manage.md +25 -25
  202. package/.claude/commands/optimization/parallel-execute.md +25 -25
  203. package/.claude/commands/optimization/parallel-execution.md +49 -49
  204. package/.claude/commands/optimization/topology-optimize.md +25 -25
  205. package/.claude/commands/pair/README.md +260 -260
  206. package/.claude/commands/pair/commands.md +545 -545
  207. package/.claude/commands/pair/config.md +509 -509
  208. package/.claude/commands/pair/examples.md +511 -511
  209. package/.claude/commands/pair/modes.md +347 -347
  210. package/.claude/commands/pair/session.md +406 -406
  211. package/.claude/commands/pair/start.md +208 -208
  212. package/.claude/commands/sparc/analyzer.md +51 -51
  213. package/.claude/commands/sparc/architect.md +53 -53
  214. package/.claude/commands/sparc/ask.md +97 -97
  215. package/.claude/commands/sparc/batch-executor.md +54 -54
  216. package/.claude/commands/sparc/code.md +89 -89
  217. package/.claude/commands/sparc/coder.md +54 -54
  218. package/.claude/commands/sparc/debug.md +83 -83
  219. package/.claude/commands/sparc/debugger.md +54 -54
  220. package/.claude/commands/sparc/designer.md +53 -53
  221. package/.claude/commands/sparc/devops.md +109 -109
  222. package/.claude/commands/sparc/docs-writer.md +80 -80
  223. package/.claude/commands/sparc/documenter.md +54 -54
  224. package/.claude/commands/sparc/innovator.md +54 -54
  225. package/.claude/commands/sparc/integration.md +83 -83
  226. package/.claude/commands/sparc/mcp.md +117 -117
  227. package/.claude/commands/sparc/memory-manager.md +54 -54
  228. package/.claude/commands/sparc/optimizer.md +54 -54
  229. package/.claude/commands/sparc/orchestrator.md +131 -131
  230. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
  231. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
  232. package/.claude/commands/sparc/researcher.md +54 -54
  233. package/.claude/commands/sparc/reviewer.md +54 -54
  234. package/.claude/commands/sparc/security-review.md +80 -80
  235. package/.claude/commands/sparc/sparc-modes.md +174 -174
  236. package/.claude/commands/sparc/sparc.md +111 -111
  237. package/.claude/commands/sparc/spec-pseudocode.md +80 -80
  238. package/.claude/commands/sparc/supabase-admin.md +348 -348
  239. package/.claude/commands/sparc/swarm-coordinator.md +54 -54
  240. package/.claude/commands/sparc/tdd.md +54 -54
  241. package/.claude/commands/sparc/tester.md +54 -54
  242. package/.claude/commands/sparc/tutorial.md +79 -79
  243. package/.claude/commands/sparc/workflow-manager.md +54 -54
  244. package/.claude/commands/sparc.md +166 -166
  245. package/.claude/commands/stream-chain/pipeline.md +120 -120
  246. package/.claude/commands/stream-chain/run.md +69 -69
  247. package/.claude/commands/swarm/README.md +15 -15
  248. package/.claude/commands/swarm/analysis.md +95 -95
  249. package/.claude/commands/swarm/development.md +96 -96
  250. package/.claude/commands/swarm/examples.md +168 -168
  251. package/.claude/commands/swarm/maintenance.md +102 -102
  252. package/.claude/commands/swarm/optimization.md +117 -117
  253. package/.claude/commands/swarm/research.md +136 -136
  254. package/.claude/commands/swarm/swarm-analysis.md +8 -8
  255. package/.claude/commands/swarm/swarm-background.md +8 -8
  256. package/.claude/commands/swarm/swarm-init.md +19 -19
  257. package/.claude/commands/swarm/swarm-modes.md +8 -8
  258. package/.claude/commands/swarm/swarm-monitor.md +8 -8
  259. package/.claude/commands/swarm/swarm-spawn.md +19 -19
  260. package/.claude/commands/swarm/swarm-status.md +8 -8
  261. package/.claude/commands/swarm/swarm-strategies.md +8 -8
  262. package/.claude/commands/swarm/swarm.md +27 -27
  263. package/.claude/commands/swarm/testing.md +131 -131
  264. package/.claude/commands/training/README.md +9 -9
  265. package/.claude/commands/training/model-update.md +25 -25
  266. package/.claude/commands/training/neural-patterns.md +73 -73
  267. package/.claude/commands/training/neural-train.md +25 -25
  268. package/.claude/commands/training/pattern-learn.md +25 -25
  269. package/.claude/commands/training/specialization.md +62 -62
  270. package/.claude/commands/truth/start.md +142 -142
  271. package/.claude/commands/verify/check.md +49 -49
  272. package/.claude/commands/verify/start.md +127 -127
  273. package/.claude/commands/workflows/README.md +9 -9
  274. package/.claude/commands/workflows/development.md +77 -77
  275. package/.claude/commands/workflows/research.md +62 -62
  276. package/.claude/commands/workflows/workflow-create.md +25 -25
  277. package/.claude/commands/workflows/workflow-execute.md +25 -25
  278. package/.claude/commands/workflows/workflow-export.md +25 -25
  279. package/.claude/config/v3-dependency-optimization.json +265 -265
  280. package/.claude/config/v3-performance-targets.json +250 -250
  281. package/.claude/helpers/.LOCKED +2 -2
  282. package/.claude/helpers/.helpers-version +1 -0
  283. package/.claude/helpers/README.md +96 -96
  284. package/.claude/helpers/adr-compliance.sh +186 -186
  285. package/.claude/helpers/aggressive-microcompact.mjs +36 -36
  286. package/.claude/helpers/auto-commit.sh +178 -178
  287. package/.claude/helpers/auto-memory-hook.mjs +430 -430
  288. package/.claude/helpers/checkpoint-manager.sh +251 -251
  289. package/.claude/helpers/context-persistence-hook.mjs +2001 -2001
  290. package/.claude/helpers/daemon-manager.sh +252 -252
  291. package/.claude/helpers/ddd-tracker.sh +144 -144
  292. package/.claude/helpers/github-safe.js +156 -156
  293. package/.claude/helpers/github-setup.sh +45 -45
  294. package/.claude/helpers/guidance-hook.sh +13 -13
  295. package/.claude/helpers/guidance-hooks.sh +102 -102
  296. package/.claude/helpers/health-monitor.sh +108 -108
  297. package/.claude/helpers/helpers.manifest.json +13 -0
  298. package/.claude/helpers/hook-handler.cjs +464 -464
  299. package/.claude/helpers/intelligence.cjs +1058 -1058
  300. package/.claude/helpers/learning-hooks.sh +329 -329
  301. package/.claude/helpers/learning-optimizer.sh +127 -127
  302. package/.claude/helpers/learning-service.mjs +1144 -1144
  303. package/.claude/helpers/memory.cjs +84 -84
  304. package/.claude/helpers/metrics-db.mjs +503 -503
  305. package/.claude/helpers/patch-aggressive-prune.mjs +184 -184
  306. package/.claude/helpers/pattern-consolidator.sh +86 -86
  307. package/.claude/helpers/perf-worker.sh +160 -160
  308. package/.claude/helpers/quick-start.sh +19 -19
  309. package/.claude/helpers/router.cjs +62 -62
  310. package/.claude/helpers/security-scanner.sh +127 -127
  311. package/.claude/helpers/session.cjs +125 -125
  312. package/.claude/helpers/setup-mcp.sh +18 -18
  313. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -189
  314. package/.claude/helpers/statusline.cjs +156 -1
  315. package/.claude/helpers/swarm-comms.sh +353 -353
  316. package/.claude/helpers/swarm-hooks.sh +761 -761
  317. package/.claude/helpers/swarm-monitor.sh +210 -210
  318. package/.claude/helpers/sync-v3-metrics.sh +245 -245
  319. package/.claude/helpers/update-v3-progress.sh +165 -165
  320. package/.claude/helpers/v3-quick-status.sh +57 -57
  321. package/.claude/helpers/v3.sh +110 -110
  322. package/.claude/helpers/validate-v3-config.sh +215 -215
  323. package/.claude/helpers/worker-manager.sh +170 -170
  324. package/.claude/mcp.json +12 -12
  325. package/.claude/proven-config.json +42 -0
  326. package/.claude/settings.json +284 -284
  327. package/.claude/settings.json.bak +526 -526
  328. package/.claude/skills/agentdb-advanced/SKILL.md +550 -550
  329. package/.claude/skills/agentdb-learning/SKILL.md +545 -545
  330. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -339
  331. package/.claude/skills/agentdb-optimization/SKILL.md +509 -509
  332. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -339
  333. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -645
  334. package/.claude/skills/browser/SKILL.md +204 -204
  335. package/.claude/skills/dual-mode/README.md +71 -71
  336. package/.claude/skills/dual-mode/dual-collect.md +103 -103
  337. package/.claude/skills/dual-mode/dual-coordinate.md +85 -85
  338. package/.claude/skills/dual-mode/dual-spawn.md +81 -81
  339. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -727
  340. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -1154
  341. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -604
  342. package/.claude/skills/github-code-review/SKILL.md +1125 -1125
  343. package/.claude/skills/github-multi-repo/SKILL.md +862 -862
  344. package/.claude/skills/github-project-management/SKILL.md +1262 -1262
  345. package/.claude/skills/github-release-management/SKILL.md +1064 -1064
  346. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -1047
  347. package/.claude/skills/hive-mind-advanced/SKILL.md +709 -709
  348. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  349. package/.claude/skills/pair-programming/SKILL.md +1202 -1202
  350. package/.claude/skills/performance-analysis/SKILL.md +560 -560
  351. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -446
  352. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -201
  353. package/.claude/skills/skill-builder/SKILL.md +910 -910
  354. package/.claude/skills/sparc-methodology/SKILL.md +1106 -1106
  355. package/.claude/skills/stream-chain/SKILL.md +560 -560
  356. package/.claude/skills/swarm-advanced/SKILL.md +970 -970
  357. package/.claude/skills/swarm-orchestration/SKILL.md +179 -179
  358. package/.claude/skills/v3-cli-modernization/SKILL.md +871 -871
  359. package/.claude/skills/v3-core-implementation/SKILL.md +796 -796
  360. package/.claude/skills/v3-ddd-architecture/SKILL.md +441 -441
  361. package/.claude/skills/v3-integration-deep/SKILL.md +240 -240
  362. package/.claude/skills/v3-mcp-optimization/SKILL.md +776 -776
  363. package/.claude/skills/v3-memory-unification/SKILL.md +173 -173
  364. package/.claude/skills/v3-performance-optimization/SKILL.md +389 -389
  365. package/.claude/skills/v3-security-overhaul/SKILL.md +81 -81
  366. package/.claude/skills/v3-swarm-coordination/SKILL.md +339 -339
  367. package/.claude/skills/verification-quality/SKILL.md +691 -691
  368. package/.claude/skills/worker-benchmarks/SKILL.md +129 -129
  369. package/.claude/skills/worker-integration/SKILL.md +147 -147
  370. package/.claude/statusline-command.sh +176 -176
  371. package/.claude/statusline.mjs +109 -109
  372. package/.claude/statusline.sh +431 -431
  373. package/.claude/workflows/full-system-test.js +65 -65
  374. package/.claude/workflows/intelligence-system-hardening.js +120 -120
  375. package/.claude/workflows/plugin-contract-audit.js +91 -91
  376. package/.claude-plugin/README.md +720 -720
  377. package/.claude-plugin/docs/INSTALLATION.md +261 -261
  378. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -361
  379. package/.claude-plugin/docs/QUICKSTART.md +361 -361
  380. package/.claude-plugin/docs/STRUCTURE.md +128 -128
  381. package/.claude-plugin/hooks/hooks.json +79 -79
  382. package/.claude-plugin/marketplace.json +185 -185
  383. package/.claude-plugin/plugin.json +71 -71
  384. package/.claude-plugin/scripts/install.sh +234 -234
  385. package/.claude-plugin/scripts/ruflo-hook.cjs +166 -166
  386. package/.claude-plugin/scripts/ruflo-hook.sh +52 -52
  387. package/.claude-plugin/scripts/uninstall.sh +36 -36
  388. package/.claude-plugin/scripts/verify.sh +108 -108
  389. package/LICENSE +21 -21
  390. package/README.md +419 -419
  391. package/bin/cli.js +11 -11
  392. package/bin/npx-repair.js +7 -7
  393. package/bin/npx-safe-launch.js +9 -9
  394. package/package.json +192 -192
  395. package/v3/@claude-flow/cli/README.md +419 -419
  396. package/v3/@claude-flow/cli/bin/cli.js +314 -314
  397. package/v3/@claude-flow/cli/bin/mcp-server.js +224 -224
  398. package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -2
  399. package/v3/@claude-flow/cli/catalog-manifest.json +2 -2
  400. package/v3/@claude-flow/cli/dist/src/autopilot-state.js +24 -7
  401. package/v3/@claude-flow/cli/dist/src/benchmarks/gaia-critic.js +24 -24
  402. package/v3/@claude-flow/cli/dist/src/business-pods/bbs-budget-tracker.js +53 -53
  403. package/v3/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  404. package/v3/@claude-flow/cli/dist/src/commands/daemon.js +44 -44
  405. package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +26 -26
  406. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +97 -97
  407. package/v3/@claude-flow/cli/dist/src/commands/hooks.js +31 -10
  408. package/v3/@claude-flow/cli/dist/src/commands/init.js +202 -34
  409. package/v3/@claude-flow/cli/dist/src/commands/memory.js +12 -1
  410. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +23 -23
  411. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +31 -31
  412. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  413. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +115 -115
  414. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +99 -99
  415. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +51 -51
  416. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  417. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +38 -38
  418. package/v3/@claude-flow/cli/dist/src/config/proven-config.js +2 -2
  419. package/v3/@claude-flow/cli/dist/src/funnel/disclosure.js +13 -2
  420. package/v3/@claude-flow/cli/dist/src/funnel/messages.d.ts +12 -10
  421. package/v3/@claude-flow/cli/dist/src/funnel/messages.js +83 -11
  422. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +231 -231
  423. package/v3/@claude-flow/cli/dist/src/init/executor.js +453 -453
  424. package/v3/@claude-flow/cli/dist/src/init/helper-signing.js +2 -2
  425. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +751 -751
  426. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +24 -24
  427. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +15 -15
  428. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-intent-tools.js +19 -19
  429. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.js +8 -0
  430. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +21 -0
  431. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +4 -3
  432. package/v3/@claude-flow/cli/dist/src/memory/graph-edge-writer.js +22 -22
  433. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +248 -158
  434. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +407 -407
  435. package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.js +5 -5
  436. package/v3/@claude-flow/cli/dist/src/parser.js +25 -9
  437. package/v3/@claude-flow/cli/dist/src/proxy/verify.js +2 -2
  438. package/v3/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  439. package/v3/@claude-flow/cli/dist/src/services/distill-tuning.js +7 -7
  440. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  441. package/v3/@claude-flow/cli/dist/src/services/memory-distillation.js +4 -4
  442. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +7 -4
  443. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +23 -23
  444. package/v3/@claude-flow/cli/package.json +137 -137
  445. package/v3/@claude-flow/guidance/README.md +1195 -1195
  446. package/v3/@claude-flow/guidance/package.json +198 -198
  447. package/v3/@claude-flow/shared/README.md +323 -323
  448. package/v3/@claude-flow/shared/dist/events/event-store.js +31 -31
  449. package/v3/@claude-flow/shared/dist/hooks/safety/git-commit.js +3 -3
  450. package/v3/@claude-flow/shared/package.json +43 -43
  451. package/v3/README.md +493 -493
@@ -1,872 +1,872 @@
1
- ---
2
- name: "V3 CLI Modernization"
3
- description: "CLI modernization and hooks system enhancement for claude-flow v3. Implements interactive prompts, command decomposition, enhanced hooks integration, and intelligent workflow automation."
4
- ---
5
-
6
- # V3 CLI Modernization
7
-
8
- ## What This Skill Does
9
-
10
- Modernizes claude-flow v3 CLI with interactive prompts, intelligent command decomposition, enhanced hooks integration, performance optimization, and comprehensive workflow automation capabilities.
11
-
12
- ## Quick Start
13
-
14
- ```bash
15
- # Initialize CLI modernization analysis
16
- Task("CLI architecture", "Analyze current CLI structure and identify optimization opportunities", "cli-hooks-developer")
17
-
18
- # Modernization implementation (parallel)
19
- Task("Command decomposition", "Break down large CLI files into focused modules", "cli-hooks-developer")
20
- Task("Interactive prompts", "Implement intelligent interactive CLI experience", "cli-hooks-developer")
21
- Task("Hooks enhancement", "Deep integrate hooks with CLI lifecycle", "cli-hooks-developer")
22
- ```
23
-
24
- ## CLI Architecture Modernization
25
-
26
- ### Current State Analysis
27
- ```
28
- Current CLI Issues:
29
- ├── index.ts: 108KB monolithic file
30
- ├── enterprise.ts: 68KB feature module
31
- ├── Limited interactivity: Basic command parsing
32
- ├── Hooks integration: Basic pre/post execution
33
- └── No intelligent workflows: Manual command chaining
34
-
35
- Target Architecture:
36
- ├── Modular Commands: <500 lines per command
37
- ├── Interactive Prompts: Smart context-aware UX
38
- ├── Enhanced Hooks: Deep lifecycle integration
39
- ├── Workflow Automation: Intelligent command orchestration
40
- └── Performance: <200ms command response time
41
- ```
42
-
43
- ### Modular Command Architecture
44
- ```typescript
45
- // src/cli/core/command-registry.ts
46
- interface CommandModule {
47
- name: string;
48
- description: string;
49
- category: CommandCategory;
50
- handler: CommandHandler;
51
- middleware: MiddlewareStack;
52
- permissions: Permission[];
53
- examples: CommandExample[];
54
- }
55
-
56
- export class ModularCommandRegistry {
57
- private commands = new Map<string, CommandModule>();
58
- private categories = new Map<CommandCategory, CommandModule[]>();
59
- private aliases = new Map<string, string>();
60
-
61
- registerCommand(command: CommandModule): void {
62
- this.commands.set(command.name, command);
63
-
64
- // Register in category index
65
- if (!this.categories.has(command.category)) {
66
- this.categories.set(command.category, []);
67
- }
68
- this.categories.get(command.category)!.push(command);
69
- }
70
-
71
- async executeCommand(name: string, args: string[]): Promise<CommandResult> {
72
- const command = this.resolveCommand(name);
73
- if (!command) {
74
- throw new CommandNotFoundError(name, this.getSuggestions(name));
75
- }
76
-
77
- // Execute middleware stack
78
- const context = await this.buildExecutionContext(command, args);
79
- const result = await command.middleware.execute(context);
80
-
81
- return result;
82
- }
83
-
84
- private resolveCommand(name: string): CommandModule | undefined {
85
- // Try exact match first
86
- if (this.commands.has(name)) {
87
- return this.commands.get(name);
88
- }
89
-
90
- // Try alias
91
- const aliasTarget = this.aliases.get(name);
92
- if (aliasTarget) {
93
- return this.commands.get(aliasTarget);
94
- }
95
-
96
- // Try fuzzy match
97
- return this.findFuzzyMatch(name);
98
- }
99
- }
100
- ```
101
-
102
- ## Command Decomposition Strategy
103
-
104
- ### Swarm Commands Module
105
- ```typescript
106
- // src/cli/commands/swarm/swarm.command.ts
107
- @Command({
108
- name: 'swarm',
109
- description: 'Swarm coordination and management',
110
- category: 'orchestration'
111
- })
112
- export class SwarmCommand {
113
- constructor(
114
- private swarmCoordinator: UnifiedSwarmCoordinator,
115
- private promptService: InteractivePromptService
116
- ) {}
117
-
118
- @SubCommand('init')
119
- @Option('--topology', 'Swarm topology (mesh|hierarchical|adaptive)', 'hierarchical')
120
- @Option('--agents', 'Number of agents to spawn', 5)
121
- @Option('--interactive', 'Interactive agent configuration', false)
122
- async init(
123
- @Arg('projectName') projectName: string,
124
- options: SwarmInitOptions
125
- ): Promise<CommandResult> {
126
-
127
- if (options.interactive) {
128
- return this.interactiveSwarmInit(projectName);
129
- }
130
-
131
- return this.quickSwarmInit(projectName, options);
132
- }
133
-
134
- private async interactiveSwarmInit(projectName: string): Promise<CommandResult> {
135
- console.log(`🚀 Initializing Swarm for ${projectName}`);
136
-
137
- // Interactive topology selection
138
- const topology = await this.promptService.select({
139
- message: 'Select swarm topology:',
140
- choices: [
141
- { name: 'Hierarchical (Queen-led coordination)', value: 'hierarchical' },
142
- { name: 'Mesh (Peer-to-peer collaboration)', value: 'mesh' },
143
- { name: 'Adaptive (Dynamic topology switching)', value: 'adaptive' }
144
- ]
145
- });
146
-
147
- // Agent configuration
148
- const agents = await this.promptAgentConfiguration();
149
-
150
- // Initialize with configuration
151
- const swarm = await this.swarmCoordinator.initialize({
152
- name: projectName,
153
- topology,
154
- agents,
155
- hooks: {
156
- onAgentSpawn: this.handleAgentSpawn.bind(this),
157
- onTaskComplete: this.handleTaskComplete.bind(this),
158
- onSwarmComplete: this.handleSwarmComplete.bind(this)
159
- }
160
- });
161
-
162
- return CommandResult.success({
163
- message: `✅ Swarm ${projectName} initialized with ${agents.length} agents`,
164
- data: { swarmId: swarm.id, topology, agentCount: agents.length }
165
- });
166
- }
167
-
168
- @SubCommand('status')
169
- async status(): Promise<CommandResult> {
170
- const swarms = await this.swarmCoordinator.listActiveSwarms();
171
-
172
- if (swarms.length === 0) {
173
- return CommandResult.info('No active swarms found');
174
- }
175
-
176
- // Interactive swarm selection if multiple
177
- const selectedSwarm = swarms.length === 1
178
- ? swarms[0]
179
- : await this.promptService.select({
180
- message: 'Select swarm to inspect:',
181
- choices: swarms.map(s => ({
182
- name: `${s.name} (${s.agents.length} agents, ${s.topology})`,
183
- value: s
184
- }))
185
- });
186
-
187
- return this.displaySwarmStatus(selectedSwarm);
188
- }
189
- }
190
- ```
191
-
192
- ### Learning Commands Module
193
- ```typescript
194
- // src/cli/commands/learning/learning.command.ts
195
- @Command({
196
- name: 'learning',
197
- description: 'Learning system management and optimization',
198
- category: 'intelligence'
199
- })
200
- export class LearningCommand {
201
- constructor(
202
- private learningService: IntegratedLearningService,
203
- private promptService: InteractivePromptService
204
- ) {}
205
-
206
- @SubCommand('start')
207
- @Option('--algorithm', 'RL algorithm to use', 'auto')
208
- @Option('--tier', 'Learning tier (basic|standard|advanced)', 'standard')
209
- async start(options: LearningStartOptions): Promise<CommandResult> {
210
- // Auto-detect optimal algorithm if not specified
211
- if (options.algorithm === 'auto') {
212
- const taskContext = await this.analyzeCurrentContext();
213
- options.algorithm = this.learningService.selectOptimalAlgorithm(taskContext);
214
-
215
- console.log(`🧠 Auto-selected ${options.algorithm} algorithm based on context`);
216
- }
217
-
218
- const session = await this.learningService.startSession({
219
- algorithm: options.algorithm,
220
- tier: options.tier,
221
- userId: await this.getCurrentUser()
222
- });
223
-
224
- return CommandResult.success({
225
- message: `🚀 Learning session started with ${options.algorithm}`,
226
- data: { sessionId: session.id, algorithm: options.algorithm, tier: options.tier }
227
- });
228
- }
229
-
230
- @SubCommand('feedback')
231
- @Arg('reward', 'Reward value (0-1)', 'number')
232
- async feedback(
233
- @Arg('reward') reward: number,
234
- @Option('--context', 'Additional context for learning')
235
- context?: string
236
- ): Promise<CommandResult> {
237
- const activeSession = await this.learningService.getActiveSession();
238
- if (!activeSession) {
239
- return CommandResult.error('No active learning session found. Start one with `learning start`');
240
- }
241
-
242
- await this.learningService.submitFeedback({
243
- sessionId: activeSession.id,
244
- reward,
245
- context,
246
- timestamp: new Date()
247
- });
248
-
249
- return CommandResult.success({
250
- message: `📊 Feedback recorded (reward: ${reward})`,
251
- data: { reward, sessionId: activeSession.id }
252
- });
253
- }
254
-
255
- @SubCommand('metrics')
256
- async metrics(): Promise<CommandResult> {
257
- const metrics = await this.learningService.getMetrics();
258
-
259
- // Interactive metrics display
260
- await this.displayInteractiveMetrics(metrics);
261
-
262
- return CommandResult.success('Metrics displayed');
263
- }
264
- }
265
- ```
266
-
267
- ## Interactive Prompt System
268
-
269
- ### Advanced Prompt Service
270
- ```typescript
271
- // src/cli/services/interactive-prompt.service.ts
272
- interface PromptOptions {
273
- message: string;
274
- type: 'select' | 'multiselect' | 'input' | 'confirm' | 'progress';
275
- choices?: PromptChoice[];
276
- default?: any;
277
- validate?: (input: any) => boolean | string;
278
- transform?: (input: any) => any;
279
- }
280
-
281
- export class InteractivePromptService {
282
- private inquirer: any; // Dynamic import for tree-shaking
283
-
284
- async select<T>(options: SelectPromptOptions<T>): Promise<T> {
285
- const { default: inquirer } = await import('inquirer');
286
-
287
- const result = await inquirer.prompt([{
288
- type: 'list',
289
- name: 'selection',
290
- message: options.message,
291
- choices: options.choices,
292
- default: options.default
293
- }]);
294
-
295
- return result.selection;
296
- }
297
-
298
- async multiSelect<T>(options: MultiSelectPromptOptions<T>): Promise<T[]> {
299
- const { default: inquirer } = await import('inquirer');
300
-
301
- const result = await inquirer.prompt([{
302
- type: 'checkbox',
303
- name: 'selections',
304
- message: options.message,
305
- choices: options.choices,
306
- validate: (input: T[]) => {
307
- if (options.minSelections && input.length < options.minSelections) {
308
- return `Please select at least ${options.minSelections} options`;
309
- }
310
- if (options.maxSelections && input.length > options.maxSelections) {
311
- return `Please select at most ${options.maxSelections} options`;
312
- }
313
- return true;
314
- }
315
- }]);
316
-
317
- return result.selections;
318
- }
319
-
320
- async input(options: InputPromptOptions): Promise<string> {
321
- const { default: inquirer } = await import('inquirer');
322
-
323
- const result = await inquirer.prompt([{
324
- type: 'input',
325
- name: 'input',
326
- message: options.message,
327
- default: options.default,
328
- validate: options.validate,
329
- transformer: options.transform
330
- }]);
331
-
332
- return result.input;
333
- }
334
-
335
- async progressTask<T>(
336
- task: ProgressTask<T>,
337
- options: ProgressOptions
338
- ): Promise<T> {
339
- const { default: cliProgress } = await import('cli-progress');
340
-
341
- const progressBar = new cliProgress.SingleBar({
342
- format: `${options.title} |{bar}| {percentage}% | {status}`,
343
- barCompleteChar: '█',
344
- barIncompleteChar: '░',
345
- hideCursor: true
346
- });
347
-
348
- progressBar.start(100, 0, { status: 'Starting...' });
349
-
350
- try {
351
- const result = await task({
352
- updateProgress: (percent: number, status?: string) => {
353
- progressBar.update(percent, { status: status || 'Processing...' });
354
- }
355
- });
356
-
357
- progressBar.update(100, { status: 'Complete!' });
358
- progressBar.stop();
359
-
360
- return result;
361
- } catch (error) {
362
- progressBar.stop();
363
- throw error;
364
- }
365
- }
366
-
367
- async confirmWithDetails(
368
- message: string,
369
- details: ConfirmationDetails
370
- ): Promise<boolean> {
371
- console.log('\n' + chalk.bold(message));
372
- console.log(chalk.gray('Details:'));
373
-
374
- for (const [key, value] of Object.entries(details)) {
375
- console.log(chalk.gray(` ${key}: ${value}`));
376
- }
377
-
378
- return this.confirm('\nProceed?');
379
- }
380
- }
381
- ```
382
-
383
- ## Enhanced Hooks Integration
384
-
385
- ### Deep CLI Hooks Integration
386
- ```typescript
387
- // src/cli/hooks/cli-hooks-manager.ts
388
- interface CLIHookEvent {
389
- type: 'command_start' | 'command_end' | 'command_error' | 'agent_spawn' | 'task_complete';
390
- command: string;
391
- args: string[];
392
- context: ExecutionContext;
393
- timestamp: Date;
394
- }
395
-
396
- export class CLIHooksManager {
397
- private hooks: Map<string, HookHandler[]> = new Map();
398
- private learningIntegration: LearningHooksIntegration;
399
-
400
- constructor() {
401
- this.learningIntegration = new LearningHooksIntegration();
402
- this.setupDefaultHooks();
403
- }
404
-
405
- private setupDefaultHooks(): void {
406
- // Learning integration hooks
407
- this.registerHook('command_start', async (event: CLIHookEvent) => {
408
- await this.learningIntegration.recordCommandStart(event);
409
- });
410
-
411
- this.registerHook('command_end', async (event: CLIHookEvent) => {
412
- await this.learningIntegration.recordCommandSuccess(event);
413
- });
414
-
415
- this.registerHook('command_error', async (event: CLIHookEvent) => {
416
- await this.learningIntegration.recordCommandError(event);
417
- });
418
-
419
- // Intelligent suggestions
420
- this.registerHook('command_start', async (event: CLIHookEvent) => {
421
- const suggestions = await this.generateIntelligentSuggestions(event);
422
- if (suggestions.length > 0) {
423
- this.displaySuggestions(suggestions);
424
- }
425
- });
426
-
427
- // Performance monitoring
428
- this.registerHook('command_end', async (event: CLIHookEvent) => {
429
- await this.recordPerformanceMetrics(event);
430
- });
431
- }
432
-
433
- async executeHooks(type: string, event: CLIHookEvent): Promise<void> {
434
- const handlers = this.hooks.get(type) || [];
435
-
436
- await Promise.all(handlers.map(handler =>
437
- this.executeHookSafely(handler, event)
438
- ));
439
- }
440
-
441
- private async generateIntelligentSuggestions(event: CLIHookEvent): Promise<Suggestion[]> {
442
- const context = await this.learningIntegration.getExecutionContext(event);
443
- const patterns = await this.learningIntegration.findSimilarPatterns(context);
444
-
445
- return patterns.map(pattern => ({
446
- type: 'optimization',
447
- message: `Based on similar executions, consider: ${pattern.suggestion}`,
448
- confidence: pattern.confidence
449
- }));
450
- }
451
- }
452
- ```
453
-
454
- ### Learning Integration
455
- ```typescript
456
- // src/cli/hooks/learning-hooks-integration.ts
457
- export class LearningHooksIntegration {
458
- constructor(
459
- private agenticFlowHooks: AgenticFlowHooksClient,
460
- private agentDBLearning: AgentDBLearningClient
461
- ) {}
462
-
463
- async recordCommandStart(event: CLIHookEvent): Promise<void> {
464
- // Start trajectory tracking
465
- await this.agenticFlowHooks.trajectoryStart({
466
- sessionId: event.context.sessionId,
467
- command: event.command,
468
- args: event.args,
469
- context: event.context
470
- });
471
-
472
- // Record experience in AgentDB
473
- await this.agentDBLearning.recordExperience({
474
- type: 'command_execution',
475
- state: this.encodeCommandState(event),
476
- action: event.command,
477
- timestamp: event.timestamp
478
- });
479
- }
480
-
481
- async recordCommandSuccess(event: CLIHookEvent): Promise<void> {
482
- const executionTime = Date.now() - event.timestamp.getTime();
483
- const reward = this.calculateReward(event, executionTime, true);
484
-
485
- // Complete trajectory
486
- await this.agenticFlowHooks.trajectoryEnd({
487
- sessionId: event.context.sessionId,
488
- success: true,
489
- reward,
490
- verdict: 'positive'
491
- });
492
-
493
- // Submit feedback to learning system
494
- await this.agentDBLearning.submitFeedback({
495
- sessionId: event.context.learningSessionId,
496
- reward,
497
- success: true,
498
- latencyMs: executionTime
499
- });
500
-
501
- // Store successful pattern
502
- if (reward > 0.8) {
503
- await this.agenticFlowHooks.storePattern({
504
- pattern: event.command,
505
- solution: event.context.result,
506
- confidence: reward
507
- });
508
- }
509
- }
510
-
511
- async recordCommandError(event: CLIHookEvent): Promise<void> {
512
- const executionTime = Date.now() - event.timestamp.getTime();
513
- const reward = this.calculateReward(event, executionTime, false);
514
-
515
- // Complete trajectory with error
516
- await this.agenticFlowHooks.trajectoryEnd({
517
- sessionId: event.context.sessionId,
518
- success: false,
519
- reward,
520
- verdict: 'negative',
521
- error: event.context.error
522
- });
523
-
524
- // Learn from failure
525
- await this.agentDBLearning.submitFeedback({
526
- sessionId: event.context.learningSessionId,
527
- reward,
528
- success: false,
529
- latencyMs: executionTime,
530
- error: event.context.error
531
- });
532
- }
533
-
534
- private calculateReward(event: CLIHookEvent, executionTime: number, success: boolean): number {
535
- if (!success) return 0;
536
-
537
- // Base reward for success
538
- let reward = 0.5;
539
-
540
- // Performance bonus (faster execution)
541
- const expectedTime = this.getExpectedExecutionTime(event.command);
542
- if (executionTime < expectedTime) {
543
- reward += 0.3 * (1 - executionTime / expectedTime);
544
- }
545
-
546
- // Complexity bonus
547
- const complexity = this.calculateCommandComplexity(event);
548
- reward += complexity * 0.2;
549
-
550
- return Math.min(reward, 1.0);
551
- }
552
- }
553
- ```
554
-
555
- ## Intelligent Workflow Automation
556
-
557
- ### Workflow Orchestrator
558
- ```typescript
559
- // src/cli/workflows/workflow-orchestrator.ts
560
- interface WorkflowStep {
561
- id: string;
562
- command: string;
563
- args: string[];
564
- dependsOn: string[];
565
- condition?: WorkflowCondition;
566
- retryPolicy?: RetryPolicy;
567
- }
568
-
569
- export class WorkflowOrchestrator {
570
- constructor(
571
- private commandRegistry: ModularCommandRegistry,
572
- private promptService: InteractivePromptService
573
- ) {}
574
-
575
- async executeWorkflow(workflow: Workflow): Promise<WorkflowResult> {
576
- const context = new WorkflowExecutionContext(workflow);
577
-
578
- // Display workflow overview
579
- await this.displayWorkflowOverview(workflow);
580
-
581
- const confirmed = await this.promptService.confirm(
582
- 'Execute this workflow?'
583
- );
584
-
585
- if (!confirmed) {
586
- return WorkflowResult.cancelled();
587
- }
588
-
589
- // Execute steps
590
- return this.promptService.progressTask(
591
- async ({ updateProgress }) => {
592
- const steps = this.sortStepsByDependencies(workflow.steps);
593
-
594
- for (let i = 0; i < steps.length; i++) {
595
- const step = steps[i];
596
- updateProgress((i / steps.length) * 100, `Executing ${step.command}`);
597
-
598
- await this.executeStep(step, context);
599
- }
600
-
601
- return WorkflowResult.success(context.getResults());
602
- },
603
- { title: `Workflow: ${workflow.name}` }
604
- );
605
- }
606
-
607
- async generateWorkflowFromIntent(intent: string): Promise<Workflow> {
608
- // Use learning system to generate workflow
609
- const patterns = await this.findWorkflowPatterns(intent);
610
-
611
- if (patterns.length === 0) {
612
- throw new Error('Could not generate workflow for intent');
613
- }
614
-
615
- // Select best pattern or let user choose
616
- const selectedPattern = patterns.length === 1
617
- ? patterns[0]
618
- : await this.promptService.select({
619
- message: 'Select workflow template:',
620
- choices: patterns.map(p => ({
621
- name: `${p.name} (${p.confidence}% match)`,
622
- value: p
623
- }))
624
- });
625
-
626
- return this.customizeWorkflow(selectedPattern, intent);
627
- }
628
-
629
- private async executeStep(step: WorkflowStep, context: WorkflowExecutionContext): Promise<void> {
630
- // Check conditions
631
- if (step.condition && !this.evaluateCondition(step.condition, context)) {
632
- context.skipStep(step.id, 'Condition not met');
633
- return;
634
- }
635
-
636
- // Check dependencies
637
- const missingDeps = step.dependsOn.filter(dep => !context.isStepCompleted(dep));
638
- if (missingDeps.length > 0) {
639
- throw new WorkflowError(`Step ${step.id} has unmet dependencies: ${missingDeps.join(', ')}`);
640
- }
641
-
642
- // Execute with retry policy
643
- const retryPolicy = step.retryPolicy || { maxAttempts: 1 };
644
- let lastError: Error | null = null;
645
-
646
- for (let attempt = 1; attempt <= retryPolicy.maxAttempts; attempt++) {
647
- try {
648
- const result = await this.commandRegistry.executeCommand(step.command, step.args);
649
- context.completeStep(step.id, result);
650
- return;
651
- } catch (error) {
652
- lastError = error as Error;
653
-
654
- if (attempt < retryPolicy.maxAttempts) {
655
- await this.delay(retryPolicy.backoffMs || 1000);
656
- }
657
- }
658
- }
659
-
660
- throw new WorkflowError(`Step ${step.id} failed after ${retryPolicy.maxAttempts} attempts: ${lastError?.message}`);
661
- }
662
- }
663
- ```
664
-
665
- ## Performance Optimization
666
-
667
- ### Command Performance Monitoring
668
- ```typescript
669
- // src/cli/performance/command-performance.ts
670
- export class CommandPerformanceMonitor {
671
- private metrics = new Map<string, CommandMetrics>();
672
-
673
- async measureCommand<T>(
674
- commandName: string,
675
- executor: () => Promise<T>
676
- ): Promise<T> {
677
- const start = performance.now();
678
- const memBefore = process.memoryUsage();
679
-
680
- try {
681
- const result = await executor();
682
- const end = performance.now();
683
- const memAfter = process.memoryUsage();
684
-
685
- this.recordMetrics(commandName, {
686
- executionTime: end - start,
687
- memoryDelta: memAfter.heapUsed - memBefore.heapUsed,
688
- success: true
689
- });
690
-
691
- return result;
692
- } catch (error) {
693
- const end = performance.now();
694
-
695
- this.recordMetrics(commandName, {
696
- executionTime: end - start,
697
- memoryDelta: 0,
698
- success: false,
699
- error: error as Error
700
- });
701
-
702
- throw error;
703
- }
704
- }
705
-
706
- private recordMetrics(command: string, measurement: PerformanceMeasurement): void {
707
- if (!this.metrics.has(command)) {
708
- this.metrics.set(command, new CommandMetrics(command));
709
- }
710
-
711
- const metrics = this.metrics.get(command)!;
712
- metrics.addMeasurement(measurement);
713
-
714
- // Alert if performance degrades
715
- if (metrics.getP95ExecutionTime() > 5000) { // 5 seconds
716
- console.warn(`⚠️ Command '${command}' is performing slowly (P95: ${metrics.getP95ExecutionTime()}ms)`);
717
- }
718
- }
719
-
720
- getCommandReport(command: string): PerformanceReport {
721
- const metrics = this.metrics.get(command);
722
- if (!metrics) {
723
- throw new Error(`No metrics found for command: ${command}`);
724
- }
725
-
726
- return {
727
- command,
728
- totalExecutions: metrics.getTotalExecutions(),
729
- successRate: metrics.getSuccessRate(),
730
- avgExecutionTime: metrics.getAverageExecutionTime(),
731
- p95ExecutionTime: metrics.getP95ExecutionTime(),
732
- avgMemoryUsage: metrics.getAverageMemoryUsage(),
733
- recommendations: this.generateRecommendations(metrics)
734
- };
735
- }
736
- }
737
- ```
738
-
739
- ## Smart Auto-completion
740
-
741
- ### Intelligent Command Completion
742
- ```typescript
743
- // src/cli/completion/intelligent-completion.ts
744
- export class IntelligentCompletion {
745
- constructor(
746
- private learningService: LearningService,
747
- private commandRegistry: ModularCommandRegistry
748
- ) {}
749
-
750
- async generateCompletions(
751
- partial: string,
752
- context: CompletionContext
753
- ): Promise<Completion[]> {
754
- const completions: Completion[] = [];
755
-
756
- // 1. Exact command matches
757
- const exactMatches = this.commandRegistry.findCommandsByPrefix(partial);
758
- completions.push(...exactMatches.map(cmd => ({
759
- value: cmd.name,
760
- description: cmd.description,
761
- type: 'command',
762
- confidence: 1.0
763
- })));
764
-
765
- // 2. Learning-based suggestions
766
- const learnedSuggestions = await this.learningService.suggestCommands(
767
- partial,
768
- context
769
- );
770
- completions.push(...learnedSuggestions);
771
-
772
- // 3. Context-aware suggestions
773
- const contextualSuggestions = await this.generateContextualSuggestions(
774
- partial,
775
- context
776
- );
777
- completions.push(...contextualSuggestions);
778
-
779
- // Sort by confidence and relevance
780
- return completions
781
- .sort((a, b) => b.confidence - a.confidence)
782
- .slice(0, 10); // Top 10 suggestions
783
- }
784
-
785
- private async generateContextualSuggestions(
786
- partial: string,
787
- context: CompletionContext
788
- ): Promise<Completion[]> {
789
- const suggestions: Completion[] = [];
790
-
791
- // If in git repository, suggest git-related commands
792
- if (context.isGitRepository) {
793
- if (partial.startsWith('git')) {
794
- suggestions.push({
795
- value: 'git commit',
796
- description: 'Create git commit with generated message',
797
- type: 'workflow',
798
- confidence: 0.8
799
- });
800
- }
801
- }
802
-
803
- // If package.json exists, suggest npm commands
804
- if (context.hasPackageJson) {
805
- if (partial.startsWith('npm') || partial.startsWith('swarm')) {
806
- suggestions.push({
807
- value: 'swarm init',
808
- description: 'Initialize swarm for this project',
809
- type: 'workflow',
810
- confidence: 0.9
811
- });
812
- }
813
- }
814
-
815
- return suggestions;
816
- }
817
- }
818
- ```
819
-
820
- ## Success Metrics
821
-
822
- ### CLI Performance Targets
823
- - [ ] **Command Response**: <200ms average command execution time
824
- - [ ] **File Decomposition**: index.ts (108KB) → <10KB per command module
825
- - [ ] **Interactive UX**: Smart prompts with context awareness
826
- - [ ] **Hook Integration**: Deep lifecycle integration with learning
827
- - [ ] **Workflow Automation**: Intelligent multi-step command orchestration
828
- - [ ] **Auto-completion**: >90% accuracy for command suggestions
829
-
830
- ### User Experience Improvements
831
- ```typescript
832
- const cliImprovements = {
833
- before: {
834
- commandResponse: '~500ms',
835
- interactivity: 'Basic command parsing',
836
- workflows: 'Manual command chaining',
837
- suggestions: 'Static help text'
838
- },
839
-
840
- after: {
841
- commandResponse: '<200ms with caching',
842
- interactivity: 'Smart context-aware prompts',
843
- workflows: 'Automated multi-step execution',
844
- suggestions: 'Learning-based intelligent completion'
845
- }
846
- };
847
- ```
848
-
849
- ## Related V3 Skills
850
-
851
- - `v3-core-implementation` - Core domain integration
852
- - `v3-memory-unification` - Memory-backed command caching
853
- - `v3-swarm-coordination` - CLI swarm management integration
854
- - `v3-performance-optimization` - CLI performance monitoring
855
-
856
- ## Usage Examples
857
-
858
- ### Complete CLI Modernization
859
- ```bash
860
- # Full CLI modernization implementation
861
- Task("CLI modernization implementation",
862
- "Implement modular commands, interactive prompts, and intelligent workflows",
863
- "cli-hooks-developer")
864
- ```
865
-
866
- ### Interactive Command Enhancement
867
- ```bash
868
- # Enhanced interactive commands
869
- claude-flow swarm init --interactive
870
- claude-flow learning start --guided
871
- claude-flow workflow create --from-intent "setup new project"
1
+ ---
2
+ name: "V3 CLI Modernization"
3
+ description: "CLI modernization and hooks system enhancement for claude-flow v3. Implements interactive prompts, command decomposition, enhanced hooks integration, and intelligent workflow automation."
4
+ ---
5
+
6
+ # V3 CLI Modernization
7
+
8
+ ## What This Skill Does
9
+
10
+ Modernizes claude-flow v3 CLI with interactive prompts, intelligent command decomposition, enhanced hooks integration, performance optimization, and comprehensive workflow automation capabilities.
11
+
12
+ ## Quick Start
13
+
14
+ ```bash
15
+ # Initialize CLI modernization analysis
16
+ Task("CLI architecture", "Analyze current CLI structure and identify optimization opportunities", "cli-hooks-developer")
17
+
18
+ # Modernization implementation (parallel)
19
+ Task("Command decomposition", "Break down large CLI files into focused modules", "cli-hooks-developer")
20
+ Task("Interactive prompts", "Implement intelligent interactive CLI experience", "cli-hooks-developer")
21
+ Task("Hooks enhancement", "Deep integrate hooks with CLI lifecycle", "cli-hooks-developer")
22
+ ```
23
+
24
+ ## CLI Architecture Modernization
25
+
26
+ ### Current State Analysis
27
+ ```
28
+ Current CLI Issues:
29
+ ├── index.ts: 108KB monolithic file
30
+ ├── enterprise.ts: 68KB feature module
31
+ ├── Limited interactivity: Basic command parsing
32
+ ├── Hooks integration: Basic pre/post execution
33
+ └── No intelligent workflows: Manual command chaining
34
+
35
+ Target Architecture:
36
+ ├── Modular Commands: <500 lines per command
37
+ ├── Interactive Prompts: Smart context-aware UX
38
+ ├── Enhanced Hooks: Deep lifecycle integration
39
+ ├── Workflow Automation: Intelligent command orchestration
40
+ └── Performance: <200ms command response time
41
+ ```
42
+
43
+ ### Modular Command Architecture
44
+ ```typescript
45
+ // src/cli/core/command-registry.ts
46
+ interface CommandModule {
47
+ name: string;
48
+ description: string;
49
+ category: CommandCategory;
50
+ handler: CommandHandler;
51
+ middleware: MiddlewareStack;
52
+ permissions: Permission[];
53
+ examples: CommandExample[];
54
+ }
55
+
56
+ export class ModularCommandRegistry {
57
+ private commands = new Map<string, CommandModule>();
58
+ private categories = new Map<CommandCategory, CommandModule[]>();
59
+ private aliases = new Map<string, string>();
60
+
61
+ registerCommand(command: CommandModule): void {
62
+ this.commands.set(command.name, command);
63
+
64
+ // Register in category index
65
+ if (!this.categories.has(command.category)) {
66
+ this.categories.set(command.category, []);
67
+ }
68
+ this.categories.get(command.category)!.push(command);
69
+ }
70
+
71
+ async executeCommand(name: string, args: string[]): Promise<CommandResult> {
72
+ const command = this.resolveCommand(name);
73
+ if (!command) {
74
+ throw new CommandNotFoundError(name, this.getSuggestions(name));
75
+ }
76
+
77
+ // Execute middleware stack
78
+ const context = await this.buildExecutionContext(command, args);
79
+ const result = await command.middleware.execute(context);
80
+
81
+ return result;
82
+ }
83
+
84
+ private resolveCommand(name: string): CommandModule | undefined {
85
+ // Try exact match first
86
+ if (this.commands.has(name)) {
87
+ return this.commands.get(name);
88
+ }
89
+
90
+ // Try alias
91
+ const aliasTarget = this.aliases.get(name);
92
+ if (aliasTarget) {
93
+ return this.commands.get(aliasTarget);
94
+ }
95
+
96
+ // Try fuzzy match
97
+ return this.findFuzzyMatch(name);
98
+ }
99
+ }
100
+ ```
101
+
102
+ ## Command Decomposition Strategy
103
+
104
+ ### Swarm Commands Module
105
+ ```typescript
106
+ // src/cli/commands/swarm/swarm.command.ts
107
+ @Command({
108
+ name: 'swarm',
109
+ description: 'Swarm coordination and management',
110
+ category: 'orchestration'
111
+ })
112
+ export class SwarmCommand {
113
+ constructor(
114
+ private swarmCoordinator: UnifiedSwarmCoordinator,
115
+ private promptService: InteractivePromptService
116
+ ) {}
117
+
118
+ @SubCommand('init')
119
+ @Option('--topology', 'Swarm topology (mesh|hierarchical|adaptive)', 'hierarchical')
120
+ @Option('--agents', 'Number of agents to spawn', 5)
121
+ @Option('--interactive', 'Interactive agent configuration', false)
122
+ async init(
123
+ @Arg('projectName') projectName: string,
124
+ options: SwarmInitOptions
125
+ ): Promise<CommandResult> {
126
+
127
+ if (options.interactive) {
128
+ return this.interactiveSwarmInit(projectName);
129
+ }
130
+
131
+ return this.quickSwarmInit(projectName, options);
132
+ }
133
+
134
+ private async interactiveSwarmInit(projectName: string): Promise<CommandResult> {
135
+ console.log(`🚀 Initializing Swarm for ${projectName}`);
136
+
137
+ // Interactive topology selection
138
+ const topology = await this.promptService.select({
139
+ message: 'Select swarm topology:',
140
+ choices: [
141
+ { name: 'Hierarchical (Queen-led coordination)', value: 'hierarchical' },
142
+ { name: 'Mesh (Peer-to-peer collaboration)', value: 'mesh' },
143
+ { name: 'Adaptive (Dynamic topology switching)', value: 'adaptive' }
144
+ ]
145
+ });
146
+
147
+ // Agent configuration
148
+ const agents = await this.promptAgentConfiguration();
149
+
150
+ // Initialize with configuration
151
+ const swarm = await this.swarmCoordinator.initialize({
152
+ name: projectName,
153
+ topology,
154
+ agents,
155
+ hooks: {
156
+ onAgentSpawn: this.handleAgentSpawn.bind(this),
157
+ onTaskComplete: this.handleTaskComplete.bind(this),
158
+ onSwarmComplete: this.handleSwarmComplete.bind(this)
159
+ }
160
+ });
161
+
162
+ return CommandResult.success({
163
+ message: `✅ Swarm ${projectName} initialized with ${agents.length} agents`,
164
+ data: { swarmId: swarm.id, topology, agentCount: agents.length }
165
+ });
166
+ }
167
+
168
+ @SubCommand('status')
169
+ async status(): Promise<CommandResult> {
170
+ const swarms = await this.swarmCoordinator.listActiveSwarms();
171
+
172
+ if (swarms.length === 0) {
173
+ return CommandResult.info('No active swarms found');
174
+ }
175
+
176
+ // Interactive swarm selection if multiple
177
+ const selectedSwarm = swarms.length === 1
178
+ ? swarms[0]
179
+ : await this.promptService.select({
180
+ message: 'Select swarm to inspect:',
181
+ choices: swarms.map(s => ({
182
+ name: `${s.name} (${s.agents.length} agents, ${s.topology})`,
183
+ value: s
184
+ }))
185
+ });
186
+
187
+ return this.displaySwarmStatus(selectedSwarm);
188
+ }
189
+ }
190
+ ```
191
+
192
+ ### Learning Commands Module
193
+ ```typescript
194
+ // src/cli/commands/learning/learning.command.ts
195
+ @Command({
196
+ name: 'learning',
197
+ description: 'Learning system management and optimization',
198
+ category: 'intelligence'
199
+ })
200
+ export class LearningCommand {
201
+ constructor(
202
+ private learningService: IntegratedLearningService,
203
+ private promptService: InteractivePromptService
204
+ ) {}
205
+
206
+ @SubCommand('start')
207
+ @Option('--algorithm', 'RL algorithm to use', 'auto')
208
+ @Option('--tier', 'Learning tier (basic|standard|advanced)', 'standard')
209
+ async start(options: LearningStartOptions): Promise<CommandResult> {
210
+ // Auto-detect optimal algorithm if not specified
211
+ if (options.algorithm === 'auto') {
212
+ const taskContext = await this.analyzeCurrentContext();
213
+ options.algorithm = this.learningService.selectOptimalAlgorithm(taskContext);
214
+
215
+ console.log(`🧠 Auto-selected ${options.algorithm} algorithm based on context`);
216
+ }
217
+
218
+ const session = await this.learningService.startSession({
219
+ algorithm: options.algorithm,
220
+ tier: options.tier,
221
+ userId: await this.getCurrentUser()
222
+ });
223
+
224
+ return CommandResult.success({
225
+ message: `🚀 Learning session started with ${options.algorithm}`,
226
+ data: { sessionId: session.id, algorithm: options.algorithm, tier: options.tier }
227
+ });
228
+ }
229
+
230
+ @SubCommand('feedback')
231
+ @Arg('reward', 'Reward value (0-1)', 'number')
232
+ async feedback(
233
+ @Arg('reward') reward: number,
234
+ @Option('--context', 'Additional context for learning')
235
+ context?: string
236
+ ): Promise<CommandResult> {
237
+ const activeSession = await this.learningService.getActiveSession();
238
+ if (!activeSession) {
239
+ return CommandResult.error('No active learning session found. Start one with `learning start`');
240
+ }
241
+
242
+ await this.learningService.submitFeedback({
243
+ sessionId: activeSession.id,
244
+ reward,
245
+ context,
246
+ timestamp: new Date()
247
+ });
248
+
249
+ return CommandResult.success({
250
+ message: `📊 Feedback recorded (reward: ${reward})`,
251
+ data: { reward, sessionId: activeSession.id }
252
+ });
253
+ }
254
+
255
+ @SubCommand('metrics')
256
+ async metrics(): Promise<CommandResult> {
257
+ const metrics = await this.learningService.getMetrics();
258
+
259
+ // Interactive metrics display
260
+ await this.displayInteractiveMetrics(metrics);
261
+
262
+ return CommandResult.success('Metrics displayed');
263
+ }
264
+ }
265
+ ```
266
+
267
+ ## Interactive Prompt System
268
+
269
+ ### Advanced Prompt Service
270
+ ```typescript
271
+ // src/cli/services/interactive-prompt.service.ts
272
+ interface PromptOptions {
273
+ message: string;
274
+ type: 'select' | 'multiselect' | 'input' | 'confirm' | 'progress';
275
+ choices?: PromptChoice[];
276
+ default?: any;
277
+ validate?: (input: any) => boolean | string;
278
+ transform?: (input: any) => any;
279
+ }
280
+
281
+ export class InteractivePromptService {
282
+ private inquirer: any; // Dynamic import for tree-shaking
283
+
284
+ async select<T>(options: SelectPromptOptions<T>): Promise<T> {
285
+ const { default: inquirer } = await import('inquirer');
286
+
287
+ const result = await inquirer.prompt([{
288
+ type: 'list',
289
+ name: 'selection',
290
+ message: options.message,
291
+ choices: options.choices,
292
+ default: options.default
293
+ }]);
294
+
295
+ return result.selection;
296
+ }
297
+
298
+ async multiSelect<T>(options: MultiSelectPromptOptions<T>): Promise<T[]> {
299
+ const { default: inquirer } = await import('inquirer');
300
+
301
+ const result = await inquirer.prompt([{
302
+ type: 'checkbox',
303
+ name: 'selections',
304
+ message: options.message,
305
+ choices: options.choices,
306
+ validate: (input: T[]) => {
307
+ if (options.minSelections && input.length < options.minSelections) {
308
+ return `Please select at least ${options.minSelections} options`;
309
+ }
310
+ if (options.maxSelections && input.length > options.maxSelections) {
311
+ return `Please select at most ${options.maxSelections} options`;
312
+ }
313
+ return true;
314
+ }
315
+ }]);
316
+
317
+ return result.selections;
318
+ }
319
+
320
+ async input(options: InputPromptOptions): Promise<string> {
321
+ const { default: inquirer } = await import('inquirer');
322
+
323
+ const result = await inquirer.prompt([{
324
+ type: 'input',
325
+ name: 'input',
326
+ message: options.message,
327
+ default: options.default,
328
+ validate: options.validate,
329
+ transformer: options.transform
330
+ }]);
331
+
332
+ return result.input;
333
+ }
334
+
335
+ async progressTask<T>(
336
+ task: ProgressTask<T>,
337
+ options: ProgressOptions
338
+ ): Promise<T> {
339
+ const { default: cliProgress } = await import('cli-progress');
340
+
341
+ const progressBar = new cliProgress.SingleBar({
342
+ format: `${options.title} |{bar}| {percentage}% | {status}`,
343
+ barCompleteChar: '█',
344
+ barIncompleteChar: '░',
345
+ hideCursor: true
346
+ });
347
+
348
+ progressBar.start(100, 0, { status: 'Starting...' });
349
+
350
+ try {
351
+ const result = await task({
352
+ updateProgress: (percent: number, status?: string) => {
353
+ progressBar.update(percent, { status: status || 'Processing...' });
354
+ }
355
+ });
356
+
357
+ progressBar.update(100, { status: 'Complete!' });
358
+ progressBar.stop();
359
+
360
+ return result;
361
+ } catch (error) {
362
+ progressBar.stop();
363
+ throw error;
364
+ }
365
+ }
366
+
367
+ async confirmWithDetails(
368
+ message: string,
369
+ details: ConfirmationDetails
370
+ ): Promise<boolean> {
371
+ console.log('\n' + chalk.bold(message));
372
+ console.log(chalk.gray('Details:'));
373
+
374
+ for (const [key, value] of Object.entries(details)) {
375
+ console.log(chalk.gray(` ${key}: ${value}`));
376
+ }
377
+
378
+ return this.confirm('\nProceed?');
379
+ }
380
+ }
381
+ ```
382
+
383
+ ## Enhanced Hooks Integration
384
+
385
+ ### Deep CLI Hooks Integration
386
+ ```typescript
387
+ // src/cli/hooks/cli-hooks-manager.ts
388
+ interface CLIHookEvent {
389
+ type: 'command_start' | 'command_end' | 'command_error' | 'agent_spawn' | 'task_complete';
390
+ command: string;
391
+ args: string[];
392
+ context: ExecutionContext;
393
+ timestamp: Date;
394
+ }
395
+
396
+ export class CLIHooksManager {
397
+ private hooks: Map<string, HookHandler[]> = new Map();
398
+ private learningIntegration: LearningHooksIntegration;
399
+
400
+ constructor() {
401
+ this.learningIntegration = new LearningHooksIntegration();
402
+ this.setupDefaultHooks();
403
+ }
404
+
405
+ private setupDefaultHooks(): void {
406
+ // Learning integration hooks
407
+ this.registerHook('command_start', async (event: CLIHookEvent) => {
408
+ await this.learningIntegration.recordCommandStart(event);
409
+ });
410
+
411
+ this.registerHook('command_end', async (event: CLIHookEvent) => {
412
+ await this.learningIntegration.recordCommandSuccess(event);
413
+ });
414
+
415
+ this.registerHook('command_error', async (event: CLIHookEvent) => {
416
+ await this.learningIntegration.recordCommandError(event);
417
+ });
418
+
419
+ // Intelligent suggestions
420
+ this.registerHook('command_start', async (event: CLIHookEvent) => {
421
+ const suggestions = await this.generateIntelligentSuggestions(event);
422
+ if (suggestions.length > 0) {
423
+ this.displaySuggestions(suggestions);
424
+ }
425
+ });
426
+
427
+ // Performance monitoring
428
+ this.registerHook('command_end', async (event: CLIHookEvent) => {
429
+ await this.recordPerformanceMetrics(event);
430
+ });
431
+ }
432
+
433
+ async executeHooks(type: string, event: CLIHookEvent): Promise<void> {
434
+ const handlers = this.hooks.get(type) || [];
435
+
436
+ await Promise.all(handlers.map(handler =>
437
+ this.executeHookSafely(handler, event)
438
+ ));
439
+ }
440
+
441
+ private async generateIntelligentSuggestions(event: CLIHookEvent): Promise<Suggestion[]> {
442
+ const context = await this.learningIntegration.getExecutionContext(event);
443
+ const patterns = await this.learningIntegration.findSimilarPatterns(context);
444
+
445
+ return patterns.map(pattern => ({
446
+ type: 'optimization',
447
+ message: `Based on similar executions, consider: ${pattern.suggestion}`,
448
+ confidence: pattern.confidence
449
+ }));
450
+ }
451
+ }
452
+ ```
453
+
454
+ ### Learning Integration
455
+ ```typescript
456
+ // src/cli/hooks/learning-hooks-integration.ts
457
+ export class LearningHooksIntegration {
458
+ constructor(
459
+ private agenticFlowHooks: AgenticFlowHooksClient,
460
+ private agentDBLearning: AgentDBLearningClient
461
+ ) {}
462
+
463
+ async recordCommandStart(event: CLIHookEvent): Promise<void> {
464
+ // Start trajectory tracking
465
+ await this.agenticFlowHooks.trajectoryStart({
466
+ sessionId: event.context.sessionId,
467
+ command: event.command,
468
+ args: event.args,
469
+ context: event.context
470
+ });
471
+
472
+ // Record experience in AgentDB
473
+ await this.agentDBLearning.recordExperience({
474
+ type: 'command_execution',
475
+ state: this.encodeCommandState(event),
476
+ action: event.command,
477
+ timestamp: event.timestamp
478
+ });
479
+ }
480
+
481
+ async recordCommandSuccess(event: CLIHookEvent): Promise<void> {
482
+ const executionTime = Date.now() - event.timestamp.getTime();
483
+ const reward = this.calculateReward(event, executionTime, true);
484
+
485
+ // Complete trajectory
486
+ await this.agenticFlowHooks.trajectoryEnd({
487
+ sessionId: event.context.sessionId,
488
+ success: true,
489
+ reward,
490
+ verdict: 'positive'
491
+ });
492
+
493
+ // Submit feedback to learning system
494
+ await this.agentDBLearning.submitFeedback({
495
+ sessionId: event.context.learningSessionId,
496
+ reward,
497
+ success: true,
498
+ latencyMs: executionTime
499
+ });
500
+
501
+ // Store successful pattern
502
+ if (reward > 0.8) {
503
+ await this.agenticFlowHooks.storePattern({
504
+ pattern: event.command,
505
+ solution: event.context.result,
506
+ confidence: reward
507
+ });
508
+ }
509
+ }
510
+
511
+ async recordCommandError(event: CLIHookEvent): Promise<void> {
512
+ const executionTime = Date.now() - event.timestamp.getTime();
513
+ const reward = this.calculateReward(event, executionTime, false);
514
+
515
+ // Complete trajectory with error
516
+ await this.agenticFlowHooks.trajectoryEnd({
517
+ sessionId: event.context.sessionId,
518
+ success: false,
519
+ reward,
520
+ verdict: 'negative',
521
+ error: event.context.error
522
+ });
523
+
524
+ // Learn from failure
525
+ await this.agentDBLearning.submitFeedback({
526
+ sessionId: event.context.learningSessionId,
527
+ reward,
528
+ success: false,
529
+ latencyMs: executionTime,
530
+ error: event.context.error
531
+ });
532
+ }
533
+
534
+ private calculateReward(event: CLIHookEvent, executionTime: number, success: boolean): number {
535
+ if (!success) return 0;
536
+
537
+ // Base reward for success
538
+ let reward = 0.5;
539
+
540
+ // Performance bonus (faster execution)
541
+ const expectedTime = this.getExpectedExecutionTime(event.command);
542
+ if (executionTime < expectedTime) {
543
+ reward += 0.3 * (1 - executionTime / expectedTime);
544
+ }
545
+
546
+ // Complexity bonus
547
+ const complexity = this.calculateCommandComplexity(event);
548
+ reward += complexity * 0.2;
549
+
550
+ return Math.min(reward, 1.0);
551
+ }
552
+ }
553
+ ```
554
+
555
+ ## Intelligent Workflow Automation
556
+
557
+ ### Workflow Orchestrator
558
+ ```typescript
559
+ // src/cli/workflows/workflow-orchestrator.ts
560
+ interface WorkflowStep {
561
+ id: string;
562
+ command: string;
563
+ args: string[];
564
+ dependsOn: string[];
565
+ condition?: WorkflowCondition;
566
+ retryPolicy?: RetryPolicy;
567
+ }
568
+
569
+ export class WorkflowOrchestrator {
570
+ constructor(
571
+ private commandRegistry: ModularCommandRegistry,
572
+ private promptService: InteractivePromptService
573
+ ) {}
574
+
575
+ async executeWorkflow(workflow: Workflow): Promise<WorkflowResult> {
576
+ const context = new WorkflowExecutionContext(workflow);
577
+
578
+ // Display workflow overview
579
+ await this.displayWorkflowOverview(workflow);
580
+
581
+ const confirmed = await this.promptService.confirm(
582
+ 'Execute this workflow?'
583
+ );
584
+
585
+ if (!confirmed) {
586
+ return WorkflowResult.cancelled();
587
+ }
588
+
589
+ // Execute steps
590
+ return this.promptService.progressTask(
591
+ async ({ updateProgress }) => {
592
+ const steps = this.sortStepsByDependencies(workflow.steps);
593
+
594
+ for (let i = 0; i < steps.length; i++) {
595
+ const step = steps[i];
596
+ updateProgress((i / steps.length) * 100, `Executing ${step.command}`);
597
+
598
+ await this.executeStep(step, context);
599
+ }
600
+
601
+ return WorkflowResult.success(context.getResults());
602
+ },
603
+ { title: `Workflow: ${workflow.name}` }
604
+ );
605
+ }
606
+
607
+ async generateWorkflowFromIntent(intent: string): Promise<Workflow> {
608
+ // Use learning system to generate workflow
609
+ const patterns = await this.findWorkflowPatterns(intent);
610
+
611
+ if (patterns.length === 0) {
612
+ throw new Error('Could not generate workflow for intent');
613
+ }
614
+
615
+ // Select best pattern or let user choose
616
+ const selectedPattern = patterns.length === 1
617
+ ? patterns[0]
618
+ : await this.promptService.select({
619
+ message: 'Select workflow template:',
620
+ choices: patterns.map(p => ({
621
+ name: `${p.name} (${p.confidence}% match)`,
622
+ value: p
623
+ }))
624
+ });
625
+
626
+ return this.customizeWorkflow(selectedPattern, intent);
627
+ }
628
+
629
+ private async executeStep(step: WorkflowStep, context: WorkflowExecutionContext): Promise<void> {
630
+ // Check conditions
631
+ if (step.condition && !this.evaluateCondition(step.condition, context)) {
632
+ context.skipStep(step.id, 'Condition not met');
633
+ return;
634
+ }
635
+
636
+ // Check dependencies
637
+ const missingDeps = step.dependsOn.filter(dep => !context.isStepCompleted(dep));
638
+ if (missingDeps.length > 0) {
639
+ throw new WorkflowError(`Step ${step.id} has unmet dependencies: ${missingDeps.join(', ')}`);
640
+ }
641
+
642
+ // Execute with retry policy
643
+ const retryPolicy = step.retryPolicy || { maxAttempts: 1 };
644
+ let lastError: Error | null = null;
645
+
646
+ for (let attempt = 1; attempt <= retryPolicy.maxAttempts; attempt++) {
647
+ try {
648
+ const result = await this.commandRegistry.executeCommand(step.command, step.args);
649
+ context.completeStep(step.id, result);
650
+ return;
651
+ } catch (error) {
652
+ lastError = error as Error;
653
+
654
+ if (attempt < retryPolicy.maxAttempts) {
655
+ await this.delay(retryPolicy.backoffMs || 1000);
656
+ }
657
+ }
658
+ }
659
+
660
+ throw new WorkflowError(`Step ${step.id} failed after ${retryPolicy.maxAttempts} attempts: ${lastError?.message}`);
661
+ }
662
+ }
663
+ ```
664
+
665
+ ## Performance Optimization
666
+
667
+ ### Command Performance Monitoring
668
+ ```typescript
669
+ // src/cli/performance/command-performance.ts
670
+ export class CommandPerformanceMonitor {
671
+ private metrics = new Map<string, CommandMetrics>();
672
+
673
+ async measureCommand<T>(
674
+ commandName: string,
675
+ executor: () => Promise<T>
676
+ ): Promise<T> {
677
+ const start = performance.now();
678
+ const memBefore = process.memoryUsage();
679
+
680
+ try {
681
+ const result = await executor();
682
+ const end = performance.now();
683
+ const memAfter = process.memoryUsage();
684
+
685
+ this.recordMetrics(commandName, {
686
+ executionTime: end - start,
687
+ memoryDelta: memAfter.heapUsed - memBefore.heapUsed,
688
+ success: true
689
+ });
690
+
691
+ return result;
692
+ } catch (error) {
693
+ const end = performance.now();
694
+
695
+ this.recordMetrics(commandName, {
696
+ executionTime: end - start,
697
+ memoryDelta: 0,
698
+ success: false,
699
+ error: error as Error
700
+ });
701
+
702
+ throw error;
703
+ }
704
+ }
705
+
706
+ private recordMetrics(command: string, measurement: PerformanceMeasurement): void {
707
+ if (!this.metrics.has(command)) {
708
+ this.metrics.set(command, new CommandMetrics(command));
709
+ }
710
+
711
+ const metrics = this.metrics.get(command)!;
712
+ metrics.addMeasurement(measurement);
713
+
714
+ // Alert if performance degrades
715
+ if (metrics.getP95ExecutionTime() > 5000) { // 5 seconds
716
+ console.warn(`⚠️ Command '${command}' is performing slowly (P95: ${metrics.getP95ExecutionTime()}ms)`);
717
+ }
718
+ }
719
+
720
+ getCommandReport(command: string): PerformanceReport {
721
+ const metrics = this.metrics.get(command);
722
+ if (!metrics) {
723
+ throw new Error(`No metrics found for command: ${command}`);
724
+ }
725
+
726
+ return {
727
+ command,
728
+ totalExecutions: metrics.getTotalExecutions(),
729
+ successRate: metrics.getSuccessRate(),
730
+ avgExecutionTime: metrics.getAverageExecutionTime(),
731
+ p95ExecutionTime: metrics.getP95ExecutionTime(),
732
+ avgMemoryUsage: metrics.getAverageMemoryUsage(),
733
+ recommendations: this.generateRecommendations(metrics)
734
+ };
735
+ }
736
+ }
737
+ ```
738
+
739
+ ## Smart Auto-completion
740
+
741
+ ### Intelligent Command Completion
742
+ ```typescript
743
+ // src/cli/completion/intelligent-completion.ts
744
+ export class IntelligentCompletion {
745
+ constructor(
746
+ private learningService: LearningService,
747
+ private commandRegistry: ModularCommandRegistry
748
+ ) {}
749
+
750
+ async generateCompletions(
751
+ partial: string,
752
+ context: CompletionContext
753
+ ): Promise<Completion[]> {
754
+ const completions: Completion[] = [];
755
+
756
+ // 1. Exact command matches
757
+ const exactMatches = this.commandRegistry.findCommandsByPrefix(partial);
758
+ completions.push(...exactMatches.map(cmd => ({
759
+ value: cmd.name,
760
+ description: cmd.description,
761
+ type: 'command',
762
+ confidence: 1.0
763
+ })));
764
+
765
+ // 2. Learning-based suggestions
766
+ const learnedSuggestions = await this.learningService.suggestCommands(
767
+ partial,
768
+ context
769
+ );
770
+ completions.push(...learnedSuggestions);
771
+
772
+ // 3. Context-aware suggestions
773
+ const contextualSuggestions = await this.generateContextualSuggestions(
774
+ partial,
775
+ context
776
+ );
777
+ completions.push(...contextualSuggestions);
778
+
779
+ // Sort by confidence and relevance
780
+ return completions
781
+ .sort((a, b) => b.confidence - a.confidence)
782
+ .slice(0, 10); // Top 10 suggestions
783
+ }
784
+
785
+ private async generateContextualSuggestions(
786
+ partial: string,
787
+ context: CompletionContext
788
+ ): Promise<Completion[]> {
789
+ const suggestions: Completion[] = [];
790
+
791
+ // If in git repository, suggest git-related commands
792
+ if (context.isGitRepository) {
793
+ if (partial.startsWith('git')) {
794
+ suggestions.push({
795
+ value: 'git commit',
796
+ description: 'Create git commit with generated message',
797
+ type: 'workflow',
798
+ confidence: 0.8
799
+ });
800
+ }
801
+ }
802
+
803
+ // If package.json exists, suggest npm commands
804
+ if (context.hasPackageJson) {
805
+ if (partial.startsWith('npm') || partial.startsWith('swarm')) {
806
+ suggestions.push({
807
+ value: 'swarm init',
808
+ description: 'Initialize swarm for this project',
809
+ type: 'workflow',
810
+ confidence: 0.9
811
+ });
812
+ }
813
+ }
814
+
815
+ return suggestions;
816
+ }
817
+ }
818
+ ```
819
+
820
+ ## Success Metrics
821
+
822
+ ### CLI Performance Targets
823
+ - [ ] **Command Response**: <200ms average command execution time
824
+ - [ ] **File Decomposition**: index.ts (108KB) → <10KB per command module
825
+ - [ ] **Interactive UX**: Smart prompts with context awareness
826
+ - [ ] **Hook Integration**: Deep lifecycle integration with learning
827
+ - [ ] **Workflow Automation**: Intelligent multi-step command orchestration
828
+ - [ ] **Auto-completion**: >90% accuracy for command suggestions
829
+
830
+ ### User Experience Improvements
831
+ ```typescript
832
+ const cliImprovements = {
833
+ before: {
834
+ commandResponse: '~500ms',
835
+ interactivity: 'Basic command parsing',
836
+ workflows: 'Manual command chaining',
837
+ suggestions: 'Static help text'
838
+ },
839
+
840
+ after: {
841
+ commandResponse: '<200ms with caching',
842
+ interactivity: 'Smart context-aware prompts',
843
+ workflows: 'Automated multi-step execution',
844
+ suggestions: 'Learning-based intelligent completion'
845
+ }
846
+ };
847
+ ```
848
+
849
+ ## Related V3 Skills
850
+
851
+ - `v3-core-implementation` - Core domain integration
852
+ - `v3-memory-unification` - Memory-backed command caching
853
+ - `v3-swarm-coordination` - CLI swarm management integration
854
+ - `v3-performance-optimization` - CLI performance monitoring
855
+
856
+ ## Usage Examples
857
+
858
+ ### Complete CLI Modernization
859
+ ```bash
860
+ # Full CLI modernization implementation
861
+ Task("CLI modernization implementation",
862
+ "Implement modular commands, interactive prompts, and intelligent workflows",
863
+ "cli-hooks-developer")
864
+ ```
865
+
866
+ ### Interactive Command Enhancement
867
+ ```bash
868
+ # Enhanced interactive commands
869
+ claude-flow swarm init --interactive
870
+ claude-flow learning start --guided
871
+ claude-flow workflow create --from-intent "setup new project"
872
872
  ```