docs(governance): PENDING-96 addendum — (a)+(b)+(c)-tag landed, item stays OPEN
Recorded after the act. The jurist's wording tightening is adopted as the operative framing: coverage and query-matching are different kinds of claim, and the falsifier bounds the finding rather than merely illustrating it. Landed in studium-engine@49a8851. Kept open on the jurist's process point — the finding is that a fixed instrument produced false confidence while wearing a mark that made it more credible, so shipping a better string is itself a small "feeling of done". Closing condition stated: PENDING-97 ruled → RETRIEVAL_BLINDNESS re-verified against whatever retrieval then exists → a regression test binding the six banked probes. Third open item surfaced during the work and recorded rather than fixed: retrieve.py has no test coverage whatsoever. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
This commit is contained in:
co-authored by
Claude Opus 5
parent
3a1790dcd6
commit
dca2d5d270
+28
@@ -826,6 +826,34 @@ Measured against the register itself before acting. Four corrections; the item's
|
|||||||
**Files affected:** `~/_Dev/studium-engine/engine/retrieve.py` (the silence branch and its warrant string). **None touched.**
|
**Files affected:** `~/_Dev/studium-engine/engine/retrieve.py` (the silence branch and its warrant string). **None touched.**
|
||||||
**Awaiting:** Steward authorization.
|
**Awaiting:** Steward authorization.
|
||||||
|
|
||||||
|
### ADDENDUM — 2026-08-04, AUTHORIZED and PARTLY LANDED. **This item stays OPEN.**
|
||||||
|
*Recorded after the act, not before it.*
|
||||||
|
|
||||||
|
**Jurist sharpening, adopted.** The diagnosis was refined in review and the refinement is now the operative framing: the completeness check verifies **document coverage** — every book was scanned — while the warrant claimed something about **query-matching**, a different kind of claim. A check defined by the retrieval mechanism's own notion of "found" cannot see a miss that mechanism is structurally blind to. The falsifier does real work: the check is not wrong in general, only wrong exactly when a true match exists under a variant the tokenizer does not fold.
|
||||||
|
|
||||||
|
**LANDED (a), tightened past my draft on the jurist's wording.** My proposed replacement still carried a smaller version of the same overclaim — "the index is complete and current" is true of document coverage and unverified of query-matching, and a reader who does not already hold that distinction collapses the two, exactly as the engine did. Now shipped:
|
||||||
|
|
||||||
|
> `SILENCE — ✓ coverage-warranted · tier: single-method`
|
||||||
|
> Every document in the served scope (13 section(s), 5685 chunk(s)) was scanned, and the index is current as-of *T*. **The query as submitted matched no indexed tokens.**
|
||||||
|
|
||||||
|
The verdict mark was tightened by the same logic: `✓ warranted` beside a silence reads as *this silence is correct*, when only the coverage half was ever checked — hence `✓ coverage-warranted` / `✗ COVERAGE UNWARRANTED`.
|
||||||
|
|
||||||
|
**LANDED (b)** as a fixed constant `RETRIEVAL_BLINDNESS`, attached to **every** silence (warranted and unwarranted alike), since the blindness is a property of the implementation and not of the query. Its content is verified against `chunker.normalize` and the FTS5 query path, not asserted: token-level under `normalizer@1` (NFC · long-s · ligatures · soft hyphen · whitespace), multi-token queries conjunctive, no spelling fold, no stemming, no semantic matching — closing with *"its absence here is not evidence of its absence from the corpus."*
|
||||||
|
|
||||||
|
**LANDED (c)-tag only.** `silence_tier: "single-method"` now rides on every silence, so the future cross-checked silence needs no third string migration at the display layer. The (c) mechanism itself remains correctly deferred behind PENDING-97.
|
||||||
|
|
||||||
|
**Coupling registered in code, not in memory.** A `⚠` comment at the constant states that `RETRIEVAL_BLINDNESS` **must** be revisited the moment PENDING-97 lands — any change to query construction, orthographic folding, or a semantic layer turns it into stale doctrine describing a mechanism that no longer exists. Registered at the site rather than trusted to a future session's recall.
|
||||||
|
|
||||||
|
**Why this item does not close.** The jurist's process point, adopted: the finding *is* that a fixed instrument produced false confidence while wearing a mark that made it more credible — so shipping a better string is itself a small instance of "the feeling of done." Three things remain:
|
||||||
|
1. **The disclosure is provisional until PENDING-97 is ruled.** Its accuracy has a shelf life tied to a decision not yet taken.
|
||||||
|
2. **(c) is deferred, not done** — one method still establishes every silence.
|
||||||
|
3. ⚠ **The fix is unguarded.** `tests/` holds `test_ingest_gate.py` and `test_verify_quote.py` and **nothing references `retrieve.py`** — the organ whose output the steward reads directly has no test at all. The new wording can regress silently. Surfaced, not fixed: a retrieval test suite written against a retrieval method about to change is the wasted design the (c) deferral already refused.
|
||||||
|
|
||||||
|
**Closing condition:** PENDING-97 ruled → `RETRIEVAL_BLINDNESS` re-verified against whatever retrieval then exists → a regression test binding the six banked probes. Not before.
|
||||||
|
|
||||||
|
**Verification run, both directions:** `grey zone` → coverage-warranted silence carrying the blindness (the false-silence case, now honest). `the quality without a name` → identical form, and **correctly** silent (*The Timeless Way of Building* is not among the 13 sources). The two now read alike, which is right: the engine cannot distinguish them, and pretending it could was the defect. `gray zone` → 3 citations surfacing `## The Gray Zone` itself. Full six-probe set re-run; hit path and `--json` shape intact.
|
||||||
|
**Files touched:** `~/_Dev/studium-engine/engine/retrieve.py` (imports · two module constants · silence construction ×2 · display).
|
||||||
|
|
||||||
## PENDING-97 — Engine retrieval AND-s bare tokens and has no semantic layer: recall collapses as the question lengthens
|
## PENDING-97 — Engine retrieval AND-s bare tokens and has no semantic layer: recall collapses as the question lengthens
|
||||||
**Date:** 2026-08-04
|
**Date:** 2026-08-04
|
||||||
**Tag:** [PROPOSAL]
|
**Tag:** [PROPOSAL]
|
||||||
|
|||||||
Reference in New Issue
Block a user