diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-02 21:31:37 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-02 21:31:37 -0500 |
| commit | ac693a6b7fa7abe88f7778f8e793d5ddfd32f24e (patch) | |
| tree | ac0e8babf829ffd3ab64bb3b2bb5e9498d1f2f13 /scripts/remove.sh | |
| parent | 291103803495cd1937244dc7c993faaaf00023ab (diff) | |
| download | rulesets-ac693a6b7fa7abe88f7778f8e793d5ddfd32f24e.tar.gz rulesets-ac693a6b7fa7abe88f7778f8e793d5ddfd32f24e.zip | |
feat(lint-org): reconcile follow-ups on write instead of appending
Every run appended a fresh dated "lint-org follow-ups" section with line-number-keyed entries, so the follow-ups file grew an unbounded pile of near-duplicate sections, kept entries whose finding had since resolved, and broke whenever the target file's line numbers shifted. Running an audit against a large todo.org surfaced exactly that drift: dead-link flags pointing at docs that now exist, and three stacked dated runs for one file.
Now lint-org rewrites the current file's section from the current run. Findings that no longer reproduce simply are not re-emitted, re-runs dedupe to one section, and entries key on checker plus message with the line as a trailing annotation, so a finding survives line shifts as the same entry. Other files' sections are left intact, and the strip step tolerates the old dated-header shape so existing follow-ups files migrate on first run. This changes the follow-ups file from an append-only log to the current outstanding findings per file.
task-audit's Phase C link-hygiene step now also reaps a matching dead-link entry when it fixes or verifies the link, scoped strictly to dead-link entries, so the audit and the follow-ups file stop drifting between lint runs.
Five follow-ups tests cover record-by-content, dedupe across runs, drop-on-resolve, and preserve-other-files. Mirrors synced.
Diffstat (limited to 'scripts/remove.sh')
0 files changed, 0 insertions, 0 deletions
