moflo 4.9.19 → 4.9.21
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.
- package/.claude/commands/{simplify.md → flo-simplify.md} +4 -4
- package/.claude/guidance/shipped/moflo-agent-rules.md +172 -0
- package/.claude/guidance/shipped/moflo-claude-swarm-cohesion.md +73 -265
- package/.claude/guidance/shipped/moflo-cli-reference.md +6 -6
- package/.claude/guidance/shipped/moflo-core-guidance.md +66 -184
- package/.claude/guidance/shipped/moflo-cross-platform.md +1 -1
- package/.claude/guidance/shipped/moflo-error-handling.md +3 -3
- package/.claude/guidance/shipped/moflo-guidance-rules.md +17 -7
- package/.claude/guidance/shipped/moflo-memory-strategy.md +76 -182
- package/.claude/guidance/shipped/moflo-memorydb-maintenance.md +6 -8
- package/.claude/guidance/shipped/moflo-settings-injection.md +7 -9
- package/.claude/guidance/shipped/moflo-source-hygiene.md +5 -5
- package/.claude/guidance/shipped/moflo-spell-connectors.md +3 -4
- package/.claude/guidance/shipped/moflo-spell-custom-steps.md +3 -4
- package/.claude/guidance/shipped/moflo-spell-engine.md +40 -162
- package/.claude/guidance/shipped/moflo-spell-runner.md +134 -0
- package/.claude/guidance/shipped/moflo-spell-sandboxing.md +10 -57
- package/.claude/guidance/shipped/moflo-spell-troubleshooting.md +149 -0
- package/.claude/guidance/shipped/moflo-subagents.md +43 -114
- package/.claude/guidance/shipped/moflo-task-icons.md +4 -4
- package/.claude/guidance/shipped/moflo-user-facing-language.md +3 -3
- package/.claude/guidance/shipped/moflo-verbose-command-filtering.md +3 -3
- package/.claude/guidance/shipped/moflo-yaml-reference.md +4 -5
- package/.claude/helpers/gate.cjs +124 -14
- package/.claude/helpers/prompt-hook.mjs +4 -38
- package/.claude/helpers/simplify-classify.cjs +32 -11
- package/.claude/helpers/subagent-bootstrap.json +1 -1
- package/.claude/helpers/subagent-start.cjs +1 -1
- package/.claude/skills/connector-builder/SKILL.md +42 -429
- package/.claude/skills/connector-builder/templates/connector.md +189 -0
- package/.claude/skills/connector-builder/templates/step-command.md +176 -0
- package/.claude/skills/eldar/SKILL.md +7 -7
- package/.claude/skills/fl/SKILL.md +3 -3
- package/.claude/skills/fl/execution-modes.md +3 -3
- package/.claude/skills/fl/phases.md +3 -3
- package/.claude/skills/{simplify → flo-simplify}/SKILL.md +11 -11
- package/.claude/skills/guidance/SKILL.md +17 -9
- package/.claude/skills/memory-patterns/SKILL.md +1 -1
- package/.claude/skills/publish/SKILL.md +121 -36
- package/.claude/skills/reset-epic/SKILL.md +2 -2
- package/.claude/skills/spell-builder/SKILL.md +39 -226
- package/.claude/skills/spell-builder/architecture.md +1 -1
- package/.claude/skills/spell-builder/permissions.md +107 -0
- package/.claude/skills/spell-builder/preflight.md +101 -0
- package/.claude/skills/spell-schedule/SKILL.md +2 -3
- package/bin/gate.cjs +124 -14
- package/bin/prompt-hook.mjs +4 -38
- package/bin/session-start-launcher.mjs +66 -1
- package/bin/setup-project.mjs +63 -69
- package/bin/simplify-classify.cjs +32 -11
- package/dist/src/cli/commands/doctor-checks-deep.js +4 -0
- package/dist/src/cli/init/claudemd-generator.js +30 -33
- package/dist/src/cli/init/executor.js +28 -16
- package/dist/src/cli/init/helpers-generator.js +101 -51
- package/dist/src/cli/init/moflo-init.js +41 -114
- package/dist/src/cli/init/settings-generator.js +32 -14
- package/dist/src/cli/services/hook-block-hash.js +7 -2
- package/dist/src/cli/services/hook-wiring.js +86 -3
- package/dist/src/cli/services/subagent-bootstrap.js +1 -1
- package/dist/src/cli/version.js +1 -1
- package/package.json +2 -2
- package/scripts/post-install-bootstrap.mjs +19 -0
- package/.claude/guidance/shipped/moflo-session-start.md +0 -154
- package/.claude/guidance/shipped/moflo-spell-engine-architecture.md +0 -145
- package/.claude/skills/browser/SKILL.md +0 -204
- package/.claude/skills/github-code-review/SKILL.md +0 -1140
- package/.claude/skills/github-multi-repo/SKILL.md +0 -866
- package/.claude/skills/github-project-management/SKILL.md +0 -1272
- package/.claude/skills/github-release-management/SKILL.md +0 -1074
- package/.claude/skills/github-workflow-automation/SKILL.md +0 -1060
- package/.claude/skills/hive-mind-advanced/SKILL.md +0 -712
- package/.claude/skills/hooks-automation/SKILL.md +0 -1193
- package/.claude/skills/pair-programming/SKILL.md +0 -1202
- package/.claude/skills/performance-analysis/SKILL.md +0 -563
- package/.claude/skills/skill-builder/SKILL.md +0 -910
- package/.claude/skills/sparc-methodology/SKILL.md +0 -904
- package/.claude/skills/stream-chain/SKILL.md +0 -563
- package/.claude/skills/swarm-advanced/SKILL.md +0 -811
- package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
- package/.claude/skills/verification-quality/SKILL.md +0 -649
- package/.claude/skills/worker-benchmarks/skill.md +0 -135
- package/.claude/skills/worker-integration/skill.md +0 -154
|
@@ -15,46 +15,16 @@ npm install moflo
|
|
|
15
15
|
npx flo init # Interactive setup wizard
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
`flo init`
|
|
19
|
-
|
|
20
|
-
1. Creates `moflo.yaml` with detected project settings
|
|
21
|
-
2. Sets up `.claude/settings.json` hooks (SessionStart, pre-edit, etc.)
|
|
22
|
-
3. Configures `.mcp.json` for MCP tool access
|
|
23
|
-
4. Copies the agent bootstrap guide to `.claude/guidance/`
|
|
24
|
-
5. Injects a memory search section into CLAUDE.md
|
|
18
|
+
`flo init` creates `moflo.yaml`, sets up `.claude/settings.json` hooks, configures `.mcp.json` for MCP tools, copies bootstrap guidance to `.claude/guidance/`, and injects a memory-search section into `CLAUDE.md`.
|
|
25
19
|
|
|
26
20
|
### Post-Install
|
|
27
21
|
|
|
28
22
|
```bash
|
|
29
|
-
npx flo-setup #
|
|
23
|
+
npx flo-setup # Re-copy bootstrap guidance, re-inject CLAUDE.md section
|
|
30
24
|
npx flo doctor --fix # Verify everything is working
|
|
31
25
|
```
|
|
32
26
|
|
|
33
|
-
For the full schema of `moflo.yaml` and
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Building from Source
|
|
38
|
-
|
|
39
|
-
**Full instructions: [`docs/BUILD.md`](../../../docs/BUILD.md)** — the canonical, step-by-step build/test/publish process. Always follow it.
|
|
40
|
-
|
|
41
|
-
Quick reference (from project root only):
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
git pull origin main # ALWAYS pull first
|
|
45
|
-
npm run build # tsc -b (project references)
|
|
46
|
-
npm test # 0 failures required
|
|
47
|
-
npm version patch --no-git-tag-version # Bump + sync cli version
|
|
48
|
-
npm run build # Rebuild with new version
|
|
49
|
-
npm publish --otp=XXX # Requires 2FA OTP
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Critical rules:**
|
|
53
|
-
|
|
54
|
-
- npm only — no pnpm, yarn, or bun
|
|
55
|
-
- Always build from root (`npm run build`) — never cd into subdirectories
|
|
56
|
-
- Never publish without a successful build — `prepublishOnly` masks failures
|
|
57
|
-
- Never publish without tests passing
|
|
27
|
+
For the full schema of `moflo.yaml` and env-var overrides, see `.claude/guidance/moflo-yaml-reference.md`. (Building moflo itself from source is a maintainer concern — see `docs/BUILD.md`.)
|
|
58
28
|
|
|
59
29
|
---
|
|
60
30
|
|
|
@@ -64,31 +34,28 @@ When a Claude Code session starts, moflo automatically runs three background ind
|
|
|
64
34
|
|
|
65
35
|
| Indexer | Command | Namespace | What it does |
|
|
66
36
|
|---------|---------|-----------|--------------|
|
|
67
|
-
| Guidance | `npx flo-index` | `guidance` | Chunks markdown
|
|
37
|
+
| Guidance | `npx flo-index` | `guidance` | Chunks markdown, builds RAG links, generates 384-dim embeddings |
|
|
68
38
|
| Code Map | `npx flo-codemap` | `code-map` | Scans source for types, interfaces, exports, directory structure |
|
|
69
39
|
| Learning | `npx flo-learn` | `patterns` | Pattern research on codebase for cross-session learning |
|
|
70
40
|
|
|
71
41
|
These run in background and are incremental (unchanged files are skipped). Controlled by `auto_index` in `moflo.yaml`.
|
|
72
42
|
|
|
73
|
-
###
|
|
43
|
+
### Session-Start Cost Expectations
|
|
74
44
|
|
|
75
|
-
|
|
45
|
+
The launcher does more than copy helpers — it also heals the memory DB, runs embeddings migrations, recycles the daemon when the install changes, and self-heals `.claude/settings.json` hook wiring. Expected timing:
|
|
76
46
|
|
|
77
|
-
|
|
47
|
+
| Scenario | Cost | What you'll see |
|
|
48
|
+
|----------|------|-----------------|
|
|
49
|
+
| Steady-state start (no version change) | < 200 ms | Silent; no `moflo:` lines |
|
|
50
|
+
| First start after `npm install moflo` | A few seconds (one-shot) | `moflo:` lines reporting synced files, daemon recycle, manifest write |
|
|
51
|
+
| Major upgrade with embeddings migration | 30–60 s (one-shot) | Progress bar on stderr; cannot be skipped |
|
|
52
|
+
| Slow on every start | Manifest drift loop | Run `flo doctor --fix` |
|
|
78
53
|
|
|
79
|
-
|
|
80
|
-
|--------|--------|-------|
|
|
81
|
-
| `bin/` | `.claude/scripts/` | `hooks.mjs`, `session-start-launcher.mjs`, `index-guidance.mjs`, `build-embeddings.mjs`, `generate-code-map.mjs`, `semantic-search.mjs` |
|
|
82
|
-
| `bin/` | `.claude/helpers/` | `gate.cjs`, `gate-hook.mjs`, `prompt-hook.mjs`, `hook-handler.cjs` |
|
|
83
|
-
| `src/cli/.claude/helpers/` | `.claude/helpers/` | `auto-memory-hook.mjs`, `statusline.cjs`, `subagent-start.cjs`, `pre-commit`, `post-commit` |
|
|
84
|
-
|
|
85
|
-
When adding a new helper script: generate it once, save it to `bin/`, and add it to the appropriate list in `session-start-launcher.mjs`.
|
|
86
|
-
|
|
87
|
-
**The full picture.** Helper sync is one of several things the launcher does on every session start. For the complete lifecycle (DB heal, embeddings migration, daemon recycling, settings.json self-heal, etc.) see `moflo-session-start.md`. For the contract on what moflo writes into `.claude/settings.json` and how surgical hook-wiring rewrites work, see `moflo-settings-injection.md`.
|
|
54
|
+
For the contract on what moflo writes into `.claude/settings.json` and how surgical hook-wiring rewrites work, see `.claude/guidance/moflo-settings-injection.md`.
|
|
88
55
|
|
|
89
56
|
### Bundled Guidance
|
|
90
57
|
|
|
91
|
-
Moflo ships its own guidance files
|
|
58
|
+
Moflo ships its own guidance files inside the package. When installed as a dependency they are **automatically indexed** alongside the consumer project's guidance under the `guidance` namespace — agents can search for moflo system docs (swarm patterns, memory commands, etc.) without extra setup.
|
|
92
59
|
|
|
93
60
|
---
|
|
94
61
|
|
|
@@ -117,33 +84,23 @@ Moflo ships its own guidance files (in `.claude/guidance/` within the package).
|
|
|
117
84
|
|
|
118
85
|
## MCP Tools Setup
|
|
119
86
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
This gives Claude access to ~125 MCP tools (`mcp__moflo__memory_*`, `mcp__moflo__hooks_*`, `mcp__moflo__swarm_*`, `mcp__moflo__moflodb_*`, etc.) without any global installation.
|
|
87
|
+
`flo init` writes `.mcp.json` in the project root automatically (see `.claude/guidance/moflo-yaml-reference.md` for the file's content and the global-registration alternative). This gives Claude access to ~125 MCP tools (`mcp__moflo__memory_*`, `mcp__moflo__hooks_*`, `mcp__moflo__swarm_*`, `mcp__moflo__moflodb_*`, etc.) without any global installation.
|
|
123
88
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
We do not ship speculative tools. Every tool registered in `src/cli/mcp-tools/` must satisfy at least one of these:
|
|
127
|
-
|
|
128
|
-
1. Referenced as `mcp__moflo__<name>` in a skill, agent file, doc, or guidance .md
|
|
129
|
-
2. Called via `callMCPTool('<name>')` from CLI command code
|
|
130
|
-
3. On the explicit allowlist in `src/cli/__tests__/mcp-tools-drift-guard.test.ts` with a justification (e.g. "expert API for `moflodb_*` controllers" or "advertised in `moflo-init.ts` CLAUDE.md fragment")
|
|
131
|
-
|
|
132
|
-
The drift-guard test fails CI if a new tool is registered with no consumer and no allowlist entry. If you ship a tool, ship a real call site for it (or document why it has none).
|
|
89
|
+
**Every shipped MCP tool has a real consumer call site** (skill, agent, doc, CLI code, or allowlist entry with justification). The drift-guard test in `src/cli/__tests__/mcp-tools-drift-guard.test.ts` fails CI if a new tool is registered with no consumer — moflo does not ship speculative tools.
|
|
133
90
|
|
|
134
91
|
---
|
|
135
92
|
|
|
136
93
|
## Project Config (Anti-Drift Defaults)
|
|
137
94
|
|
|
138
|
-
- **Topology
|
|
139
|
-
- **Max Agents
|
|
140
|
-
- **Strategy
|
|
141
|
-
- **Consensus
|
|
142
|
-
- **Memory
|
|
143
|
-
- **HNSW
|
|
144
|
-
- **Neural
|
|
95
|
+
- **Topology:** hierarchical (prevents drift)
|
|
96
|
+
- **Max Agents:** 8 (smaller = less drift)
|
|
97
|
+
- **Strategy:** specialized (clear roles)
|
|
98
|
+
- **Consensus:** raft
|
|
99
|
+
- **Memory:** hybrid
|
|
100
|
+
- **HNSW:** Enabled
|
|
101
|
+
- **Neural:** Enabled
|
|
145
102
|
|
|
146
|
-
For the full `moflo.yaml` schema, gate toggles, model routing, and sandbox config, see
|
|
103
|
+
For the full `moflo.yaml` schema, gate toggles, model routing, and sandbox config, see `.claude/guidance/moflo-yaml-reference.md`. For the catalog of commands, agents, hooks, and consensus topologies these defaults shape, see `.claude/guidance/moflo-cli-reference.md`.
|
|
147
104
|
|
|
148
105
|
---
|
|
149
106
|
|
|
@@ -151,123 +108,49 @@ For the full `moflo.yaml` schema, gate toggles, model routing, and sandbox confi
|
|
|
151
108
|
|
|
152
109
|
### Before Starting Coding Tasks
|
|
153
110
|
|
|
154
|
-
**MCP (
|
|
111
|
+
**MCP (preferred):** `mcp__moflo__memory_search` — `query: "[task keywords]"`, `namespace: "patterns"`.
|
|
155
112
|
|
|
156
|
-
**CLI
|
|
113
|
+
**CLI fallback:** `npx flo memory search --query '[task keywords]' --namespace patterns`.
|
|
157
114
|
|
|
158
|
-
|
|
159
|
-
npx flo memory search --query '[task keywords]' --namespace patterns
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### After Completing Any Task Successfully (MCP Preferred)
|
|
115
|
+
### After Completing Any Task
|
|
163
116
|
|
|
164
117
|
| Step | MCP Tool | Key Params |
|
|
165
118
|
|------|----------|------------|
|
|
166
|
-
|
|
|
167
|
-
|
|
|
168
|
-
|
|
|
119
|
+
| Store pattern | `mcp__moflo__memory_store` | `namespace: "patterns", key: "[name]", value: "[what worked]"` |
|
|
120
|
+
| Train neural | `mcp__moflo__hooks_post-edit` | `file: "[main-file]", trainNeural: true` |
|
|
121
|
+
| Record completion | `mcp__moflo__hooks_post-task` | `taskId: "[id]", success: true, storeResults: true` |
|
|
169
122
|
|
|
170
123
|
### Continuous Improvement Triggers
|
|
171
124
|
|
|
172
|
-
| Trigger
|
|
173
|
-
|
|
174
|
-
| After major refactor
|
|
175
|
-
| After adding features
|
|
176
|
-
| After security changes | `audit`
|
|
177
|
-
| After API changes
|
|
178
|
-
| Every 5+ file changes
|
|
179
|
-
| Complex debugging
|
|
125
|
+
| Trigger | Worker | Use For |
|
|
126
|
+
|---------|--------|---------|
|
|
127
|
+
| After major refactor | `optimize` | Performance optimization |
|
|
128
|
+
| After adding features | `testgaps` | Find missing test coverage |
|
|
129
|
+
| After security changes | `audit` | Security analysis |
|
|
130
|
+
| After API changes | `document` | Update documentation |
|
|
131
|
+
| Every 5+ file changes | `map` | Update codebase map |
|
|
132
|
+
| Complex debugging | `deepdive` | Deep code analysis |
|
|
180
133
|
|
|
181
134
|
### Memory-Enhanced Development
|
|
182
135
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
- Refactoring code (search for learned patterns)
|
|
188
|
-
- Performance work (search for optimization strategies)
|
|
189
|
-
|
|
190
|
-
**ALWAYS store in memory after:**
|
|
191
|
-
|
|
192
|
-
- Solving a tricky bug (store the solution pattern)
|
|
193
|
-
- Completing a feature (store the approach)
|
|
194
|
-
- Finding a performance fix (store the optimization)
|
|
195
|
-
- Discovering a security issue (store the vulnerability pattern)
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Memory Commands Reference (MCP Preferred)
|
|
136
|
+
| Action | When |
|
|
137
|
+
|--------|------|
|
|
138
|
+
| Search memory before writing code | Starting a new feature, debugging an issue, refactoring, performance work |
|
|
139
|
+
| Store in memory after solving | Tricky bug, completed feature, perf fix, security finding |
|
|
200
140
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
**MCP:** `mcp__moflo__memory_store`
|
|
204
|
-
|
|
205
|
-
- Required: `key`, `value`
|
|
206
|
-
- Optional: `namespace` (default: "default"), `ttl`, `tags`
|
|
207
|
-
|
|
208
|
-
**CLI Fallback:**
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
npx flo memory store --key "pattern-auth" --value "JWT with refresh tokens" --namespace patterns
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### Search Data (semantic vector search)
|
|
215
|
-
|
|
216
|
-
**MCP:** `mcp__moflo__memory_search`
|
|
217
|
-
|
|
218
|
-
- Required: `query`
|
|
219
|
-
- Optional: `namespace`, `limit`, `threshold`
|
|
220
|
-
|
|
221
|
-
**CLI Fallback:**
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
npx flo memory search --query "authentication patterns" --namespace patterns --limit 5
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### List Entries
|
|
228
|
-
|
|
229
|
-
**MCP:** `mcp__moflo__memory_list`
|
|
230
|
-
|
|
231
|
-
- Optional: `namespace`, `limit`
|
|
232
|
-
|
|
233
|
-
### Retrieve Specific Entry
|
|
234
|
-
|
|
235
|
-
**MCP:** `mcp__moflo__memory_retrieve`
|
|
236
|
-
|
|
237
|
-
- Required: `key`
|
|
238
|
-
- Optional: `namespace` (default: "default")
|
|
141
|
+
For namespaces, embedding model, indexing pipeline, and writing guidance that retrieves well, see `.claude/guidance/moflo-memory-strategy.md`.
|
|
239
142
|
|
|
240
143
|
---
|
|
241
144
|
|
|
242
|
-
## Claude Code vs MCP vs CLI
|
|
243
|
-
|
|
244
|
-
### Claude Code Handles ALL EXECUTION:
|
|
245
|
-
|
|
246
|
-
- **Task tool**: Spawn and run agents concurrently
|
|
247
|
-
- File operations (Read, Write, Edit, Glob, Grep)
|
|
248
|
-
- Code generation and programming
|
|
249
|
-
- Bash commands and system operations
|
|
250
|
-
- Git operations
|
|
145
|
+
## Claude Code vs MCP vs CLI
|
|
251
146
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
|
255
|
-
|
|
256
|
-
|
|
|
257
|
-
| Agent spawn | `mcp__moflo__agent_spawn` |
|
|
258
|
-
| Memory store | `mcp__moflo__memory_store` |
|
|
259
|
-
| Memory search | `mcp__moflo__memory_search` |
|
|
260
|
-
| Hooks (all) | `mcp__moflo__hooks_<hook-name>` |
|
|
261
|
-
|
|
262
|
-
### CLI Commands (Fallback Only):
|
|
263
|
-
|
|
264
|
-
Only use CLI via Bash when MCP tools are unavailable:
|
|
265
|
-
|
|
266
|
-
```bash
|
|
267
|
-
npx flo <command> [options]
|
|
268
|
-
```
|
|
147
|
+
| Layer | Handles | Examples |
|
|
148
|
+
|-------|---------|----------|
|
|
149
|
+
| Claude Code (execution) | Spawning agents, file ops, code, bash, git | `Task`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `Bash` |
|
|
150
|
+
| MCP tools (coordination — preferred) | Swarm/agent orchestration, memory, hooks | `mcp__moflo__swarm_init`, `mcp__moflo__agent_spawn`, `mcp__moflo__memory_store`, `mcp__moflo__hooks_*` |
|
|
151
|
+
| CLI (fallback only) | Same coordination via shell when MCP unavailable | `npx flo <command> [options]` |
|
|
269
152
|
|
|
270
|
-
**
|
|
153
|
+
**Key:** MCP tools coordinate strategy; Claude Code's `Task` tool executes with real agents.
|
|
271
154
|
|
|
272
155
|
---
|
|
273
156
|
|
|
@@ -279,32 +162,31 @@ Checks: Node version (20+), Git, config validity, daemon status, memory database
|
|
|
279
162
|
|
|
280
163
|
---
|
|
281
164
|
|
|
282
|
-
## Troubleshooting
|
|
165
|
+
## Troubleshooting
|
|
283
166
|
|
|
284
167
|
| Symptom | Cause | Fix |
|
|
285
168
|
|---------|-------|-----|
|
|
286
169
|
| No MCP tools available | `.mcp.json` missing or moflo not installed | Run `npx flo init` or manually create `.mcp.json` |
|
|
287
|
-
| Memory search returns nothing | Indexer hasn't run yet | Run `npx flo-index --force`
|
|
288
|
-
| Low search quality | Guidance docs missing `**Purpose:**` lines or generic headings |
|
|
289
|
-
| Session start slow | All three indexers running | Set `auto_index.code_map: false` in `moflo.yaml` if
|
|
170
|
+
| Memory search returns nothing | Indexer hasn't run yet | Run `npx flo-index --force` |
|
|
171
|
+
| Low search quality | Guidance docs missing `**Purpose:**` lines or generic headings | See `.claude/guidance/moflo-guidance-rules.md` |
|
|
172
|
+
| Session start slow | All three indexers running | Set `auto_index.code_map: false` in `moflo.yaml` if not needed |
|
|
290
173
|
| Status line not showing | `statusline.cjs` error or `status_line.enabled: false` | Run `node .claude/helpers/statusline.cjs` to test, check `moflo.yaml` |
|
|
291
|
-
| Embeddings fail
|
|
174
|
+
| Embeddings fail offline / air-gapped | `fastembed` model cache missing | Pre-populate `~/.cache/fastembed` or set `FASTEMBED_CACHE` (see `docs/modules/embeddings.md`) |
|
|
292
175
|
| `flo` command not found | Not in PATH | Use `npx flo` or `node node_modules/moflo/bin/index-guidance.mjs` |
|
|
293
|
-
| Bundled guidance not indexed | Running inside moflo repo
|
|
176
|
+
| Bundled guidance not indexed | Running inside the moflo repo | Bundled guidance only indexes when installed as a dependency in a different project |
|
|
294
177
|
|
|
295
|
-
See
|
|
178
|
+
See `.claude/guidance/moflo-memory-strategy.md` for memory-specific troubleshooting and `.claude/guidance/moflo-spell-troubleshooting.md` for spell sandbox/network failures.
|
|
296
179
|
|
|
297
180
|
---
|
|
298
181
|
|
|
299
182
|
## See Also
|
|
300
183
|
|
|
301
|
-
- `.claude/guidance/
|
|
302
|
-
- `.claude/guidance/
|
|
303
|
-
- `.claude/guidance/
|
|
304
|
-
- `.claude/guidance/
|
|
305
|
-
- `.claude/guidance/
|
|
306
|
-
- `.claude/guidance/
|
|
307
|
-
- `.claude/guidance/
|
|
308
|
-
- `.claude/guidance/
|
|
309
|
-
- `.claude/guidance/
|
|
310
|
-
- `.claude/guidance/shipped/moflo-verbose-command-filtering.md` — Filter long verbose commands at the source; never tee-then-grep
|
|
184
|
+
- `.claude/guidance/moflo-cli-reference.md` — CLI commands, agents, hooks, hive-mind, RuVector
|
|
185
|
+
- `.claude/guidance/moflo-yaml-reference.md` — `moflo.yaml` schema, environment variables, `.mcp.json` setup
|
|
186
|
+
- `.claude/guidance/moflo-subagents.md` — Subagents memory-first protocol and store patterns
|
|
187
|
+
- `.claude/guidance/moflo-claude-swarm-cohesion.md` — Task & swarm coordination with TaskCreate/TaskUpdate
|
|
188
|
+
- `.claude/guidance/moflo-memory-strategy.md` — Database schema, namespaces, search commands, RAG linking
|
|
189
|
+
- `.claude/guidance/moflo-memorydb-maintenance.md` — Reindexing, namespace purging, recovery
|
|
190
|
+
- `.claude/guidance/moflo-settings-injection.md` — What moflo writes into `.claude/` and how surgical self-heal works
|
|
191
|
+
- `.claude/guidance/moflo-cross-platform.md` — Windows/macOS/Linux portability rules for any code change
|
|
192
|
+
- `.claude/guidance/moflo-verbose-command-filtering.md` — Filter long verbose commands at the source; never tee-then-grep
|
|
@@ -163,4 +163,4 @@ Before submitting any code change, verify:
|
|
|
163
163
|
## See Also
|
|
164
164
|
|
|
165
165
|
- `CLAUDE.md` — Consumer project checklist, build rules
|
|
166
|
-
- `.claude/guidance/
|
|
166
|
+
- `.claude/guidance/moflo-source-hygiene.md` — Source code hygiene rules
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
## Transient Errors Must Use Retry + Circuit Breaker
|
|
47
47
|
|
|
48
|
-
**Wrap every transient-failure-capable operation in a retry helper with exponential backoff and a circuit breaker.** One-shot try-and-log on a transient class strands users in partial-state loops
|
|
48
|
+
**Wrap every transient-failure-capable operation in a retry helper with exponential backoff and a circuit breaker.** One-shot try-and-log on a transient class strands users in partial-state loops — a representative incident: a Windows file-lock + AV scan race left stale `.claude/helpers/gate.cjs` across 8+ moflo bumps because each per-version sync swallowed the EBUSY without retrying.
|
|
49
49
|
|
|
50
50
|
| Element | Default |
|
|
51
51
|
|---------|---------|
|
|
@@ -70,5 +70,5 @@ if (!result.ok) syncFailures.push({ key, message: `${errMessage(result.err)} (re
|
|
|
70
70
|
|
|
71
71
|
## See Also
|
|
72
72
|
|
|
73
|
-
- `.claude/guidance/
|
|
74
|
-
- `.claude/guidance/
|
|
73
|
+
- `.claude/guidance/moflo-source-hygiene.md` — General source code standards
|
|
74
|
+
- `.claude/guidance/moflo-cross-platform.md` — Cross-platform rules
|
|
@@ -74,13 +74,23 @@ TaskCreate({
|
|
|
74
74
|
|
|
75
75
|
## 5. Keep Files Under 500 Lines
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
**The 500-line cap applies to every `.claude/guidance/**/*.md` file AND every `.claude/skills/*/SKILL.md` entry file.** The same RAG/attention math applies to both:
|
|
78
78
|
|
|
79
|
-
- RAG chunking splits
|
|
79
|
+
- RAG chunking splits long files, and chunks lose cross-section context
|
|
80
80
|
- Claude deprioritizes content deep in a long document
|
|
81
81
|
- Competing chunks from the same file dilute search relevance
|
|
82
|
+
- For SKILL.md, the **entire file is loaded into context on every invocation** — every extra line is a per-invocation token cost across all consumers
|
|
82
83
|
|
|
83
|
-
If a doc exceeds 500 lines, split by concern
|
|
84
|
+
If a doc exceeds 500 lines, split by concern. Two patterns:
|
|
85
|
+
|
|
86
|
+
| Pattern | Where it fits | Example |
|
|
87
|
+
|---------|---------------|---------|
|
|
88
|
+
| **Sibling files** (guidance) | Topical split — each file owns one concern | `moflo-spell-engine.md` + `moflo-spell-runner.md` + `moflo-spell-troubleshooting.md` |
|
|
89
|
+
| **Progressive disclosure** (skills) | Entry SKILL.md links to companions in the same skill directory | `spell-builder/SKILL.md` (entry) + `architecture.md` + `permissions.md` + `preflight.md` (companions) |
|
|
90
|
+
|
|
91
|
+
Companion files are NOT auto-loaded — Claude reads them only when the SKILL.md entry directs it to. This keeps the per-invocation cost low while preserving the depth.
|
|
92
|
+
|
|
93
|
+
A gating test (`skill-and-guidance-size-drift.test.ts`) enforces the cap and will fail CI if a guidance doc or SKILL.md entry exceeds 500 lines. Companion files inside a skill directory are exempt because they only load on demand.
|
|
84
94
|
|
|
85
95
|
---
|
|
86
96
|
|
|
@@ -137,8 +147,8 @@ Use relative names (not absolute paths) so the links work across project context
|
|
|
137
147
|
|
|
138
148
|
## See Also
|
|
139
149
|
|
|
140
|
-
- `.claude/guidance/
|
|
141
|
-
- `.claude/guidance/
|
|
142
|
-
- `.claude/guidance/
|
|
143
|
-
- `.claude/guidance/
|
|
150
|
+
- `.claude/guidance/moflo-memory-strategy.md` — Companion rules on namespaces, RAG indexing, and search patterns the data feeds
|
|
151
|
+
- `.claude/guidance/moflo-task-icons.md` — UX rule for `TaskCreate` and `Agent` description fields (ICON + [Role])
|
|
152
|
+
- `.claude/guidance/moflo-user-facing-language.md` — How to phrase any text shown to end users (plain risk-level language, no jargon)
|
|
153
|
+
- `.claude/guidance/moflo-subagents.md` — Memory-first protocol any guidance you write should reinforce
|
|
144
154
|
- `.claude/skills/guidance/SKILL.md` — `/guidance` skill that helps you author or audit guidance against these rules
|