session 2026-08-25: skill-harvest proposal 155 — control fixtures vs a dirty tree
Filed as a DETECTOR proposal rather than a discipline entry, and the reasoning is the routing table's, not the freeze's: a rule that fires only when someone remembers it while writing a control has ~10% measured retrieval, and today's instance was caught by the controls running on every invocation, not by anyone recalling anything. Carries its own honest limit on its face: the detector would NOT have caught this case at write time, because the fixture file was clean then and dirtied minutes later. Its real firing moment is the drift-check run — 'this control's fixture is now dirty', a warning, not a block. Stated before building rather than discovered after. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J6hZXNYSxEfZseBGTni4sf
This commit is contained in:
co-authored by
Claude Opus 5
parent
2676a7ec69
commit
ebccdd84a7
@@ -536,3 +536,15 @@ Proposal: §7.5 derives its shape list from `SKELETON` (or names it as the singl
|
|||||||
enumerating). ⚠ **Derive from the CONSUMER, not the survivor** — the consumer here is the wrap step
|
enumerating). ⚠ **Derive from the CONSUMER, not the survivor** — the consumer here is the wrap step
|
||||||
finalising a note the hook already created, so `SKELETON` is the natural source.
|
finalising a note the hook already created, so `SKELETON` is the natural source.
|
||||||
**Classification: `[PROPOSAL]`** — borderline; the FIX lane says propose when in doubt.
|
**Classification: `[PROPOSAL]`** — borderline; the FIX lane says propose when in doubt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Appended 2026-08-25
|
||||||
|
|
||||||
|
| # | proposal | firing moment (declared) | status | stroke | pointer |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| 155 | **A control's fixture must not name a file the session is editing** | ⚠ **Fires at the moment a control is written — a condition the executor must first NOTICE.** Per the routing table this is the weakest class. A mechanical detector IS available and is the honest routing: a check that no control fixture path appears in `git status --porcelain`. **Filed as a detector proposal, not a discipline entry.** If built as a detector it fires always; if left as a remembered rule, **estimated retrieval ~10%, recorded here as the routing table requires.** | PROPOSED | — | this session; earned when the `file-changed-since` negative control pointed at `FOOL-SEED-RULE.md`, which the same session then edited, and the drift-check reported ITSELF unverified |
|
||||||
|
|
||||||
|
⚠ **Why this is filed as a detector rather than a ladder entry.** The verification ladder is **FROZEN** under REVIEWED-123 and takes no additions from any source until the trial is graded, so it could not go there regardless. But the freeze is not the reason: even unfrozen, this is a rule that fires only if someone remembers it while writing a control, and the measured retrieval for that class is ~10%. The failure it prevents was caught **by the controls running on every invocation**, not by anyone recalling a rule — which is itself the argument for routing it to a detector.
|
||||||
|
|
||||||
|
⚠ **Honest limit on the detector, stated before it is built:** it catches a fixture naming a file *currently dirty*. It would NOT have caught today's case at the moment the control was written, because `FOOL-SEED-RULE.md` was clean then and dirtied minutes later. The detector's real firing moment is **the drift-check run**, where it would flag "this control's fixture is now dirty" — a warning, not a block. **Filed with that limit on its face rather than discovered after building.**
|
||||||
|
|||||||
Reference in New Issue
Block a user