Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 5.33 KB

File metadata and controls

51 lines (37 loc) · 5.33 KB

Roadmap

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 initagents.md) live in src/ and linked docs — not enumerated here.


Next

  • Community language adapters — optional packages (e.g. Tree-sitter) with a peerDependency on @stainless-code/codemap and a public registration API beyond built-ins in src/adapters/.
  • Agent tooling — evaluate TanStack Intent for versioned skills in node_modules (optional; codemap agents init remains the default).
  • Golden queries — design & policy: golden-queries.md; Tier A in CI, Tier B via CODEMAP_* (see benchmark § Fixtures).

Strategy

Layer Role
Core Schema, incremental indexing, git invalidation, dependencies, CLI, query
Community adapters Future optional packages; peerDependency on @stainless-code/codemap

Non-goals (v1)

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

Backlog

  • MCP server wrapping query — single stdio tool first (query SQL string → JSON rows), then expand to recipe, list_recipes, schema, index. Resources expose the bundled SKILL.md and recipe catalog
  • HTTP APIcodemap serve [--port] [--host 127.0.0.1] exposing POST /query, GET /recipes, GET /recipes/:id, GET /schema, GET /context. Bind to loopback by default; reject non-loopback unless --host overridden. Unblocks tools that don't speak MCP yet
  • Recipes-as-content registry — pair every bundled recipe in src/cli/query-recipes.ts with 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 CLIcodemap show <symbol> / codemap snippet <name> returns file_path:line_start-line_end + signature for one symbol. Same data as SELECT … FROM symbols WHERE name = ?, but a one-step CLI keeps agents from composing SQL for trivial precise reads
  • Watch mode for dev — node:fs.watch recursive + --files re-index loop; Linux recursive requires Node 19.1+
  • Monorepo / workspace awareness — discover workspaces from pnpm-workspace.yaml / package.json and index per-workspace dependency graphs
  • Cross-agent handoff artifactspeculative; 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 scaffoldingcodemap 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 with oxc-parser — faster, no side effects, safer in untrusted repos; can't handle async/dynamic configs, needs import() fallback. Current: native import() in config.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 (typed package.json/tsconfig.json), c12 (config loader — see config loader item above)