moflo 4.8.16 → 4.8.17

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 (466) 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/hook-handler.cjs +83 -83
  119. package/bin/hooks.mjs +656 -656
  120. package/bin/index-guidance.mjs +892 -892
  121. package/bin/index-tests.mjs +709 -709
  122. package/bin/lib/process-manager.mjs +243 -243
  123. package/bin/lib/registry-cleanup.cjs +41 -41
  124. package/bin/prompt-hook.mjs +72 -72
  125. package/bin/semantic-search.mjs +472 -472
  126. package/bin/session-start-launcher.mjs +238 -226
  127. package/bin/setup-project.mjs +250 -250
  128. package/package.json +123 -121
  129. package/src/@claude-flow/cli/README.md +452 -452
  130. package/src/@claude-flow/cli/bin/cli.js +175 -175
  131. package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
  132. package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  133. package/src/@claude-flow/cli/dist/src/commands/doctor.js +1091 -1091
  134. package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
  135. package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
  136. package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
  137. package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
  138. package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  139. package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  140. package/src/@claude-flow/cli/dist/src/config/moflo-config.js +91 -91
  141. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
  142. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
  143. package/src/@claude-flow/cli/dist/src/init/executor.js +485 -453
  144. package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
  145. package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
  146. package/src/@claude-flow/cli/dist/src/init/moflo-init.js +839 -839
  147. package/src/@claude-flow/cli/dist/src/init/settings-generator.js +6 -2
  148. package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +786 -786
  149. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
  150. package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  151. package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  152. package/src/@claude-flow/cli/package.json +1 -1
  153. package/src/@claude-flow/guidance/README.md +1195 -1195
  154. package/src/@claude-flow/guidance/dist/adversarial.d.ts +284 -0
  155. package/src/@claude-flow/guidance/dist/adversarial.js +572 -0
  156. package/src/@claude-flow/guidance/dist/analyzer.d.ts +530 -0
  157. package/src/@claude-flow/guidance/dist/analyzer.js +2518 -0
  158. package/src/@claude-flow/guidance/dist/artifacts.d.ts +283 -0
  159. package/src/@claude-flow/guidance/dist/artifacts.js +356 -0
  160. package/src/@claude-flow/guidance/dist/authority.d.ts +290 -0
  161. package/src/@claude-flow/guidance/dist/authority.js +558 -0
  162. package/src/@claude-flow/guidance/dist/capabilities.d.ts +209 -0
  163. package/src/@claude-flow/guidance/dist/capabilities.js +485 -0
  164. package/src/@claude-flow/guidance/dist/coherence.d.ts +233 -0
  165. package/src/@claude-flow/guidance/dist/coherence.js +372 -0
  166. package/src/@claude-flow/guidance/dist/compiler.d.ts +87 -0
  167. package/src/@claude-flow/guidance/dist/compiler.js +419 -0
  168. package/src/@claude-flow/guidance/dist/conformance-kit.d.ts +225 -0
  169. package/src/@claude-flow/guidance/dist/conformance-kit.js +629 -0
  170. package/src/@claude-flow/guidance/dist/continue-gate.d.ts +214 -0
  171. package/src/@claude-flow/guidance/dist/continue-gate.js +353 -0
  172. package/src/@claude-flow/guidance/dist/crypto-utils.d.ts +17 -0
  173. package/src/@claude-flow/guidance/dist/crypto-utils.js +24 -0
  174. package/src/@claude-flow/guidance/dist/evolution.d.ts +282 -0
  175. package/src/@claude-flow/guidance/dist/evolution.js +500 -0
  176. package/src/@claude-flow/guidance/dist/gates.d.ts +79 -0
  177. package/src/@claude-flow/guidance/dist/gates.js +302 -0
  178. package/src/@claude-flow/guidance/dist/gateway.d.ts +206 -0
  179. package/src/@claude-flow/guidance/dist/gateway.js +452 -0
  180. package/src/@claude-flow/guidance/dist/generators.d.ts +153 -0
  181. package/src/@claude-flow/guidance/dist/generators.js +682 -0
  182. package/src/@claude-flow/guidance/dist/headless.d.ts +177 -0
  183. package/src/@claude-flow/guidance/dist/headless.js +342 -0
  184. package/src/@claude-flow/guidance/dist/hooks.d.ts +109 -0
  185. package/src/@claude-flow/guidance/dist/hooks.js +347 -0
  186. package/src/@claude-flow/guidance/dist/index.d.ts +205 -0
  187. package/src/@claude-flow/guidance/dist/index.js +321 -0
  188. package/src/@claude-flow/guidance/dist/ledger.d.ts +162 -0
  189. package/src/@claude-flow/guidance/dist/ledger.js +375 -0
  190. package/src/@claude-flow/guidance/dist/manifest-validator.d.ts +289 -0
  191. package/src/@claude-flow/guidance/dist/manifest-validator.js +838 -0
  192. package/src/@claude-flow/guidance/dist/memory-gate.d.ts +222 -0
  193. package/src/@claude-flow/guidance/dist/memory-gate.js +382 -0
  194. package/src/@claude-flow/guidance/dist/meta-governance.d.ts +265 -0
  195. package/src/@claude-flow/guidance/dist/meta-governance.js +348 -0
  196. package/src/@claude-flow/guidance/dist/optimizer.d.ts +104 -0
  197. package/src/@claude-flow/guidance/dist/optimizer.js +329 -0
  198. package/src/@claude-flow/guidance/dist/persistence.d.ts +189 -0
  199. package/src/@claude-flow/guidance/dist/persistence.js +464 -0
  200. package/src/@claude-flow/guidance/dist/proof.d.ts +185 -0
  201. package/src/@claude-flow/guidance/dist/proof.js +238 -0
  202. package/src/@claude-flow/guidance/dist/retriever.d.ts +116 -0
  203. package/src/@claude-flow/guidance/dist/retriever.js +394 -0
  204. package/src/@claude-flow/guidance/dist/ruvbot-integration.d.ts +370 -0
  205. package/src/@claude-flow/guidance/dist/ruvbot-integration.js +738 -0
  206. package/src/@claude-flow/guidance/dist/temporal.d.ts +426 -0
  207. package/src/@claude-flow/guidance/dist/temporal.js +658 -0
  208. package/src/@claude-flow/guidance/dist/trust.d.ts +283 -0
  209. package/src/@claude-flow/guidance/dist/trust.js +473 -0
  210. package/src/@claude-flow/guidance/dist/truth-anchors.d.ts +276 -0
  211. package/src/@claude-flow/guidance/dist/truth-anchors.js +488 -0
  212. package/src/@claude-flow/guidance/dist/types.d.ts +378 -0
  213. package/src/@claude-flow/guidance/dist/types.js +10 -0
  214. package/src/@claude-flow/guidance/dist/uncertainty.d.ts +372 -0
  215. package/src/@claude-flow/guidance/dist/uncertainty.js +619 -0
  216. package/src/@claude-flow/guidance/dist/wasm-kernel.d.ts +48 -0
  217. package/src/@claude-flow/guidance/dist/wasm-kernel.js +158 -0
  218. package/src/@claude-flow/guidance/package.json +198 -198
  219. package/src/@claude-flow/memory/README.md +587 -587
  220. package/src/@claude-flow/memory/package.json +44 -44
  221. package/src/@claude-flow/shared/README.md +323 -323
  222. package/src/README.md +493 -493
  223. package/.claude/settings.local.json +0 -18
  224. package/.claude/workflow-state.json +0 -9
  225. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  226. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +0 -584
  227. package/src/@claude-flow/memory/dist/agent-memory-scope.d.ts +0 -131
  228. package/src/@claude-flow/memory/dist/agent-memory-scope.js +0 -223
  229. package/src/@claude-flow/memory/dist/agent-memory-scope.test.d.ts +0 -8
  230. package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +0 -463
  231. package/src/@claude-flow/memory/dist/agentdb-adapter.d.ts +0 -165
  232. package/src/@claude-flow/memory/dist/agentdb-adapter.js +0 -806
  233. package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +0 -214
  234. package/src/@claude-flow/memory/dist/agentdb-backend.js +0 -844
  235. package/src/@claude-flow/memory/dist/agentdb-backend.test.d.ts +0 -7
  236. package/src/@claude-flow/memory/dist/agentdb-backend.test.js +0 -258
  237. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.d.ts +0 -65
  238. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.js +0 -129
  239. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.d.ts +0 -48
  240. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.js +0 -72
  241. package/src/@claude-flow/memory/dist/application/index.d.ts +0 -12
  242. package/src/@claude-flow/memory/dist/application/index.js +0 -15
  243. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.d.ts +0 -72
  244. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.js +0 -143
  245. package/src/@claude-flow/memory/dist/application/services/memory-application-service.d.ts +0 -121
  246. package/src/@claude-flow/memory/dist/application/services/memory-application-service.js +0 -190
  247. package/src/@claude-flow/memory/dist/auto-memory-bridge.d.ts +0 -226
  248. package/src/@claude-flow/memory/dist/auto-memory-bridge.js +0 -709
  249. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.d.ts +0 -8
  250. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +0 -754
  251. package/src/@claude-flow/memory/dist/benchmark.test.d.ts +0 -2
  252. package/src/@claude-flow/memory/dist/benchmark.test.js +0 -277
  253. package/src/@claude-flow/memory/dist/cache-manager.d.ts +0 -134
  254. package/src/@claude-flow/memory/dist/cache-manager.js +0 -407
  255. package/src/@claude-flow/memory/dist/controller-registry.d.ts +0 -216
  256. package/src/@claude-flow/memory/dist/controller-registry.js +0 -893
  257. package/src/@claude-flow/memory/dist/controller-registry.test.d.ts +0 -14
  258. package/src/@claude-flow/memory/dist/controller-registry.test.js +0 -636
  259. package/src/@claude-flow/memory/dist/database-provider.d.ts +0 -87
  260. package/src/@claude-flow/memory/dist/database-provider.js +0 -375
  261. package/src/@claude-flow/memory/dist/database-provider.test.d.ts +0 -7
  262. package/src/@claude-flow/memory/dist/database-provider.test.js +0 -285
  263. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.d.ts +0 -143
  264. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.js +0 -226
  265. package/src/@claude-flow/memory/dist/domain/index.d.ts +0 -11
  266. package/src/@claude-flow/memory/dist/domain/index.js +0 -12
  267. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.d.ts +0 -102
  268. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.js +0 -11
  269. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.d.ts +0 -105
  270. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.js +0 -297
  271. package/src/@claude-flow/memory/dist/hnsw-index.d.ts +0 -111
  272. package/src/@claude-flow/memory/dist/hnsw-index.js +0 -781
  273. package/src/@claude-flow/memory/dist/hnsw-lite.d.ts +0 -23
  274. package/src/@claude-flow/memory/dist/hnsw-lite.js +0 -168
  275. package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +0 -245
  276. package/src/@claude-flow/memory/dist/hybrid-backend.js +0 -569
  277. package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +0 -8
  278. package/src/@claude-flow/memory/dist/hybrid-backend.test.js +0 -320
  279. package/src/@claude-flow/memory/dist/index.d.ts +0 -207
  280. package/src/@claude-flow/memory/dist/index.js +0 -361
  281. package/src/@claude-flow/memory/dist/infrastructure/index.d.ts +0 -17
  282. package/src/@claude-flow/memory/dist/infrastructure/index.js +0 -16
  283. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.d.ts +0 -66
  284. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.js +0 -409
  285. package/src/@claude-flow/memory/dist/learning-bridge.d.ts +0 -137
  286. package/src/@claude-flow/memory/dist/learning-bridge.js +0 -335
  287. package/src/@claude-flow/memory/dist/learning-bridge.test.d.ts +0 -8
  288. package/src/@claude-flow/memory/dist/learning-bridge.test.js +0 -578
  289. package/src/@claude-flow/memory/dist/memory-graph.d.ts +0 -100
  290. package/src/@claude-flow/memory/dist/memory-graph.js +0 -333
  291. package/src/@claude-flow/memory/dist/memory-graph.test.d.ts +0 -8
  292. package/src/@claude-flow/memory/dist/memory-graph.test.js +0 -609
  293. package/src/@claude-flow/memory/dist/migration.d.ts +0 -68
  294. package/src/@claude-flow/memory/dist/migration.js +0 -513
  295. package/src/@claude-flow/memory/dist/persistent-sona.d.ts +0 -144
  296. package/src/@claude-flow/memory/dist/persistent-sona.js +0 -332
  297. package/src/@claude-flow/memory/dist/query-builder.d.ts +0 -211
  298. package/src/@claude-flow/memory/dist/query-builder.js +0 -438
  299. package/src/@claude-flow/memory/dist/rvf-backend.d.ts +0 -51
  300. package/src/@claude-flow/memory/dist/rvf-backend.js +0 -481
  301. package/src/@claude-flow/memory/dist/rvf-learning-store.d.ts +0 -139
  302. package/src/@claude-flow/memory/dist/rvf-learning-store.js +0 -295
  303. package/src/@claude-flow/memory/dist/rvf-migration.d.ts +0 -45
  304. package/src/@claude-flow/memory/dist/rvf-migration.js +0 -234
  305. package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +0 -121
  306. package/src/@claude-flow/memory/dist/sqlite-backend.js +0 -572
  307. package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +0 -128
  308. package/src/@claude-flow/memory/dist/sqljs-backend.js +0 -601
  309. package/src/@claude-flow/memory/dist/types.d.ts +0 -484
  310. package/src/@claude-flow/memory/dist/types.js +0 -58
  311. package/src/@claude-flow/shared/dist/core/config/defaults.d.ts +0 -41
  312. package/src/@claude-flow/shared/dist/core/config/defaults.js +0 -186
  313. package/src/@claude-flow/shared/dist/core/config/index.d.ts +0 -8
  314. package/src/@claude-flow/shared/dist/core/config/index.js +0 -12
  315. package/src/@claude-flow/shared/dist/core/config/loader.d.ts +0 -45
  316. package/src/@claude-flow/shared/dist/core/config/loader.js +0 -222
  317. package/src/@claude-flow/shared/dist/core/config/schema.d.ts +0 -1134
  318. package/src/@claude-flow/shared/dist/core/config/schema.js +0 -158
  319. package/src/@claude-flow/shared/dist/core/config/validator.d.ts +0 -92
  320. package/src/@claude-flow/shared/dist/core/config/validator.js +0 -147
  321. package/src/@claude-flow/shared/dist/core/event-bus.d.ts +0 -31
  322. package/src/@claude-flow/shared/dist/core/event-bus.js +0 -197
  323. package/src/@claude-flow/shared/dist/core/index.d.ts +0 -15
  324. package/src/@claude-flow/shared/dist/core/index.js +0 -19
  325. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.d.ts +0 -200
  326. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.js +0 -6
  327. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.d.ts +0 -310
  328. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.js +0 -7
  329. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.d.ts +0 -224
  330. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.js +0 -46
  331. package/src/@claude-flow/shared/dist/core/interfaces/index.d.ts +0 -10
  332. package/src/@claude-flow/shared/dist/core/interfaces/index.js +0 -15
  333. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.d.ts +0 -298
  334. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.js +0 -7
  335. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.d.ts +0 -185
  336. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.js +0 -6
  337. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.d.ts +0 -35
  338. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.js +0 -101
  339. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.d.ts +0 -60
  340. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.js +0 -166
  341. package/src/@claude-flow/shared/dist/core/orchestrator/index.d.ts +0 -46
  342. package/src/@claude-flow/shared/dist/core/orchestrator/index.js +0 -64
  343. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.d.ts +0 -56
  344. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.js +0 -195
  345. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.d.ts +0 -83
  346. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.js +0 -193
  347. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.d.ts +0 -49
  348. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.js +0 -253
  349. package/src/@claude-flow/shared/dist/events/domain-events.d.ts +0 -282
  350. package/src/@claude-flow/shared/dist/events/domain-events.js +0 -165
  351. package/src/@claude-flow/shared/dist/events/event-store.d.ts +0 -126
  352. package/src/@claude-flow/shared/dist/events/event-store.js +0 -416
  353. package/src/@claude-flow/shared/dist/events/event-store.test.d.ts +0 -8
  354. package/src/@claude-flow/shared/dist/events/event-store.test.js +0 -293
  355. package/src/@claude-flow/shared/dist/events/example-usage.d.ts +0 -10
  356. package/src/@claude-flow/shared/dist/events/example-usage.js +0 -193
  357. package/src/@claude-flow/shared/dist/events/index.d.ts +0 -21
  358. package/src/@claude-flow/shared/dist/events/index.js +0 -22
  359. package/src/@claude-flow/shared/dist/events/projections.d.ts +0 -177
  360. package/src/@claude-flow/shared/dist/events/projections.js +0 -421
  361. package/src/@claude-flow/shared/dist/events/rvf-event-log.d.ts +0 -82
  362. package/src/@claude-flow/shared/dist/events/rvf-event-log.js +0 -340
  363. package/src/@claude-flow/shared/dist/events/state-reconstructor.d.ts +0 -101
  364. package/src/@claude-flow/shared/dist/events/state-reconstructor.js +0 -263
  365. package/src/@claude-flow/shared/dist/events.d.ts +0 -80
  366. package/src/@claude-flow/shared/dist/events.js +0 -249
  367. package/src/@claude-flow/shared/dist/hooks/example-usage.d.ts +0 -42
  368. package/src/@claude-flow/shared/dist/hooks/example-usage.js +0 -351
  369. package/src/@claude-flow/shared/dist/hooks/executor.d.ts +0 -100
  370. package/src/@claude-flow/shared/dist/hooks/executor.js +0 -264
  371. package/src/@claude-flow/shared/dist/hooks/hooks.test.d.ts +0 -9
  372. package/src/@claude-flow/shared/dist/hooks/hooks.test.js +0 -322
  373. package/src/@claude-flow/shared/dist/hooks/index.d.ts +0 -52
  374. package/src/@claude-flow/shared/dist/hooks/index.js +0 -51
  375. package/src/@claude-flow/shared/dist/hooks/registry.d.ts +0 -133
  376. package/src/@claude-flow/shared/dist/hooks/registry.js +0 -277
  377. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.d.ts +0 -105
  378. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.js +0 -481
  379. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.d.ts +0 -144
  380. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +0 -328
  381. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.d.ts +0 -158
  382. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +0 -450
  383. package/src/@claude-flow/shared/dist/hooks/safety/index.d.ts +0 -17
  384. package/src/@claude-flow/shared/dist/hooks/safety/index.js +0 -17
  385. package/src/@claude-flow/shared/dist/hooks/session-hooks.d.ts +0 -234
  386. package/src/@claude-flow/shared/dist/hooks/session-hooks.js +0 -334
  387. package/src/@claude-flow/shared/dist/hooks/task-hooks.d.ts +0 -163
  388. package/src/@claude-flow/shared/dist/hooks/task-hooks.js +0 -326
  389. package/src/@claude-flow/shared/dist/hooks/types.d.ts +0 -267
  390. package/src/@claude-flow/shared/dist/hooks/types.js +0 -62
  391. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.d.ts +0 -9
  392. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +0 -93
  393. package/src/@claude-flow/shared/dist/index.d.ts +0 -20
  394. package/src/@claude-flow/shared/dist/index.js +0 -50
  395. package/src/@claude-flow/shared/dist/mcp/connection-pool.d.ts +0 -98
  396. package/src/@claude-flow/shared/dist/mcp/connection-pool.js +0 -364
  397. package/src/@claude-flow/shared/dist/mcp/index.d.ts +0 -69
  398. package/src/@claude-flow/shared/dist/mcp/index.js +0 -84
  399. package/src/@claude-flow/shared/dist/mcp/server.d.ts +0 -166
  400. package/src/@claude-flow/shared/dist/mcp/server.js +0 -593
  401. package/src/@claude-flow/shared/dist/mcp/session-manager.d.ts +0 -136
  402. package/src/@claude-flow/shared/dist/mcp/session-manager.js +0 -335
  403. package/src/@claude-flow/shared/dist/mcp/tool-registry.d.ts +0 -178
  404. package/src/@claude-flow/shared/dist/mcp/tool-registry.js +0 -439
  405. package/src/@claude-flow/shared/dist/mcp/transport/http.d.ts +0 -104
  406. package/src/@claude-flow/shared/dist/mcp/transport/http.js +0 -476
  407. package/src/@claude-flow/shared/dist/mcp/transport/index.d.ts +0 -102
  408. package/src/@claude-flow/shared/dist/mcp/transport/index.js +0 -238
  409. package/src/@claude-flow/shared/dist/mcp/transport/stdio.d.ts +0 -104
  410. package/src/@claude-flow/shared/dist/mcp/transport/stdio.js +0 -263
  411. package/src/@claude-flow/shared/dist/mcp/transport/websocket.d.ts +0 -133
  412. package/src/@claude-flow/shared/dist/mcp/transport/websocket.js +0 -396
  413. package/src/@claude-flow/shared/dist/mcp/types.d.ts +0 -438
  414. package/src/@claude-flow/shared/dist/mcp/types.js +0 -54
  415. package/src/@claude-flow/shared/dist/plugin-interface.d.ts +0 -544
  416. package/src/@claude-flow/shared/dist/plugin-interface.js +0 -23
  417. package/src/@claude-flow/shared/dist/plugin-loader.d.ts +0 -139
  418. package/src/@claude-flow/shared/dist/plugin-loader.js +0 -434
  419. package/src/@claude-flow/shared/dist/plugin-registry.d.ts +0 -183
  420. package/src/@claude-flow/shared/dist/plugin-registry.js +0 -457
  421. package/src/@claude-flow/shared/dist/plugins/index.d.ts +0 -10
  422. package/src/@claude-flow/shared/dist/plugins/index.js +0 -10
  423. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.d.ts +0 -106
  424. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.js +0 -241
  425. package/src/@claude-flow/shared/dist/plugins/official/index.d.ts +0 -10
  426. package/src/@claude-flow/shared/dist/plugins/official/index.js +0 -10
  427. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.d.ts +0 -121
  428. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.js +0 -355
  429. package/src/@claude-flow/shared/dist/plugins/types.d.ts +0 -93
  430. package/src/@claude-flow/shared/dist/plugins/types.js +0 -9
  431. package/src/@claude-flow/shared/dist/resilience/bulkhead.d.ts +0 -105
  432. package/src/@claude-flow/shared/dist/resilience/bulkhead.js +0 -206
  433. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.d.ts +0 -132
  434. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.js +0 -233
  435. package/src/@claude-flow/shared/dist/resilience/index.d.ts +0 -19
  436. package/src/@claude-flow/shared/dist/resilience/index.js +0 -19
  437. package/src/@claude-flow/shared/dist/resilience/rate-limiter.d.ts +0 -168
  438. package/src/@claude-flow/shared/dist/resilience/rate-limiter.js +0 -314
  439. package/src/@claude-flow/shared/dist/resilience/retry.d.ts +0 -91
  440. package/src/@claude-flow/shared/dist/resilience/retry.js +0 -159
  441. package/src/@claude-flow/shared/dist/security/index.d.ts +0 -10
  442. package/src/@claude-flow/shared/dist/security/index.js +0 -12
  443. package/src/@claude-flow/shared/dist/security/input-validation.d.ts +0 -73
  444. package/src/@claude-flow/shared/dist/security/input-validation.js +0 -201
  445. package/src/@claude-flow/shared/dist/security/secure-random.d.ts +0 -92
  446. package/src/@claude-flow/shared/dist/security/secure-random.js +0 -142
  447. package/src/@claude-flow/shared/dist/services/index.d.ts +0 -7
  448. package/src/@claude-flow/shared/dist/services/index.js +0 -7
  449. package/src/@claude-flow/shared/dist/services/v3-progress.service.d.ts +0 -124
  450. package/src/@claude-flow/shared/dist/services/v3-progress.service.js +0 -402
  451. package/src/@claude-flow/shared/dist/types/agent.types.d.ts +0 -137
  452. package/src/@claude-flow/shared/dist/types/agent.types.js +0 -6
  453. package/src/@claude-flow/shared/dist/types/index.d.ts +0 -11
  454. package/src/@claude-flow/shared/dist/types/index.js +0 -17
  455. package/src/@claude-flow/shared/dist/types/mcp.types.d.ts +0 -266
  456. package/src/@claude-flow/shared/dist/types/mcp.types.js +0 -7
  457. package/src/@claude-flow/shared/dist/types/memory.types.d.ts +0 -236
  458. package/src/@claude-flow/shared/dist/types/memory.types.js +0 -7
  459. package/src/@claude-flow/shared/dist/types/swarm.types.d.ts +0 -186
  460. package/src/@claude-flow/shared/dist/types/swarm.types.js +0 -65
  461. package/src/@claude-flow/shared/dist/types/task.types.d.ts +0 -178
  462. package/src/@claude-flow/shared/dist/types/task.types.js +0 -32
  463. package/src/@claude-flow/shared/dist/types.d.ts +0 -197
  464. package/src/@claude-flow/shared/dist/types.js +0 -21
  465. package/src/@claude-flow/shared/dist/utils/secure-logger.d.ts +0 -69
  466. 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))