moflo 4.8.16 → 4.8.19

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 (468) hide show
  1. package/.claude/agents/browser/browser-agent.yaml +182 -182
  2. package/.claude/agents/core/coder.md +265 -265
  3. package/.claude/agents/core/planner.md +167 -167
  4. package/.claude/agents/core/researcher.md +189 -189
  5. package/.claude/agents/core/reviewer.md +325 -325
  6. package/.claude/agents/core/tester.md +318 -318
  7. package/.claude/agents/database-specialist.yaml +21 -21
  8. package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
  9. package/.claude/agents/dual-mode/codex-worker.md +211 -211
  10. package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
  11. package/.claude/agents/github/code-review-swarm.md +537 -537
  12. package/.claude/agents/github/github-modes.md +172 -172
  13. package/.claude/agents/github/issue-tracker.md +318 -318
  14. package/.claude/agents/github/multi-repo-swarm.md +552 -552
  15. package/.claude/agents/github/pr-manager.md +190 -190
  16. package/.claude/agents/github/project-board-sync.md +508 -508
  17. package/.claude/agents/github/release-manager.md +366 -366
  18. package/.claude/agents/github/release-swarm.md +582 -582
  19. package/.claude/agents/github/repo-architect.md +397 -397
  20. package/.claude/agents/github/swarm-issue.md +572 -572
  21. package/.claude/agents/github/swarm-pr.md +427 -427
  22. package/.claude/agents/github/sync-coordinator.md +451 -451
  23. package/.claude/agents/github/workflow-automation.md +634 -634
  24. package/.claude/agents/goal/code-goal-planner.md +445 -445
  25. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
  26. package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
  27. package/.claude/agents/hive-mind/scout-explorer.md +241 -241
  28. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
  29. package/.claude/agents/hive-mind/worker-specialist.md +216 -216
  30. package/.claude/agents/index.yaml +17 -17
  31. package/.claude/agents/neural/safla-neural.md +73 -73
  32. package/.claude/agents/project-coordinator.yaml +15 -15
  33. package/.claude/agents/python-specialist.yaml +21 -21
  34. package/.claude/agents/reasoning/goal-planner.md +72 -72
  35. package/.claude/agents/security-auditor.yaml +20 -20
  36. package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
  37. package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
  38. package/.claude/agents/swarm/mesh-coordinator.md +391 -391
  39. package/.claude/agents/templates/migration-plan.md +745 -745
  40. package/.claude/agents/typescript-specialist.yaml +21 -21
  41. package/.claude/checkpoints/1767754460.json +8 -8
  42. package/.claude/commands/agents/agent-spawning.md +28 -28
  43. package/.claude/commands/github/github-modes.md +146 -146
  44. package/.claude/commands/github/github-swarm.md +121 -121
  45. package/.claude/commands/github/issue-tracker.md +291 -291
  46. package/.claude/commands/github/pr-manager.md +169 -169
  47. package/.claude/commands/github/release-manager.md +337 -337
  48. package/.claude/commands/github/repo-architect.md +366 -366
  49. package/.claude/commands/github/sync-coordinator.md +300 -300
  50. package/.claude/commands/memory/neural.md +47 -47
  51. package/.claude/commands/sparc/analyzer.md +51 -51
  52. package/.claude/commands/sparc/architect.md +53 -53
  53. package/.claude/commands/sparc/ask.md +97 -97
  54. package/.claude/commands/sparc/batch-executor.md +54 -54
  55. package/.claude/commands/sparc/code.md +89 -89
  56. package/.claude/commands/sparc/coder.md +54 -54
  57. package/.claude/commands/sparc/debug.md +83 -83
  58. package/.claude/commands/sparc/debugger.md +54 -54
  59. package/.claude/commands/sparc/designer.md +53 -53
  60. package/.claude/commands/sparc/devops.md +109 -109
  61. package/.claude/commands/sparc/docs-writer.md +80 -80
  62. package/.claude/commands/sparc/documenter.md +54 -54
  63. package/.claude/commands/sparc/innovator.md +54 -54
  64. package/.claude/commands/sparc/integration.md +83 -83
  65. package/.claude/commands/sparc/mcp.md +117 -117
  66. package/.claude/commands/sparc/memory-manager.md +54 -54
  67. package/.claude/commands/sparc/optimizer.md +54 -54
  68. package/.claude/commands/sparc/orchestrator.md +131 -131
  69. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
  70. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
  71. package/.claude/commands/sparc/researcher.md +54 -54
  72. package/.claude/commands/sparc/reviewer.md +54 -54
  73. package/.claude/commands/sparc/security-review.md +80 -80
  74. package/.claude/commands/sparc/sparc-modes.md +174 -174
  75. package/.claude/commands/sparc/sparc.md +111 -111
  76. package/.claude/commands/sparc/spec-pseudocode.md +80 -80
  77. package/.claude/commands/sparc/supabase-admin.md +348 -348
  78. package/.claude/commands/sparc/swarm-coordinator.md +54 -54
  79. package/.claude/commands/sparc/tdd.md +54 -54
  80. package/.claude/commands/sparc/tester.md +54 -54
  81. package/.claude/commands/sparc/tutorial.md +79 -79
  82. package/.claude/commands/sparc/workflow-manager.md +54 -54
  83. package/.claude/commands/sparc.md +166 -166
  84. package/.claude/commands/swarm/analysis.md +95 -95
  85. package/.claude/commands/swarm/development.md +96 -96
  86. package/.claude/commands/swarm/examples.md +168 -168
  87. package/.claude/commands/swarm/maintenance.md +102 -102
  88. package/.claude/commands/swarm/optimization.md +117 -117
  89. package/.claude/commands/swarm/research.md +136 -136
  90. package/.claude/commands/swarm/testing.md +131 -131
  91. package/.claude/commands/workflows/development.md +77 -77
  92. package/.claude/commands/workflows/research.md +62 -62
  93. package/.claude/guidance/moflo-bootstrap.md +126 -126
  94. package/.claude/guidance/shipped/agent-bootstrap.md +126 -126
  95. package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
  96. package/.claude/guidance/shipped/memory-strategy.md +204 -204
  97. package/.claude/guidance/shipped/moflo.md +608 -608
  98. package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
  99. package/.claude/helpers/intelligence.cjs +207 -207
  100. package/.claude/helpers/statusline.cjs +851 -851
  101. package/.claude/skills/fl/SKILL.md +583 -583
  102. package/.claude/skills/flo/SKILL.md +583 -583
  103. package/.claude/skills/github-code-review/SKILL.md +1140 -1140
  104. package/.claude/skills/github-multi-repo/SKILL.md +874 -874
  105. package/.claude/skills/github-project-management/SKILL.md +1277 -1277
  106. package/.claude/skills/github-release-management/SKILL.md +1081 -1081
  107. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
  108. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
  109. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  110. package/.claude/skills/performance-analysis/SKILL.md +563 -563
  111. package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
  112. package/.claude/skills/swarm-advanced/SKILL.md +973 -973
  113. package/LICENSE +21 -21
  114. package/README.md +685 -685
  115. package/bin/cli.js +0 -0
  116. package/bin/gate-hook.mjs +50 -50
  117. package/bin/gate.cjs +138 -138
  118. package/bin/generate-code-map.mjs +91 -12
  119. package/bin/hook-handler.cjs +83 -83
  120. package/bin/hooks.mjs +656 -656
  121. package/bin/index-guidance.mjs +892 -892
  122. package/bin/index-tests.mjs +709 -709
  123. package/bin/lib/process-manager.mjs +243 -243
  124. package/bin/lib/registry-cleanup.cjs +41 -41
  125. package/bin/prompt-hook.mjs +72 -72
  126. package/bin/semantic-search.mjs +472 -472
  127. package/bin/session-start-launcher.mjs +238 -226
  128. package/bin/setup-project.mjs +250 -250
  129. package/package.json +123 -121
  130. package/src/@claude-flow/cli/README.md +452 -452
  131. package/src/@claude-flow/cli/bin/cli.js +180 -175
  132. package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
  133. package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  134. package/src/@claude-flow/cli/dist/src/commands/doctor.js +1091 -1091
  135. package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
  136. package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
  137. package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
  138. package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
  139. package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  140. package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  141. package/src/@claude-flow/cli/dist/src/config/moflo-config.js +91 -91
  142. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
  143. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
  144. package/src/@claude-flow/cli/dist/src/init/executor.js +485 -453
  145. package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
  146. package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
  147. package/src/@claude-flow/cli/dist/src/init/moflo-init.js +848 -839
  148. package/src/@claude-flow/cli/dist/src/init/settings-generator.js +6 -2
  149. package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +786 -786
  150. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
  151. package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  152. package/src/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +6 -0
  153. package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  154. package/src/@claude-flow/cli/package.json +1 -1
  155. package/src/@claude-flow/guidance/README.md +1195 -1195
  156. package/src/@claude-flow/guidance/dist/adversarial.d.ts +284 -0
  157. package/src/@claude-flow/guidance/dist/adversarial.js +572 -0
  158. package/src/@claude-flow/guidance/dist/analyzer.d.ts +530 -0
  159. package/src/@claude-flow/guidance/dist/analyzer.js +2518 -0
  160. package/src/@claude-flow/guidance/dist/artifacts.d.ts +283 -0
  161. package/src/@claude-flow/guidance/dist/artifacts.js +356 -0
  162. package/src/@claude-flow/guidance/dist/authority.d.ts +290 -0
  163. package/src/@claude-flow/guidance/dist/authority.js +558 -0
  164. package/src/@claude-flow/guidance/dist/capabilities.d.ts +209 -0
  165. package/src/@claude-flow/guidance/dist/capabilities.js +485 -0
  166. package/src/@claude-flow/guidance/dist/coherence.d.ts +233 -0
  167. package/src/@claude-flow/guidance/dist/coherence.js +372 -0
  168. package/src/@claude-flow/guidance/dist/compiler.d.ts +87 -0
  169. package/src/@claude-flow/guidance/dist/compiler.js +419 -0
  170. package/src/@claude-flow/guidance/dist/conformance-kit.d.ts +225 -0
  171. package/src/@claude-flow/guidance/dist/conformance-kit.js +629 -0
  172. package/src/@claude-flow/guidance/dist/continue-gate.d.ts +214 -0
  173. package/src/@claude-flow/guidance/dist/continue-gate.js +353 -0
  174. package/src/@claude-flow/guidance/dist/crypto-utils.d.ts +17 -0
  175. package/src/@claude-flow/guidance/dist/crypto-utils.js +24 -0
  176. package/src/@claude-flow/guidance/dist/evolution.d.ts +282 -0
  177. package/src/@claude-flow/guidance/dist/evolution.js +500 -0
  178. package/src/@claude-flow/guidance/dist/gates.d.ts +79 -0
  179. package/src/@claude-flow/guidance/dist/gates.js +302 -0
  180. package/src/@claude-flow/guidance/dist/gateway.d.ts +206 -0
  181. package/src/@claude-flow/guidance/dist/gateway.js +452 -0
  182. package/src/@claude-flow/guidance/dist/generators.d.ts +153 -0
  183. package/src/@claude-flow/guidance/dist/generators.js +682 -0
  184. package/src/@claude-flow/guidance/dist/headless.d.ts +177 -0
  185. package/src/@claude-flow/guidance/dist/headless.js +342 -0
  186. package/src/@claude-flow/guidance/dist/hooks.d.ts +109 -0
  187. package/src/@claude-flow/guidance/dist/hooks.js +347 -0
  188. package/src/@claude-flow/guidance/dist/index.d.ts +205 -0
  189. package/src/@claude-flow/guidance/dist/index.js +321 -0
  190. package/src/@claude-flow/guidance/dist/ledger.d.ts +162 -0
  191. package/src/@claude-flow/guidance/dist/ledger.js +375 -0
  192. package/src/@claude-flow/guidance/dist/manifest-validator.d.ts +289 -0
  193. package/src/@claude-flow/guidance/dist/manifest-validator.js +838 -0
  194. package/src/@claude-flow/guidance/dist/memory-gate.d.ts +222 -0
  195. package/src/@claude-flow/guidance/dist/memory-gate.js +382 -0
  196. package/src/@claude-flow/guidance/dist/meta-governance.d.ts +265 -0
  197. package/src/@claude-flow/guidance/dist/meta-governance.js +348 -0
  198. package/src/@claude-flow/guidance/dist/optimizer.d.ts +104 -0
  199. package/src/@claude-flow/guidance/dist/optimizer.js +329 -0
  200. package/src/@claude-flow/guidance/dist/persistence.d.ts +189 -0
  201. package/src/@claude-flow/guidance/dist/persistence.js +464 -0
  202. package/src/@claude-flow/guidance/dist/proof.d.ts +185 -0
  203. package/src/@claude-flow/guidance/dist/proof.js +238 -0
  204. package/src/@claude-flow/guidance/dist/retriever.d.ts +116 -0
  205. package/src/@claude-flow/guidance/dist/retriever.js +394 -0
  206. package/src/@claude-flow/guidance/dist/ruvbot-integration.d.ts +370 -0
  207. package/src/@claude-flow/guidance/dist/ruvbot-integration.js +738 -0
  208. package/src/@claude-flow/guidance/dist/temporal.d.ts +426 -0
  209. package/src/@claude-flow/guidance/dist/temporal.js +658 -0
  210. package/src/@claude-flow/guidance/dist/trust.d.ts +283 -0
  211. package/src/@claude-flow/guidance/dist/trust.js +473 -0
  212. package/src/@claude-flow/guidance/dist/truth-anchors.d.ts +276 -0
  213. package/src/@claude-flow/guidance/dist/truth-anchors.js +488 -0
  214. package/src/@claude-flow/guidance/dist/types.d.ts +378 -0
  215. package/src/@claude-flow/guidance/dist/types.js +10 -0
  216. package/src/@claude-flow/guidance/dist/uncertainty.d.ts +372 -0
  217. package/src/@claude-flow/guidance/dist/uncertainty.js +619 -0
  218. package/src/@claude-flow/guidance/dist/wasm-kernel.d.ts +48 -0
  219. package/src/@claude-flow/guidance/dist/wasm-kernel.js +158 -0
  220. package/src/@claude-flow/guidance/package.json +198 -198
  221. package/src/@claude-flow/memory/README.md +587 -587
  222. package/src/@claude-flow/memory/package.json +44 -44
  223. package/src/@claude-flow/shared/README.md +323 -323
  224. package/src/README.md +493 -493
  225. package/.claude/settings.local.json +0 -18
  226. package/.claude/workflow-state.json +0 -9
  227. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  228. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +0 -584
  229. package/src/@claude-flow/memory/dist/agent-memory-scope.d.ts +0 -131
  230. package/src/@claude-flow/memory/dist/agent-memory-scope.js +0 -223
  231. package/src/@claude-flow/memory/dist/agent-memory-scope.test.d.ts +0 -8
  232. package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +0 -463
  233. package/src/@claude-flow/memory/dist/agentdb-adapter.d.ts +0 -165
  234. package/src/@claude-flow/memory/dist/agentdb-adapter.js +0 -806
  235. package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +0 -214
  236. package/src/@claude-flow/memory/dist/agentdb-backend.js +0 -844
  237. package/src/@claude-flow/memory/dist/agentdb-backend.test.d.ts +0 -7
  238. package/src/@claude-flow/memory/dist/agentdb-backend.test.js +0 -258
  239. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.d.ts +0 -65
  240. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.js +0 -129
  241. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.d.ts +0 -48
  242. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.js +0 -72
  243. package/src/@claude-flow/memory/dist/application/index.d.ts +0 -12
  244. package/src/@claude-flow/memory/dist/application/index.js +0 -15
  245. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.d.ts +0 -72
  246. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.js +0 -143
  247. package/src/@claude-flow/memory/dist/application/services/memory-application-service.d.ts +0 -121
  248. package/src/@claude-flow/memory/dist/application/services/memory-application-service.js +0 -190
  249. package/src/@claude-flow/memory/dist/auto-memory-bridge.d.ts +0 -226
  250. package/src/@claude-flow/memory/dist/auto-memory-bridge.js +0 -709
  251. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.d.ts +0 -8
  252. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +0 -754
  253. package/src/@claude-flow/memory/dist/benchmark.test.d.ts +0 -2
  254. package/src/@claude-flow/memory/dist/benchmark.test.js +0 -277
  255. package/src/@claude-flow/memory/dist/cache-manager.d.ts +0 -134
  256. package/src/@claude-flow/memory/dist/cache-manager.js +0 -407
  257. package/src/@claude-flow/memory/dist/controller-registry.d.ts +0 -216
  258. package/src/@claude-flow/memory/dist/controller-registry.js +0 -893
  259. package/src/@claude-flow/memory/dist/controller-registry.test.d.ts +0 -14
  260. package/src/@claude-flow/memory/dist/controller-registry.test.js +0 -636
  261. package/src/@claude-flow/memory/dist/database-provider.d.ts +0 -87
  262. package/src/@claude-flow/memory/dist/database-provider.js +0 -375
  263. package/src/@claude-flow/memory/dist/database-provider.test.d.ts +0 -7
  264. package/src/@claude-flow/memory/dist/database-provider.test.js +0 -285
  265. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.d.ts +0 -143
  266. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.js +0 -226
  267. package/src/@claude-flow/memory/dist/domain/index.d.ts +0 -11
  268. package/src/@claude-flow/memory/dist/domain/index.js +0 -12
  269. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.d.ts +0 -102
  270. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.js +0 -11
  271. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.d.ts +0 -105
  272. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.js +0 -297
  273. package/src/@claude-flow/memory/dist/hnsw-index.d.ts +0 -111
  274. package/src/@claude-flow/memory/dist/hnsw-index.js +0 -781
  275. package/src/@claude-flow/memory/dist/hnsw-lite.d.ts +0 -23
  276. package/src/@claude-flow/memory/dist/hnsw-lite.js +0 -168
  277. package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +0 -245
  278. package/src/@claude-flow/memory/dist/hybrid-backend.js +0 -569
  279. package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +0 -8
  280. package/src/@claude-flow/memory/dist/hybrid-backend.test.js +0 -320
  281. package/src/@claude-flow/memory/dist/index.d.ts +0 -207
  282. package/src/@claude-flow/memory/dist/index.js +0 -361
  283. package/src/@claude-flow/memory/dist/infrastructure/index.d.ts +0 -17
  284. package/src/@claude-flow/memory/dist/infrastructure/index.js +0 -16
  285. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.d.ts +0 -66
  286. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.js +0 -409
  287. package/src/@claude-flow/memory/dist/learning-bridge.d.ts +0 -137
  288. package/src/@claude-flow/memory/dist/learning-bridge.js +0 -335
  289. package/src/@claude-flow/memory/dist/learning-bridge.test.d.ts +0 -8
  290. package/src/@claude-flow/memory/dist/learning-bridge.test.js +0 -578
  291. package/src/@claude-flow/memory/dist/memory-graph.d.ts +0 -100
  292. package/src/@claude-flow/memory/dist/memory-graph.js +0 -333
  293. package/src/@claude-flow/memory/dist/memory-graph.test.d.ts +0 -8
  294. package/src/@claude-flow/memory/dist/memory-graph.test.js +0 -609
  295. package/src/@claude-flow/memory/dist/migration.d.ts +0 -68
  296. package/src/@claude-flow/memory/dist/migration.js +0 -513
  297. package/src/@claude-flow/memory/dist/persistent-sona.d.ts +0 -144
  298. package/src/@claude-flow/memory/dist/persistent-sona.js +0 -332
  299. package/src/@claude-flow/memory/dist/query-builder.d.ts +0 -211
  300. package/src/@claude-flow/memory/dist/query-builder.js +0 -438
  301. package/src/@claude-flow/memory/dist/rvf-backend.d.ts +0 -51
  302. package/src/@claude-flow/memory/dist/rvf-backend.js +0 -481
  303. package/src/@claude-flow/memory/dist/rvf-learning-store.d.ts +0 -139
  304. package/src/@claude-flow/memory/dist/rvf-learning-store.js +0 -295
  305. package/src/@claude-flow/memory/dist/rvf-migration.d.ts +0 -45
  306. package/src/@claude-flow/memory/dist/rvf-migration.js +0 -234
  307. package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +0 -121
  308. package/src/@claude-flow/memory/dist/sqlite-backend.js +0 -572
  309. package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +0 -128
  310. package/src/@claude-flow/memory/dist/sqljs-backend.js +0 -601
  311. package/src/@claude-flow/memory/dist/types.d.ts +0 -484
  312. package/src/@claude-flow/memory/dist/types.js +0 -58
  313. package/src/@claude-flow/shared/dist/core/config/defaults.d.ts +0 -41
  314. package/src/@claude-flow/shared/dist/core/config/defaults.js +0 -186
  315. package/src/@claude-flow/shared/dist/core/config/index.d.ts +0 -8
  316. package/src/@claude-flow/shared/dist/core/config/index.js +0 -12
  317. package/src/@claude-flow/shared/dist/core/config/loader.d.ts +0 -45
  318. package/src/@claude-flow/shared/dist/core/config/loader.js +0 -222
  319. package/src/@claude-flow/shared/dist/core/config/schema.d.ts +0 -1134
  320. package/src/@claude-flow/shared/dist/core/config/schema.js +0 -158
  321. package/src/@claude-flow/shared/dist/core/config/validator.d.ts +0 -92
  322. package/src/@claude-flow/shared/dist/core/config/validator.js +0 -147
  323. package/src/@claude-flow/shared/dist/core/event-bus.d.ts +0 -31
  324. package/src/@claude-flow/shared/dist/core/event-bus.js +0 -197
  325. package/src/@claude-flow/shared/dist/core/index.d.ts +0 -15
  326. package/src/@claude-flow/shared/dist/core/index.js +0 -19
  327. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.d.ts +0 -200
  328. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.js +0 -6
  329. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.d.ts +0 -310
  330. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.js +0 -7
  331. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.d.ts +0 -224
  332. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.js +0 -46
  333. package/src/@claude-flow/shared/dist/core/interfaces/index.d.ts +0 -10
  334. package/src/@claude-flow/shared/dist/core/interfaces/index.js +0 -15
  335. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.d.ts +0 -298
  336. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.js +0 -7
  337. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.d.ts +0 -185
  338. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.js +0 -6
  339. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.d.ts +0 -35
  340. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.js +0 -101
  341. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.d.ts +0 -60
  342. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.js +0 -166
  343. package/src/@claude-flow/shared/dist/core/orchestrator/index.d.ts +0 -46
  344. package/src/@claude-flow/shared/dist/core/orchestrator/index.js +0 -64
  345. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.d.ts +0 -56
  346. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.js +0 -195
  347. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.d.ts +0 -83
  348. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.js +0 -193
  349. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.d.ts +0 -49
  350. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.js +0 -253
  351. package/src/@claude-flow/shared/dist/events/domain-events.d.ts +0 -282
  352. package/src/@claude-flow/shared/dist/events/domain-events.js +0 -165
  353. package/src/@claude-flow/shared/dist/events/event-store.d.ts +0 -126
  354. package/src/@claude-flow/shared/dist/events/event-store.js +0 -416
  355. package/src/@claude-flow/shared/dist/events/event-store.test.d.ts +0 -8
  356. package/src/@claude-flow/shared/dist/events/event-store.test.js +0 -293
  357. package/src/@claude-flow/shared/dist/events/example-usage.d.ts +0 -10
  358. package/src/@claude-flow/shared/dist/events/example-usage.js +0 -193
  359. package/src/@claude-flow/shared/dist/events/index.d.ts +0 -21
  360. package/src/@claude-flow/shared/dist/events/index.js +0 -22
  361. package/src/@claude-flow/shared/dist/events/projections.d.ts +0 -177
  362. package/src/@claude-flow/shared/dist/events/projections.js +0 -421
  363. package/src/@claude-flow/shared/dist/events/rvf-event-log.d.ts +0 -82
  364. package/src/@claude-flow/shared/dist/events/rvf-event-log.js +0 -340
  365. package/src/@claude-flow/shared/dist/events/state-reconstructor.d.ts +0 -101
  366. package/src/@claude-flow/shared/dist/events/state-reconstructor.js +0 -263
  367. package/src/@claude-flow/shared/dist/events.d.ts +0 -80
  368. package/src/@claude-flow/shared/dist/events.js +0 -249
  369. package/src/@claude-flow/shared/dist/hooks/example-usage.d.ts +0 -42
  370. package/src/@claude-flow/shared/dist/hooks/example-usage.js +0 -351
  371. package/src/@claude-flow/shared/dist/hooks/executor.d.ts +0 -100
  372. package/src/@claude-flow/shared/dist/hooks/executor.js +0 -264
  373. package/src/@claude-flow/shared/dist/hooks/hooks.test.d.ts +0 -9
  374. package/src/@claude-flow/shared/dist/hooks/hooks.test.js +0 -322
  375. package/src/@claude-flow/shared/dist/hooks/index.d.ts +0 -52
  376. package/src/@claude-flow/shared/dist/hooks/index.js +0 -51
  377. package/src/@claude-flow/shared/dist/hooks/registry.d.ts +0 -133
  378. package/src/@claude-flow/shared/dist/hooks/registry.js +0 -277
  379. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.d.ts +0 -105
  380. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.js +0 -481
  381. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.d.ts +0 -144
  382. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +0 -328
  383. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.d.ts +0 -158
  384. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +0 -450
  385. package/src/@claude-flow/shared/dist/hooks/safety/index.d.ts +0 -17
  386. package/src/@claude-flow/shared/dist/hooks/safety/index.js +0 -17
  387. package/src/@claude-flow/shared/dist/hooks/session-hooks.d.ts +0 -234
  388. package/src/@claude-flow/shared/dist/hooks/session-hooks.js +0 -334
  389. package/src/@claude-flow/shared/dist/hooks/task-hooks.d.ts +0 -163
  390. package/src/@claude-flow/shared/dist/hooks/task-hooks.js +0 -326
  391. package/src/@claude-flow/shared/dist/hooks/types.d.ts +0 -267
  392. package/src/@claude-flow/shared/dist/hooks/types.js +0 -62
  393. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.d.ts +0 -9
  394. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +0 -93
  395. package/src/@claude-flow/shared/dist/index.d.ts +0 -20
  396. package/src/@claude-flow/shared/dist/index.js +0 -50
  397. package/src/@claude-flow/shared/dist/mcp/connection-pool.d.ts +0 -98
  398. package/src/@claude-flow/shared/dist/mcp/connection-pool.js +0 -364
  399. package/src/@claude-flow/shared/dist/mcp/index.d.ts +0 -69
  400. package/src/@claude-flow/shared/dist/mcp/index.js +0 -84
  401. package/src/@claude-flow/shared/dist/mcp/server.d.ts +0 -166
  402. package/src/@claude-flow/shared/dist/mcp/server.js +0 -593
  403. package/src/@claude-flow/shared/dist/mcp/session-manager.d.ts +0 -136
  404. package/src/@claude-flow/shared/dist/mcp/session-manager.js +0 -335
  405. package/src/@claude-flow/shared/dist/mcp/tool-registry.d.ts +0 -178
  406. package/src/@claude-flow/shared/dist/mcp/tool-registry.js +0 -439
  407. package/src/@claude-flow/shared/dist/mcp/transport/http.d.ts +0 -104
  408. package/src/@claude-flow/shared/dist/mcp/transport/http.js +0 -476
  409. package/src/@claude-flow/shared/dist/mcp/transport/index.d.ts +0 -102
  410. package/src/@claude-flow/shared/dist/mcp/transport/index.js +0 -238
  411. package/src/@claude-flow/shared/dist/mcp/transport/stdio.d.ts +0 -104
  412. package/src/@claude-flow/shared/dist/mcp/transport/stdio.js +0 -263
  413. package/src/@claude-flow/shared/dist/mcp/transport/websocket.d.ts +0 -133
  414. package/src/@claude-flow/shared/dist/mcp/transport/websocket.js +0 -396
  415. package/src/@claude-flow/shared/dist/mcp/types.d.ts +0 -438
  416. package/src/@claude-flow/shared/dist/mcp/types.js +0 -54
  417. package/src/@claude-flow/shared/dist/plugin-interface.d.ts +0 -544
  418. package/src/@claude-flow/shared/dist/plugin-interface.js +0 -23
  419. package/src/@claude-flow/shared/dist/plugin-loader.d.ts +0 -139
  420. package/src/@claude-flow/shared/dist/plugin-loader.js +0 -434
  421. package/src/@claude-flow/shared/dist/plugin-registry.d.ts +0 -183
  422. package/src/@claude-flow/shared/dist/plugin-registry.js +0 -457
  423. package/src/@claude-flow/shared/dist/plugins/index.d.ts +0 -10
  424. package/src/@claude-flow/shared/dist/plugins/index.js +0 -10
  425. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.d.ts +0 -106
  426. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.js +0 -241
  427. package/src/@claude-flow/shared/dist/plugins/official/index.d.ts +0 -10
  428. package/src/@claude-flow/shared/dist/plugins/official/index.js +0 -10
  429. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.d.ts +0 -121
  430. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.js +0 -355
  431. package/src/@claude-flow/shared/dist/plugins/types.d.ts +0 -93
  432. package/src/@claude-flow/shared/dist/plugins/types.js +0 -9
  433. package/src/@claude-flow/shared/dist/resilience/bulkhead.d.ts +0 -105
  434. package/src/@claude-flow/shared/dist/resilience/bulkhead.js +0 -206
  435. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.d.ts +0 -132
  436. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.js +0 -233
  437. package/src/@claude-flow/shared/dist/resilience/index.d.ts +0 -19
  438. package/src/@claude-flow/shared/dist/resilience/index.js +0 -19
  439. package/src/@claude-flow/shared/dist/resilience/rate-limiter.d.ts +0 -168
  440. package/src/@claude-flow/shared/dist/resilience/rate-limiter.js +0 -314
  441. package/src/@claude-flow/shared/dist/resilience/retry.d.ts +0 -91
  442. package/src/@claude-flow/shared/dist/resilience/retry.js +0 -159
  443. package/src/@claude-flow/shared/dist/security/index.d.ts +0 -10
  444. package/src/@claude-flow/shared/dist/security/index.js +0 -12
  445. package/src/@claude-flow/shared/dist/security/input-validation.d.ts +0 -73
  446. package/src/@claude-flow/shared/dist/security/input-validation.js +0 -201
  447. package/src/@claude-flow/shared/dist/security/secure-random.d.ts +0 -92
  448. package/src/@claude-flow/shared/dist/security/secure-random.js +0 -142
  449. package/src/@claude-flow/shared/dist/services/index.d.ts +0 -7
  450. package/src/@claude-flow/shared/dist/services/index.js +0 -7
  451. package/src/@claude-flow/shared/dist/services/v3-progress.service.d.ts +0 -124
  452. package/src/@claude-flow/shared/dist/services/v3-progress.service.js +0 -402
  453. package/src/@claude-flow/shared/dist/types/agent.types.d.ts +0 -137
  454. package/src/@claude-flow/shared/dist/types/agent.types.js +0 -6
  455. package/src/@claude-flow/shared/dist/types/index.d.ts +0 -11
  456. package/src/@claude-flow/shared/dist/types/index.js +0 -17
  457. package/src/@claude-flow/shared/dist/types/mcp.types.d.ts +0 -266
  458. package/src/@claude-flow/shared/dist/types/mcp.types.js +0 -7
  459. package/src/@claude-flow/shared/dist/types/memory.types.d.ts +0 -236
  460. package/src/@claude-flow/shared/dist/types/memory.types.js +0 -7
  461. package/src/@claude-flow/shared/dist/types/swarm.types.d.ts +0 -186
  462. package/src/@claude-flow/shared/dist/types/swarm.types.js +0 -65
  463. package/src/@claude-flow/shared/dist/types/task.types.d.ts +0 -178
  464. package/src/@claude-flow/shared/dist/types/task.types.js +0 -32
  465. package/src/@claude-flow/shared/dist/types.d.ts +0 -197
  466. package/src/@claude-flow/shared/dist/types.js +0 -21
  467. package/src/@claude-flow/shared/dist/utils/secure-logger.d.ts +0 -69
  468. package/src/@claude-flow/shared/dist/utils/secure-logger.js +0 -208
