Problem
fieldnotes gaps ranks every churning uncovered file, which puts package-lock.json, CHANGELOG.md, README.md, version manifests, etc. at the top of real repos — files whose churn says nothing about missing knowledge. First run on a production Next.js repo: 3 of the top 5 "gaps" were manifest noise.
Proposal
- Built-in default ignores (lockfiles,
CHANGELOG*, LICENSE*, .github/, generated-file globs), plus a gaps.ignore list in .fieldnotes/config.toml for per-repo additions.
--no-ignore to see everything.
brief's ambient coverage-gap line should use the same filter (it currently can surface a lockfile as the hottest gap).
Related parsing artifact
On one repo, gaps printed a path with a doubled slash (src/app/api/tasks//route.ts) — likely a rename entry in git log --name-only output that churn_map (fieldnotes/gaps.py) doesn't normalize. Normalize paths (and handle old => new rename lines) while in there.
Problem
fieldnotes gapsranks every churning uncovered file, which putspackage-lock.json,CHANGELOG.md,README.md, version manifests, etc. at the top of real repos — files whose churn says nothing about missing knowledge. First run on a production Next.js repo: 3 of the top 5 "gaps" were manifest noise.Proposal
CHANGELOG*,LICENSE*,.github/, generated-file globs), plus agaps.ignorelist in.fieldnotes/config.tomlfor per-repo additions.--no-ignoreto see everything.brief's ambient coverage-gap line should use the same filter (it currently can surface a lockfile as the hottest gap).Related parsing artifact
On one repo,
gapsprinted a path with a doubled slash (src/app/api/tasks//route.ts) — likely a rename entry ingit log --name-onlyoutput thatchurn_map(fieldnotes/gaps.py) doesn't normalize. Normalize paths (and handleold => newrename lines) while in there.