fix(prune-memory): RED-7 fictional example IDs + RED-8 accepted limit

RED-7 (example-priming): the STEP-2 worked example named live IDs (LRN-014 +
LRN-016) and modeled merging them — but they are complementary (header-ids vs
checkbox-CSS), a merge the skill's own rule forbids. Live IDs in an example prime
the skill to act on those exact entries on real data. Fictionalized the whole
STEP-2 example to 9xx IDs (cannot match a live registry); the merge example now
models a same-concept merge. Closed by a DETERMINISTIC test (run-deterministic.sh
RED-7: the example must carry only 9xx ids) per LRN-046, not a flaky behavioral
fixture. The test caught its own ugrep false-green first (a leading-dash pattern
parsed as an option) — fixed via /usr/bin/grep, the same dodge the skill's verify
already uses at line 189.

RED-8 (added-negation inversion): re-reviewed, consciously accepted as a documented
limit in BACKLOG — remote (compression subtracts tokens), and an FP-safe increase
check is non-trivial (needs the HEAD entry-id set to exclude legit new/merged 0->N);
a noisy guard is worse than the honest limit on a destructive skill (LRN-047).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
This commit is contained in:
Bastien Chanot
2026-06-29 19:25:42 +02:00
co-authored by Claude Opus 4.8
parent ce4391a62f
commit 5821ce2017
3 changed files with 44 additions and 11 deletions
+10 -8
View File
@@ -112,21 +112,23 @@ Print one block per registry. Example:
```
PRUNE PLAN — decisions.md (N entries → M after if approved)
(IDs below are FICTIONAL — 9xx range, never a live registry entry — so this
worked example cannot PRIME a real prune. Apply the same shapes to real IDs.)
[A. Obsolete — mark superseded]
BDR-003 — Gitignore wildcard pattern — status: proposed since 2026-03-12
BDR-901 — example proposed decision — status: proposed since <90+ days ago>
→ mark: status: deprecated (no follow-up after 90 days)
BDR-011 — Client handover 4-chapter — body says superseded by BDR-013
→ fix Index: status = "superseded by BDR-013"
BDR-902 — example decision — body says superseded by BDR-903
→ fix Index: status = "superseded by BDR-903"
[B. Similar — merge]
LRN-014 + LRN-016 — both pandoc rendering quirks
→ propose: merge into NEW LRN-017 ("Pandoc rendering quirks")
with both bodies appended + caveman pass; sources marked
status: superseded by LRN-017
LRN-901 + LRN-902 — SAME concept (two notes on the identical bug)
→ propose: merge into NEW LRN-904 with both bodies appended +
caveman pass; sources marked status: superseded by LRN-904
(merge ONLY same-concept entries — complementary/different-angle stays split)
[C. Bloated — inline caveman rewrite]
BDR-011 — body 612 words, filler density 7.2% → ~380 expected (-38%)
BDR-902 — body 612 words, filler density 7.2% → ~380 expected (-38%)
[D. Index drift]
(none)