diff --git a/PENDING.md b/PENDING.md index 14f6897..3b5f5b7 100644 --- a/PENDING.md +++ b/PENDING.md @@ -2284,3 +2284,39 @@ Censused by **mechanism** — driving real degraded states and observing the out **Landed:** contract **v0.1 → v0.2** with the superseded sentence preserved in place; suite **31 → 44**; fleet **7/7 green**. Both trigger rules fired on the commit. --- + +## PENDING-128 — REVIEWED-53's deferred option (c): kill the `manifest` shared word, on the occasion that has now arrived + +**Date:** 2026-08-08 +**Tag:** [PROPOSAL] — chamber convention-data (`graduation-spec.yaml` `layers:`), jurist design-gate +**Related:** REVIEWED-53 (2026-07-10) · PENDING-121 (**must land in the same commit — see §Coupling**) · the shared-name collision log (this would be the corpus's **ninth** such case, and the first retired rather than warned around). +**Raised by:** the jurist ruling on PENDING-121 — *"REVIEWED-53's deferred (c) is now live again by the same reasoning. It is not taken up here — it is a separate object with its own scope. Recorded so the next reader finds it considered rather than missed."* + +**Summary.** `graduation-spec.yaml` L19 warns that *"manifest"* names two different engine objects — the **VOICE** manifest (hash-free) and the **SOURCE** manifest (hash-binding). REVIEWED-53 fixed that with an **inline warning** and explicitly deferred the rename. The deferral's ground has lapsed. + +**The ruled text, verbatim** (`~/REVIEWED.md` L470): + +> **Option (b) confirmed** over (a) and (c): (a) leaves `voice_manifest` bare — the incident replayed in miniature; (b)'s inline warning plants the redirect where the mistake occurs; (c) (rename to kill the shared word) is doctrinally complete but out of scope for a doc-gap patch. + +**⚠ Read precisely, because the analogy is close enough to be misused.** (c) was judged **doctrinally complete** and set aside on **occasion** — *"out of scope for a doc-gap patch"* — not on merit. REVIEWED-53's change-class was **FIX**, a *"lightweight in-place edit"*. **PENDING-121 is a `[PROPOSAL]` that opens this same block deliberately.** The occasion the deferral waited for is the one now in hand. ⚠ This is **not** a ruling about renaming `engine_source_binding`; that is PENDING-121's, ruled separately. What transfers is only the jurist's stated position that renaming is the doctrinally complete remedy for a name-driven misreading. + +**Rationale — two warnings over two misleading names is accumulating patches.** The `voice_manifest` incident *created* the entry PENDING-121 is now rescoping: a reader generalized *"engine-side = hash-free"* because one word named two objects. Its remedy was a warning. PENDING-121 initially proposed rescoping `engine_source_binding` **in place with a `scope:` field** — the same remedy a second time, in the same block, for the same failure mode — and the jurist ruled **rename** instead. **Leaving `voice_manifest` warned-around while renaming its neighbour on exactly that reasoning is incoherent.** + +**Options.** +- **(a) Rename to a name that cannot collide** — e.g. `voice_personification` (what the entry's own text calls it: *"engine-side voice PERSONIFICATION"*). ⚠ Candidate must pass the **substring test** PENDING-121 §D earned: `canonical_binding_surface` scored "available" under substring matching while **containing** `binding_surface`. +- **(b) Keep the warning; do nothing.** The status quo REVIEWED-53 chose for a doc-gap patch, on an occasion that no longer obtains. +- **(c) Rename, and retire the inline warning it makes redundant.** ⚠ REVIEWED-53 explicitly **kept a dual warning** (*"inline ⚠ + block comment — two reading grains"*); retiring either needs its own ground, and *"the name is now unambiguous"* may not be enough for a reader arriving from an old citation. + +**Recommendation: (a), and NOT (c) in the same act.** Rename kills the collision; the warning becomes cheap redundancy rather than harmful, and REVIEWED-53 chose two reading grains deliberately. **Retiring a ratified safeguard should be its own decision with its own evidence**, not a tidy-up riding on a rename. + +**§Coupling — ⚠ THIS MUST LAND IN THE SAME COMMIT AS PENDING-121.** Both rename keys in the **same `layers:` block** — `voice_manifest` L19, `engine_source_binding` L20 — and **L19's text cross-references L20 by name**. Landing separately means two supersessions of one block, the second re-touching text the first just rewrote. **They must therefore be RULED together**, which is why this is filed now rather than after. + +**Check that it worked — both directions.** Before: the search finds every occurrence of the old key (the positive control). After: **zero** hits outside `~/REVIEWED.md`, which is excluded **by name in the command** — the completion control PENDING-121 §E already earned. And the cross-reference at L19↔L20 must still resolve, in both directions, at the new names. + +**⚠ What this does not establish.** A rename removes one collision; it does not census the other eight in the log, and **nothing here proposes that census**. It also does not touch `~/REVIEWED.md` L471, where REVIEWED-53's own text keeps the old key name — a ruling records what it ruled. + +**Files affected:** `~/_Dev/chamber-library/_curation/graduation-spec.yaml` (`layers:` L19 and its cross-reference to L20). + +**Awaiting:** Jurist design-gate, **jointly with PENDING-121's redraft**. + +---