claude-flow 3.42.3 → 3.42.4

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 (463) hide show
  1. package/.claude/agents/MIGRATION_SUMMARY.md +221 -221
  2. package/.claude/agents/analysis/analyze-code-quality.md +57 -57
  3. package/.claude/agents/analysis/code-analyzer.md +188 -188
  4. package/.claude/agents/analysis/code-review/analyze-code-quality.md +57 -57
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +35 -35
  6. package/.claude/agents/base-template-generator.md +41 -41
  7. package/.claude/agents/consensus/byzantine-coordinator.md +42 -42
  8. package/.claude/agents/consensus/crdt-synchronizer.md +976 -976
  9. package/.claude/agents/consensus/gossip-coordinator.md +42 -42
  10. package/.claude/agents/consensus/performance-benchmarker.md +830 -830
  11. package/.claude/agents/consensus/quorum-manager.md +802 -802
  12. package/.claude/agents/consensus/raft-manager.md +42 -42
  13. package/.claude/agents/consensus/security-manager.md +601 -601
  14. package/.claude/agents/core/coder.md +254 -254
  15. package/.claude/agents/core/planner.md +151 -151
  16. package/.claude/agents/core/researcher.md +173 -173
  17. package/.claude/agents/core/reviewer.md +308 -308
  18. package/.claude/agents/core/tester.md +299 -299
  19. package/.claude/agents/custom/test-long-runner.md +43 -43
  20. package/.claude/agents/data/ml/data-ml-model.md +75 -75
  21. package/.claude/agents/database-specialist.md +9 -9
  22. package/.claude/agents/development/backend/dev-backend-api.md +28 -28
  23. package/.claude/agents/development/dev-backend-api.md +177 -177
  24. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +51 -51
  25. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +62 -62
  26. package/.claude/agents/dual-mode/codex-coordinator.md +206 -206
  27. package/.claude/agents/dual-mode/codex-worker.md +190 -190
  28. package/.claude/agents/dual-mode/dual-orchestrator.md +253 -253
  29. package/.claude/agents/flow-nexus/app-store.md +87 -87
  30. package/.claude/agents/flow-nexus/authentication.md +68 -68
  31. package/.claude/agents/flow-nexus/challenges.md +80 -80
  32. package/.claude/agents/flow-nexus/neural-network.md +87 -87
  33. package/.claude/agents/flow-nexus/payments.md +82 -82
  34. package/.claude/agents/flow-nexus/sandbox.md +75 -75
  35. package/.claude/agents/flow-nexus/swarm.md +75 -75
  36. package/.claude/agents/flow-nexus/user-tools.md +95 -95
  37. package/.claude/agents/flow-nexus/workflow.md +83 -83
  38. package/.claude/agents/github/code-review-swarm.md +520 -520
  39. package/.claude/agents/github/github-modes.md +153 -153
  40. package/.claude/agents/github/issue-tracker.md +298 -298
  41. package/.claude/agents/github/multi-repo-swarm.md +524 -524
  42. package/.claude/agents/github/pr-manager.md +162 -162
  43. package/.claude/agents/github/project-board-sync.md +477 -477
  44. package/.claude/agents/github/release-manager.md +337 -337
  45. package/.claude/agents/github/release-swarm.md +550 -550
  46. package/.claude/agents/github/repo-architect.md +364 -364
  47. package/.claude/agents/github/swarm-issue.md +550 -550
  48. package/.claude/agents/github/swarm-pr.md +401 -401
  49. package/.claude/agents/github/sync-coordinator.md +424 -424
  50. package/.claude/agents/github/workflow-automation.md +604 -604
  51. package/.claude/agents/goal/agent.md +816 -816
  52. package/.claude/agents/goal/code-goal-planner.md +444 -444
  53. package/.claude/agents/goal/goal-planner.md +167 -167
  54. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +128 -128
  55. package/.claude/agents/hive-mind/queen-coordinator.md +201 -201
  56. package/.claude/agents/hive-mind/scout-explorer.md +240 -240
  57. package/.claude/agents/hive-mind/swarm-memory-manager.md +191 -191
  58. package/.claude/agents/hive-mind/worker-specialist.md +215 -215
  59. package/.claude/agents/neural/safla-neural.md +73 -73
  60. package/.claude/agents/optimization/benchmark-suite.md +662 -662
  61. package/.claude/agents/optimization/load-balancer.md +428 -428
  62. package/.claude/agents/optimization/performance-monitor.md +669 -669
  63. package/.claude/agents/optimization/resource-allocator.md +671 -671
  64. package/.claude/agents/optimization/topology-optimizer.md +805 -805
  65. package/.claude/agents/payments/agentic-payments.md +126 -126
  66. package/.claude/agents/project-coordinator.md +8 -8
  67. package/.claude/agents/python-specialist.md +9 -9
  68. package/.claude/agents/reasoning/agent.md +816 -816
  69. package/.claude/agents/reasoning/goal-planner.md +72 -72
  70. package/.claude/agents/security-auditor.md +9 -9
  71. package/.claude/agents/sona/sona-learning-optimizer.md +65 -65
  72. package/.claude/agents/sparc/architecture.md +452 -452
  73. package/.claude/agents/sparc/pseudocode.md +298 -298
  74. package/.claude/agents/sparc/refinement.md +503 -503
  75. package/.claude/agents/sparc/specification.md +257 -257
  76. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +87 -87
  77. package/.claude/agents/sublinear/consensus-coordinator.md +337 -337
  78. package/.claude/agents/sublinear/matrix-optimizer.md +184 -184
  79. package/.claude/agents/sublinear/pagerank-analyzer.md +298 -298
  80. package/.claude/agents/sublinear/performance-optimizer.md +367 -367
  81. package/.claude/agents/sublinear/trading-predictor.md +245 -245
  82. package/.claude/agents/swarm/adaptive-coordinator.md +363 -363
  83. package/.claude/agents/swarm/hierarchical-coordinator.md +299 -299
  84. package/.claude/agents/swarm/mesh-coordinator.md +362 -362
  85. package/.claude/agents/templates/automation-smart-agent.md +184 -184
  86. package/.claude/agents/templates/coordinator-swarm-init.md +82 -82
  87. package/.claude/agents/templates/github-pr-manager.md +154 -154
  88. package/.claude/agents/templates/implementer-sparc-coder.md +242 -242
  89. package/.claude/agents/templates/memory-coordinator.md +162 -162
  90. package/.claude/agents/templates/migration-plan.md +723 -723
  91. package/.claude/agents/templates/orchestrator-task.md +119 -119
  92. package/.claude/agents/templates/performance-analyzer.md +178 -178
  93. package/.claude/agents/templates/sparc-coordinator.md +162 -162
  94. package/.claude/agents/testing/production-validator.md +372 -372
  95. package/.claude/agents/testing/tdd-london-swarm.md +221 -221
  96. package/.claude/agents/testing/unit/tdd-london-swarm.md +221 -221
  97. package/.claude/agents/testing/validation/production-validator.md +372 -372
  98. package/.claude/agents/typescript-specialist.md +9 -9
  99. package/.claude/agents/v3/database-specialist.md +9 -9
  100. package/.claude/agents/v3/project-coordinator.md +8 -8
  101. package/.claude/agents/v3/python-specialist.md +9 -9
  102. package/.claude/agents/v3/test-architect.md +9 -9
  103. package/.claude/agents/v3/typescript-specialist.md +9 -9
  104. package/.claude/agents/v3/v3-integration-architect.md +311 -311
  105. package/.claude/agents/v3/v3-memory-specialist.md +280 -280
  106. package/.claude/agents/v3/v3-performance-engineer.md +362 -362
  107. package/.claude/agents/v3/v3-queen-coordinator.md +62 -62
  108. package/.claude/agents/v3/v3-security-architect.md +139 -139
  109. package/.claude/checkpoints/1767754460.json +8 -8
  110. package/.claude/commands/agents/README.md +10 -10
  111. package/.claude/commands/agents/agent-capabilities.md +21 -21
  112. package/.claude/commands/agents/agent-coordination.md +28 -28
  113. package/.claude/commands/agents/agent-spawning.md +28 -28
  114. package/.claude/commands/agents/agent-types.md +26 -26
  115. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +53 -53
  116. package/.claude/commands/analysis/README.md +9 -9
  117. package/.claude/commands/analysis/bottleneck-detect.md +162 -162
  118. package/.claude/commands/analysis/performance-bottlenecks.md +58 -58
  119. package/.claude/commands/analysis/performance-report.md +25 -25
  120. package/.claude/commands/analysis/token-efficiency.md +44 -44
  121. package/.claude/commands/analysis/token-usage.md +25 -25
  122. package/.claude/commands/automation/README.md +9 -9
  123. package/.claude/commands/automation/auto-agent.md +122 -122
  124. package/.claude/commands/automation/self-healing.md +105 -105
  125. package/.claude/commands/automation/session-memory.md +89 -89
  126. package/.claude/commands/automation/smart-agents.md +72 -72
  127. package/.claude/commands/automation/smart-spawn.md +25 -25
  128. package/.claude/commands/automation/workflow-select.md +25 -25
  129. package/.claude/commands/claude-flow-help.md +103 -103
  130. package/.claude/commands/claude-flow-memory.md +107 -107
  131. package/.claude/commands/claude-flow-swarm.md +205 -205
  132. package/.claude/commands/coordination/README.md +9 -9
  133. package/.claude/commands/coordination/agent-spawn.md +25 -25
  134. package/.claude/commands/coordination/init.md +44 -44
  135. package/.claude/commands/coordination/orchestrate.md +43 -43
  136. package/.claude/commands/coordination/spawn.md +45 -45
  137. package/.claude/commands/coordination/swarm-init.md +85 -85
  138. package/.claude/commands/coordination/task-orchestrate.md +25 -25
  139. package/.claude/commands/flow-nexus/app-store.md +123 -123
  140. package/.claude/commands/flow-nexus/challenges.md +119 -119
  141. package/.claude/commands/flow-nexus/login-registration.md +64 -64
  142. package/.claude/commands/flow-nexus/neural-network.md +133 -133
  143. package/.claude/commands/flow-nexus/payments.md +115 -115
  144. package/.claude/commands/flow-nexus/sandbox.md +82 -82
  145. package/.claude/commands/flow-nexus/swarm.md +86 -86
  146. package/.claude/commands/flow-nexus/user-tools.md +151 -151
  147. package/.claude/commands/flow-nexus/workflow.md +114 -114
  148. package/.claude/commands/github/README.md +11 -11
  149. package/.claude/commands/github/code-review-swarm.md +513 -513
  150. package/.claude/commands/github/code-review.md +25 -25
  151. package/.claude/commands/github/github-modes.md +146 -146
  152. package/.claude/commands/github/github-swarm.md +121 -121
  153. package/.claude/commands/github/issue-tracker.md +291 -291
  154. package/.claude/commands/github/issue-triage.md +25 -25
  155. package/.claude/commands/github/multi-repo-swarm.md +518 -518
  156. package/.claude/commands/github/pr-enhance.md +26 -26
  157. package/.claude/commands/github/pr-manager.md +169 -169
  158. package/.claude/commands/github/project-board-sync.md +470 -470
  159. package/.claude/commands/github/release-manager.md +337 -337
  160. package/.claude/commands/github/release-swarm.md +543 -543
  161. package/.claude/commands/github/repo-analyze.md +25 -25
  162. package/.claude/commands/github/repo-architect.md +366 -366
  163. package/.claude/commands/github/swarm-issue.md +481 -481
  164. package/.claude/commands/github/swarm-pr.md +284 -284
  165. package/.claude/commands/github/sync-coordinator.md +300 -300
  166. package/.claude/commands/github/workflow-automation.md +441 -441
  167. package/.claude/commands/hive-mind/README.md +17 -17
  168. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -8
  169. package/.claude/commands/hive-mind/hive-mind-init.md +18 -18
  170. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -8
  171. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -8
  172. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -8
  173. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -8
  174. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -21
  175. package/.claude/commands/hive-mind/hive-mind-status.md +8 -8
  176. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -8
  177. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -8
  178. package/.claude/commands/hive-mind/hive-mind.md +27 -27
  179. package/.claude/commands/hooks/README.md +11 -11
  180. package/.claude/commands/hooks/overview.md +57 -57
  181. package/.claude/commands/hooks/post-edit.md +117 -117
  182. package/.claude/commands/hooks/post-task.md +112 -112
  183. package/.claude/commands/hooks/pre-edit.md +113 -113
  184. package/.claude/commands/hooks/pre-task.md +111 -111
  185. package/.claude/commands/hooks/session-end.md +118 -118
  186. package/.claude/commands/hooks/setup.md +102 -102
  187. package/.claude/commands/memory/README.md +9 -9
  188. package/.claude/commands/memory/memory-persist.md +25 -25
  189. package/.claude/commands/memory/memory-search.md +25 -25
  190. package/.claude/commands/memory/memory-usage.md +25 -25
  191. package/.claude/commands/memory/neural.md +47 -47
  192. package/.claude/commands/monitoring/README.md +9 -9
  193. package/.claude/commands/monitoring/agent-metrics.md +25 -25
  194. package/.claude/commands/monitoring/agents.md +44 -44
  195. package/.claude/commands/monitoring/real-time-view.md +25 -25
  196. package/.claude/commands/monitoring/status.md +46 -46
  197. package/.claude/commands/monitoring/swarm-monitor.md +25 -25
  198. package/.claude/commands/optimization/README.md +9 -9
  199. package/.claude/commands/optimization/auto-topology.md +61 -61
  200. package/.claude/commands/optimization/cache-manage.md +25 -25
  201. package/.claude/commands/optimization/parallel-execute.md +25 -25
  202. package/.claude/commands/optimization/parallel-execution.md +49 -49
  203. package/.claude/commands/optimization/topology-optimize.md +25 -25
  204. package/.claude/commands/pair/README.md +260 -260
  205. package/.claude/commands/pair/commands.md +545 -545
  206. package/.claude/commands/pair/config.md +509 -509
  207. package/.claude/commands/pair/examples.md +511 -511
  208. package/.claude/commands/pair/modes.md +347 -347
  209. package/.claude/commands/pair/session.md +406 -406
  210. package/.claude/commands/pair/start.md +208 -208
  211. package/.claude/commands/sparc/analyzer.md +51 -51
  212. package/.claude/commands/sparc/architect.md +53 -53
  213. package/.claude/commands/sparc/ask.md +97 -97
  214. package/.claude/commands/sparc/batch-executor.md +54 -54
  215. package/.claude/commands/sparc/code.md +89 -89
  216. package/.claude/commands/sparc/coder.md +54 -54
  217. package/.claude/commands/sparc/debug.md +83 -83
  218. package/.claude/commands/sparc/debugger.md +54 -54
  219. package/.claude/commands/sparc/designer.md +53 -53
  220. package/.claude/commands/sparc/devops.md +109 -109
  221. package/.claude/commands/sparc/docs-writer.md +80 -80
  222. package/.claude/commands/sparc/documenter.md +54 -54
  223. package/.claude/commands/sparc/innovator.md +54 -54
  224. package/.claude/commands/sparc/integration.md +83 -83
  225. package/.claude/commands/sparc/mcp.md +117 -117
  226. package/.claude/commands/sparc/memory-manager.md +54 -54
  227. package/.claude/commands/sparc/optimizer.md +54 -54
  228. package/.claude/commands/sparc/orchestrator.md +131 -131
  229. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
  230. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
  231. package/.claude/commands/sparc/researcher.md +54 -54
  232. package/.claude/commands/sparc/reviewer.md +54 -54
  233. package/.claude/commands/sparc/security-review.md +80 -80
  234. package/.claude/commands/sparc/sparc-modes.md +174 -174
  235. package/.claude/commands/sparc/sparc.md +111 -111
  236. package/.claude/commands/sparc/spec-pseudocode.md +80 -80
  237. package/.claude/commands/sparc/supabase-admin.md +348 -348
  238. package/.claude/commands/sparc/swarm-coordinator.md +54 -54
  239. package/.claude/commands/sparc/tdd.md +54 -54
  240. package/.claude/commands/sparc/tester.md +54 -54
  241. package/.claude/commands/sparc/tutorial.md +79 -79
  242. package/.claude/commands/sparc/workflow-manager.md +54 -54
  243. package/.claude/commands/sparc.md +166 -166
  244. package/.claude/commands/stream-chain/pipeline.md +120 -120
  245. package/.claude/commands/stream-chain/run.md +69 -69
  246. package/.claude/commands/swarm/README.md +15 -15
  247. package/.claude/commands/swarm/analysis.md +95 -95
  248. package/.claude/commands/swarm/development.md +96 -96
  249. package/.claude/commands/swarm/examples.md +168 -168
  250. package/.claude/commands/swarm/maintenance.md +102 -102
  251. package/.claude/commands/swarm/optimization.md +117 -117
  252. package/.claude/commands/swarm/research.md +136 -136
  253. package/.claude/commands/swarm/swarm-analysis.md +8 -8
  254. package/.claude/commands/swarm/swarm-background.md +8 -8
  255. package/.claude/commands/swarm/swarm-init.md +19 -19
  256. package/.claude/commands/swarm/swarm-modes.md +8 -8
  257. package/.claude/commands/swarm/swarm-monitor.md +8 -8
  258. package/.claude/commands/swarm/swarm-spawn.md +19 -19
  259. package/.claude/commands/swarm/swarm-status.md +8 -8
  260. package/.claude/commands/swarm/swarm-strategies.md +8 -8
  261. package/.claude/commands/swarm/swarm.md +27 -27
  262. package/.claude/commands/swarm/testing.md +131 -131
  263. package/.claude/commands/training/README.md +9 -9
  264. package/.claude/commands/training/model-update.md +25 -25
  265. package/.claude/commands/training/neural-patterns.md +73 -73
  266. package/.claude/commands/training/neural-train.md +25 -25
  267. package/.claude/commands/training/pattern-learn.md +25 -25
  268. package/.claude/commands/training/specialization.md +62 -62
  269. package/.claude/commands/truth/start.md +142 -142
  270. package/.claude/commands/verify/check.md +49 -49
  271. package/.claude/commands/verify/start.md +127 -127
  272. package/.claude/commands/workflows/README.md +9 -9
  273. package/.claude/commands/workflows/development.md +77 -77
  274. package/.claude/commands/workflows/research.md +62 -62
  275. package/.claude/commands/workflows/workflow-create.md +25 -25
  276. package/.claude/commands/workflows/workflow-execute.md +25 -25
  277. package/.claude/commands/workflows/workflow-export.md +25 -25
  278. package/.claude/config/v3-dependency-optimization.json +265 -265
  279. package/.claude/config/v3-performance-targets.json +250 -250
  280. package/.claude/helpers/.LOCKED +2 -2
  281. package/.claude/helpers/README.md +96 -96
  282. package/.claude/helpers/adr-compliance.sh +186 -186
  283. package/.claude/helpers/aggressive-microcompact.mjs +36 -36
  284. package/.claude/helpers/auto-commit.sh +178 -178
  285. package/.claude/helpers/auto-memory-hook.mjs +430 -430
  286. package/.claude/helpers/checkpoint-manager.sh +251 -251
  287. package/.claude/helpers/context-persistence-hook.mjs +2001 -2001
  288. package/.claude/helpers/daemon-manager.sh +252 -252
  289. package/.claude/helpers/ddd-tracker.sh +144 -144
  290. package/.claude/helpers/github-safe.js +156 -156
  291. package/.claude/helpers/github-setup.sh +45 -45
  292. package/.claude/helpers/guidance-hook.sh +13 -13
  293. package/.claude/helpers/guidance-hooks.sh +102 -102
  294. package/.claude/helpers/health-monitor.sh +108 -108
  295. package/.claude/helpers/hook-handler.cjs +606 -606
  296. package/.claude/helpers/intelligence.cjs +1169 -1169
  297. package/.claude/helpers/learning-hooks.sh +329 -329
  298. package/.claude/helpers/learning-optimizer.sh +127 -127
  299. package/.claude/helpers/learning-service.mjs +1144 -1144
  300. package/.claude/helpers/memory.cjs +84 -84
  301. package/.claude/helpers/metrics-db.mjs +503 -503
  302. package/.claude/helpers/patch-aggressive-prune.mjs +184 -184
  303. package/.claude/helpers/pattern-consolidator.sh +86 -86
  304. package/.claude/helpers/perf-worker.sh +160 -160
  305. package/.claude/helpers/quick-start.sh +19 -19
  306. package/.claude/helpers/router.cjs +62 -62
  307. package/.claude/helpers/security-scanner.sh +127 -127
  308. package/.claude/helpers/session.cjs +125 -125
  309. package/.claude/helpers/setup-mcp.sh +18 -18
  310. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -189
  311. package/.claude/helpers/statusline.cjs +0 -0
  312. package/.claude/helpers/swarm-comms.sh +353 -353
  313. package/.claude/helpers/swarm-hooks.sh +761 -761
  314. package/.claude/helpers/swarm-monitor.sh +210 -210
  315. package/.claude/helpers/sync-v3-metrics.sh +245 -245
  316. package/.claude/helpers/update-v3-progress.sh +165 -165
  317. package/.claude/helpers/v3-quick-status.sh +57 -57
  318. package/.claude/helpers/v3.sh +110 -110
  319. package/.claude/helpers/validate-v3-config.sh +215 -215
  320. package/.claude/helpers/worker-manager.sh +170 -170
  321. package/.claude/mcp.json +12 -12
  322. package/.claude/settings.json +284 -284
  323. package/.claude/settings.json.bak +526 -526
  324. package/.claude/skills/agentdb-advanced/SKILL.md +550 -550
  325. package/.claude/skills/agentdb-learning/SKILL.md +545 -545
  326. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -339
  327. package/.claude/skills/agentdb-optimization/SKILL.md +509 -509
  328. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -339
  329. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -645
  330. package/.claude/skills/browser/SKILL.md +204 -204
  331. package/.claude/skills/dual-mode/README.md +71 -71
  332. package/.claude/skills/dual-mode/dual-collect.md +103 -103
  333. package/.claude/skills/dual-mode/dual-coordinate.md +85 -85
  334. package/.claude/skills/dual-mode/dual-spawn.md +81 -81
  335. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -727
  336. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -1154
  337. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -604
  338. package/.claude/skills/github-code-review/SKILL.md +1125 -1125
  339. package/.claude/skills/github-multi-repo/SKILL.md +862 -862
  340. package/.claude/skills/github-project-management/SKILL.md +1262 -1262
  341. package/.claude/skills/github-release-management/SKILL.md +1064 -1064
  342. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -1047
  343. package/.claude/skills/hive-mind-advanced/SKILL.md +709 -709
  344. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  345. package/.claude/skills/pair-programming/SKILL.md +1202 -1202
  346. package/.claude/skills/performance-analysis/SKILL.md +560 -560
  347. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -446
  348. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -201
  349. package/.claude/skills/skill-builder/SKILL.md +910 -910
  350. package/.claude/skills/sparc-methodology/SKILL.md +1106 -1106
  351. package/.claude/skills/stream-chain/SKILL.md +560 -560
  352. package/.claude/skills/swarm-advanced/SKILL.md +970 -970
  353. package/.claude/skills/swarm-orchestration/SKILL.md +179 -179
  354. package/.claude/skills/v3-cli-modernization/SKILL.md +871 -871
  355. package/.claude/skills/v3-core-implementation/SKILL.md +796 -796
  356. package/.claude/skills/v3-ddd-architecture/SKILL.md +441 -441
  357. package/.claude/skills/v3-integration-deep/SKILL.md +240 -240
  358. package/.claude/skills/v3-mcp-optimization/SKILL.md +776 -776
  359. package/.claude/skills/v3-memory-unification/SKILL.md +173 -173
  360. package/.claude/skills/v3-performance-optimization/SKILL.md +389 -389
  361. package/.claude/skills/v3-security-overhaul/SKILL.md +81 -81
  362. package/.claude/skills/v3-swarm-coordination/SKILL.md +339 -339
  363. package/.claude/skills/verification-quality/SKILL.md +691 -691
  364. package/.claude/skills/worker-benchmarks/SKILL.md +129 -129
  365. package/.claude/skills/worker-integration/SKILL.md +147 -147
  366. package/.claude/statusline-command.sh +176 -176
  367. package/.claude/statusline.mjs +109 -109
  368. package/.claude/statusline.sh +431 -431
  369. package/.claude/workflows/full-system-test.js +65 -65
  370. package/.claude/workflows/intelligence-system-hardening.js +120 -120
  371. package/.claude/workflows/plugin-contract-audit.js +91 -91
  372. package/.claude-plugin/README.md +720 -720
  373. package/.claude-plugin/docs/INSTALLATION.md +261 -261
  374. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -361
  375. package/.claude-plugin/docs/QUICKSTART.md +361 -361
  376. package/.claude-plugin/docs/STRUCTURE.md +128 -128
  377. package/.claude-plugin/hooks/hooks.json +77 -77
  378. package/.claude-plugin/marketplace.json +204 -204
  379. package/.claude-plugin/plugin.json +71 -71
  380. package/.claude-plugin/scripts/install.sh +234 -234
  381. package/.claude-plugin/scripts/ruflo-hook.cjs +304 -304
  382. package/.claude-plugin/scripts/ruflo-hook.sh +52 -52
  383. package/.claude-plugin/scripts/uninstall.sh +36 -36
  384. package/.claude-plugin/scripts/verify.sh +108 -108
  385. package/LICENSE +21 -21
  386. package/README.md +422 -422
  387. package/bin/cli.js +11 -11
  388. package/bin/npx-repair.js +7 -7
  389. package/bin/npx-safe-launch.js +9 -9
  390. package/node_modules/@claude-flow/codex/.agents/skills/github-automation/SKILL.md +32 -32
  391. package/node_modules/@claude-flow/codex/.agents/skills/memory-management/SKILL.md +45 -45
  392. package/node_modules/@claude-flow/codex/.agents/skills/performance-analysis/SKILL.md +32 -32
  393. package/node_modules/@claude-flow/codex/.agents/skills/security-audit/SKILL.md +46 -46
  394. package/node_modules/@claude-flow/codex/.agents/skills/sparc-methodology/SKILL.md +46 -46
  395. package/node_modules/@claude-flow/codex/.agents/skills/swarm-orchestration/SKILL.md +53 -53
  396. package/node_modules/@claude-flow/codex/README.md +1044 -1044
  397. package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +13 -13
  398. package/node_modules/@claude-flow/codex/dist/generators/agents-md.js +664 -664
  399. package/node_modules/@claude-flow/codex/dist/generators/config-toml.js +455 -455
  400. package/node_modules/@claude-flow/codex/dist/generators/skill-md.js +45 -45
  401. package/node_modules/@claude-flow/codex/dist/initializer.js +167 -167
  402. package/node_modules/@claude-flow/codex/dist/templates/index.js +15 -15
  403. package/node_modules/@claude-flow/mcp/README.md +429 -429
  404. package/node_modules/@claude-flow/plugin-agent-federation/README.md +49 -49
  405. package/node_modules/@claude-flow/security/README.md +292 -292
  406. package/node_modules/@claude-flow/security/dist/credential-generator.js +9 -9
  407. package/node_modules/@claude-flow/security/dist/input-validator.d.ts +6 -6
  408. package/node_modules/@claude-flow/security/dist/oauth/callback-server.js +9 -9
  409. package/package.json +222 -222
  410. package/v3/@claude-flow/cli/README.md +422 -422
  411. package/v3/@claude-flow/cli/bin/cli.js +338 -338
  412. package/v3/@claude-flow/cli/bin/mcp-server.js +224 -224
  413. package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -2
  414. package/v3/@claude-flow/cli/catalog-manifest.json +2 -2
  415. package/v3/@claude-flow/cli/dist/src/benchmarks/gaia-critic.js +24 -24
  416. package/v3/@claude-flow/cli/dist/src/business-pods/bbs-budget-tracker.js +53 -53
  417. package/v3/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  418. package/v3/@claude-flow/cli/dist/src/commands/daemon.js +44 -44
  419. package/v3/@claude-flow/cli/dist/src/commands/doctor.js +4 -4
  420. package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +26 -26
  421. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +97 -97
  422. package/v3/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
  423. package/v3/@claude-flow/cli/dist/src/commands/init.js +75 -75
  424. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +23 -23
  425. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +31 -31
  426. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  427. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +115 -115
  428. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +99 -99
  429. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +51 -51
  430. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  431. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +38 -38
  432. package/v3/@claude-flow/cli/dist/src/config/proven-config.js +2 -2
  433. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +273 -273
  434. package/v3/@claude-flow/cli/dist/src/init/executor.js +453 -453
  435. package/v3/@claude-flow/cli/dist/src/init/helper-signing.js +2 -2
  436. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +917 -917
  437. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +24 -24
  438. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +15 -15
  439. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-intent-tools.js +19 -19
  440. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +6 -4
  441. package/v3/@claude-flow/cli/dist/src/mcp-tools/seraphina-tools.js +4 -4
  442. package/v3/@claude-flow/cli/dist/src/memory/graph-edge-writer.js +22 -22
  443. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +114 -114
  444. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +416 -416
  445. package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.js +5 -5
  446. package/v3/@claude-flow/cli/dist/src/proxy/verify.js +2 -2
  447. package/v3/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  448. package/v3/@claude-flow/cli/dist/src/services/distill-tuning.js +7 -7
  449. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  450. package/v3/@claude-flow/cli/dist/src/services/memory-distillation.js +18 -18
  451. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +23 -23
  452. package/v3/@claude-flow/cli/package.json +181 -181
  453. package/v3/@claude-flow/guidance/README.md +1195 -1195
  454. package/v3/@claude-flow/guidance/package.json +198 -198
  455. package/v3/@claude-flow/shared/README.md +323 -323
  456. package/v3/@claude-flow/shared/dist/events/event-store.js +31 -31
  457. package/v3/@claude-flow/shared/dist/hooks/safety/git-commit.js +3 -3
  458. package/v3/@claude-flow/shared/package.json +43 -43
  459. package/v3/README.md +493 -493
  460. package/.claude/.proven-config-version +0 -1
  461. package/.claude/proven-config.json +0 -42
  462. package/v3/@claude-flow/cli/dist/src/ruvector/diskann-backend.d.ts +0 -78
  463. package/v3/@claude-flow/cli/dist/src/ruvector/diskann-backend.js +0 -310
@@ -1,504 +1,504 @@
1
- ---
2
- name: refinement
3
- description: SPARC Refinement phase specialist for iterative improvement
4
- ---
5
-
6
- # SPARC Refinement Agent
7
-
8
- You are a code refinement specialist focused on the Refinement phase of the SPARC methodology. Your role is to iteratively improve code quality through testing, optimization, and refactoring.
9
-
10
- ## SPARC Refinement Phase
11
-
12
- The Refinement phase ensures code quality through:
13
- 1. Test-Driven Development (TDD)
14
- 2. Code optimization and refactoring
15
- 3. Performance tuning
16
- 4. Error handling improvement
17
- 5. Documentation enhancement
18
-
19
- ## TDD Refinement Process
20
-
21
- ### 1. Red Phase - Write Failing Tests
22
-
23
- ```typescript
24
- // Step 1: Write test that defines desired behavior
25
- describe('AuthenticationService', () => {
26
- let service: AuthenticationService;
27
- let mockUserRepo: jest.Mocked<UserRepository>;
28
- let mockCache: jest.Mocked<CacheService>;
29
-
30
- beforeEach(() => {
31
- mockUserRepo = createMockRepository();
32
- mockCache = createMockCache();
33
- service = new AuthenticationService(mockUserRepo, mockCache);
34
- });
35
-
36
- describe('login', () => {
37
- it('should return user and token for valid credentials', async () => {
38
- // Arrange
39
- const credentials = {
40
- email: 'user@example.com',
41
- password: 'SecurePass123!'
42
- };
43
- const mockUser = {
44
- id: 'user-123',
45
- email: credentials.email,
46
- passwordHash: await hash(credentials.password)
47
- };
48
-
49
- mockUserRepo.findByEmail.mockResolvedValue(mockUser);
50
-
51
- // Act
52
- const result = await service.login(credentials);
53
-
54
- // Assert
55
- expect(result).toHaveProperty('user');
56
- expect(result).toHaveProperty('token');
57
- expect(result.user.id).toBe(mockUser.id);
58
- expect(mockCache.set).toHaveBeenCalledWith(
59
- `session:${result.token}`,
60
- expect.any(Object),
61
- expect.any(Number)
62
- );
63
- });
64
-
65
- it('should lock account after 5 failed attempts', async () => {
66
- // This test will fail initially - driving implementation
67
- const credentials = {
68
- email: 'user@example.com',
69
- password: 'WrongPassword'
70
- };
71
-
72
- // Simulate 5 failed attempts
73
- for (let i = 0; i < 5; i++) {
74
- await expect(service.login(credentials))
75
- .rejects.toThrow('Invalid credentials');
76
- }
77
-
78
- // 6th attempt should indicate locked account
79
- await expect(service.login(credentials))
80
- .rejects.toThrow('Account locked due to multiple failed attempts');
81
- });
82
- });
83
- });
84
- ```
85
-
86
- ### 2. Green Phase - Make Tests Pass
87
-
88
- ```typescript
89
- // Step 2: Implement minimum code to pass tests
90
- export class AuthenticationService {
91
- private failedAttempts = new Map<string, number>();
92
- private readonly MAX_ATTEMPTS = 5;
93
- private readonly LOCK_DURATION = 15 * 60 * 1000; // 15 minutes
94
-
95
- constructor(
96
- private userRepo: UserRepository,
97
- private cache: CacheService,
98
- private logger: Logger
99
- ) {}
100
-
101
- async login(credentials: LoginDto): Promise<LoginResult> {
102
- const { email, password } = credentials;
103
-
104
- // Check if account is locked
105
- const attempts = this.failedAttempts.get(email) || 0;
106
- if (attempts >= this.MAX_ATTEMPTS) {
107
- throw new AccountLockedException(
108
- 'Account locked due to multiple failed attempts'
109
- );
110
- }
111
-
112
- // Find user
113
- const user = await this.userRepo.findByEmail(email);
114
- if (!user) {
115
- this.recordFailedAttempt(email);
116
- throw new UnauthorizedException('Invalid credentials');
117
- }
118
-
119
- // Verify password
120
- const isValidPassword = await this.verifyPassword(
121
- password,
122
- user.passwordHash
123
- );
124
- if (!isValidPassword) {
125
- this.recordFailedAttempt(email);
126
- throw new UnauthorizedException('Invalid credentials');
127
- }
128
-
129
- // Clear failed attempts on successful login
130
- this.failedAttempts.delete(email);
131
-
132
- // Generate token and create session
133
- const token = this.generateToken(user);
134
- const session = {
135
- userId: user.id,
136
- email: user.email,
137
- createdAt: new Date()
138
- };
139
-
140
- await this.cache.set(
141
- `session:${token}`,
142
- session,
143
- this.SESSION_DURATION
144
- );
145
-
146
- return {
147
- user: this.sanitizeUser(user),
148
- token
149
- };
150
- }
151
-
152
- private recordFailedAttempt(email: string): void {
153
- const current = this.failedAttempts.get(email) || 0;
154
- this.failedAttempts.set(email, current + 1);
155
-
156
- this.logger.warn('Failed login attempt', {
157
- email,
158
- attempts: current + 1
159
- });
160
- }
161
- }
162
- ```
163
-
164
- ### 3. Refactor Phase - Improve Code Quality
165
-
166
- ```typescript
167
- // Step 3: Refactor while keeping tests green
168
- export class AuthenticationService {
169
- constructor(
170
- private userRepo: UserRepository,
171
- private cache: CacheService,
172
- private logger: Logger,
173
- private config: AuthConfig,
174
- private eventBus: EventBus
175
- ) {}
176
-
177
- async login(credentials: LoginDto): Promise<LoginResult> {
178
- // Extract validation to separate method
179
- await this.validateLoginAttempt(credentials.email);
180
-
181
- try {
182
- const user = await this.authenticateUser(credentials);
183
- const session = await this.createSession(user);
184
-
185
- // Emit event for other services
186
- await this.eventBus.emit('user.logged_in', {
187
- userId: user.id,
188
- timestamp: new Date()
189
- });
190
-
191
- return {
192
- user: this.sanitizeUser(user),
193
- token: session.token,
194
- expiresAt: session.expiresAt
195
- };
196
- } catch (error) {
197
- await this.handleLoginFailure(credentials.email, error);
198
- throw error;
199
- }
200
- }
201
-
202
- private async validateLoginAttempt(email: string): Promise<void> {
203
- const lockInfo = await this.cache.get(`lock:${email}`);
204
- if (lockInfo) {
205
- const remainingTime = this.calculateRemainingLockTime(lockInfo);
206
- throw new AccountLockedException(
207
- `Account locked. Try again in ${remainingTime} minutes`
208
- );
209
- }
210
- }
211
-
212
- private async authenticateUser(credentials: LoginDto): Promise<User> {
213
- const user = await this.userRepo.findByEmail(credentials.email);
214
- if (!user || !await this.verifyPassword(credentials.password, user.passwordHash)) {
215
- throw new UnauthorizedException('Invalid credentials');
216
- }
217
- return user;
218
- }
219
-
220
- private async handleLoginFailure(email: string, error: Error): Promise<void> {
221
- if (error instanceof UnauthorizedException) {
222
- const attempts = await this.incrementFailedAttempts(email);
223
-
224
- if (attempts >= this.config.maxLoginAttempts) {
225
- await this.lockAccount(email);
226
- }
227
- }
228
- }
229
- }
230
- ```
231
-
232
- ## Performance Refinement
233
-
234
- ### 1. Identify Bottlenecks
235
-
236
- ```typescript
237
- // Performance test to identify slow operations
238
- describe('Performance', () => {
239
- it('should handle 1000 concurrent login requests', async () => {
240
- const startTime = performance.now();
241
-
242
- const promises = Array(1000).fill(null).map((_, i) =>
243
- service.login({
244
- email: `user${i}@example.com`,
245
- password: 'password'
246
- }).catch(() => {}) // Ignore errors for perf test
247
- );
248
-
249
- await Promise.all(promises);
250
-
251
- const duration = performance.now() - startTime;
252
- expect(duration).toBeLessThan(5000); // Should complete in 5 seconds
253
- });
254
- });
255
- ```
256
-
257
- ### 2. Optimize Hot Paths
258
-
259
- ```typescript
260
- // Before: N database queries
261
- async function getUserPermissions(userId: string): Promise<string[]> {
262
- const user = await db.query('SELECT * FROM users WHERE id = ?', [userId]);
263
- const roles = await db.query('SELECT * FROM user_roles WHERE user_id = ?', [userId]);
264
- const permissions = [];
265
-
266
- for (const role of roles) {
267
- const perms = await db.query('SELECT * FROM role_permissions WHERE role_id = ?', [role.id]);
268
- permissions.push(...perms);
269
- }
270
-
271
- return permissions;
272
- }
273
-
274
- // After: Single optimized query with caching
275
- async function getUserPermissions(userId: string): Promise<string[]> {
276
- // Check cache first
277
- const cached = await cache.get(`permissions:${userId}`);
278
- if (cached) return cached;
279
-
280
- // Single query with joins
281
- const permissions = await db.query(`
282
- SELECT DISTINCT p.name
283
- FROM users u
284
- JOIN user_roles ur ON u.id = ur.user_id
285
- JOIN role_permissions rp ON ur.role_id = rp.role_id
286
- JOIN permissions p ON rp.permission_id = p.id
287
- WHERE u.id = ?
288
- `, [userId]);
289
-
290
- // Cache for 5 minutes
291
- await cache.set(`permissions:${userId}`, permissions, 300);
292
-
293
- return permissions;
294
- }
295
- ```
296
-
297
- ## Error Handling Refinement
298
-
299
- ### 1. Comprehensive Error Handling
300
-
301
- ```typescript
302
- // Define custom error hierarchy
303
- export class AppError extends Error {
304
- constructor(
305
- message: string,
306
- public code: string,
307
- public statusCode: number,
308
- public isOperational = true
309
- ) {
310
- super(message);
311
- Object.setPrototypeOf(this, new.target.prototype);
312
- Error.captureStackTrace(this);
313
- }
314
- }
315
-
316
- export class ValidationError extends AppError {
317
- constructor(message: string, public fields?: Record<string, string>) {
318
- super(message, 'VALIDATION_ERROR', 400);
319
- }
320
- }
321
-
322
- export class AuthenticationError extends AppError {
323
- constructor(message: string = 'Authentication required') {
324
- super(message, 'AUTHENTICATION_ERROR', 401);
325
- }
326
- }
327
-
328
- // Global error handler
329
- export function errorHandler(
330
- error: Error,
331
- req: Request,
332
- res: Response,
333
- next: NextFunction
334
- ): void {
335
- if (error instanceof AppError && error.isOperational) {
336
- res.status(error.statusCode).json({
337
- error: {
338
- code: error.code,
339
- message: error.message,
340
- ...(error instanceof ValidationError && { fields: error.fields })
341
- }
342
- });
343
- } else {
344
- // Unexpected errors
345
- logger.error('Unhandled error', { error, request: req });
346
- res.status(500).json({
347
- error: {
348
- code: 'INTERNAL_ERROR',
349
- message: 'An unexpected error occurred'
350
- }
351
- });
352
- }
353
- }
354
- ```
355
-
356
- ### 2. Retry Logic and Circuit Breakers
357
-
358
- ```typescript
359
- // Retry decorator for transient failures
360
- function retry(attempts = 3, delay = 1000) {
361
- return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
362
- const originalMethod = descriptor.value;
363
-
364
- descriptor.value = async function(...args: any[]) {
365
- let lastError: Error;
366
-
367
- for (let i = 0; i < attempts; i++) {
368
- try {
369
- return await originalMethod.apply(this, args);
370
- } catch (error) {
371
- lastError = error;
372
-
373
- if (i < attempts - 1 && isRetryable(error)) {
374
- await sleep(delay * Math.pow(2, i)); // Exponential backoff
375
- } else {
376
- throw error;
377
- }
378
- }
379
- }
380
-
381
- throw lastError;
382
- };
383
- };
384
- }
385
-
386
- // Circuit breaker for external services
387
- export class CircuitBreaker {
388
- private failures = 0;
389
- private lastFailureTime?: Date;
390
- private state: 'CLOSED' | 'OPEN' | 'HALF_OPEN' = 'CLOSED';
391
-
392
- constructor(
393
- private threshold = 5,
394
- private timeout = 60000 // 1 minute
395
- ) {}
396
-
397
- async execute<T>(operation: () => Promise<T>): Promise<T> {
398
- if (this.state === 'OPEN') {
399
- if (this.shouldAttemptReset()) {
400
- this.state = 'HALF_OPEN';
401
- } else {
402
- throw new Error('Circuit breaker is OPEN');
403
- }
404
- }
405
-
406
- try {
407
- const result = await operation();
408
- this.onSuccess();
409
- return result;
410
- } catch (error) {
411
- this.onFailure();
412
- throw error;
413
- }
414
- }
415
-
416
- private onSuccess(): void {
417
- this.failures = 0;
418
- this.state = 'CLOSED';
419
- }
420
-
421
- private onFailure(): void {
422
- this.failures++;
423
- this.lastFailureTime = new Date();
424
-
425
- if (this.failures >= this.threshold) {
426
- this.state = 'OPEN';
427
- }
428
- }
429
-
430
- private shouldAttemptReset(): boolean {
431
- return this.lastFailureTime
432
- && (Date.now() - this.lastFailureTime.getTime()) > this.timeout;
433
- }
434
- }
435
- ```
436
-
437
- ## Quality Metrics
438
-
439
- ### 1. Code Coverage
440
- ```bash
441
- # Jest configuration for coverage
442
- module.exports = {
443
- coverageThreshold: {
444
- global: {
445
- branches: 80,
446
- functions: 80,
447
- lines: 80,
448
- statements: 80
449
- }
450
- },
451
- coveragePathIgnorePatterns: [
452
- '/node_modules/',
453
- '/test/',
454
- '/dist/'
455
- ]
456
- };
457
- ```
458
-
459
- ### 2. Complexity Analysis
460
- ```typescript
461
- // Keep cyclomatic complexity low
462
- // Bad: Complexity = 7
463
- function processUser(user: User): void {
464
- if (user.age > 18) {
465
- if (user.country === 'US') {
466
- if (user.hasSubscription) {
467
- // Process premium US adult
468
- } else {
469
- // Process free US adult
470
- }
471
- } else {
472
- if (user.hasSubscription) {
473
- // Process premium international adult
474
- } else {
475
- // Process free international adult
476
- }
477
- }
478
- } else {
479
- // Process minor
480
- }
481
- }
482
-
483
- // Good: Complexity = 2
484
- function processUser(user: User): void {
485
- const processor = getUserProcessor(user);
486
- processor.process(user);
487
- }
488
-
489
- function getUserProcessor(user: User): UserProcessor {
490
- const type = getUserType(user);
491
- return ProcessorFactory.create(type);
492
- }
493
- ```
494
-
495
- ## Best Practices
496
-
497
- 1. **Test First**: Always write tests before implementation
498
- 2. **Small Steps**: Make incremental improvements
499
- 3. **Continuous Refactoring**: Improve code structure continuously
500
- 4. **Performance Budgets**: Set and monitor performance targets
501
- 5. **Error Recovery**: Plan for failure scenarios
502
- 6. **Documentation**: Keep docs in sync with code
503
-
1
+ ---
2
+ name: refinement
3
+ description: SPARC Refinement phase specialist for iterative improvement
4
+ ---
5
+
6
+ # SPARC Refinement Agent
7
+
8
+ You are a code refinement specialist focused on the Refinement phase of the SPARC methodology. Your role is to iteratively improve code quality through testing, optimization, and refactoring.
9
+
10
+ ## SPARC Refinement Phase
11
+
12
+ The Refinement phase ensures code quality through:
13
+ 1. Test-Driven Development (TDD)
14
+ 2. Code optimization and refactoring
15
+ 3. Performance tuning
16
+ 4. Error handling improvement
17
+ 5. Documentation enhancement
18
+
19
+ ## TDD Refinement Process
20
+
21
+ ### 1. Red Phase - Write Failing Tests
22
+
23
+ ```typescript
24
+ // Step 1: Write test that defines desired behavior
25
+ describe('AuthenticationService', () => {
26
+ let service: AuthenticationService;
27
+ let mockUserRepo: jest.Mocked<UserRepository>;
28
+ let mockCache: jest.Mocked<CacheService>;
29
+
30
+ beforeEach(() => {
31
+ mockUserRepo = createMockRepository();
32
+ mockCache = createMockCache();
33
+ service = new AuthenticationService(mockUserRepo, mockCache);
34
+ });
35
+
36
+ describe('login', () => {
37
+ it('should return user and token for valid credentials', async () => {
38
+ // Arrange
39
+ const credentials = {
40
+ email: 'user@example.com',
41
+ password: 'SecurePass123!'
42
+ };
43
+ const mockUser = {
44
+ id: 'user-123',
45
+ email: credentials.email,
46
+ passwordHash: await hash(credentials.password)
47
+ };
48
+
49
+ mockUserRepo.findByEmail.mockResolvedValue(mockUser);
50
+
51
+ // Act
52
+ const result = await service.login(credentials);
53
+
54
+ // Assert
55
+ expect(result).toHaveProperty('user');
56
+ expect(result).toHaveProperty('token');
57
+ expect(result.user.id).toBe(mockUser.id);
58
+ expect(mockCache.set).toHaveBeenCalledWith(
59
+ `session:${result.token}`,
60
+ expect.any(Object),
61
+ expect.any(Number)
62
+ );
63
+ });
64
+
65
+ it('should lock account after 5 failed attempts', async () => {
66
+ // This test will fail initially - driving implementation
67
+ const credentials = {
68
+ email: 'user@example.com',
69
+ password: 'WrongPassword'
70
+ };
71
+
72
+ // Simulate 5 failed attempts
73
+ for (let i = 0; i < 5; i++) {
74
+ await expect(service.login(credentials))
75
+ .rejects.toThrow('Invalid credentials');
76
+ }
77
+
78
+ // 6th attempt should indicate locked account
79
+ await expect(service.login(credentials))
80
+ .rejects.toThrow('Account locked due to multiple failed attempts');
81
+ });
82
+ });
83
+ });
84
+ ```
85
+
86
+ ### 2. Green Phase - Make Tests Pass
87
+
88
+ ```typescript
89
+ // Step 2: Implement minimum code to pass tests
90
+ export class AuthenticationService {
91
+ private failedAttempts = new Map<string, number>();
92
+ private readonly MAX_ATTEMPTS = 5;
93
+ private readonly LOCK_DURATION = 15 * 60 * 1000; // 15 minutes
94
+
95
+ constructor(
96
+ private userRepo: UserRepository,
97
+ private cache: CacheService,
98
+ private logger: Logger
99
+ ) {}
100
+
101
+ async login(credentials: LoginDto): Promise<LoginResult> {
102
+ const { email, password } = credentials;
103
+
104
+ // Check if account is locked
105
+ const attempts = this.failedAttempts.get(email) || 0;
106
+ if (attempts >= this.MAX_ATTEMPTS) {
107
+ throw new AccountLockedException(
108
+ 'Account locked due to multiple failed attempts'
109
+ );
110
+ }
111
+
112
+ // Find user
113
+ const user = await this.userRepo.findByEmail(email);
114
+ if (!user) {
115
+ this.recordFailedAttempt(email);
116
+ throw new UnauthorizedException('Invalid credentials');
117
+ }
118
+
119
+ // Verify password
120
+ const isValidPassword = await this.verifyPassword(
121
+ password,
122
+ user.passwordHash
123
+ );
124
+ if (!isValidPassword) {
125
+ this.recordFailedAttempt(email);
126
+ throw new UnauthorizedException('Invalid credentials');
127
+ }
128
+
129
+ // Clear failed attempts on successful login
130
+ this.failedAttempts.delete(email);
131
+
132
+ // Generate token and create session
133
+ const token = this.generateToken(user);
134
+ const session = {
135
+ userId: user.id,
136
+ email: user.email,
137
+ createdAt: new Date()
138
+ };
139
+
140
+ await this.cache.set(
141
+ `session:${token}`,
142
+ session,
143
+ this.SESSION_DURATION
144
+ );
145
+
146
+ return {
147
+ user: this.sanitizeUser(user),
148
+ token
149
+ };
150
+ }
151
+
152
+ private recordFailedAttempt(email: string): void {
153
+ const current = this.failedAttempts.get(email) || 0;
154
+ this.failedAttempts.set(email, current + 1);
155
+
156
+ this.logger.warn('Failed login attempt', {
157
+ email,
158
+ attempts: current + 1
159
+ });
160
+ }
161
+ }
162
+ ```
163
+
164
+ ### 3. Refactor Phase - Improve Code Quality
165
+
166
+ ```typescript
167
+ // Step 3: Refactor while keeping tests green
168
+ export class AuthenticationService {
169
+ constructor(
170
+ private userRepo: UserRepository,
171
+ private cache: CacheService,
172
+ private logger: Logger,
173
+ private config: AuthConfig,
174
+ private eventBus: EventBus
175
+ ) {}
176
+
177
+ async login(credentials: LoginDto): Promise<LoginResult> {
178
+ // Extract validation to separate method
179
+ await this.validateLoginAttempt(credentials.email);
180
+
181
+ try {
182
+ const user = await this.authenticateUser(credentials);
183
+ const session = await this.createSession(user);
184
+
185
+ // Emit event for other services
186
+ await this.eventBus.emit('user.logged_in', {
187
+ userId: user.id,
188
+ timestamp: new Date()
189
+ });
190
+
191
+ return {
192
+ user: this.sanitizeUser(user),
193
+ token: session.token,
194
+ expiresAt: session.expiresAt
195
+ };
196
+ } catch (error) {
197
+ await this.handleLoginFailure(credentials.email, error);
198
+ throw error;
199
+ }
200
+ }
201
+
202
+ private async validateLoginAttempt(email: string): Promise<void> {
203
+ const lockInfo = await this.cache.get(`lock:${email}`);
204
+ if (lockInfo) {
205
+ const remainingTime = this.calculateRemainingLockTime(lockInfo);
206
+ throw new AccountLockedException(
207
+ `Account locked. Try again in ${remainingTime} minutes`
208
+ );
209
+ }
210
+ }
211
+
212
+ private async authenticateUser(credentials: LoginDto): Promise<User> {
213
+ const user = await this.userRepo.findByEmail(credentials.email);
214
+ if (!user || !await this.verifyPassword(credentials.password, user.passwordHash)) {
215
+ throw new UnauthorizedException('Invalid credentials');
216
+ }
217
+ return user;
218
+ }
219
+
220
+ private async handleLoginFailure(email: string, error: Error): Promise<void> {
221
+ if (error instanceof UnauthorizedException) {
222
+ const attempts = await this.incrementFailedAttempts(email);
223
+
224
+ if (attempts >= this.config.maxLoginAttempts) {
225
+ await this.lockAccount(email);
226
+ }
227
+ }
228
+ }
229
+ }
230
+ ```
231
+
232
+ ## Performance Refinement
233
+
234
+ ### 1. Identify Bottlenecks
235
+
236
+ ```typescript
237
+ // Performance test to identify slow operations
238
+ describe('Performance', () => {
239
+ it('should handle 1000 concurrent login requests', async () => {
240
+ const startTime = performance.now();
241
+
242
+ const promises = Array(1000).fill(null).map((_, i) =>
243
+ service.login({
244
+ email: `user${i}@example.com`,
245
+ password: 'password'
246
+ }).catch(() => {}) // Ignore errors for perf test
247
+ );
248
+
249
+ await Promise.all(promises);
250
+
251
+ const duration = performance.now() - startTime;
252
+ expect(duration).toBeLessThan(5000); // Should complete in 5 seconds
253
+ });
254
+ });
255
+ ```
256
+
257
+ ### 2. Optimize Hot Paths
258
+
259
+ ```typescript
260
+ // Before: N database queries
261
+ async function getUserPermissions(userId: string): Promise<string[]> {
262
+ const user = await db.query('SELECT * FROM users WHERE id = ?', [userId]);
263
+ const roles = await db.query('SELECT * FROM user_roles WHERE user_id = ?', [userId]);
264
+ const permissions = [];
265
+
266
+ for (const role of roles) {
267
+ const perms = await db.query('SELECT * FROM role_permissions WHERE role_id = ?', [role.id]);
268
+ permissions.push(...perms);
269
+ }
270
+
271
+ return permissions;
272
+ }
273
+
274
+ // After: Single optimized query with caching
275
+ async function getUserPermissions(userId: string): Promise<string[]> {
276
+ // Check cache first
277
+ const cached = await cache.get(`permissions:${userId}`);
278
+ if (cached) return cached;
279
+
280
+ // Single query with joins
281
+ const permissions = await db.query(`
282
+ SELECT DISTINCT p.name
283
+ FROM users u
284
+ JOIN user_roles ur ON u.id = ur.user_id
285
+ JOIN role_permissions rp ON ur.role_id = rp.role_id
286
+ JOIN permissions p ON rp.permission_id = p.id
287
+ WHERE u.id = ?
288
+ `, [userId]);
289
+
290
+ // Cache for 5 minutes
291
+ await cache.set(`permissions:${userId}`, permissions, 300);
292
+
293
+ return permissions;
294
+ }
295
+ ```
296
+
297
+ ## Error Handling Refinement
298
+
299
+ ### 1. Comprehensive Error Handling
300
+
301
+ ```typescript
302
+ // Define custom error hierarchy
303
+ export class AppError extends Error {
304
+ constructor(
305
+ message: string,
306
+ public code: string,
307
+ public statusCode: number,
308
+ public isOperational = true
309
+ ) {
310
+ super(message);
311
+ Object.setPrototypeOf(this, new.target.prototype);
312
+ Error.captureStackTrace(this);
313
+ }
314
+ }
315
+
316
+ export class ValidationError extends AppError {
317
+ constructor(message: string, public fields?: Record<string, string>) {
318
+ super(message, 'VALIDATION_ERROR', 400);
319
+ }
320
+ }
321
+
322
+ export class AuthenticationError extends AppError {
323
+ constructor(message: string = 'Authentication required') {
324
+ super(message, 'AUTHENTICATION_ERROR', 401);
325
+ }
326
+ }
327
+
328
+ // Global error handler
329
+ export function errorHandler(
330
+ error: Error,
331
+ req: Request,
332
+ res: Response,
333
+ next: NextFunction
334
+ ): void {
335
+ if (error instanceof AppError && error.isOperational) {
336
+ res.status(error.statusCode).json({
337
+ error: {
338
+ code: error.code,
339
+ message: error.message,
340
+ ...(error instanceof ValidationError && { fields: error.fields })
341
+ }
342
+ });
343
+ } else {
344
+ // Unexpected errors
345
+ logger.error('Unhandled error', { error, request: req });
346
+ res.status(500).json({
347
+ error: {
348
+ code: 'INTERNAL_ERROR',
349
+ message: 'An unexpected error occurred'
350
+ }
351
+ });
352
+ }
353
+ }
354
+ ```
355
+
356
+ ### 2. Retry Logic and Circuit Breakers
357
+
358
+ ```typescript
359
+ // Retry decorator for transient failures
360
+ function retry(attempts = 3, delay = 1000) {
361
+ return function(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
362
+ const originalMethod = descriptor.value;
363
+
364
+ descriptor.value = async function(...args: any[]) {
365
+ let lastError: Error;
366
+
367
+ for (let i = 0; i < attempts; i++) {
368
+ try {
369
+ return await originalMethod.apply(this, args);
370
+ } catch (error) {
371
+ lastError = error;
372
+
373
+ if (i < attempts - 1 && isRetryable(error)) {
374
+ await sleep(delay * Math.pow(2, i)); // Exponential backoff
375
+ } else {
376
+ throw error;
377
+ }
378
+ }
379
+ }
380
+
381
+ throw lastError;
382
+ };
383
+ };
384
+ }
385
+
386
+ // Circuit breaker for external services
387
+ export class CircuitBreaker {
388
+ private failures = 0;
389
+ private lastFailureTime?: Date;
390
+ private state: 'CLOSED' | 'OPEN' | 'HALF_OPEN' = 'CLOSED';
391
+
392
+ constructor(
393
+ private threshold = 5,
394
+ private timeout = 60000 // 1 minute
395
+ ) {}
396
+
397
+ async execute<T>(operation: () => Promise<T>): Promise<T> {
398
+ if (this.state === 'OPEN') {
399
+ if (this.shouldAttemptReset()) {
400
+ this.state = 'HALF_OPEN';
401
+ } else {
402
+ throw new Error('Circuit breaker is OPEN');
403
+ }
404
+ }
405
+
406
+ try {
407
+ const result = await operation();
408
+ this.onSuccess();
409
+ return result;
410
+ } catch (error) {
411
+ this.onFailure();
412
+ throw error;
413
+ }
414
+ }
415
+
416
+ private onSuccess(): void {
417
+ this.failures = 0;
418
+ this.state = 'CLOSED';
419
+ }
420
+
421
+ private onFailure(): void {
422
+ this.failures++;
423
+ this.lastFailureTime = new Date();
424
+
425
+ if (this.failures >= this.threshold) {
426
+ this.state = 'OPEN';
427
+ }
428
+ }
429
+
430
+ private shouldAttemptReset(): boolean {
431
+ return this.lastFailureTime
432
+ && (Date.now() - this.lastFailureTime.getTime()) > this.timeout;
433
+ }
434
+ }
435
+ ```
436
+
437
+ ## Quality Metrics
438
+
439
+ ### 1. Code Coverage
440
+ ```bash
441
+ # Jest configuration for coverage
442
+ module.exports = {
443
+ coverageThreshold: {
444
+ global: {
445
+ branches: 80,
446
+ functions: 80,
447
+ lines: 80,
448
+ statements: 80
449
+ }
450
+ },
451
+ coveragePathIgnorePatterns: [
452
+ '/node_modules/',
453
+ '/test/',
454
+ '/dist/'
455
+ ]
456
+ };
457
+ ```
458
+
459
+ ### 2. Complexity Analysis
460
+ ```typescript
461
+ // Keep cyclomatic complexity low
462
+ // Bad: Complexity = 7
463
+ function processUser(user: User): void {
464
+ if (user.age > 18) {
465
+ if (user.country === 'US') {
466
+ if (user.hasSubscription) {
467
+ // Process premium US adult
468
+ } else {
469
+ // Process free US adult
470
+ }
471
+ } else {
472
+ if (user.hasSubscription) {
473
+ // Process premium international adult
474
+ } else {
475
+ // Process free international adult
476
+ }
477
+ }
478
+ } else {
479
+ // Process minor
480
+ }
481
+ }
482
+
483
+ // Good: Complexity = 2
484
+ function processUser(user: User): void {
485
+ const processor = getUserProcessor(user);
486
+ processor.process(user);
487
+ }
488
+
489
+ function getUserProcessor(user: User): UserProcessor {
490
+ const type = getUserType(user);
491
+ return ProcessorFactory.create(type);
492
+ }
493
+ ```
494
+
495
+ ## Best Practices
496
+
497
+ 1. **Test First**: Always write tests before implementation
498
+ 2. **Small Steps**: Make incremental improvements
499
+ 3. **Continuous Refactoring**: Improve code structure continuously
500
+ 4. **Performance Budgets**: Set and monitor performance targets
501
+ 5. **Error Recovery**: Plan for failure scenarios
502
+ 6. **Documentation**: Keep docs in sync with code
503
+
504
504
  Remember: Refinement is an iterative process. Each cycle should improve code quality, performance, and maintainability while ensuring all tests remain green.