P13-S26 RATIFIED; pins frozen, not dispatched
The final whole-artifact check returned zero findings. Ratified on the
authority of the repository owner. Contract status: RATIFIED, PINS FROZEN --
executed, not edited; a defect found during execution is reported as its own
amendment with its own review round. NOT YET DISPATCHED: ratification and
dispatch are separate acts and no execution has begun. The status line states
no count of the review passes, per the rule this contract adopted after its own
tallies went stale twice.
Two of the ledger row's own claims did not survive scoping, and the row is
appended -- never rewritten -- with both corrections. The doc comment's G3a
aside is ambiguous, not false: G3a's pin 6 is titled "doc-only" and 6c5e69f
wrote the aside, so "this prose" is self-referential. The row's "claims a
specification repair that never landed" reading is withdrawn, and with it the
"only artifact pointing at the gap" rationale. The two-sided repair stands on a
different footing: the normative enumeration and the doc comment are incomplete
mirrors of each other, incomplete in different places, so neither may be
repaired from the other. The surface is derived from the check bodies instead --
41 tokens, each carrying its resolution target and a symbolic code anchor.
Review scaffolding, applied earlier under a narrow authorization and committed
here because ratification is what changes its staging state: two
DISCUSSED_NOT_CITED rows in requirement_labels.rs. The citation scan reads the
filesystem rather than git, so this contract naming two not-yet-existing labels
broke the mandated green baseline for three review passes before it was
measured. The req:graph: row is permanent -- it never becomes a requirement and
survives only in M6's evidence. The req:time: row is temporary, deleted by pin 4
when the requirement lands, because at that moment its own claim ("discussed,
never cited") turns false; gate 12 checks that deletion, since a stale row is
inert and nothing else would catch it.
The rung also files two candidates it does not repair: P13-S29, the invariant-10
tag multiplexing Chapter 3/4 failures through a public API and its Display; and
P13-S30, the repository-wide assumption that TeX is spelled exactly, which
misses \label {x}, \begin {requirement}, \end {requirement} and \chapter {X}.
S30 carries four consequences with the conditions under which each is silent or
loud -- three of them silent only conditionally, two distinct panic paths, and a
full inventory of the ten known consumer sites across three files, all
test-scope.
Baseline unchanged at 1583 passing across 42 suites; clippy and the pinned
four-crate fmt gate clean on 1.95.0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ps1szk2mSfgp4Cz21eVH9x
This commit is contained in:
parent
fcc3fb6b39
commit
01c621d64e
|
|
@ -378,12 +378,46 @@ fn is_citation_byte(byte: u8) -> bool {
|
||||||
///
|
///
|
||||||
/// A row here is a claim that the string is discussed, never cited. Keep it short,
|
/// A row here is a claim that the string is discussed, never cited. Keep it short,
|
||||||
/// and give the reason.
|
/// and give the reason.
|
||||||
const DISCUSSED_NOT_CITED: &[(&str, &str)] = &[(
|
const DISCUSSED_NOT_CITED: &[(&str, &str)] = &[
|
||||||
"req:layoutir:vertical-bands",
|
(
|
||||||
"never existed; the Pass-12 log cited it for a behavioural fix no requirement \
|
"req:layoutir:vertical-bands",
|
||||||
governs. Named in spec/PLAN_P13S1_LABELS.md as the finding that motivated \
|
"never existed; the Pass-12 log cited it for a behavioural fix no requirement \
|
||||||
this checker.",
|
governs. Named in spec/PLAN_P13S1_LABELS.md as the finding that motivated \
|
||||||
)];
|
this checker.",
|
||||||
|
),
|
||||||
|
// --- P13-S26 REVIEW SCAFFOLDING (pre-execution) -------------------------
|
||||||
|
//
|
||||||
|
// The citation scan reads the filesystem, not git, so the contract at
|
||||||
|
// spec/CONTRACT_P13S26_INVARIANT10_SURFACE.md is scanned like any other
|
||||||
|
// repository text — tracked or not, staged or not. It names both labels
|
||||||
|
// below, neither of which exists yet, which broke the mandated green
|
||||||
|
// baseline for three review rounds before it was measured. Euphemism is not
|
||||||
|
// the remedy — see this const's own doc comment. Authorized as prerequisite
|
||||||
|
// review scaffolding, NOT as dispatch of P13-S26; no other pin work is
|
||||||
|
// licensed by it.
|
||||||
|
//
|
||||||
|
// Deliberately says nothing about its own staging or tracking state: both
|
||||||
|
// change at ratification, while pin 10 of that contract deletes this banner
|
||||||
|
// only at execution, so any such claim would spend that interval false.
|
||||||
|
//
|
||||||
|
// If S26 is abandoned, or either label changes before the rung lands,
|
||||||
|
// remove the corresponding row by hand.
|
||||||
|
(
|
||||||
|
"req:graph:aleatoric-reference-locality",
|
||||||
|
"not defined in the restored tree; P13-S26's M6 mutation defines it only \
|
||||||
|
while that mutation is applied. Named by \
|
||||||
|
spec/CONTRACT_P13S26_INVARIANT10_SURFACE.md and recorded in \
|
||||||
|
spec/EVIDENCE_P13S26_EXECUTION.md as M6's verbatim diagnostic. PERMANENT.",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"req:time:aleatoric-reference-locality",
|
||||||
|
"proposed by spec/CONTRACT_P13S26_INVARIANT10_SURFACE.md; the requirement \
|
||||||
|
does not exist until that contract's pin 4 lands. TEMPORARY — pin 4 \
|
||||||
|
REMOVES this row when it creates the requirement, because this row's own \
|
||||||
|
claim (discussed, never cited) becomes false at that moment. A stale row \
|
||||||
|
is inert, so nothing else will catch it; that contract's gate 12 does.",
|
||||||
|
),
|
||||||
|
];
|
||||||
|
|
||||||
fn requirement_strings(text: &str) -> BTreeSet<String> {
|
fn requirement_strings(text: &str) -> BTreeSet<String> {
|
||||||
let bytes = text.as_bytes();
|
let bytes = text.as_bytes();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue