Forward-looking plans only — not a mirror of src/. Doc index: README.md. Design / ship: architecture.md, packaging.md. Shipped features (adapters, fixtures, codemap agents init — agents.md) live in src/ and linked docs — not enumerated here.
- Community language adapters — optional packages (e.g. Tree-sitter) with a peerDependency on
@stainless-code/codemapand a public registration API beyond built-ins insrc/adapters/. - Agent tooling — evaluate TanStack Intent for versioned skills in
node_modules(optional;codemap agents initremains the default). - Golden queries — design & policy: golden-queries.md; Tier A in CI, Tier B via
CODEMAP_*(see benchmark § Fixtures).
| Layer | Role |
|---|---|
| Core | Schema, incremental indexing, git invalidation, dependencies, CLI, query |
| Community adapters | Future optional packages; peerDependency on @stainless-code/codemap |
Codemap stays a structural-index primitive that other tools can consume. Out of scope:
- Full-text search across all file bodies — use ripgrep / IDE / opt-in FTS5 (see backlog)
- Replacing LSP or language servers — no rename / go-to-definition / hover types
- Static analysis — dead code, duplication, complexity, architecture-boundary detection, fix actions are a different product class (e.g. fallow,
knip,jscpd) - Visualization — skyline / ASCII art / animated diagrams; the index emits structured rows, rendering belongs to the consumer
- Embedded intent classification beyond the thin keyword classifier in
codemap context --for "<intent>"— deeper routing belongs in the agent host (Cursor / Claude Code / MCP client) - Persistent daemon process — SQLite supports concurrent readers and our one-shot CLI startup is sub-100ms; revisit only if MCP / HTTP measurements demand it
-
codemap audit --base <ref>(v1.x) — worktree+reindex snapshot strategy. v1 shipped--baseline <prefix>/--<delta>-baseline <name>(B.6 reuse) — seearchitecture.md§ Audit wiring. v1.x adds--base <ref>for "audit against an arbitrary ref I haven't pre-baselined" (defers worktree spawn + cache decision until a real consumer asks). -
codemap auditverdict + thresholds (v1.x) —verdict: "pass" | "warn" | "fail"driven bycodemap.config.audit.deltas[<key>].{added_max, action}. Triggers: two consumers shipjq-based threshold scripts with similar shapes, OR one consumer asks with a concrete config sketch. Until then, raw deltas + consumer-sidejqis the CI exit-code idiom. -
codemap serve(HTTP API, v1.x) — same tool taxonomy + output shape ascodemap mcp(shipped in v1), exposed overPOST /tool/{name}with loopback default and optional--token. Defer until a concrete non-MCP consumer asks; design points are reserved inarchitecture.md§ MCP wiring so HTTP inherits them when its turn comes. - Targeted-read CLI —
codemap show <symbol>/codemap snippet <name>returnsfile_path:line_start-line_end+signaturefor one symbol. Same data asSELECT … FROM symbols WHERE name = ?, but a one-step CLI keeps agents from composing SQL for trivial precise reads - Watch mode for dev —
node:fs.watchrecursive +--filesre-index loop; Linuxrecursiverequires Node 19.1+ - Monorepo / workspace awareness — discover workspaces from
pnpm-workspace.yaml/package.jsonand index per-workspace dependency graphs - Cross-agent handoff artifact — speculative; layered prefix/delta JSON written on session-stop, read on session-start. Complementary to indexing rather than core to it; revisit if user demand emerges
- Adapter scaffolding —
codemap create-adapter --name [name]generates adapter + test + fixture boilerplate; blocked on community adapter registration API (could land with manual registration) - Config loader — two candidates: (a) c12 — battle-tested (Nuxt/Nitro), adds extends, env overrides, RC files, watching; still executes config via
jiti. (b) AST-based extraction withoxc-parser— faster, no side effects, safer in untrusted repos; can't handle async/dynamic configs, needsimport()fallback. Current: nativeimport()inconfig.ts - Optional GitHub Actions
workflow_dispatch— run golden/benchmark against a public corpus only (never private app code) - Optional FTS5 for opt-in full-text
- Sass / Less / SCSS: Lightning CSS is CSS-only; preprocessors need a compile step before CSS parsing — see architecture.md § CSS
- UnJS adoption — candidates:
citty(CLI builder),pathe(cross-platform paths),consola(structured logging),pkg-types(typedpackage.json/tsconfig.json),c12(config loader — see config loader item above)