purecontext-mcp 1.1.1 → 1.1.2
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/package.json +1 -1
- package/docs/dev/API_STABILITY.md +0 -319
- package/docs/dev/DECISIONS.md +0 -22
- package/docs/dev/DOCUMENTATION_PLAN.md +0 -113
- package/docs/dev/PHASE10_TASKS.md +0 -476
- package/docs/dev/PHASE11_TASKS.md +0 -385
- package/docs/dev/PHASE12_TASKS.md +0 -335
- package/docs/dev/PHASE13_TASKS.md +0 -381
- package/docs/dev/PHASE14_TASKS.md +0 -371
- package/docs/dev/PHASE15_TASKS.md +0 -256
- package/docs/dev/PHASE16_TASKS.md +0 -314
- package/docs/dev/PHASE17_TASKS.md +0 -321
- package/docs/dev/PHASE18_TASKS.md +0 -345
- package/docs/dev/PHASE19_TASKS.md +0 -261
- package/docs/dev/PHASE1_TASKS.md +0 -443
- package/docs/dev/PHASE20_TASKS.md +0 -280
- package/docs/dev/PHASE21_TASKS.md +0 -355
- package/docs/dev/PHASE22_TASKS.md +0 -371
- package/docs/dev/PHASE23_TASKS.md +0 -274
- package/docs/dev/PHASE24_TASKS.md +0 -326
- package/docs/dev/PHASE25_TASKS.md +0 -452
- package/docs/dev/PHASE26_TASKS.md +0 -253
- package/docs/dev/PHASE27_TASKS.md +0 -410
- package/docs/dev/PHASE2_TASKS.md +0 -328
- package/docs/dev/PHASE3_TASKS.md +0 -571
- package/docs/dev/PHASE4_TASKS.md +0 -531
- package/docs/dev/PHASE5_TASKS.md +0 -835
- package/docs/dev/PHASE6_TASKS.md +0 -347
- package/docs/dev/PHASE7_TASKS.md +0 -257
- package/docs/dev/PHASE8_TASKS.md +0 -299
- package/docs/dev/PHASE9_TASKS.md +0 -320
- package/docs/dev/PureContext_MCP_PRD_v1.0.docx +0 -0
- package/docs/dev/SELF_HOSTING.md +0 -142
- package/docs/dev/TEAM_SETUP.md +0 -316
- package/docs/dev/TELEMETRY.md +0 -99
- package/docs/dev/feature-analysis.md +0 -305
- package/docs/dev/phase-1-notes.md +0 -3
package/package.json
CHANGED
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
# PureContext MCP — API Stability Contract
|
|
2
|
-
|
|
3
|
-
**Version:** 1.0.0
|
|
4
|
-
**Date:** 2026-04-26
|
|
5
|
-
|
|
6
|
-
This document defines which parts of the PureContext MCP interface are stable public API and what change policy applies to each.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Stability Policy
|
|
11
|
-
|
|
12
|
-
> "Tool names, required parameters, and top-level response fields will not change in 1.x.
|
|
13
|
-
> Optional parameters and new response fields may be added in minor releases."
|
|
14
|
-
|
|
15
|
-
| Change type | Version impact |
|
|
16
|
-
|-------------|---------------|
|
|
17
|
-
| Remove or rename a tool | 2.0.0 (major) |
|
|
18
|
-
| Remove or rename a required parameter | 2.0.0 (major) |
|
|
19
|
-
| Remove a top-level response field | 2.0.0 (major) |
|
|
20
|
-
| Change the type or semantics of a stable field | 2.0.0 (major) |
|
|
21
|
-
| Add a new tool | 1.x.0 (minor) |
|
|
22
|
-
| Add an optional parameter | 1.x.0 (minor) |
|
|
23
|
-
| Add a new response field | 1.x.0 (minor) |
|
|
24
|
-
| Bug fix with no API surface change | 1.0.x (patch) |
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Stable Tools
|
|
29
|
-
|
|
30
|
-
### `index_folder`
|
|
31
|
-
|
|
32
|
-
Indexes a project directory. Discovers source files, parses symbols and imports, builds the dependency graph.
|
|
33
|
-
|
|
34
|
-
**Required parameters:**
|
|
35
|
-
| Parameter | Type | Description |
|
|
36
|
-
|-----------|------|-------------|
|
|
37
|
-
| `path` | `string` | Absolute path to the project root |
|
|
38
|
-
|
|
39
|
-
**Optional parameters:**
|
|
40
|
-
| Parameter | Type | Description |
|
|
41
|
-
|-----------|------|-------------|
|
|
42
|
-
| `force` | `boolean` | Re-index even if content hashes are unchanged |
|
|
43
|
-
|
|
44
|
-
**Stable response fields:**
|
|
45
|
-
| Field | Type | Description |
|
|
46
|
-
|-------|------|-------------|
|
|
47
|
-
| `repoId` | `string` | 16-char hex repo identifier (deterministic) |
|
|
48
|
-
| `filesIndexed` | `number` | Number of files processed |
|
|
49
|
-
| `symbolsExtracted` | `number` | Total symbols found |
|
|
50
|
-
| `durationMs` | `number` | Wall-clock time for the indexing run |
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
### `resolve_repo`
|
|
55
|
-
|
|
56
|
-
Resolves a local path to its `repoId`. Reports whether the project has been indexed.
|
|
57
|
-
|
|
58
|
-
**Required parameters:**
|
|
59
|
-
| Parameter | Type | Description |
|
|
60
|
-
|-----------|------|-------------|
|
|
61
|
-
| `path` | `string` | Absolute path to the project root |
|
|
62
|
-
|
|
63
|
-
**Stable response fields:**
|
|
64
|
-
| Field | Type | Description |
|
|
65
|
-
|-------|------|-------------|
|
|
66
|
-
| `repoId` | `string` | 16-char hex repo identifier, or `null` if not indexed |
|
|
67
|
-
| `indexed` | `boolean` | Whether the project is currently indexed |
|
|
68
|
-
| `lastIndexed` | `string \| null` | ISO 8601 timestamp of last index run |
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
### `list_repos`
|
|
73
|
-
|
|
74
|
-
Lists all indexed repositories.
|
|
75
|
-
|
|
76
|
-
**Required parameters:** none
|
|
77
|
-
|
|
78
|
-
**Stable response fields:**
|
|
79
|
-
| Field | Type | Description |
|
|
80
|
-
|-------|------|-------------|
|
|
81
|
-
| `repos` | `RepoSummary[]` | Array of indexed repo summaries |
|
|
82
|
-
| `repos[].repoId` | `string` | 16-char hex identifier |
|
|
83
|
-
| `repos[].path` | `string` | Absolute path to project root |
|
|
84
|
-
| `repos[].filesIndexed` | `number` | File count at last index |
|
|
85
|
-
| `repos[].lastIndexed` | `string` | ISO 8601 timestamp |
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
### `search_symbols`
|
|
90
|
-
|
|
91
|
-
Searches symbols by name fragment. Returns signatures and summaries without source code.
|
|
92
|
-
|
|
93
|
-
**Required parameters:**
|
|
94
|
-
| Parameter | Type | Description |
|
|
95
|
-
|-----------|------|-------------|
|
|
96
|
-
| `repoId` | `string` | Target repository |
|
|
97
|
-
| `query` | `string` | Name fragment or FTS5 query |
|
|
98
|
-
|
|
99
|
-
**Optional parameters:**
|
|
100
|
-
| Parameter | Type | Description |
|
|
101
|
-
|-----------|------|-------------|
|
|
102
|
-
| `kind` | `SymbolKind` | Filter by symbol kind |
|
|
103
|
-
| `filePath` | `string` | Filter to a specific file |
|
|
104
|
-
| `limit` | `number` | Max results (default: 20) |
|
|
105
|
-
|
|
106
|
-
**Stable response fields:**
|
|
107
|
-
| Field | Type | Description |
|
|
108
|
-
|-------|------|-------------|
|
|
109
|
-
| `symbols` | `SymbolSummary[]` | Matched symbols |
|
|
110
|
-
| `symbols[].id` | `string` | Deterministic symbol ID |
|
|
111
|
-
| `symbols[].name` | `string` | Symbol name |
|
|
112
|
-
| `symbols[].kind` | `string` | Symbol kind |
|
|
113
|
-
| `symbols[].filePath` | `string` | Relative file path |
|
|
114
|
-
| `symbols[].signature` | `string` | One-line signature |
|
|
115
|
-
| `symbols[].summary` | `string` | One-line description |
|
|
116
|
-
| `_tokenEstimate` | `number` | Estimated token count for this response |
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
### `get_symbol_source`
|
|
121
|
-
|
|
122
|
-
Retrieves the raw source of one symbol by ID.
|
|
123
|
-
|
|
124
|
-
**Required parameters:**
|
|
125
|
-
| Parameter | Type | Description |
|
|
126
|
-
|-----------|------|-------------|
|
|
127
|
-
| `repoId` | `string` | Target repository |
|
|
128
|
-
| `symbolId` | `string` | Symbol ID from `search_symbols` |
|
|
129
|
-
|
|
130
|
-
**Stable response fields:**
|
|
131
|
-
| Field | Type | Description |
|
|
132
|
-
|-------|------|-------------|
|
|
133
|
-
| `source` | `string` | Raw source text of the symbol |
|
|
134
|
-
| `filePath` | `string` | Relative path to containing file |
|
|
135
|
-
| `startByte` | `number` | Byte offset where symbol starts |
|
|
136
|
-
| `endByte` | `number` | Byte offset where symbol ends |
|
|
137
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
### `get_file_outline`
|
|
142
|
-
|
|
143
|
-
Returns all symbols defined in a file with signatures and summaries.
|
|
144
|
-
|
|
145
|
-
**Required parameters:**
|
|
146
|
-
| Parameter | Type | Description |
|
|
147
|
-
|-----------|------|-------------|
|
|
148
|
-
| `repoId` | `string` | Target repository |
|
|
149
|
-
| `filePath` | `string` | Relative path to the file |
|
|
150
|
-
|
|
151
|
-
**Stable response fields:**
|
|
152
|
-
| Field | Type | Description |
|
|
153
|
-
|-------|------|-------------|
|
|
154
|
-
| `filePath` | `string` | Relative file path (normalised) |
|
|
155
|
-
| `symbols` | `SymbolSummary[]` | All symbols in the file |
|
|
156
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
### `get_repo_outline`
|
|
161
|
-
|
|
162
|
-
Returns all files with their top-level symbols.
|
|
163
|
-
|
|
164
|
-
**Required parameters:**
|
|
165
|
-
| Parameter | Type | Description |
|
|
166
|
-
|-----------|------|-------------|
|
|
167
|
-
| `repoId` | `string` | Target repository |
|
|
168
|
-
|
|
169
|
-
**Optional parameters:**
|
|
170
|
-
| Parameter | Type | Description |
|
|
171
|
-
|-----------|------|-------------|
|
|
172
|
-
| `limit` | `number` | Max files to return (default: 100) |
|
|
173
|
-
|
|
174
|
-
**Stable response fields:**
|
|
175
|
-
| Field | Type | Description |
|
|
176
|
-
|-------|------|-------------|
|
|
177
|
-
| `files` | `FileOutline[]` | Per-file symbol summaries |
|
|
178
|
-
| `files[].filePath` | `string` | Relative file path |
|
|
179
|
-
| `files[].symbols` | `SymbolSummary[]` | Top-level symbols |
|
|
180
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
### `get_file_tree`
|
|
185
|
-
|
|
186
|
-
Returns the directory tree of an indexed project with file counts per directory.
|
|
187
|
-
|
|
188
|
-
**Required parameters:**
|
|
189
|
-
| Parameter | Type | Description |
|
|
190
|
-
|-----------|------|-------------|
|
|
191
|
-
| `repoId` | `string` | Target repository |
|
|
192
|
-
|
|
193
|
-
**Stable response fields:**
|
|
194
|
-
| Field | Type | Description |
|
|
195
|
-
|-------|------|-------------|
|
|
196
|
-
| `tree` | `DirectoryNode` | Nested directory tree |
|
|
197
|
-
| `tree.name` | `string` | Directory or file name |
|
|
198
|
-
| `tree.type` | `'dir' \| 'file'` | Node type |
|
|
199
|
-
| `tree.children` | `DirectoryNode[]` | Child nodes (dirs only) |
|
|
200
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
### `get_context_bundle`
|
|
205
|
-
|
|
206
|
-
Forward-walks the dependency graph from a symbol and returns everything needed to understand it (transitive imports).
|
|
207
|
-
|
|
208
|
-
**Required parameters:**
|
|
209
|
-
| Parameter | Type | Description |
|
|
210
|
-
|-----------|------|-------------|
|
|
211
|
-
| `repoId` | `string` | Target repository |
|
|
212
|
-
| `symbolId` | `string` | Starting symbol ID |
|
|
213
|
-
|
|
214
|
-
**Optional parameters:**
|
|
215
|
-
| Parameter | Type | Description |
|
|
216
|
-
|-----------|------|-------------|
|
|
217
|
-
| `maxDepth` | `number` | Max traversal depth (default: 3) |
|
|
218
|
-
| `maxTokens` | `number` | Stop collecting when estimate exceeds this |
|
|
219
|
-
|
|
220
|
-
**Stable response fields:**
|
|
221
|
-
| Field | Type | Description |
|
|
222
|
-
|-------|------|-------------|
|
|
223
|
-
| `symbols` | `SymbolSummary[]` | All symbols in the bundle |
|
|
224
|
-
| `files` | `string[]` | Distinct files touched |
|
|
225
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
### `get_blast_radius`
|
|
230
|
-
|
|
231
|
-
Reverse-walks from a symbol to find all files that (transitively) import it. Use before modifying or deleting a symbol.
|
|
232
|
-
|
|
233
|
-
**Required parameters:**
|
|
234
|
-
| Parameter | Type | Description |
|
|
235
|
-
|-----------|------|-------------|
|
|
236
|
-
| `repoId` | `string` | Target repository |
|
|
237
|
-
| `symbolId` | `string` | Starting symbol ID |
|
|
238
|
-
|
|
239
|
-
**Optional parameters:**
|
|
240
|
-
| Parameter | Type | Description |
|
|
241
|
-
|-----------|------|-------------|
|
|
242
|
-
| `maxDepth` | `number` | Max traversal depth (default: 5) |
|
|
243
|
-
|
|
244
|
-
**Stable response fields:**
|
|
245
|
-
| Field | Type | Description |
|
|
246
|
-
|-------|------|-------------|
|
|
247
|
-
| `importers` | `string[]` | Files that transitively import the symbol |
|
|
248
|
-
| `count` | `number` | Total importer count |
|
|
249
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
250
|
-
|
|
251
|
-
---
|
|
252
|
-
|
|
253
|
-
### `find_importers`
|
|
254
|
-
|
|
255
|
-
Returns the direct importers of a file with their symbols.
|
|
256
|
-
|
|
257
|
-
**Required parameters:**
|
|
258
|
-
| Parameter | Type | Description |
|
|
259
|
-
|-----------|------|-------------|
|
|
260
|
-
| `repoId` | `string` | Target repository |
|
|
261
|
-
| `filePath` | `string` | Relative path to the file |
|
|
262
|
-
|
|
263
|
-
**Stable response fields:**
|
|
264
|
-
| Field | Type | Description |
|
|
265
|
-
|-------|------|-------------|
|
|
266
|
-
| `importers` | `ImporterEntry[]` | Direct importers |
|
|
267
|
-
| `importers[].filePath` | `string` | Importer file path |
|
|
268
|
-
| `importers[].importedNames` | `string[]` | Names imported from the target |
|
|
269
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
### `find_dead_code`
|
|
274
|
-
|
|
275
|
-
Returns exported symbols in files that nothing else imports.
|
|
276
|
-
|
|
277
|
-
**Required parameters:**
|
|
278
|
-
| Parameter | Type | Description |
|
|
279
|
-
|-----------|------|-------------|
|
|
280
|
-
| `repoId` | `string` | Target repository |
|
|
281
|
-
|
|
282
|
-
**Optional parameters:**
|
|
283
|
-
| Parameter | Type | Description |
|
|
284
|
-
|-----------|------|-------------|
|
|
285
|
-
| `limit` | `number` | Max symbols to return (default: 50) |
|
|
286
|
-
|
|
287
|
-
**Stable response fields:**
|
|
288
|
-
| Field | Type | Description |
|
|
289
|
-
|-------|------|-------------|
|
|
290
|
-
| `symbols` | `SymbolSummary[]` | Potentially dead exported symbols |
|
|
291
|
-
| `_tokenEstimate` | `number` | Estimated token count |
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
## Stable Configuration Fields
|
|
296
|
-
|
|
297
|
-
Config file: `~/.purecontext/config.json`
|
|
298
|
-
|
|
299
|
-
The following fields are stable in 1.x:
|
|
300
|
-
|
|
301
|
-
| Field | Type | Default | Notes |
|
|
302
|
-
|-------|------|---------|-------|
|
|
303
|
-
| `indexDir` | `string` | `~/.purecontext/indexes/` | Storage location for SQLite index files |
|
|
304
|
-
| `fileLimit` | `number` | `1000` | Max files indexed per project |
|
|
305
|
-
| `watchDebounceMs` | `number` | `2000` | File watcher debounce window (ms) |
|
|
306
|
-
| `excludePatterns` | `string[]` | `[]` | Additional glob patterns to exclude |
|
|
307
|
-
| `adapters` | `'auto' \| 'none' \| string[]` | `'auto'` | Framework adapter activation |
|
|
308
|
-
|
|
309
|
-
The `ai.*` configuration group is **not stable** in 1.x — it may change as AI summarization features mature.
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
## Stable Symbol Kinds
|
|
314
|
-
|
|
315
|
-
The following `SymbolKind` values are stable in 1.x:
|
|
316
|
-
|
|
317
|
-
`function` · `class` · `method` · `const` · `type` · `interface` · `enum` · `component` · `composable` · `hook` · `route` · `decorator` · `middleware`
|
|
318
|
-
|
|
319
|
-
New kinds may be added in minor releases. Clients should handle unknown kinds gracefully.
|
package/docs/dev/DECISIONS.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Architecture & Product Decisions
|
|
2
|
-
|
|
3
|
-
This file records significant decisions that aren't obvious from the code — the *why* behind choices that will matter when revisiting them later.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 2026-05-02 — Workspace plan limits temporarily disabled
|
|
8
|
-
|
|
9
|
-
**Decision:** Free-plan repo and file limits are set to near-unlimited values until paid plans launch.
|
|
10
|
-
|
|
11
|
-
- `FREE_REPO_LIMIT` = 999 (real value: 3)
|
|
12
|
-
- `FREE_FILE_LIMIT` = 10,000,000 (real value: 10,000)
|
|
13
|
-
|
|
14
|
-
**Why:** There is no paid plan yet and no `purecontext.dev/pricing` page to send users to. Enforcing hard limits while everything is free would frustrate users who hit a wall with no way to upgrade.
|
|
15
|
-
|
|
16
|
-
**What to do when paid plans launch (Phase 19):**
|
|
17
|
-
1. Restore real limits in `src/core/index-manager.ts`
|
|
18
|
-
2. Build and deploy `purecontext.dev/pricing`
|
|
19
|
-
3. Update error messages in `src/core/errors.ts` (`WorkspaceLimitError`) — the upgrade URL is already wired in, it just needs a live destination
|
|
20
|
-
4. Wire up Stripe/Paddle for plan upgrades
|
|
21
|
-
|
|
22
|
-
The DB schema, admin API, and plan tiers (`free` / `team` / `enterprise`) are already fully implemented — limit enforcement is the only missing piece.
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# PureContext MCP — Documentation Plan
|
|
2
|
-
|
|
3
|
-
This file is the master plan and coverage tracker for the user-facing documentation.
|
|
4
|
-
It lives in `docs/user-manual/` — **separate from development phase task files** (`docs/PHASE*_TASKS.md`).
|
|
5
|
-
|
|
6
|
-
## How to use this file
|
|
7
|
-
|
|
8
|
-
- **When writing docs:** find the section below, set its status to `draft` → `written`, fill in the file.
|
|
9
|
-
- **When a new dev phase ships:** add its phase number to the relevant rows in the coverage table, set status back to `needs-update`, and note what changed in the "Notes" column.
|
|
10
|
-
- **When planning new phases:** add new rows to the coverage table before writing any code, so the documentation gap is visible from day one.
|
|
11
|
-
|
|
12
|
-
## Status legend
|
|
13
|
-
|
|
14
|
-
| Status | Meaning |
|
|
15
|
-
|--------|---------|
|
|
16
|
-
| `planned` | Section identified, file stub created, no content yet |
|
|
17
|
-
| `draft` | Content started, incomplete or unreviewed |
|
|
18
|
-
| `written` | Content complete and reviewed |
|
|
19
|
-
| `needs-update` | Written but a new phase added features that must be reflected |
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Coverage Table
|
|
24
|
-
|
|
25
|
-
| # | Doc File | Section Title | Status | Phases Covered | Notes |
|
|
26
|
-
|---|----------|---------------|--------|----------------|-------|
|
|
27
|
-
| 01 | `01-introduction.md` | What is PureContext MCP? | written | 1 | Core concept, token efficiency pitch, key capabilities overview |
|
|
28
|
-
| 02 | `02-installation.md` | Installation | written | 1, 16 | npm install, from source, prebuilt binaries, Node version matrix |
|
|
29
|
-
| 03 | `03-quick-start.md` | Quick Start | written | 1, 16, 17 | First index, first search, connect to Claude Code in 3 steps |
|
|
30
|
-
| 04 | `04-configuration.md` | Configuration Reference | written | 1, 17, 18 | config.json schema, all fields, env vars, CLI config commands |
|
|
31
|
-
| 05 | `05-cli-reference.md` | CLI Reference | written | 1, 17 | All CLI flags: --init, --check, --health, --server, transport flags |
|
|
32
|
-
| 06 | `06-tools-reference.md` | MCP Tools Reference | written | 1–3, 8, 19, 20, 21, 23, 24, 25 | Every tool: inputs, outputs, examples; grouped by category |
|
|
33
|
-
| 07 | `07-language-support.md` | Language Support | written | 1, 4–7, 9, 22 | All 34 languages; what is extracted per language; grammar notes |
|
|
34
|
-
| 08 | `08-framework-adapters.md` | Framework Adapters | written | 4, 5, 10 | Vue, React, Nuxt, Next.js, Angular, NestJS, Express, Django, etc. |
|
|
35
|
-
| 09 | `09-dependency-graph.md` | Dependency Graph Tools | written | 3 | context_bundle, blast_radius, find_importers, find_dead_code |
|
|
36
|
-
| 10 | `10-semantic-search.md` | Semantic Search | written | 11 | HNSW vector index, embeddings, when to use vs keyword search |
|
|
37
|
-
| 11 | `11-search-quality.md` | Search Quality & Ranking | written | 14 | FTS5, camelCase splitting, relevance ranking, query tips |
|
|
38
|
-
| 12 | `12-ai-summarization.md` | AI Summarization | written | 2, 20 | Providers (Anthropic, OpenAI, Gemini Flash), batch mode, cost tips |
|
|
39
|
-
| 13 | `13-token-savings.md` | Token Savings Tracker | written | 8 | How savings are measured, reading the stats, interpreting results |
|
|
40
|
-
| 14 | `14-transport-modes.md` | Transport Modes | written | 1, 18 | stdio vs HTTP/SSE; when to use each; connection examples |
|
|
41
|
-
| 15 | `15-team-setup.md` | Team Setup & Multi-Tenant | written | 12, 18 | Workspaces, API keys, rate limits, shared server walkthrough |
|
|
42
|
-
| 16 | `16-docker.md` | Docker Deployment | written | 18 | docker run, docker-compose, volume mounts, env vars |
|
|
43
|
-
| 17 | `17-web-ui.md` | Web UI | written | 13, 26 | Graph viewer, search UI, heatmap, symbol timeline, coverage overlay, multi-repo workspace |
|
|
44
|
-
| 18 | `18-git-history.md` | Git & History Integration | written | 24 | Symbol history, diff analysis, churn metrics, PR analysis |
|
|
45
|
-
| 19 | `19-cross-repo.md` | Cross-Repo Intelligence | written | 23 | Multi-repo search, code similarity, cross-repo deps, MCP Resources |
|
|
46
|
-
| 20 | `20-architecture-analysis.md` | AI-Powered Architecture Analysis | written | 25 | Quality metrics, anti-pattern detection, arch docs, refactoring detector |
|
|
47
|
-
| 21 | `21-ecosystem-tools.md` | Ecosystem & Data Tools | written | 21 | Context providers, dbt integration, search_columns, OpenAPI/Swagger, SQL handler |
|
|
48
|
-
| 22 | `22-distribution.md` | Distribution & Platform | written | 27 | Index export/import, public registry, webhooks, GitHub Actions, VS Code extension |
|
|
49
|
-
| 23 | `23-performance.md` | Performance & Scalability | written | 15 | Worker thread pool, large repo tuning, memory usage, benchmarks |
|
|
50
|
-
| 24 | `24-security.md` | Security | written | 12, 18 | API key model, rate limiting, workspace isolation, self-hosting hardening |
|
|
51
|
-
| 25 | `25-architecture-overview.md` | Architecture Overview | written | 1–3 | Three-layer design, data flow, SQLite schema, tree-sitter pipeline |
|
|
52
|
-
| 26 | `26-troubleshooting.md` | Troubleshooting | written | 1, 17 | Common errors, --health output, debug logging, known issues |
|
|
53
|
-
| 27 | `27-api-stability.md` | API Stability & Changelog | written | 16 | Semver policy, public API contract, link to CHANGELOG.md |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Phase → Documentation mapping
|
|
58
|
-
|
|
59
|
-
Use this reverse index when a new dev phase ships to find which doc files need updating.
|
|
60
|
-
|
|
61
|
-
| Phase | Focus | Doc files to update |
|
|
62
|
-
|-------|-------|---------------------|
|
|
63
|
-
| 1 | Core engine, stdio MCP, JS/TS, basic tools | 01, 02, 03, 04, 05, 06, 14, 25, 26 |
|
|
64
|
-
| 2 | AI summarization (first pass) | 12 |
|
|
65
|
-
| 3 | Dependency graph tools | 06, 09 |
|
|
66
|
-
| 4 | Vue adapter | 07, 08 |
|
|
67
|
-
| 5 | React adapter | 07, 08 |
|
|
68
|
-
| 6 | Language expansion (Python, Go, Rust, Java, C#, PHP, Ruby, Kotlin) | 07 |
|
|
69
|
-
| 7 | Language expansion (C, C++, Lua, Dart, Swift) | 07 |
|
|
70
|
-
| 8 | Token savings tracker | 06, 13 |
|
|
71
|
-
| 9 | Languages: Elixir, Haskell, Scala, R | 07 |
|
|
72
|
-
| 10 | Adapters: Rust/Java web, ORM | 08 |
|
|
73
|
-
| 11 | Semantic search (HNSW) | 06, 10 |
|
|
74
|
-
| 12 | Rate limiting & multi-tenant | 15, 24 |
|
|
75
|
-
| 13 | Web UI | 17 |
|
|
76
|
-
| 14 | Search quality (FTS5 + ranking) | 06, 11 |
|
|
77
|
-
| 15 | Performance & scalability | 23 |
|
|
78
|
-
| 16 | npm release readiness, prebuilt binaries | 02, 27 |
|
|
79
|
-
| 17 | Public launch polish (fileLimit, errors, --health, telemetry) | 03, 04, 05, 26 |
|
|
80
|
-
| 18 | Team/cloud (API keys, workspaces, Docker, MCP-HTTP) | 04, 14, 15, 16, 24 |
|
|
81
|
-
| 19 | Missing core tools (find_references, get_file_content, get_symbols, invalidate_cache) | 06 |
|
|
82
|
-
| 20 | Tool capability enhancements (debug mode, context_lines/verify, GitHub API, Gemini Flash) | 06, 12 |
|
|
83
|
-
| 21 | Ecosystem & data tools (context provider, dbt, search_columns, OpenAPI, SQL) | 06, 21 |
|
|
84
|
-
| 22 | Language coverage expansion (Bash, Terraform, Protobuf, GraphQL + 10 more) | 07 |
|
|
85
|
-
| 23 | Cross-repo intelligence (multi-repo search, similarity, MCP Resources) | 06, 19 |
|
|
86
|
-
| 24 | Git & history integration (symbol history, diff analysis, churn) | 06, 18 |
|
|
87
|
-
| 25 | AI-powered architecture analysis (metrics, antipatterns, arch docs, refactoring) | 06, 20 |
|
|
88
|
-
| 26 | Enhanced Web UI (heatmap, timeline, coverage, multi-repo, advanced graph) | 17 |
|
|
89
|
-
| 27 | Distribution & platform (export/import, registry, webhooks, Actions, VS Code) | 22 |
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## Adding a new development phase
|
|
94
|
-
|
|
95
|
-
When a new phase is planned, do the following **before** writing any code:
|
|
96
|
-
|
|
97
|
-
1. Add a row to the **Phase → Documentation mapping** table above.
|
|
98
|
-
2. For each affected doc file, set its status to `needs-update` (or `planned` if it's a brand-new section).
|
|
99
|
-
3. If the phase introduces a wholly new feature area with no existing doc section, add a new row to the **Coverage Table** and create a stub file in `docs/user-manual/`.
|
|
100
|
-
4. After the phase ships, update the content in each affected doc file and flip the status to `written`.
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Existing documentation to migrate / reconcile
|
|
105
|
-
|
|
106
|
-
| File | Notes |
|
|
107
|
-
|------|-------|
|
|
108
|
-
| `user-manual.md` (project root) | 1,564-line flat file covering Phases 1–18. Source of truth for sections 01–16. Migrate content into per-topic files then remove or redirect. |
|
|
109
|
-
| `README.md` (project root) | Tool reference table, team setup, config table. Overlaps with 06, 04, 15. Keep a short README pointing into `docs/user-manual/`. |
|
|
110
|
-
| `docs/SELF_HOSTING.md` | Should feed into `16-docker.md` and `24-security.md`. |
|
|
111
|
-
| `docs/TEAM_SETUP.md` | Should feed into `15-team-setup.md`. |
|
|
112
|
-
| `docs/TELEMETRY.md` | Should be summarized in `04-configuration.md`. |
|
|
113
|
-
| `docs/API_STABILITY.md` | Should be summarized/linked in `27-api-stability.md`. |
|