moflo 4.8.21 → 4.8.23

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 (178) 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 +668 -653
  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/settings.local.json +18 -0
  102. package/.claude/skills/fl/SKILL.md +583 -583
  103. package/.claude/skills/flo/SKILL.md +583 -583
  104. package/.claude/skills/github-code-review/SKILL.md +1140 -1140
  105. package/.claude/skills/github-multi-repo/SKILL.md +874 -874
  106. package/.claude/skills/github-project-management/SKILL.md +1277 -1277
  107. package/.claude/skills/github-release-management/SKILL.md +1081 -1081
  108. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
  109. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
  110. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  111. package/.claude/skills/performance-analysis/SKILL.md +563 -563
  112. package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
  113. package/.claude/skills/swarm-advanced/SKILL.md +973 -973
  114. package/.claude/workflow-state.json +4 -4
  115. package/LICENSE +21 -21
  116. package/README.md +698 -685
  117. package/bin/cli.js +0 -0
  118. package/bin/gate-hook.mjs +50 -50
  119. package/bin/gate.cjs +138 -138
  120. package/bin/generate-code-map.mjs +775 -775
  121. package/bin/hook-handler.cjs +83 -83
  122. package/bin/hooks.mjs +656 -656
  123. package/bin/index-guidance.mjs +892 -892
  124. package/bin/index-tests.mjs +709 -709
  125. package/bin/lib/process-manager.mjs +243 -243
  126. package/bin/lib/registry-cleanup.cjs +41 -41
  127. package/bin/prompt-hook.mjs +72 -72
  128. package/bin/semantic-search.mjs +472 -472
  129. package/bin/session-start-launcher.mjs +238 -238
  130. package/bin/setup-project.mjs +250 -250
  131. package/package.json +123 -123
  132. package/src/@claude-flow/cli/README.md +452 -452
  133. package/src/@claude-flow/cli/bin/cli.js +180 -180
  134. package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
  135. package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  136. package/src/@claude-flow/cli/dist/src/commands/doctor.js +18 -2
  137. package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
  138. package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
  139. package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
  140. package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
  141. package/src/@claude-flow/cli/dist/src/commands/init.js +3 -8
  142. package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  143. package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  144. package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +3 -0
  145. package/src/@claude-flow/cli/dist/src/config/moflo-config.js +101 -91
  146. package/src/@claude-flow/cli/dist/src/index.d.ts +5 -0
  147. package/src/@claude-flow/cli/dist/src/index.js +44 -0
  148. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
  149. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
  150. package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
  151. package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
  152. package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
  153. package/src/@claude-flow/cli/dist/src/init/moflo-init.js +140 -140
  154. package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
  155. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
  156. package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  157. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  158. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +584 -0
  159. package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +14 -0
  160. package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
  161. package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  162. package/src/@claude-flow/cli/package.json +1 -1
  163. package/src/@claude-flow/guidance/README.md +1195 -1195
  164. package/src/@claude-flow/guidance/package.json +198 -198
  165. package/src/@claude-flow/memory/README.md +587 -587
  166. package/src/@claude-flow/memory/dist/agentdb-backend.js +26 -26
  167. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +27 -27
  168. package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +245 -0
  169. package/src/@claude-flow/memory/dist/hybrid-backend.js +569 -0
  170. package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +8 -0
  171. package/src/@claude-flow/memory/dist/hybrid-backend.test.js +320 -0
  172. package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +121 -0
  173. package/src/@claude-flow/memory/dist/sqlite-backend.js +572 -0
  174. package/src/@claude-flow/memory/dist/sqljs-backend.js +26 -26
  175. package/src/@claude-flow/memory/package.json +44 -44
  176. package/src/@claude-flow/shared/README.md +323 -323
  177. package/src/@claude-flow/shared/dist/events/event-store.js +31 -31
  178. package/src/README.md +493 -493
@@ -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))