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
- MCP server wrapping
query— single stdio tool first (querySQL string → JSON rows), then expand torecipe,list_recipes,schema,index. Resources expose the bundledSKILL.mdand recipe catalog - HTTP API —
codemap serve [--port] [--host 127.0.0.1]exposingPOST /query,GET /recipes,GET /recipes/:id,GET /schema,GET /context. Bind to loopback by default; reject non-loopback unless--hostoverridden. Unblocks tools that don't speak MCP yet - Recipes-as-content registry — pair every bundled recipe in
src/cli/query-recipes.tswith a sibling.md(or YAML frontmatter) describing when to use, follow-up SQL; surface in--recipes-json. Plus project-local recipes loaded from.codemap/recipes/*.{sql,md}so teams can ship internal SQL without an adapter API - 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)