@@ -1,452 +1,452 @@
1
- <p align="center">
2
- <img src="https://raw.githubusercontent.com/eric-cielo/moflo/main/docs/Moflo_md.png?v=6" alt="MoFlo" />
3
- </p>
4
-
5
- # MoFlo
6
-
7
- **An opinionated fork of [Ruflo/Claude Flow](https://github.com/ruvnet/ruflo), optimized for local development.**
8
-
9
- MoFlo adds automatic code and guidance cataloging along with memory gating on top of the original Ruflo/Claude Flow orchestration engine. Where the upstream project provides raw building blocks, MoFlo ships opinionated defaults — workflow gates that enforce memory-first patterns, semantic indexing that runs at session start, and learned routing that improves over time — so you get a productive setup from `flo init` without manual tuning.
10
-
11
- Install it as a dev dependency and run `flo init`.
12
-
13
- ## Opinionated Defaults
14
-
15
- MoFlo makes deliberate choices so you don't have to:
16
-
17
- - **Fully self-contained** — No external services, no cloud dependencies, no API keys. Everything runs locally on your machine.
18
- - **Node.js runtime** — Targets Node.js specifically. All scripts, hooks, and tooling are JavaScript/TypeScript. No Python, no Rust binaries, no native compilation.
19
- - **sql.js (WASM)** — The memory database uses sql.js, a pure WebAssembly build of SQLite. No native `better-sqlite3` bindings to compile, no platform-specific build steps. Works identically on Windows, macOS, and Linux.
20
- - **Simplified embeddings pipeline** — 384-dimensional neural embeddings via Transformers.js (MiniLM-L6-v2, WASM). Same model and precision as the upstream multi-provider pipeline, but simpler — two scripts instead of an abstraction layer. Runs locally, no API calls.
21
- - **Full learning stack wired up OOTB** — The following are all configured and functional from `flo init`, no manual setup:
22
- - **SONA** (Self-Optimizing Neural Architecture) — learns from task trajectories via `@ruvector/sona` (Rust/NAPI)
23
- - **MicroLoRA** — rank-2 LoRA weight adaptations at ~1µs per adapt via `@ruvector/learning-wasm` (WASM)
24
- - **EWC++** (Elastic Weight Consolidation) — prevents catastrophic forgetting across sessions
25
- - **HNSW Vector Search** — fast nearest-neighbor search via `@ruvector/core` VectorDb
26
- - **Semantic Routing** — maps tasks to agents via `@ruvector/router` SemanticRouter
27
- - **Trajectory Persistence** — outcomes stored in `routing-outcomes.json`, survive across sessions
28
- - All WASM/NAPI-based, no GPU, no API keys, no external services.
29
- - **Memory-first workflow** — Claude must search what it already knows before exploring files. Enforced by hooks, not just instructions.
30
- - **Task registration before agents** — Sub-agents can't spawn until work is tracked. Prevents runaway agent proliferation.
31
- - **Learned routing** — Task outcomes feed back into the routing system automatically. No manual configuration needed — it gets smarter with use.
32
- - **Incremental indexing** — Guidance and code map indexes run on every session start but skip unchanged files. Fast after the first run.
33
- - **AI client agnostic** — Works with any MCP-capable AI client. We develop and test with Claude Code, but the MCP tools, memory system, and hooks are client-independent.
34
- - **GitHub-oriented** — The `/flo` skill, PR workflows, and issue tracking are built around GitHub. With Claude's help, you can adapt them to your own issue tracker and source control system.
35
- - **Cross-platform** — Forward-slash path normalization, no `sh -c` shell commands, `windowsHide` on all spawn calls.
36
-
37
- ## Features
38
-
39
- | Feature | What It Does |
40
- |---------|-------------|
41
- | **Semantic Memory** | 384-dim domain-aware embeddings. Store knowledge, search it instantly. |
42
- | **Code Navigation** | Indexes your codebase structure so Claude can answer "where does X live?" without Glob/Grep. |
43
- | **Guidance Indexing** | Chunks your project docs (`.claude/guidance/`, `docs/`) and makes them searchable. |
44
- | **Workflow Gates** | Enforces memory-first and task-creation patterns via Claude Code hooks. Prevents Claude from skipping steps. |
45
- | **Learned Routing** | Routes tasks to the right agent type. Learns from outcomes — gets better over time. |
46
- | **`/flo` Skill** | Execute GitHub issues through a full workflow: research → enhance → implement → test → simplify → PR. (Also available as `/fl`.) |
47
- | **Context Tracking** | Monitors context window usage (FRESH → MODERATE → DEPLETED → CRITICAL) and advises accordingly. |
48
- | **Cross-Platform** | Works on macOS, Linux, and Windows. |
49
-
50
- ## Getting Started
51
-
52
- ### 1. Install and init
53
-
54
- ```bash
55
- npm install --save-dev moflo
56
- npx flo init
57
- ```
58
-
59
- `flo init` automatically scans your project to find where your guidance and code live, then writes the results into `moflo.yaml`. It looks for:
60
-
61
- | What | Directories it checks | Default if none found |
62
- |------|----------------------|----------------------|
63
- | **Guidance** | `.claude/guidance`, `docs/guides`, `docs`, `architecture`, `adr`, `.cursor/rules` | `.claude/guidance` |
64
- | **Source code** | `src`, `packages`, `lib`, `app`, `apps`, `services`, `server`, `client` | `src` |
65
- | **Languages** | Scans detected source dirs for file extensions | `.ts`, `.tsx`, `.js`, `.jsx` |
66
-
67
- It also generates:
68
-
69
- | Generated File | Purpose |
70
- |----------------|---------|
71
- | `moflo.yaml` | Project config with detected guidance/code locations |
72
- | `.claude/settings.json` | Workflow gate hooks for Claude Code |
73
- | `.claude/skills/flo/` | The `/flo` issue execution skill (also `/fl`) |
74
- | `CLAUDE.md` section | Teaches Claude how to use MoFlo |
75
- | `.gitignore` entries | Excludes MoFlo state directories |
76
-
77
- In interactive mode (`flo init` without `--yes`), it shows what it found and lets you confirm or adjust before writing.
78
-
79
- ### 2. Review your guidance and code settings
80
-
81
- Open `moflo.yaml` to see what init detected. The two key sections:
82
-
83
- **Guidance** — documentation that helps Claude understand your project (conventions, architecture, domain context):
84
-
85
- ```yaml
86
- guidance:
87
- directories:
88
- - .claude/guidance # project rules, patterns, conventions
89
- - docs # general documentation
90
- ```
91
-
92
- **Code map** — source files to index for "where does X live?" navigation:
93
-
94
- ```yaml
95
- code_map:
96
- directories:
97
- - src # your source code
98
- - packages # shared packages (monorepo)
99
- extensions: [".ts", ".tsx"]
100
- exclude: [node_modules, dist, .next, coverage]
101
- ```
102
-
103
- MoFlo chunks your guidance files into semantic embeddings and indexes your code structure, so Claude searches your knowledge base before touching any files. Adjust these directories to match your project:
104
-
105
- ```yaml
106
- # Monorepo with shared docs
107
- guidance:
108
- directories: [.claude/guidance, docs, packages/shared/docs]
109
- code_map:
110
- directories: [packages, apps, libs]
111
-
112
- # Backend + frontend
113
- code_map:
114
- directories: [server/src, client/src]
115
- ```
116
-
117
- ### 3. Index and verify
118
-
119
- ```bash
120
- npx flo memory index-guidance # Index your guidance docs
121
- npx flo memory code-map # Index your code structure
122
- npx flo doctor # Verify everything works
123
- ```
124
-
125
- Both indexes run automatically at session start after this, so you only need to run them manually on first setup or after major structural changes.
126
-
127
- ## Commands
128
-
129
- You don't need to run these for normal use — `flo init` sets everything up, and the hooks handle memory, routing, and learning automatically. These commands are here for manual setup, debugging, and tweaking.
130
-
131
- ### Memory
132
-
133
- ```bash
134
- flo memory store -k "key" --value "data" # Store with 384-dim embedding
135
- flo memory search -q "auth patterns" # Semantic search
136
- flo memory index-guidance # Index guidance docs
137
- flo memory code-map # Index code structure
138
- flo memory rebuild-index # Regenerate all embeddings
139
- flo memory stats # Show statistics
140
- ```
141
-
142
- ### Routing & Learning
143
-
144
- ```bash
145
- flo hooks route --task "description" # Route task to optimal agent
146
- flo hooks learn --pattern "..." --domain "." # Store a pattern
147
- flo hooks patterns # List learned patterns
148
- flo hooks consolidate # Promote/prune patterns
149
- ```
150
-
151
- ### Workflow Gates
152
-
153
- ```bash
154
- flo gate check-before-scan # Blocks Glob/Grep if memory not searched
155
- flo gate check-before-agent # Blocks Agent tool if no TaskCreate
156
- flo gate prompt-reminder # Context bracket tracking
157
- flo gate session-reset # Reset workflow state
158
- ```
159
-
160
- ### Feature Orchestration
161
-
162
- Sequence multiple GitHub issues through `/flo` workflows using a YAML definition:
163
-
164
- ```bash
165
- flo orc run feature.yaml # Execute a feature (stories in dependency order)
166
- flo orc run feature.yaml --dry-run # Show execution plan without running
167
- flo orc run feature.yaml --verbose # Execute with Claude output streaming
168
- flo orc status my-feature # Check progress of a feature
169
- flo orc reset my-feature # Reset feature state for re-run
170
- ```
171
-
172
- Feature YAML example:
173
-
174
- ```yaml
175
- feature:
176
- id: my-feature
177
- name: "My Feature"
178
- repository: /path/to/project
179
- base_branch: main
180
-
181
- stories:
182
- - id: story-1
183
- name: "Entity and service"
184
- issue: 101
185
-
186
- - id: story-2
187
- name: "Routes and tests"
188
- issue: 102
189
- depends_on: [story-1]
190
- ```
191
-
192
- Stories are resolved via topological sort (respecting `depends_on`), then executed sequentially by spawning `claude -p "/flo <issue>"`.
193
-
194
- ### The `/flo` Skill
195
-
196
- Inside your AI client, the `/flo` (or `/fl`) slash command drives GitHub issue workflows. Quick reference:
197
-
198
- ```
199
- /flo <issue> # Full workflow (research → implement → test → PR)
200
- /flo -t <issue> # Ticket only (research and update ticket, then stop)
201
- /flo -r <issue> # Research only (analyze issue, output findings)
202
- /flo -s <issue> # Swarm mode (default, multi-agent coordination)
203
- /flo -h <issue> # Hive-mind mode (consensus-based coordination)
204
- /flo -n <issue> # Normal mode (single agent, no swarm)
205
- /flo <epic-issue> # Detects epics, processes stories sequentially
206
- ```
207
-
208
- For full options and details, type `/flo` with no arguments — your AI client will display the complete skill documentation. Also available as `/fl`.
209
-
210
- #### Epic handling
211
-
212
- When you pass an issue number, `/flo` automatically checks if it's an epic — no extra flag needed. An issue is treated as an epic if any of these are true:
213
-
214
- - It has a label matching `epic`, `tracking`, `parent`, or `umbrella` (case-insensitive)
215
- - Its body contains a `## Stories` or `## Tasks` section
216
- - Its body has checklist-linked issues: `- [ ] #101`
217
- - Its body has numbered issue references: `1. #101`
218
- - The issue has GitHub sub-issues (via the API)
219
-
220
- When an epic is detected, `/flo` processes each child story sequentially — full workflow per story (research → implement → test → PR), one at a time, in the order listed. The `-e`, `-r`, `-n`, `-sw`, and `-hv` flags still apply and get passed through to each story.
221
-
222
- Stories are extracted from markdown checklists (`- [ ] #101`) or numbered lists (`1. #101`), processed top-to-bottom.
223
-
224
- ### System
225
-
226
- ```bash
227
- flo init # Initialize project (one-time setup)
228
- flo doctor # Health check
229
- flo --version # Show version
230
- ```
231
-
232
-
233
- ## Full Configuration Reference
234
-
235
- `flo init` generates a `moflo.yaml` at your project root. Here's the complete set of options:
236
-
237
- ```yaml
238
- project:
239
- name: "my-project"
240
-
241
- guidance:
242
- directories: [.claude/guidance]
243
- namespace: guidance
244
-
245
- code_map:
246
- directories: [src, packages]
247
- extensions: [".ts", ".tsx"]
248
- exclude: [node_modules, dist]
249
- namespace: code-map
250
-
251
- gates:
252
- memory_first: true # Must search memory before file exploration
253
- task_create_first: true # Must TaskCreate before Agent tool
254
- context_tracking: true # Track context window depletion
255
-
256
- auto_index:
257
- guidance: true # Auto-index docs on session start
258
- code_map: true # Auto-index code on session start
259
-
260
- mcp:
261
- tool_defer: true # Defer 150+ tool schemas; loaded on demand via ToolSearch
262
- auto_start: false # Auto-start MCP server on session begin
263
-
264
- hooks:
265
- pre_edit: true # Track file edits for learning
266
- post_edit: true # Record edit outcomes
267
- pre_task: true # Agent routing before task spawn
268
- post_task: true # Record task results for learning
269
- gate: true # Workflow gate enforcement
270
- route: true # Intelligent task routing
271
- stop_hook: true # Session-end persistence
272
- session_restore: true # Restore session state on start
273
-
274
- models:
275
- default: opus
276
- research: sonnet
277
- review: opus
278
- test: sonnet
279
-
280
- model_routing:
281
- enabled: false # Set to true for automatic model selection
282
- confidence_threshold: 0.85
283
- cost_optimization: true
284
- circuit_breaker: true
285
-
286
- status_line:
287
- enabled: true
288
- branding: "MoFlo V4"
289
- mode: compact # single-line, compact, or dashboard
290
- show_dir: true # current directory name (compact/dashboard only)
291
- show_git: true
292
- show_session: true
293
- show_swarm: true
294
- show_agentdb: true
295
- show_mcp: true
296
- ```
297
-
298
- ### Tool Deferral
299
-
300
- By default, `tool_defer` is `true`. MoFlo exposes 150+ MCP tools — loading all their schemas at conversation start consumes significant context. With deferral enabled, only tool **names** are listed at startup (compact), and full schemas are fetched on demand via `ToolSearch` when actually needed. Hooks and CLI commands continue to work normally since they call the daemon directly, not through MCP tool schemas.
301
-
302
- Set `tool_defer: false` if you want all tool schemas available immediately (useful for offline/air-gapped environments where `ToolSearch` may not work).
303
-
304
- ### Model Routing
305
-
306
- By default, MoFlo uses **static model preferences** — each agent role uses the model specified in `models:`. This is predictable and gives you full control.
307
-
308
- Set `model_routing.enabled: true` to enable **intelligent routing**, which analyzes each task's complexity and auto-selects the cheapest capable model:
309
-
310
- | Complexity | Model | Example Tasks |
311
- |-----------|-------|---------------|
312
- | Low | Haiku | Typos, renames, config changes, formatting |
313
- | Medium | Sonnet | Implement features, write tests, fix bugs |
314
- | High | Opus | Architecture, security audits, complex debugging |
315
-
316
- The router learns from outcomes — if a model fails a task, the circuit breaker penalizes it and escalates to a more capable model.
317
-
318
- You can pin specific agents even when routing is enabled:
319
-
320
- ```yaml
321
- model_routing:
322
- enabled: true
323
- agent_overrides:
324
- security-architect: opus # Never downgrade security work
325
- researcher: sonnet # Pin research to sonnet
326
- ```
327
-
328
- ## How It Works
329
-
330
- MoFlo sits between Claude Code and your project. It uses Claude Code's native hook system to enforce good habits, store knowledge, and learn from outcomes — so Claude gets better at working in your codebase over time.
331
-
332
- ### The Gate System
333
-
334
- MoFlo installs Claude Code hooks that run on every tool call. Together, these gates create a **feedback loop** that prevents Claude from wasting tokens on blind exploration and ensures it builds on prior knowledge.
335
-
336
- **Memory-first gate** — Before Claude can use Glob, Grep, or Read on guidance files, it must first search the memory database. This forces Claude to check what it already knows (or what was learned in prior sessions) before re-exploring from scratch. The gate automatically classifies each prompt — simple directives like "commit" or "yes" skip the gate, while task-oriented prompts like "fix the auth bug" enforce it.
337
-
338
- **Task-create gate** — Before Claude can spawn sub-agents via the Task tool, it must call TaskCreate first. This ensures every agent spawn is tracked, preventing runaway agent proliferation and making it possible to review what work was delegated.
339
-
340
- **Context tracking** — Each interaction increments a counter. As the conversation grows, MoFlo warns Claude about context depletion (FRESH → MODERATE → DEPLETED → CRITICAL) and advises it to checkpoint progress, compact, or start a fresh session before quality degrades.
341
-
342
- **Routing** — On each prompt, MoFlo's route hook analyzes the task and recommends the optimal agent type and model tier (haiku for simple tasks, sonnet for moderate, opus for complex). This saves cost without sacrificing quality.
343
-
344
- All gates are configurable via `moflo.yaml` — you can disable any individual hook if it doesn't suit your workflow.
345
-
346
- ### Intelligent Agent Routing
347
-
348
- MoFlo ships with 12 built-in task patterns that map common work to the right agent type:
349
-
350
- | Pattern | Keywords | Primary Agent |
351
- |---------|----------|---------------|
352
- | security-task | auth, password, encryption, CVE | security-architect |
353
- | testing-task | test, spec, coverage, e2e | tester |
354
- | database-task | schema, migration, SQL, ORM | architect |
355
- | feature-task | implement, add, create, build | architect → coder |
356
- | bugfix-task | bug, fix, error, crash, debug | coder |
357
- | api-task | endpoint, REST, route, handler | architect → coder |
358
- | ... | | *(12 patterns total)* |
359
-
360
- When you route a task (`flo hooks route --task "..."` or via MCP), MoFlo runs semantic similarity against these patterns using HNSW vector search and returns a ranked recommendation with confidence scores.
361
-
362
- **The routing gets smarter over time.** Every time a task completes successfully, MoFlo's post-task hook records the outcome — the full task description, which agent handled it, and whether it succeeded. These learned patterns are combined with the built-in seeds on every future route call. Because learned patterns contain rich task descriptions (not just short keywords), they discriminate better as they accumulate.
363
-
364
- Routing outcomes are stored in `.claude-flow/routing-outcomes.json` and persist across sessions. You can inspect them with `flo hooks patterns` or transfer them between projects with `flo hooks transfer`.
365
-
366
- ### What Ships Out of the Box
367
-
368
- `flo init` wires up the following systems automatically — no configuration needed:
369
-
370
- | System | What It Does | Technology |
371
- |--------|-------------|------------|
372
- | **Semantic Memory** | Store and search knowledge with 384-dim embeddings | sql.js (WASM SQLite) + Transformers.js (MiniLM-L6-v2) |
373
- | **HNSW Vector Search** | Fast nearest-neighbor search across all stored knowledge | `@ruvector/core` VectorDb |
374
- | **Semantic Routing** | Match tasks to agent types using vector similarity | `@ruvector/router` SemanticRouter |
375
- | **SONA Learning** | Learn from task trajectories — what agent handled what, and whether it succeeded | `@ruvector/sona` SonaEngine (Rust/NAPI) |
376
- | **MicroLoRA Adaptation** | Rank-2 LoRA weight updates from successful patterns (~1µs per adapt) | `@ruvector/learning-wasm` |
377
- | **EWC++ Consolidation** | Prevent catastrophic forgetting — new learning doesn't overwrite old patterns | Built into hooks-tools |
378
- | **Workflow Gates** | Memory-first and task-registration enforcement via Claude Code hooks | `.claude/settings.json` hooks |
379
- | **Context Tracking** | Monitor context window depletion (FRESH → CRITICAL) | Session interaction counter |
380
- | **Guidance Indexing** | Chunk and embed your project docs on session start | `flo-index` bin script |
381
- | **Code Map** | Index source file structure (types, exports, functions) on session start | `flo-codemap` bin script |
382
- | **Learned Routing** | Task outcomes feed back into routing — gets smarter over time | `routing-outcomes.json` persistence |
383
- | **Status Line** | Live dashboard showing git, swarm, memory, and MCP status | `statusline.cjs` hook |
384
-
385
- All of these run locally with zero external dependencies. The SONA, MicroLoRA, and HNSW components are WASM/NAPI binaries that ship with the npm package — no compilation, no GPU, no API keys.
386
-
387
- ### The Two-Layer Task System
388
-
389
- MoFlo doesn't replace your AI client's task system — it wraps it. Your client (Claude Code, Cursor, or any MCP-capable tool) handles spawning agents and running code. MoFlo adds a coordination layer on top that handles memory, routing, and learning.
390
-
391
- ```
392
- ┌──────────────────────────────────────────────────┐
393
- │ YOUR AI CLIENT (Execution Layer) │
394
- │ Spawns agents, runs code, streams output │
395
- │ TaskCreate → Agent → TaskUpdate → results │
396
- ├──────────────────────────────────────────────────┤
397
- │ MOFLO (Knowledge Layer) │
398
- │ Routes tasks, gates agent spawns, stores │
399
- │ patterns, learns from outcomes │
400
- └──────────────────────────────────────────────────┘
401
- ```
402
-
403
- Here's how a typical task flows through both layers:
404
-
405
- 1. **MoFlo routes** — Before work starts, MoFlo analyzes the prompt and recommends an agent type and model tier via hook or MCP tool.
406
- 2. **MoFlo gates** — Before an agent can spawn, MoFlo verifies that memory was searched and a task was registered. This prevents blind exploration.
407
- 3. **Your client executes** — The actual agent runs through your client's native task system. MoFlo doesn't manage the agent — your client handles execution, output, and completion.
408
- 4. **MoFlo learns** — After the agent finishes, MoFlo records what worked (or didn't) in its memory database. Successful patterns feed into future routing.
409
-
410
- The key insight: **your client handles execution, MoFlo handles knowledge.** Your client is good at spawning agents and running code. MoFlo is good at remembering what happened, routing to the right agent, and ensuring prior knowledge is checked before exploring from scratch.
411
-
412
- For complex work, MoFlo structures tasks into waves — a research wave discovers context, then an implementation wave acts on it — with dependencies tracked through both the client's task system and MoFlo's coordination layer. The full integration pattern is documented in `.claude/guidance/task-swarm-integration.md`.
413
-
414
- The `/flo` skill ties both systems together for GitHub issues — driving a full workflow (research → enhance → implement → test → simplify → PR) with your client's agents for execution and MoFlo's memory for continuity.
415
-
416
- ### Memory & Knowledge Storage
417
-
418
- MoFlo uses a SQLite database (via sql.js/WASM — no native deps) to store three types of knowledge:
419
-
420
- | Namespace | What's Stored | How It Gets There |
421
- |-----------|---------------|-------------------|
422
- | `guidance` | Chunked project docs (`.claude/guidance/`, `docs/`) with 384-dim embeddings | `flo-index` on session start |
423
- | `code-map` | Structural index of source files (exports, classes, functions) | `flo-codemap` on session start |
424
- | `patterns` | Learned patterns from successful task outcomes | Post-task hooks after agent work |
425
-
426
- **Semantic search** uses cosine similarity on neural embeddings (MiniLM-L6-v2, 384 dimensions). When Claude searches memory, it gets the most relevant chunks ranked by semantic similarity — not keyword matching.
427
-
428
- **Session start indexing** — Three background processes run on every session start: the guidance indexer, the code map generator, and the learning service. All three are incremental (unchanged files are skipped) and run in parallel so they don't block the session.
429
-
430
- **Cross-session persistence** — Everything stored in the database survives across sessions. Patterns learned on Monday are available on Friday. The stop hook exports session metrics, and the session-restore hook loads prior state.
431
-
432
- ### For Claude
433
-
434
- When `flo init` runs, it appends a workflow section to your CLAUDE.md that teaches Claude:
435
- - Always search memory before Glob/Grep/Read (enforced by gates)
436
- - Use `mcp__moflo__memory_search` for knowledge retrieval
437
- - Use `/flo <issue>` (or `/fl`) for issue execution
438
- - Store learnings after task completion
439
-
440
- ## Architecture
441
-
442
- - **7 standalone bin scripts** shipped with npm: `flo-search`, `flo-embeddings`, `flo-index`, `flo-codemap`, `flo-learn`, `flo-setup`, plus the main `flo` CLI
443
- - **Project config system**: `moflo.yaml` for per-project settings
444
- - **One-stop init**: `flo init` generates everything needed for OOTB operation
445
-
446
- ## Ruflo / Claude Flow
447
-
448
- MoFlo builds on top of the full [Ruflo/Claude Flow](https://github.com/ruvnet/ruflo) engine. For detailed documentation on the underlying capabilities — swarm topologies, hive-mind consensus, HNSW vector search, neural routing, MCP server internals, and more — check out the [Ruflo repository](https://github.com/ruvnet/ruflo).
449
-
450
- ## License
451
-
452
- MIT (inherited from [Ruflo/Claude Flow](https://github.com/ruvnet/ruflo))
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/eric-cielo/moflo/main/docs/Moflo_md.png?v=6" alt="MoFlo" />
3
+ </p>
4
+
5
+ # MoFlo
6
+
7
+ **An opinionated fork of [Ruflo/Claude Flow](https://github.com/ruvnet/ruflo), optimized for local development.**
8
+
9
+ MoFlo adds automatic code and guidance cataloging along with memory gating on top of the original Ruflo/Claude Flow orchestration engine. Where the upstream project provides raw building blocks, MoFlo ships opinionated defaults — workflow gates that enforce memory-first patterns, semantic indexing that runs at session start, and learned routing that improves over time — so you get a productive setup from `flo init` without manual tuning.
10
+
11
+ Install it as a dev dependency and run `flo init`.
12
+
13
+ ## Opinionated Defaults
14
+
15
+ MoFlo makes deliberate choices so you don't have to:
16
+
17
+ - **Fully self-contained** — No external services, no cloud dependencies, no API keys. Everything runs locally on your machine.
18
+ - **Node.js runtime** — Targets Node.js specifically. All scripts, hooks, and tooling are JavaScript/TypeScript. No Python, no Rust binaries, no native compilation.
19
+ - **sql.js (WASM)** — The memory database uses sql.js, a pure WebAssembly build of SQLite. No native `better-sqlite3` bindings to compile, no platform-specific build steps. Works identically on Windows, macOS, and Linux.
20
+ - **Simplified embeddings pipeline** — 384-dimensional neural embeddings via Transformers.js (MiniLM-L6-v2, WASM). Same model and precision as the upstream multi-provider pipeline, but simpler — two scripts instead of an abstraction layer. Runs locally, no API calls.
21
+ - **Full learning stack wired up OOTB** — The following are all configured and functional from `flo init`, no manual setup:
22
+ - **SONA** (Self-Optimizing Neural Architecture) — learns from task trajectories via `@ruvector/sona` (Rust/NAPI)
23
+ - **MicroLoRA** — rank-2 LoRA weight adaptations at ~1µs per adapt via `@ruvector/learning-wasm` (WASM)
24
+ - **EWC++** (Elastic Weight Consolidation) — prevents catastrophic forgetting across sessions
25
+ - **HNSW Vector Search** — fast nearest-neighbor search via `@ruvector/core` VectorDb
26
+ - **Semantic Routing** — maps tasks to agents via `@ruvector/router` SemanticRouter
27
+ - **Trajectory Persistence** — outcomes stored in `routing-outcomes.json`, survive across sessions
28
+ - All WASM/NAPI-based, no GPU, no API keys, no external services.
29
+ - **Memory-first workflow** — Claude must search what it already knows before exploring files. Enforced by hooks, not just instructions.
30
+ - **Task registration before agents** — Sub-agents can't spawn until work is tracked. Prevents runaway agent proliferation.
31
+ - **Learned routing** — Task outcomes feed back into the routing system automatically. No manual configuration needed — it gets smarter with use.
32
+ - **Incremental indexing** — Guidance and code map indexes run on every session start but skip unchanged files. Fast after the first run.
33
+ - **AI client agnostic** — Works with any MCP-capable AI client. We develop and test with Claude Code, but the MCP tools, memory system, and hooks are client-independent.
34
+ - **GitHub-oriented** — The `/flo` skill, PR workflows, and issue tracking are built around GitHub. With Claude's help, you can adapt them to your own issue tracker and source control system.
35
+ - **Cross-platform** — Forward-slash path normalization, no `sh -c` shell commands, `windowsHide` on all spawn calls.
36
+
37
+ ## Features
38
+
39
+ | Feature | What It Does |
40
+ |---------|-------------|
41
+ | **Semantic Memory** | 384-dim domain-aware embeddings. Store knowledge, search it instantly. |
42
+ | **Code Navigation** | Indexes your codebase structure so Claude can answer "where does X live?" without Glob/Grep. |
43
+ | **Guidance Indexing** | Chunks your project docs (`.claude/guidance/`, `docs/`) and makes them searchable. |
44
+ | **Workflow Gates** | Enforces memory-first and task-creation patterns via Claude Code hooks. Prevents Claude from skipping steps. |
45
+ | **Learned Routing** | Routes tasks to the right agent type. Learns from outcomes — gets better over time. |
46
+ | **`/flo` Skill** | Execute GitHub issues through a full workflow: research → enhance → implement → test → simplify → PR. (Also available as `/fl`.) |
47
+ | **Context Tracking** | Monitors context window usage (FRESH → MODERATE → DEPLETED → CRITICAL) and advises accordingly. |
48
+ | **Cross-Platform** | Works on macOS, Linux, and Windows. |
49
+
50
+ ## Getting Started
51
+
52
+ ### 1. Install and init
53
+
54
+ ```bash
55
+ npm install --save-dev moflo
56
+ npx flo init
57
+ ```
58
+
59
+ `flo init` automatically scans your project to find where your guidance and code live, then writes the results into `moflo.yaml`. It looks for:
60
+
61
+ | What | Directories it checks | Default if none found |
62
+ |------|----------------------|----------------------|
63
+ | **Guidance** | `.claude/guidance`, `docs/guides`, `docs`, `architecture`, `adr`, `.cursor/rules` | `.claude/guidance` |
64
+ | **Source code** | `src`, `packages`, `lib`, `app`, `apps`, `services`, `server`, `client` | `src` |
65
+ | **Languages** | Scans detected source dirs for file extensions | `.ts`, `.tsx`, `.js`, `.jsx` |
66
+
67
+ It also generates:
68
+
69
+ | Generated File | Purpose |
70
+ |----------------|---------|
71
+ | `moflo.yaml` | Project config with detected guidance/code locations |
72
+ | `.claude/settings.json` | Workflow gate hooks for Claude Code |
73
+ | `.claude/skills/flo/` | The `/flo` issue execution skill (also `/fl`) |
74
+ | `CLAUDE.md` section | Teaches Claude how to use MoFlo |
75
+ | `.gitignore` entries | Excludes MoFlo state directories |
76
+
77
+ In interactive mode (`flo init` without `--yes`), it shows what it found and lets you confirm or adjust before writing.
78
+
79
+ ### 2. Review your guidance and code settings
80
+
81
+ Open `moflo.yaml` to see what init detected. The two key sections:
82
+
83
+ **Guidance** — documentation that helps Claude understand your project (conventions, architecture, domain context):
84
+
85
+ ```yaml
86
+ guidance:
87
+ directories:
88
+ - .claude/guidance # project rules, patterns, conventions
89
+ - docs # general documentation
90
+ ```
91
+
92
+ **Code map** — source files to index for "where does X live?" navigation:
93
+
94
+ ```yaml
95
+ code_map:
96
+ directories:
97
+ - src # your source code
98
+ - packages # shared packages (monorepo)
99
+ extensions: [".ts", ".tsx"]
100
+ exclude: [node_modules, dist, .next, coverage]
101
+ ```
102
+
103
+ MoFlo chunks your guidance files into semantic embeddings and indexes your code structure, so Claude searches your knowledge base before touching any files. Adjust these directories to match your project:
104
+
105
+ ```yaml
106
+ # Monorepo with shared docs
107
+ guidance:
108
+ directories: [.claude/guidance, docs, packages/shared/docs]
109
+ code_map:
110
+ directories: [packages, apps, libs]
111
+
112
+ # Backend + frontend
113
+ code_map:
114
+ directories: [server/src, client/src]
115
+ ```
116
+
117
+ ### 3. Index and verify
118
+
119
+ ```bash
120
+ npx flo memory index-guidance # Index your guidance docs
121
+ npx flo memory code-map # Index your code structure
122
+ npx flo doctor # Verify everything works
123
+ ```
124
+
125
+ Both indexes run automatically at session start after this, so you only need to run them manually on first setup or after major structural changes.
126
+
127
+ ## Commands
128
+
129
+ You don't need to run these for normal use — `flo init` sets everything up, and the hooks handle memory, routing, and learning automatically. These commands are here for manual setup, debugging, and tweaking.
130
+
131
+ ### Memory
132
+
133
+ ```bash
134
+ flo memory store -k "key" --value "data" # Store with 384-dim embedding
135
+ flo memory search -q "auth patterns" # Semantic search
136
+ flo memory index-guidance # Index guidance docs
137
+ flo memory code-map # Index code structure
138
+ flo memory rebuild-index # Regenerate all embeddings
139
+ flo memory stats # Show statistics
140
+ ```
141
+
142
+ ### Routing & Learning
143
+
144
+ ```bash
145
+ flo hooks route --task "description" # Route task to optimal agent
146
+ flo hooks learn --pattern "..." --domain "." # Store a pattern
147
+ flo hooks patterns # List learned patterns
148
+ flo hooks consolidate # Promote/prune patterns
149
+ ```
150
+
151
+ ### Workflow Gates
152
+
153
+ ```bash
154
+ flo gate check-before-scan # Blocks Glob/Grep if memory not searched
155
+ flo gate check-before-agent # Blocks Agent tool if no TaskCreate
156
+ flo gate prompt-reminder # Context bracket tracking
157
+ flo gate session-reset # Reset workflow state
158
+ ```
159
+
160
+ ### Feature Orchestration
161
+
162
+ Sequence multiple GitHub issues through `/flo` workflows using a YAML definition:
163
+
164
+ ```bash
165
+ flo orc run feature.yaml # Execute a feature (stories in dependency order)
166
+ flo orc run feature.yaml --dry-run # Show execution plan without running
167
+ flo orc run feature.yaml --verbose # Execute with Claude output streaming
168
+ flo orc status my-feature # Check progress of a feature
169
+ flo orc reset my-feature # Reset feature state for re-run
170
+ ```
171
+
172
+ Feature YAML example:
173
+
174
+ ```yaml
175
+ feature:
176
+ id: my-feature
177
+ name: "My Feature"
178
+ repository: /path/to/project
179
+ base_branch: main
180
+
181
+ stories:
182
+ - id: story-1
183
+ name: "Entity and service"
184
+ issue: 101
185
+
186
+ - id: story-2
187
+ name: "Routes and tests"
188
+ issue: 102
189
+ depends_on: [story-1]
190
+ ```
191
+
192
+ Stories are resolved via topological sort (respecting `depends_on`), then executed sequentially by spawning `claude -p "/flo <issue>"`.
193
+
194
+ ### The `/flo` Skill
195
+
196
+ Inside your AI client, the `/flo` (or `/fl`) slash command drives GitHub issue workflows. Quick reference:
197
+
198
+ ```
199
+ /flo <issue> # Full workflow (research → implement → test → PR)
200
+ /flo -t <issue> # Ticket only (research and update ticket, then stop)
201
+ /flo -r <issue> # Research only (analyze issue, output findings)
202
+ /flo -s <issue> # Swarm mode (default, multi-agent coordination)
203
+ /flo -h <issue> # Hive-mind mode (consensus-based coordination)
204
+ /flo -n <issue> # Normal mode (single agent, no swarm)
205
+ /flo <epic-issue> # Detects epics, processes stories sequentially
206
+ ```
207
+
208
+ For full options and details, type `/flo` with no arguments — your AI client will display the complete skill documentation. Also available as `/fl`.
209
+
210
+ #### Epic handling
211
+
212
+ When you pass an issue number, `/flo` automatically checks if it's an epic — no extra flag needed. An issue is treated as an epic if any of these are true:
213
+
214
+ - It has a label matching `epic`, `tracking`, `parent`, or `umbrella` (case-insensitive)
215
+ - Its body contains a `## Stories` or `## Tasks` section
216
+ - Its body has checklist-linked issues: `- [ ] #101`
217
+ - Its body has numbered issue references: `1. #101`
218
+ - The issue has GitHub sub-issues (via the API)
219
+
220
+ When an epic is detected, `/flo` processes each child story sequentially — full workflow per story (research → implement → test → PR), one at a time, in the order listed. The `-e`, `-r`, `-n`, `-sw`, and `-hv` flags still apply and get passed through to each story.
221
+
222
+ Stories are extracted from markdown checklists (`- [ ] #101`) or numbered lists (`1. #101`), processed top-to-bottom.
223
+
224
+ ### System
225
+
226
+ ```bash
227
+ flo init # Initialize project (one-time setup)
228
+ flo doctor # Health check
229
+ flo --version # Show version
230
+ ```
231
+
232
+
233
+ ## Full Configuration Reference
234
+
235
+ `flo init` generates a `moflo.yaml` at your project root. Here's the complete set of options:
236
+
237
+ ```yaml
238
+ project:
239
+ name: "my-project"
240
+
241
+ guidance:
242
+ directories: [.claude/guidance]
243
+ namespace: guidance
244
+
245
+ code_map:
246
+ directories: [src, packages]
247
+ extensions: [".ts", ".tsx"]
248
+ exclude: [node_modules, dist]
249
+ namespace: code-map
250
+
251
+ gates:
252
+ memory_first: true # Must search memory before file exploration
253
+ task_create_first: true # Must TaskCreate before Agent tool
254
+ context_tracking: true # Track context window depletion
255
+
256
+ auto_index:
257
+ guidance: true # Auto-index docs on session start
258
+ code_map: true # Auto-index code on session start
259
+
260
+ mcp:
261
+ tool_defer: true # Defer 150+ tool schemas; loaded on demand via ToolSearch
262
+ auto_start: false # Auto-start MCP server on session begin
263
+
264
+ hooks:
265
+ pre_edit: true # Track file edits for learning
266
+ post_edit: true # Record edit outcomes
267
+ pre_task: true # Agent routing before task spawn
268
+ post_task: true # Record task results for learning
269
+ gate: true # Workflow gate enforcement
270
+ route: true # Intelligent task routing
271
+ stop_hook: true # Session-end persistence
272
+ session_restore: true # Restore session state on start
273
+
274
+ models:
275
+ default: opus
276
+ research: sonnet
277
+ review: opus
278
+ test: sonnet
279
+
280
+ model_routing:
281
+ enabled: false # Set to true for automatic model selection
282
+ confidence_threshold: 0.85
283
+ cost_optimization: true
284
+ circuit_breaker: true
285
+
286
+ status_line:
287
+ enabled: true
288
+ branding: "MoFlo V4"
289
+ mode: compact # single-line, compact, or dashboard
290
+ show_dir: true # current directory name (compact/dashboard only)
291
+ show_git: true
292
+ show_session: true
293
+ show_swarm: true
294
+ show_agentdb: true
295
+ show_mcp: true
296
+ ```
297
+
298
+ ### Tool Deferral
299
+
300
+ By default, `tool_defer` is `true`. MoFlo exposes 150+ MCP tools — loading all their schemas at conversation start consumes significant context. With deferral enabled, only tool **names** are listed at startup (compact), and full schemas are fetched on demand via `ToolSearch` when actually needed. Hooks and CLI commands continue to work normally since they call the daemon directly, not through MCP tool schemas.
301
+
302
+ Set `tool_defer: false` if you want all tool schemas available immediately (useful for offline/air-gapped environments where `ToolSearch` may not work).
303
+
304
+ ### Model Routing
305
+
306
+ By default, MoFlo uses **static model preferences** — each agent role uses the model specified in `models:`. This is predictable and gives you full control.
307
+
308
+ Set `model_routing.enabled: true` to enable **intelligent routing**, which analyzes each task's complexity and auto-selects the cheapest capable model:
309
+
310
+ | Complexity | Model | Example Tasks |
311
+ |-----------|-------|---------------|
312
+ | Low | Haiku | Typos, renames, config changes, formatting |
313
+ | Medium | Sonnet | Implement features, write tests, fix bugs |
314
+ | High | Opus | Architecture, security audits, complex debugging |
315
+
316
+ The router learns from outcomes — if a model fails a task, the circuit breaker penalizes it and escalates to a more capable model.
317
+
318
+ You can pin specific agents even when routing is enabled:
319
+
320
+ ```yaml
321
+ model_routing:
322
+ enabled: true
323
+ agent_overrides:
324
+ security-architect: opus # Never downgrade security work
325
+ researcher: sonnet # Pin research to sonnet
326
+ ```
327
+
328
+ ## How It Works
329
+
330
+ MoFlo sits between Claude Code and your project. It uses Claude Code's native hook system to enforce good habits, store knowledge, and learn from outcomes — so Claude gets better at working in your codebase over time.
331
+
332
+ ### The Gate System
333
+
334
+ MoFlo installs Claude Code hooks that run on every tool call. Together, these gates create a **feedback loop** that prevents Claude from wasting tokens on blind exploration and ensures it builds on prior knowledge.
335
+
336
+ **Memory-first gate** — Before Claude can use Glob, Grep, or Read on guidance files, it must first search the memory database. This forces Claude to check what it already knows (or what was learned in prior sessions) before re-exploring from scratch. The gate automatically classifies each prompt — simple directives like "commit" or "yes" skip the gate, while task-oriented prompts like "fix the auth bug" enforce it.
337
+
338
+ **Task-create gate** — Before Claude can spawn sub-agents via the Task tool, it must call TaskCreate first. This ensures every agent spawn is tracked, preventing runaway agent proliferation and making it possible to review what work was delegated.
339
+
340
+ **Context tracking** — Each interaction increments a counter. As the conversation grows, MoFlo warns Claude about context depletion (FRESH → MODERATE → DEPLETED → CRITICAL) and advises it to checkpoint progress, compact, or start a fresh session before quality degrades.
341
+
342
+ **Routing** — On each prompt, MoFlo's route hook analyzes the task and recommends the optimal agent type and model tier (haiku for simple tasks, sonnet for moderate, opus for complex). This saves cost without sacrificing quality.
343
+
344
+ All gates are configurable via `moflo.yaml` — you can disable any individual hook if it doesn't suit your workflow.
345
+
346
+ ### Intelligent Agent Routing
347
+
348
+ MoFlo ships with 12 built-in task patterns that map common work to the right agent type:
349
+
350
+ | Pattern | Keywords | Primary Agent |
351
+ |---------|----------|---------------|
352
+ | security-task | auth, password, encryption, CVE | security-architect |
353
+ | testing-task | test, spec, coverage, e2e | tester |
354
+ | database-task | schema, migration, SQL, ORM | architect |
355
+ | feature-task | implement, add, create, build | architect → coder |
356
+ | bugfix-task | bug, fix, error, crash, debug | coder |
357
+ | api-task | endpoint, REST, route, handler | architect → coder |
358
+ | ... | | *(12 patterns total)* |
359
+
360
+ When you route a task (`flo hooks route --task "..."` or via MCP), MoFlo runs semantic similarity against these patterns using HNSW vector search and returns a ranked recommendation with confidence scores.
361
+
362
+ **The routing gets smarter over time.** Every time a task completes successfully, MoFlo's post-task hook records the outcome — the full task description, which agent handled it, and whether it succeeded. These learned patterns are combined with the built-in seeds on every future route call. Because learned patterns contain rich task descriptions (not just short keywords), they discriminate better as they accumulate.
363
+
364
+ Routing outcomes are stored in `.claude-flow/routing-outcomes.json` and persist across sessions. You can inspect them with `flo hooks patterns` or transfer them between projects with `flo hooks transfer`.
365
+
366
+ ### What Ships Out of the Box
367
+
368
+ `flo init` wires up the following systems automatically — no configuration needed:
369
+
370
+ | System | What It Does | Technology |
371
+ |--------|-------------|------------|
372
+ | **Semantic Memory** | Store and search knowledge with 384-dim embeddings | sql.js (WASM SQLite) + Transformers.js (MiniLM-L6-v2) |
373
+ | **HNSW Vector Search** | Fast nearest-neighbor search across all stored knowledge | `@ruvector/core` VectorDb |
374
+ | **Semantic Routing** | Match tasks to agent types using vector similarity | `@ruvector/router` SemanticRouter |
375
+ | **SONA Learning** | Learn from task trajectories — what agent handled what, and whether it succeeded | `@ruvector/sona` SonaEngine (Rust/NAPI) |
376
+ | **MicroLoRA Adaptation** | Rank-2 LoRA weight updates from successful patterns (~1µs per adapt) | `@ruvector/learning-wasm` |
377
+ | **EWC++ Consolidation** | Prevent catastrophic forgetting — new learning doesn't overwrite old patterns | Built into hooks-tools |
378
+ | **Workflow Gates** | Memory-first and task-registration enforcement via Claude Code hooks | `.claude/settings.json` hooks |
379
+ | **Context Tracking** | Monitor context window depletion (FRESH → CRITICAL) | Session interaction counter |
380
+ | **Guidance Indexing** | Chunk and embed your project docs on session start | `flo-index` bin script |
381
+ | **Code Map** | Index source file structure (types, exports, functions) on session start | `flo-codemap` bin script |
382
+ | **Learned Routing** | Task outcomes feed back into routing — gets smarter over time | `routing-outcomes.json` persistence |
383
+ | **Status Line** | Live dashboard showing git, swarm, memory, and MCP status | `statusline.cjs` hook |
384
+
385
+ All of these run locally with zero external dependencies. The SONA, MicroLoRA, and HNSW components are WASM/NAPI binaries that ship with the npm package — no compilation, no GPU, no API keys.
386
+
387
+ ### The Two-Layer Task System
388
+
389
+ MoFlo doesn't replace your AI client's task system — it wraps it. Your client (Claude Code, Cursor, or any MCP-capable tool) handles spawning agents and running code. MoFlo adds a coordination layer on top that handles memory, routing, and learning.
390
+
391
+ ```
392
+ ┌──────────────────────────────────────────────────┐
393
+ │ YOUR AI CLIENT (Execution Layer) │
394
+ │ Spawns agents, runs code, streams output │
395
+ │ TaskCreate → Agent → TaskUpdate → results │
396
+ ├──────────────────────────────────────────────────┤
397
+ │ MOFLO (Knowledge Layer) │
398
+ │ Routes tasks, gates agent spawns, stores │
399
+ │ patterns, learns from outcomes │
400
+ └──────────────────────────────────────────────────┘
401
+ ```
402
+
403
+ Here's how a typical task flows through both layers:
404
+
405
+ 1. **MoFlo routes** — Before work starts, MoFlo analyzes the prompt and recommends an agent type and model tier via hook or MCP tool.
406
+ 2. **MoFlo gates** — Before an agent can spawn, MoFlo verifies that memory was searched and a task was registered. This prevents blind exploration.
407
+ 3. **Your client executes** — The actual agent runs through your client's native task system. MoFlo doesn't manage the agent — your client handles execution, output, and completion.
408
+ 4. **MoFlo learns** — After the agent finishes, MoFlo records what worked (or didn't) in its memory database. Successful patterns feed into future routing.
409
+
410
+ The key insight: **your client handles execution, MoFlo handles knowledge.** Your client is good at spawning agents and running code. MoFlo is good at remembering what happened, routing to the right agent, and ensuring prior knowledge is checked before exploring from scratch.
411
+
412
+ For complex work, MoFlo structures tasks into waves — a research wave discovers context, then an implementation wave acts on it — with dependencies tracked through both the client's task system and MoFlo's coordination layer. The full integration pattern is documented in `.claude/guidance/task-swarm-integration.md`.
413
+
414
+ The `/flo` skill ties both systems together for GitHub issues — driving a full workflow (research → enhance → implement → test → simplify → PR) with your client's agents for execution and MoFlo's memory for continuity.
415
+
416
+ ### Memory & Knowledge Storage
417
+
418
+ MoFlo uses a SQLite database (via sql.js/WASM — no native deps) to store three types of knowledge:
419
+
420
+ | Namespace | What's Stored | How It Gets There |
421
+ |-----------|---------------|-------------------|
422
+ | `guidance` | Chunked project docs (`.claude/guidance/`, `docs/`) with 384-dim embeddings | `flo-index` on session start |
423
+ | `code-map` | Structural index of source files (exports, classes, functions) | `flo-codemap` on session start |
424
+ | `patterns` | Learned patterns from successful task outcomes | Post-task hooks after agent work |
425
+
426
+ **Semantic search** uses cosine similarity on neural embeddings (MiniLM-L6-v2, 384 dimensions). When Claude searches memory, it gets the most relevant chunks ranked by semantic similarity — not keyword matching.
427
+
428
+ **Session start indexing** — Three background processes run on every session start: the guidance indexer, the code map generator, and the learning service. All three are incremental (unchanged files are skipped) and run in parallel so they don't block the session.
429
+
430
+ **Cross-session persistence** — Everything stored in the database survives across sessions. Patterns learned on Monday are available on Friday. The stop hook exports session metrics, and the session-restore hook loads prior state.
431
+
432
+ ### For Claude
433
+
434
+ When `flo init` runs, it appends a workflow section to your CLAUDE.md that teaches Claude:
435
+ - Always search memory before Glob/Grep/Read (enforced by gates)
436
+ - Use `mcp__moflo__memory_search` for knowledge retrieval
437
+ - Use `/flo <issue>` (or `/fl`) for issue execution
438
+ - Store learnings after task completion
439
+
440
+ ## Architecture
441
+
442
+ - **7 standalone bin scripts** shipped with npm: `flo-search`, `flo-embeddings`, `flo-index`, `flo-codemap`, `flo-learn`, `flo-setup`, plus the main `flo` CLI
443
+ - **Project config system**: `moflo.yaml` for per-project settings
444
+ - **One-stop init**: `flo init` generates everything needed for OOTB operation
445
+
446
+ ## Ruflo / Claude Flow
447
+
448
+ MoFlo builds on top of the full [Ruflo/Claude Flow](https://github.com/ruvnet/ruflo) engine. For detailed documentation on the underlying capabilities — swarm topologies, hive-mind consensus, HNSW vector search, neural routing, MCP server internals, and more — check out the [Ruflo repository](https://github.com/ruvnet/ruflo).
449
+
450
+ ## License
451
+
452
+ MIT (inherited from [Ruflo/Claude Flow](https://github.com/ruvnet/ruflo))