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.
- package/.claude/agents/browser/browser-agent.yaml +182 -182
- package/.claude/agents/core/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/database-specialist.yaml +21 -21
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- package/.claude/agents/github/code-review-swarm.md +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +634 -634
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/index.yaml +17 -17
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/project-coordinator.yaml +15 -15
- package/.claude/agents/python-specialist.yaml +21 -21
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/security-auditor.yaml +20 -20
- package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/migration-plan.md +745 -745
- package/.claude/agents/typescript-specialist.yaml +21 -21
- package/.claude/checkpoints/1767754460.json +8 -8
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/guidance/moflo-bootstrap.md +126 -126
- package/.claude/guidance/shipped/agent-bootstrap.md +126 -126
- package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
- package/.claude/guidance/shipped/memory-strategy.md +204 -204
- package/.claude/guidance/shipped/moflo.md +668 -653
- package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
- package/.claude/helpers/intelligence.cjs +207 -207
- package/.claude/helpers/statusline.cjs +851 -851
- package/.claude/settings.local.json +18 -0
- package/.claude/skills/fl/SKILL.md +583 -583
- package/.claude/skills/flo/SKILL.md +583 -583
- package/.claude/skills/github-code-review/SKILL.md +1140 -1140
- package/.claude/skills/github-multi-repo/SKILL.md +874 -874
- package/.claude/skills/github-project-management/SKILL.md +1277 -1277
- package/.claude/skills/github-release-management/SKILL.md +1081 -1081
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
- package/.claude/skills/swarm-advanced/SKILL.md +973 -973
- package/.claude/workflow-state.json +4 -4
- package/LICENSE +21 -21
- package/README.md +698 -685
- package/bin/cli.js +0 -0
- package/bin/gate-hook.mjs +50 -50
- package/bin/gate.cjs +138 -138
- package/bin/generate-code-map.mjs +775 -775
- package/bin/hook-handler.cjs +83 -83
- package/bin/hooks.mjs +656 -656
- package/bin/index-guidance.mjs +892 -892
- package/bin/index-tests.mjs +709 -709
- package/bin/lib/process-manager.mjs +243 -243
- package/bin/lib/registry-cleanup.cjs +41 -41
- package/bin/prompt-hook.mjs +72 -72
- package/bin/semantic-search.mjs +472 -472
- package/bin/session-start-launcher.mjs +238 -238
- package/bin/setup-project.mjs +250 -250
- package/package.json +123 -123
- package/src/@claude-flow/cli/README.md +452 -452
- package/src/@claude-flow/cli/bin/cli.js +180 -180
- package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
- package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
- package/src/@claude-flow/cli/dist/src/commands/doctor.js +18 -2
- package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
- package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
- package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
- package/src/@claude-flow/cli/dist/src/commands/init.js +3 -8
- package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
- package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
- package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +3 -0
- package/src/@claude-flow/cli/dist/src/config/moflo-config.js +101 -91
- package/src/@claude-flow/cli/dist/src/index.d.ts +5 -0
- package/src/@claude-flow/cli/dist/src/index.js +44 -0
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -43
- package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
- package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
- package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
- package/src/@claude-flow/cli/dist/src/init/moflo-init.js +140 -140
- package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
- package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
- package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +584 -0
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +14 -0
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
- package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/src/@claude-flow/cli/package.json +1 -1
- package/src/@claude-flow/guidance/README.md +1195 -1195
- package/src/@claude-flow/guidance/package.json +198 -198
- package/src/@claude-flow/memory/README.md +587 -587
- package/src/@claude-flow/memory/dist/agentdb-backend.js +26 -26
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +27 -27
- package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +245 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.js +569 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +8 -0
- package/src/@claude-flow/memory/dist/hybrid-backend.test.js +320 -0
- package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +121 -0
- package/src/@claude-flow/memory/dist/sqlite-backend.js +572 -0
- package/src/@claude-flow/memory/dist/sqljs-backend.js +26 -26
- package/src/@claude-flow/memory/package.json +44 -44
- package/src/@claude-flow/shared/README.md +323 -323
- package/src/@claude-flow/shared/dist/events/event-store.js +31 -31
- package/src/README.md +493 -493
|
@@ -1,204 +1,204 @@
|
|
|
1
|
-
# Memory & Semantic Search Strategy
|
|
2
|
-
|
|
3
|
-
**Purpose:** How memory, embeddings, and semantic search work in moflo. Reference when debugging memory issues, understanding the search pipeline, or configuring memory for a consumer project.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Architecture Overview
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
Source Files (.claude/guidance/, docs/)
|
|
11
|
-
|
|
|
12
|
-
v
|
|
13
|
-
index-guidance.mjs (chunking, RAG linking)
|
|
14
|
-
|
|
|
15
|
-
v
|
|
16
|
-
.swarm/memory.db (SQLite - entries + metadata)
|
|
17
|
-
|
|
|
18
|
-
v
|
|
19
|
-
build-embeddings.mjs (384-dim neural or hash vectors)
|
|
20
|
-
|
|
|
21
|
-
v
|
|
22
|
-
Search layer (cosine similarity - MCP, CLI, or script)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Key Files
|
|
28
|
-
|
|
29
|
-
| File | Purpose |
|
|
30
|
-
|------|---------|
|
|
31
|
-
| `.swarm/memory.db` | SQLite database with all entries, embeddings, metadata |
|
|
32
|
-
| `.swarm/code-map-hash.txt` | SHA-256 hash for incremental code map skip |
|
|
33
|
-
| `.claude-flow/neural/patterns.json` | ReasoningBank learned patterns |
|
|
34
|
-
| `bin/build-embeddings.mjs` | Generates 384-dim embeddings |
|
|
35
|
-
| `bin/index-guidance.mjs` | Indexes guidance files with RAG linking |
|
|
36
|
-
| `bin/generate-code-map.mjs` | Generates structural code map (projects, dirs, types, interfaces) |
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Embedding Strategy
|
|
41
|
-
|
|
42
|
-
**Primary model:** `Xenova/all-MiniLM-L6-v2` (384-dim, neural — used by `build-embeddings.mjs`)
|
|
43
|
-
**Fallback model:** `domain-aware-hash-v1` (384-dim, hash — used when Transformers.js unavailable)
|
|
44
|
-
|
|
45
|
-
**Critical rule:** Query embeddings MUST match stored embeddings. Both the search scripts and MCP tools auto-detect the stored model and generate matching query vectors. Cross-model cosine similarity is meaningless.
|
|
46
|
-
|
|
47
|
-
**Neural embeddings (primary):**
|
|
48
|
-
- Uses `@xenova/transformers` with ONNX WASM runtime
|
|
49
|
-
- True semantic understanding — "soft delete" matches "mark as deleted" without keyword overlap
|
|
50
|
-
- ~3s for 1000 entries, loaded lazily and cached
|
|
51
|
-
|
|
52
|
-
**Domain-aware hash (fallback):**
|
|
53
|
-
- 12 domain clusters with project-specific terms
|
|
54
|
-
- SimHash-style word encoding + bigram/trigram features
|
|
55
|
-
- Good keyword-level matching, misses semantic paraphrases
|
|
56
|
-
- No external dependencies — always available, <1s for 1000 entries
|
|
57
|
-
|
|
58
|
-
See `guidance-memory-strategy.md` for full embedding pipeline details.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Search Commands
|
|
63
|
-
|
|
64
|
-
All methods auto-detect the stored embedding model and generate matching query vectors:
|
|
65
|
-
|
|
66
|
-
**MCP (Preferred):** `mcp__moflo__memory_search` — `query: "your query", namespace: "guidance"`
|
|
67
|
-
|
|
68
|
-
**CLI (Fallback):**
|
|
69
|
-
```bash
|
|
70
|
-
npx flo memory search --query "your query" --namespace guidance
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
**Search options:**
|
|
74
|
-
|
|
75
|
-
| Flag | Default | Purpose |
|
|
76
|
-
|------|---------|---------|
|
|
77
|
-
| `--namespace` | all | Filter to specific namespace |
|
|
78
|
-
| `--limit` | 5 | Number of results |
|
|
79
|
-
| `--threshold` | 0.3 | Minimum similarity score |
|
|
80
|
-
| `--json` | false | Output as JSON |
|
|
81
|
-
|
|
82
|
-
### Code Map Search (for codebase navigation)
|
|
83
|
-
|
|
84
|
-
When you need to find where a type, service, entity, or component lives — search `code-map` BEFORE using Glob/Grep:
|
|
85
|
-
|
|
86
|
-
**MCP:** `mcp__moflo__memory_search` — `query: "payment service", namespace: "code-map"`
|
|
87
|
-
|
|
88
|
-
**What code-map contains:**
|
|
89
|
-
|
|
90
|
-
| Chunk prefix | What it answers |
|
|
91
|
-
|--------------|-----------------|
|
|
92
|
-
| `project:` | "What's in the api project?" |
|
|
93
|
-
| `dir:` | "What types are in the entities directory?" |
|
|
94
|
-
| `iface-map:` | "What implements IPaymentService?" |
|
|
95
|
-
| `type-index:` | "Where is Service defined?" |
|
|
96
|
-
|
|
97
|
-
**Regenerate:**
|
|
98
|
-
```bash
|
|
99
|
-
npx flo-codemap # Incremental (skips if unchanged)
|
|
100
|
-
npx flo-codemap --force # Full rebuild
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Database Schema
|
|
106
|
-
|
|
107
|
-
```sql
|
|
108
|
-
memory_entries (
|
|
109
|
-
id TEXT PRIMARY KEY,
|
|
110
|
-
key TEXT NOT NULL, -- e.g., "chunk-guidance-core-0"
|
|
111
|
-
namespace TEXT, -- "guidance", "patterns", "default"
|
|
112
|
-
content TEXT, -- Full text content
|
|
113
|
-
embedding TEXT, -- JSON array of 384 floats
|
|
114
|
-
embedding_model TEXT, -- "Xenova/all-MiniLM-L6-v2" or "domain-aware-hash-v1"
|
|
115
|
-
embedding_dimensions INTEGER,-- 384
|
|
116
|
-
metadata TEXT, -- JSON: parentDoc, chunkTitle, prevChunk, nextChunk, siblings
|
|
117
|
-
tags TEXT, -- JSON array
|
|
118
|
-
status TEXT, -- "active"
|
|
119
|
-
created_at INTEGER,
|
|
120
|
-
updated_at INTEGER
|
|
121
|
-
)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## RAG Linking (metadata fields)
|
|
127
|
-
|
|
128
|
-
Each chunk includes navigation metadata:
|
|
129
|
-
|
|
130
|
-
| Field | Purpose |
|
|
131
|
-
|-------|---------|
|
|
132
|
-
| `parentDoc` | Key of full document (e.g., `doc-guidance-core`) |
|
|
133
|
-
| `prevChunk` | Previous chunk key for sequential reading |
|
|
134
|
-
| `nextChunk` | Next chunk key |
|
|
135
|
-
| `siblings` | All chunk keys from same document |
|
|
136
|
-
| `hierarchicalParent` | H2 parent for H3 chunks |
|
|
137
|
-
| `hierarchicalChildren` | H3 children for H2 chunks |
|
|
138
|
-
| `contextBefore` | Overlapping text from previous chunk (20%) |
|
|
139
|
-
| `contextAfter` | Overlapping text from next chunk (20%) |
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## Namespaces
|
|
144
|
-
|
|
145
|
-
| Namespace | Content | Notes |
|
|
146
|
-
|-----------|---------|-------|
|
|
147
|
-
| `guidance` | Indexed guidance and docs | Largest — includes bundled moflo guidance |
|
|
148
|
-
| `code-map` | Structural codebase index (projects, directories, types, interfaces) | Search BEFORE Glob/Grep for navigation |
|
|
149
|
-
| `patterns` | Learned patterns from sessions | Grows over time |
|
|
150
|
-
| `default` | Misc stored data | Small |
|
|
151
|
-
|
|
152
|
-
---
|
|
153
|
-
|
|
154
|
-
## Session Start Indexing
|
|
155
|
-
|
|
156
|
-
On every session start, moflo automatically runs three background indexers:
|
|
157
|
-
|
|
158
|
-
| Indexer | Command | Namespace | What it does |
|
|
159
|
-
|---------|---------|-----------|--------------|
|
|
160
|
-
| Guidance | `npx flo-index` | `guidance` | Chunks markdown, builds RAG links, generates embeddings |
|
|
161
|
-
| Code Map | `npx flo-codemap` | `code-map` | Scans source for types, interfaces, directories |
|
|
162
|
-
| Learning | `npx flo-learn` | `patterns` | Pattern research on codebase |
|
|
163
|
-
|
|
164
|
-
These are configured in the `SessionStart` hook in `.claude/settings.json` (set up by `npx flo init`).
|
|
165
|
-
|
|
166
|
-
Indexing is incremental by default — files whose content hash hasn't changed are skipped. Use `--force` to reindex everything.
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Troubleshooting
|
|
171
|
-
|
|
172
|
-
| Symptom | Cause | Fix |
|
|
173
|
-
|---------|-------|-----|
|
|
174
|
-
| Search returns irrelevant results | Query/stored embedding model mismatch | Auto-detected now; verify with `--verbose` flag |
|
|
175
|
-
| Low similarity scores | Query doesn't match domain terms | Include domain keywords in query |
|
|
176
|
-
| "Vector: No" in list | Entry lacks embedding | Run `npx flo-index --force` |
|
|
177
|
-
| Entries not found after adding file | Indexer hasn't run yet | Run `npx flo-index` or restart session |
|
|
178
|
-
| Bundled moflo guidance not indexed | Not installed as dependency | Only indexes when `node_modules/moflo/.claude/guidance/` exists |
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## Verification Commands
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
# Test semantic search
|
|
186
|
-
npx flo memory search --query "database entity pattern" --namespace guidance
|
|
187
|
-
|
|
188
|
-
# Force reindex all guidance
|
|
189
|
-
npx flo-index --force
|
|
190
|
-
|
|
191
|
-
# Force rebuild embeddings
|
|
192
|
-
npx flo-index --force
|
|
193
|
-
|
|
194
|
-
# Check entry count (requires better-sqlite3 or sql.js)
|
|
195
|
-
npx flo memory list --namespace guidance --limit 0
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## See Also
|
|
201
|
-
|
|
202
|
-
- `.claude/guidance/guidance-memory-strategy.md` - RAG system tuning guide
|
|
203
|
-
- `.claude/guidance/agent-bootstrap.md` - Subagent bootstrap guide
|
|
204
|
-
- `.claude/guidance/moflo.md` - Full CLI/MCP reference
|
|
1
|
+
# Memory & Semantic Search Strategy
|
|
2
|
+
|
|
3
|
+
**Purpose:** How memory, embeddings, and semantic search work in moflo. Reference when debugging memory issues, understanding the search pipeline, or configuring memory for a consumer project.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Architecture Overview
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Source Files (.claude/guidance/, docs/)
|
|
11
|
+
|
|
|
12
|
+
v
|
|
13
|
+
index-guidance.mjs (chunking, RAG linking)
|
|
14
|
+
|
|
|
15
|
+
v
|
|
16
|
+
.swarm/memory.db (SQLite - entries + metadata)
|
|
17
|
+
|
|
|
18
|
+
v
|
|
19
|
+
build-embeddings.mjs (384-dim neural or hash vectors)
|
|
20
|
+
|
|
|
21
|
+
v
|
|
22
|
+
Search layer (cosine similarity - MCP, CLI, or script)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Key Files
|
|
28
|
+
|
|
29
|
+
| File | Purpose |
|
|
30
|
+
|------|---------|
|
|
31
|
+
| `.swarm/memory.db` | SQLite database with all entries, embeddings, metadata |
|
|
32
|
+
| `.swarm/code-map-hash.txt` | SHA-256 hash for incremental code map skip |
|
|
33
|
+
| `.claude-flow/neural/patterns.json` | ReasoningBank learned patterns |
|
|
34
|
+
| `bin/build-embeddings.mjs` | Generates 384-dim embeddings |
|
|
35
|
+
| `bin/index-guidance.mjs` | Indexes guidance files with RAG linking |
|
|
36
|
+
| `bin/generate-code-map.mjs` | Generates structural code map (projects, dirs, types, interfaces) |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Embedding Strategy
|
|
41
|
+
|
|
42
|
+
**Primary model:** `Xenova/all-MiniLM-L6-v2` (384-dim, neural — used by `build-embeddings.mjs`)
|
|
43
|
+
**Fallback model:** `domain-aware-hash-v1` (384-dim, hash — used when Transformers.js unavailable)
|
|
44
|
+
|
|
45
|
+
**Critical rule:** Query embeddings MUST match stored embeddings. Both the search scripts and MCP tools auto-detect the stored model and generate matching query vectors. Cross-model cosine similarity is meaningless.
|
|
46
|
+
|
|
47
|
+
**Neural embeddings (primary):**
|
|
48
|
+
- Uses `@xenova/transformers` with ONNX WASM runtime
|
|
49
|
+
- True semantic understanding — "soft delete" matches "mark as deleted" without keyword overlap
|
|
50
|
+
- ~3s for 1000 entries, loaded lazily and cached
|
|
51
|
+
|
|
52
|
+
**Domain-aware hash (fallback):**
|
|
53
|
+
- 12 domain clusters with project-specific terms
|
|
54
|
+
- SimHash-style word encoding + bigram/trigram features
|
|
55
|
+
- Good keyword-level matching, misses semantic paraphrases
|
|
56
|
+
- No external dependencies — always available, <1s for 1000 entries
|
|
57
|
+
|
|
58
|
+
See `guidance-memory-strategy.md` for full embedding pipeline details.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Search Commands
|
|
63
|
+
|
|
64
|
+
All methods auto-detect the stored embedding model and generate matching query vectors:
|
|
65
|
+
|
|
66
|
+
**MCP (Preferred):** `mcp__moflo__memory_search` — `query: "your query", namespace: "guidance"`
|
|
67
|
+
|
|
68
|
+
**CLI (Fallback):**
|
|
69
|
+
```bash
|
|
70
|
+
npx flo memory search --query "your query" --namespace guidance
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Search options:**
|
|
74
|
+
|
|
75
|
+
| Flag | Default | Purpose |
|
|
76
|
+
|------|---------|---------|
|
|
77
|
+
| `--namespace` | all | Filter to specific namespace |
|
|
78
|
+
| `--limit` | 5 | Number of results |
|
|
79
|
+
| `--threshold` | 0.3 | Minimum similarity score |
|
|
80
|
+
| `--json` | false | Output as JSON |
|
|
81
|
+
|
|
82
|
+
### Code Map Search (for codebase navigation)
|
|
83
|
+
|
|
84
|
+
When you need to find where a type, service, entity, or component lives — search `code-map` BEFORE using Glob/Grep:
|
|
85
|
+
|
|
86
|
+
**MCP:** `mcp__moflo__memory_search` — `query: "payment service", namespace: "code-map"`
|
|
87
|
+
|
|
88
|
+
**What code-map contains:**
|
|
89
|
+
|
|
90
|
+
| Chunk prefix | What it answers |
|
|
91
|
+
|--------------|-----------------|
|
|
92
|
+
| `project:` | "What's in the api project?" |
|
|
93
|
+
| `dir:` | "What types are in the entities directory?" |
|
|
94
|
+
| `iface-map:` | "What implements IPaymentService?" |
|
|
95
|
+
| `type-index:` | "Where is Service defined?" |
|
|
96
|
+
|
|
97
|
+
**Regenerate:**
|
|
98
|
+
```bash
|
|
99
|
+
npx flo-codemap # Incremental (skips if unchanged)
|
|
100
|
+
npx flo-codemap --force # Full rebuild
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Database Schema
|
|
106
|
+
|
|
107
|
+
```sql
|
|
108
|
+
memory_entries (
|
|
109
|
+
id TEXT PRIMARY KEY,
|
|
110
|
+
key TEXT NOT NULL, -- e.g., "chunk-guidance-core-0"
|
|
111
|
+
namespace TEXT, -- "guidance", "patterns", "default"
|
|
112
|
+
content TEXT, -- Full text content
|
|
113
|
+
embedding TEXT, -- JSON array of 384 floats
|
|
114
|
+
embedding_model TEXT, -- "Xenova/all-MiniLM-L6-v2" or "domain-aware-hash-v1"
|
|
115
|
+
embedding_dimensions INTEGER,-- 384
|
|
116
|
+
metadata TEXT, -- JSON: parentDoc, chunkTitle, prevChunk, nextChunk, siblings
|
|
117
|
+
tags TEXT, -- JSON array
|
|
118
|
+
status TEXT, -- "active"
|
|
119
|
+
created_at INTEGER,
|
|
120
|
+
updated_at INTEGER
|
|
121
|
+
)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## RAG Linking (metadata fields)
|
|
127
|
+
|
|
128
|
+
Each chunk includes navigation metadata:
|
|
129
|
+
|
|
130
|
+
| Field | Purpose |
|
|
131
|
+
|-------|---------|
|
|
132
|
+
| `parentDoc` | Key of full document (e.g., `doc-guidance-core`) |
|
|
133
|
+
| `prevChunk` | Previous chunk key for sequential reading |
|
|
134
|
+
| `nextChunk` | Next chunk key |
|
|
135
|
+
| `siblings` | All chunk keys from same document |
|
|
136
|
+
| `hierarchicalParent` | H2 parent for H3 chunks |
|
|
137
|
+
| `hierarchicalChildren` | H3 children for H2 chunks |
|
|
138
|
+
| `contextBefore` | Overlapping text from previous chunk (20%) |
|
|
139
|
+
| `contextAfter` | Overlapping text from next chunk (20%) |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Namespaces
|
|
144
|
+
|
|
145
|
+
| Namespace | Content | Notes |
|
|
146
|
+
|-----------|---------|-------|
|
|
147
|
+
| `guidance` | Indexed guidance and docs | Largest — includes bundled moflo guidance |
|
|
148
|
+
| `code-map` | Structural codebase index (projects, directories, types, interfaces) | Search BEFORE Glob/Grep for navigation |
|
|
149
|
+
| `patterns` | Learned patterns from sessions | Grows over time |
|
|
150
|
+
| `default` | Misc stored data | Small |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Session Start Indexing
|
|
155
|
+
|
|
156
|
+
On every session start, moflo automatically runs three background indexers:
|
|
157
|
+
|
|
158
|
+
| Indexer | Command | Namespace | What it does |
|
|
159
|
+
|---------|---------|-----------|--------------|
|
|
160
|
+
| Guidance | `npx flo-index` | `guidance` | Chunks markdown, builds RAG links, generates embeddings |
|
|
161
|
+
| Code Map | `npx flo-codemap` | `code-map` | Scans source for types, interfaces, directories |
|
|
162
|
+
| Learning | `npx flo-learn` | `patterns` | Pattern research on codebase |
|
|
163
|
+
|
|
164
|
+
These are configured in the `SessionStart` hook in `.claude/settings.json` (set up by `npx flo init`).
|
|
165
|
+
|
|
166
|
+
Indexing is incremental by default — files whose content hash hasn't changed are skipped. Use `--force` to reindex everything.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Troubleshooting
|
|
171
|
+
|
|
172
|
+
| Symptom | Cause | Fix |
|
|
173
|
+
|---------|-------|-----|
|
|
174
|
+
| Search returns irrelevant results | Query/stored embedding model mismatch | Auto-detected now; verify with `--verbose` flag |
|
|
175
|
+
| Low similarity scores | Query doesn't match domain terms | Include domain keywords in query |
|
|
176
|
+
| "Vector: No" in list | Entry lacks embedding | Run `npx flo-index --force` |
|
|
177
|
+
| Entries not found after adding file | Indexer hasn't run yet | Run `npx flo-index` or restart session |
|
|
178
|
+
| Bundled moflo guidance not indexed | Not installed as dependency | Only indexes when `node_modules/moflo/.claude/guidance/` exists |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Verification Commands
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# Test semantic search
|
|
186
|
+
npx flo memory search --query "database entity pattern" --namespace guidance
|
|
187
|
+
|
|
188
|
+
# Force reindex all guidance
|
|
189
|
+
npx flo-index --force
|
|
190
|
+
|
|
191
|
+
# Force rebuild embeddings
|
|
192
|
+
npx flo-index --force
|
|
193
|
+
|
|
194
|
+
# Check entry count (requires better-sqlite3 or sql.js)
|
|
195
|
+
npx flo memory list --namespace guidance --limit 0
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## See Also
|
|
201
|
+
|
|
202
|
+
- `.claude/guidance/guidance-memory-strategy.md` - RAG system tuning guide
|
|
203
|
+
- `.claude/guidance/agent-bootstrap.md` - Subagent bootstrap guide
|
|
204
|
+
- `.claude/guidance/moflo.md` - Full CLI/MCP reference
|