Commit 9e52ffa
committed
docs(plan): v3 — ship LCOV in v1 + drop --source flag + bundle killer recipe
The "fully capable, no half-way APIs" principle reshapes three things:
1. **LCOV ingester ships in v1** alongside Istanbul. Original draft deferred
LCOV to v1.x, which would exclude `bun test --coverage` users — i.e.
codemap's own primary runtime. That's the textbook half-baked surface
the principle bans. Two parser front-ends share one `upsertCoverageRows`
core; LCOV is regex tokenizing over `SF:` / `DA:` / `end_of_record`.
Tracer 2 splits into 2a (shared core + Istanbul parser) and 2b (LCOV
parser), both writing identical normalised CoverageRow[] into the same
upsert path.
2. **`--source istanbul|lcov` flag dropped.** Auto-detection from extension
(`.json` → istanbul, `.info` → lcov, directory → probe both, error on
ambiguous) is unambiguous; a flag for "tell codemap what it can already
see" is API noise. Misnamed files can be renamed (one-liner) cheaper
than codemap can grow a flag.
3. **Killer recipe ships as bundled `untested-and-dead.{sql,md}`** in
`templates/recipes/`. Per the recipes-as-content registry (PR #37), the
high-value queries become first-class agent surface. A buried doc
snippet would be invisible to agents at session start; the bundled
recipe shows up in `--recipes-json` and gets a `codemap query --recipe
untested-and-dead` direct invocation.
Tracer 4 also fans out: Istanbul + LCOV fixtures cover the same partial
coverage shape; three golden recipes (`coverage-istanbul.json`,
`coverage-lcov.json`, `untested-and-dead.json`) prove format equivalence.
Out-of-scope, alternatives, performance section, title, and goal
statement all updated to match.1 parent 86b7f69 commit 9e52ffa
1 file changed
Lines changed: 35 additions & 33 deletions
0 commit comments