docs(plan): promote the scope-gate + subtraction-write ahead of the additive work
Operator decision 2026-08-10 (session #61): the subtraction axis' write half is wanted in use, so it moves ahead of C3/B2/B3. M-BUG-41 (scope-gate) is promoted with it as the prerequisite — subtraction-write targets ~/.claude/CLAUDE.md, which is by definition outside the repo the session stands in, and that is exactly the gate M-BUG-41 is missing on its two measured arms. Adds §C6 recording the frames the chunk inherits rather than invents: the deterministic floor runs before the judge, ~/.claude is archived by mv and never rm, user level is mandatory in v1, and the honest sizing is ~20% of the file — not the 80% the framing invites. The apply mechanism is deliberately left open, to be settled in the chunk's fasit against the gate rather than before it. Also corrects the release level in the list: MAJOR (v6.0.0), since M-BUG-28 shipped with a BREAKING CHANGE footer that outranks the minor the additions alone would have implied. Records the rejection of a sibling /repo-reinit skill so it is not revived: it would be a third implementation of one judgement alongside this axis and /doctor Check 3, and regenerating a CLAUDE.md destroys the floor that makes a mature one valuable. repo-init already owns the fresh-repo case. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pq3nye21RVYk4pZLeT8pGz
This commit is contained in:
parent
9ae4be26d2
commit
49bae2657f
1 changed files with 48 additions and 16 deletions
|
|
@ -120,22 +120,54 @@ web-poll candidates (nothing written; primary sources unread).
|
|||
## Priority order for v5.14
|
||||
|
||||
Cheap-and-loud first, judgment-heavy later; D-chunks early because they DELETE code the rest
|
||||
must not build on:
|
||||
must not build on. **Re-ordered 2026-08-10 (operator decision, session #61):** the operator wants
|
||||
to *use* the subtraction axis, so its write half — and the scope-gate it depends on — move ahead
|
||||
of the remaining additive work. Everything below step 4 is unchanged in content, only in position.
|
||||
|
||||
1. **C2** (minutes, pure TDD)
|
||||
2. **Arg-sluk CLI arm** (closes M-BUG-46's class; makes later CLI work loud)
|
||||
3. **D1 + D2** (doctor-duplicate removals — before anything extends GAP/SKL)
|
||||
4. **D3** (positioning docs — cheap, high external value)
|
||||
5. **M-BUG-28** (suppression ID semantics — big but foundational; suppressions guard everything after)
|
||||
6. **C1** (register entries; exercises B1's `published` field)
|
||||
7. **C4**, then **C3** (feature/scanner additions on the now-clean base)
|
||||
8. **B2** (new lens axis)
|
||||
9. **B3** (CNF two-layer extension)
|
||||
10. **M-BUG-41** (scope-gate design)
|
||||
11. **P6/M-BUG-44**, knowledge-refresh write-CLI, cleanup glob (small batch)
|
||||
12. **C5** (after DEL B 3.2), **B4** backlog last
|
||||
13. Release-cut v5.14.0 via `release-plugin.mjs` when the batch is coherent (version level from
|
||||
`git log v5.13.0..HEAD` — D1/D2 removals + C3/C4 additions ⇒ minor)
|
||||
1. ~~**C2**~~ ✅ · 2. ~~**Arg-sluk CLI arm**~~ ✅ · 3. ~~**D1 + D2**~~ ✅ · 4. **D3** (rest dropped,
|
||||
`stop-at-meaningful-value`) · 5. ~~**M-BUG-28**~~ ✅ · 6. ~~**C1**~~ ✅ · 7a. ~~**C4**~~ ✅
|
||||
8. **M-BUG-41** (scope-gate design) — **promoted from 10.** Prerequisite for anything that writes
|
||||
outside the repo the session stands in, which subtraction-write does by definition
|
||||
(`~/.claude/CLAUDE.md`).
|
||||
9. **SUB-WRITE** (new) — the write half of `optimize --subtract`; see §C6 below.
|
||||
10. **C3** (CA-CML dead prose references) — was 7b.
|
||||
11. **B2** (new lens axis)
|
||||
12. **B3** (CNF two-layer extension)
|
||||
13. **P6/M-BUG-44**, knowledge-refresh write-CLI, cleanup glob (small batch)
|
||||
14. **C5** (after DEL B 3.2), **B4** backlog last
|
||||
15. Release-cut via `release-plugin.mjs` when the batch is coherent. **Level is MAJOR — v6.0.0:**
|
||||
M-BUG-28 shipped as `fix(scanners)!` with a `BREAKING CHANGE:` footer, which outranks the
|
||||
minor the D1/D2 removals plus C3/C4 additions would have implied. `release-plugin.mjs` does
|
||||
not derive the level — pass `--version` explicitly.
|
||||
|
||||
### C6 — SUB-WRITE: the write half of `optimize --subtract`
|
||||
|
||||
`--subtract` proposes and never writes (`commands/optimize.md`), which is correct for a v1 whose
|
||||
judge is an agent. The operator now wants the removal executed. Scope: apply an approved
|
||||
subtraction candidate to the CLAUDE.md it came from, with backup and rollback.
|
||||
|
||||
Non-negotiable frames, all inherited rather than invented here:
|
||||
|
||||
- **The floor is not the judge's decision.** `floor-exclusion.mjs` runs deterministically before
|
||||
anything is proposed, and that ordering must not migrate into the write path either.
|
||||
- **`~/.claude` is git-tracked with a `.gitignore` of `*`** — archive by `mv` into `_archive/`,
|
||||
never `rm`. Machine-side config writes need operator approval.
|
||||
- **User level is mandatory in v1**: that is where the cost is (~4 300 tokens every turn in every
|
||||
repo). Project level follows.
|
||||
- **Honest sizing:** the #40 fasit measured deletable ≈1 400 always-loaded tokens, realistically
|
||||
≈850 after tier-2 earn-backs, against a ≈4 300-token file — **≈20 %, not 80 %.** Do not let the
|
||||
command's copy imply more.
|
||||
- Verify the backup covers the file the write actually touched, not merely that a backup exists
|
||||
(M-BUG-31's shape).
|
||||
|
||||
Open decision, to be settled in the chunk's fasit before code: whether removal is a `fix`-engine
|
||||
action, a `plan`/`implement` step, or its own flag — decided against M-BUG-41's gate, not before it.
|
||||
|
||||
**Rejected 2026-08-10, do not revive:** a sibling `/repo-reinit` skill that rewrites a CLAUDE.md
|
||||
from scratch. It would be a third implementation of one judgement (this axis, plus `/doctor`
|
||||
Check 3) and fails the binding `/doctor` positioning; and regenerating destroys exactly the floor
|
||||
— local facts, gotchas, policy invariants — that a mature repo's CLAUDE.md is most valuable for.
|
||||
`repo-init` already owns the fresh-repo case.
|
||||
|
||||
## Source verification (done 2026-07-14 — carried)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue