session 2026-08-07: N1+R0+N2 built, @3 corrected under PENDING-111, D-5 recorded, two governance checkers, V2 unblocked
This commit is contained in:
@@ -288,3 +288,13 @@ The single place proposed skills live so they don't evaporate between sessions.
|
||||
- **`read-the-consumer-before-editing-a-declarative-field`** — kin to the banked `read-the-gate's-decision-code-before-designing-its-consumer`, one level over: before changing a *declaration* (`sidecar: none-yet`), read what branches on it. Doing so converted a wrong claim ("N1 would skip two sources" — false; `chunker.load_sidecar()` reads the file and ignores the field) into the real finding: `ingest_gate.py:142` only fires "required but absent" when the declaration says `required`, so the stale value is a **disarmed tripwire** — harmless while the files exist, silent the moment one is deleted. **Census-01's decay-not-construction finding, instantiated.**
|
||||
|
||||
- **`census-by-content-volume-not-by-marker-count`** — "240 patterns have ≥3 chunks between headings" did not establish 240 pattern *bodies*; an index or TOC produces the same signal. Re-measured by characters per span (median 4,810, zero stubs) it did. Counting markers answers a question about markup; counting content answers the question asked. **Earned twice in one exchange** — the same slip underlay reading a usage note as a bibliographic claim.
|
||||
|
||||
## New proposals (2026-08-07 wrap — the count found what the read did not; awaiting steward)
|
||||
|
||||
| # | Target | Kind | Proposal | Earned by | PROPOSED? |
|
||||
|---|---|---|---|---|---|
|
||||
| 185 | `/jurist-package` | patch **[strongly earned — cost a governance record]** | **Every placement draft MUST carry an explicit anchor line: *insert above/below this exact existing line; replace nothing*.** A block headed `## REVIEWED-87 — AMENDMENT 2026-08-07` and described as "the block to place" reads as a replacement heading, and the steward's reading of it was the reasonable one. | 2026-08-07. The amendment was pasted OVER REVIEWED-87's original entry; the amendment's own `**Amends:** REVIEWED-87` then pointed at a record no longer in the file. Recovered from git; the register entry uniquely held Q2's reframing, Q3 REJECTED + basis, Q5 CONCUR, and the finding that "the decisive sentence was one the executor had read and not surfaced". A detector now exists (drift-check 8) but the *cause* was the handoff format. | PROPOSED |
|
||||
| 186 | verification ladder | new entry | **Compare the count to the source-of-truth count.** For any derived collection, assert `len(derived) == len(authority)` before believing it is a view rather than a sample. | 2026-08-07, **four times in one session and not once by reading**: 769 unreachable drawers (455 + 314, two unrelated causes), 2 clauses lost in the MEMORY.md trim, 3-of-253 adapter divergence, and each partition's drawer delta. Every one invisible to careful reading of the same code. | PROPOSED |
|
||||
| 187 | Symmetria §3 flag | new flag | **FAIL-BUT-FALSELY — a freshly-built checker reporting a failure may be reporting its OWN fault.** Look at *what* it flags, not *how many*. Worse than PASS-BUT-FALSELY because a false failure prompts action **on the data**. | 2026-08-07, **3 of 3 new checkers**: the R0 validator failed six healthy sources and the tempting repair was editing the reading indices to satisfy it (a §V Tier-3 violation via an instrument bug); the name-matcher gave 2 wrong answers of 5 *while its positive control passed*; the link canary's 11 "dead pointers" were 9 regex artifacts. | PROPOSED |
|
||||
| 188 | verification ladder | new entry | **A positive control that tests only ABSENCE cannot catch MIS-RESOLUTION.** Where a check resolves *which* item, the control must include a near-miss that should resolve differently — not only a nonsense input that should resolve to nothing. | 2026-08-07. Front-matter re-anchoring: nonsense keys correctly failed, so the control passed — while `a_pattern_language` silently resolved to the repeated title block (L15) instead of the essay (L102), and `choosing_a_language` failed on a longer heading. Fixed by conjoining name + heading level + containment + declared order, with a reversed-order control that fails 4/4. | PROPOSED |
|
||||
| 189 | verification ladder | new entry | **Never pin a derived total in a test; assert the invariant — and never let a test depend on a corpus accident.** `by_name == 256` went red on legitimate growth. Separately, the no-sidecar-fallback test leaned on one source *happening* to lack a sidecar; giving it one removed the last such source, so the path whose absence cost 314 unreachable drawers became unexercised — **silently**. Drive the code path directly and report an honest skip. | 2026-08-07, both within one hour of each other. | PROPOSED |
|
||||
|
||||
Reference in New Issue
Block a user