[HARDENING] PENDING-122 + PENDING-126 BUILT (8ff5a9f)
Merged as one bite. The fix reproduced the defect it was fixing: treating per-check skips and suite-level cannot-assess alike made NOT A CLEAN PASS permanent, which is the Q1 warning about a check that always says the same thing. Caught by running it, and separated into two strengths. Hole 2 was three sites, not one — fixed as a class. A StopIteration traceback became seven named failures. Option (c), the census, remains open: two holes found without looking is not a base rate, and three next() calls in the first suite opened is weak evidence the class is wider. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A35wiD55yRHj5U1ECZAX4t
This commit is contained in:
co-authored by
Claude Opus 5
parent
5dd158eec1
commit
9d267e8226
+27
-1
@@ -1953,6 +1953,22 @@ The `0 of 17` → `0 of 14` figure the jurist saw is a **secondary** paragraph o
|
||||
|
||||
---
|
||||
|
||||
### AMENDMENT 3 — 2026-08-08, BUILT (merged with PENDING-126, `8ff5a9f`)
|
||||
|
||||
**Merged with 126 because they are one subject** — 122 is *three suites crash instead of reporting*, 126 hole 2 is *`test_navigate` crashes instead of naming*: same shape, overlapping files, and **hole 2 was a prerequisite** (while suites raise, `cannot-assess` cannot be told from red).
|
||||
|
||||
**Built.** `tests/_fleet.py` gives suites **exit 3** — could not assess at all. `run-fleet.sh` renders `[----]` with **reason and remedy** and withdraws the word *green*. The generalization is of **`test_retrieve.py`'s existing shape**, not a second one.
|
||||
|
||||
⚠ **TWO STRENGTHS OF WEAKENING, deliberately not one.** A suite-level `cannot-assess` withdraws *green*; a per-check skip is **counted but does not**. Treating both alike made *"NOT A CLEAN PASS"* **permanent**, because one long-standing skip is vacuous-by-corpus-state — and that is the jurist's own **Q1 warning** (a check that always says the same thing stops being read) arriving in the fix rather than the defect. Caught by running it.
|
||||
|
||||
**Exit stays 0 for both.** An unreachable subject is an environment condition; refusing the commit would be the **red-on-absent** failure REVIEWED-104 names. The **claim** is weakened, not the commit.
|
||||
|
||||
**122's actual ask is in:** `test_ingest_gate` now compares **DECLARED sha to LIVE bytes** over the manifest. Because it reaches outside the repo (**chamber-library AND animal-davidglidden-eu**), unreachable sources report as **named skips per source**, never folded into the pass.
|
||||
|
||||
**Acceptance both directions.** Clean → 7 suites green. Fresh clone without `index.db` → **3 CANNOT ASSESS** with reason + remedy, **no traceback**, exit 0.
|
||||
|
||||
---
|
||||
|
||||
## PENDING-123 — The pre-commit hook cannot distinguish "nothing to check" from "I am disarmed"
|
||||
|
||||
**Date:** 2026-08-08
|
||||
@@ -2141,7 +2157,17 @@ Three cases, all discriminated: a rule ran → existing output already says so,
|
||||
|
||||
**Files affected:** `~/_Dev/studium-engine/tests/test_reading_index.py`, `~/_Dev/studium-engine/tests/test_navigate.py`.
|
||||
|
||||
**Awaiting:** Steward authorization (D-1 lane).
|
||||
**Awaiting:** ~~Steward authorization (D-1 lane).~~ → **BUILT 2026-08-08, `8ff5a9f`** (merged with PENDING-122).
|
||||
|
||||
---
|
||||
|
||||
### AMENDMENT 1 — 2026-08-08, built; hole 2 was a CLASS, not an instance
|
||||
|
||||
**Hole 1 closed.** `close_ranges`' `section_end` bound is now guarded, both branches. Discriminating negative run: **bound removed → 2 named failures citing the exact values (499, 400); restored → 47/47.** The removal was already proven invisible, which is what made it a real negative rather than a synthetic one. ⚠ The fixtures themselves are **synthetic of necessity** — the live corpus never exercises the branch, which is precisely why the gap survived.
|
||||
|
||||
**Hole 2 was three sites, not one.** I filed it as *"a suite that crashes instead of failing"*; `test_navigate.py` carried **three** bare `next(...)` calls over generators. Fixed as a class with one guarded helper. **Induced citability break: was a single `StopIteration` traceback → now SEVEN named failures**, each saying what broke and why the dependent checks did not run. The exit code was always right; the legibility is what changed.
|
||||
|
||||
**⚠ Option (c) — the census — is NOT done and remains open.** Two holes found without looking is not a base rate. The bounded sweep (7 suites; are other rules asserted-in-prose and unguarded? do other suites crash rather than name?) is still owed, and finding three more `next()` calls in the first suite I opened is weak evidence the class is wider than two.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user