Skip to content

fix(I-26): spec_conformance.sh — a §12 expiry is the Expires marker, never the first date in the cell; rows past expiry are RED (the §4 andon); derived_expiries.json regenerated (row 1 → 2026-09-19) (PMAT-974, #2889) - #3009

Merged
noahgift merged 7 commits into
mainfrom
agent/I-26
Sep 13, 2026

Conversation

@noahgift

@noahgift noahgift commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

PP-066 DAG row I-26 (issue #2889; S0-2's expiry finding; epic #2873; ticket PMAT-974; owner spec-owner; receipt docs/audits/impl-PMAT-974-receipt.md, status: partial until merged).

The defect (S0-2): the PP-29 scanner took the FIRST date in a §12 root cell — master row 1's "lambda witness taken 2026-09-02" — and ignored its Expires **2026-09-19** marker; derived_expiries.json put row 1 (and rows 13/15/18/19, derived from it) at 2026-09-02. Five rows sat past expiry at HEAD and nothing was RED: the §4 andon was not wired.

What lands: the expiry is the Expires YYYY-MM-DD marker, never the first date (scripts/lib/spec_conformance.py); a non-discharged row past its derived expiry is RED in spec_conformance.sh (SPEC_CONFORMANCE_TODAY pins the clock for the case table); evidence/parity/derived_expiries.json regenerated by the script's own --write — row 1 expires 2026-09-19, rows 13/15/19 derive from it, 18 from 15. --selftest rows expiry_marker_wins and expired_row_is_red (RED first at c37fe3b; 42 rows green after). Contract: an invariant under expiries_derive_from_the_dag and FALSIFY-PP-LLAMA-001-CONFORMANCE-011 in contracts/pp-llama-001-spec-conformance-v1.yaml (existing contract).

Acceptance, re-run by the orchestrator on 69d6a5a

A_i rc
bash scripts/spec_conformance.sh --selftest (carries expiry_marker_wins and expired_row_is_red) 0 (42 rows)
bash scripts/spec_conformance.sh at HEAD (real clock) — non-zero iff a non-discharged row is past expiry 0: nothing expired today
python3 over evidence/parity/derived_expiries.json: row 1 → 2026-09-19; 13/15/19 ← 1; 18 ← 15 as predicted
bashrs lint (0 errors) · pv validate · pv lint · check_contract_test_binding.sh · check_contract_enforcement.sh · check_no_claim_literals.sh · check_perf_claims_cite_receipts.sh · check_roadmap_diff_additive.sh · check_readme_claims.sh 0 each

Mutation — RED, then restored GREEN: EXPIRES_MARKER replaced by a bare date regex → expiry_marker_wins BROKE: expected 2026-09-19 got [2026-09-02]; restored → green.

Finding: with the marker honoured, master rows 1, 13, 15, 18 and 19 all expire 2026-09-19 — thirteen days out; the andon now fires the day after (D-4: master dates stand). Receipt for this PR itself: advisory, not produced (driver A1).

…he first date in a §12 cell, not the Expires marker, and an expired row is never RED (S0-2)

Pmat-Ticket: PMAT-974
…never the first date in the cell; rows past expiry are RED (the §4 andon, SPEC_CONFORMANCE_TODAY for the case table); derived_expiries.json regenerated: row 1 expires 2026-09-19 and rows 13/15/18/19 derive from it (PMAT-974, #2889)

Pmat-Ticket: PMAT-974
… is the expiry and expired rows are RED (invariant + FALSIFY-PP-LLAMA-001-CONFORMANCE-011) (PMAT-974, #2889)

Pmat-Ticket: PMAT-974
@noahgift
noahgift enabled auto-merge September 6, 2026 07:22
@github-actions

github-actions Bot commented Sep 6, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3009 head=63b6ddc6d13ab719d4417fc7a1de88f368ed2757 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

check_roadmap_diff_additive.sh reported base id(s) missing at head: this branch forked before they landed on main, and a plain update takes one side of the file whole. Resolved as main's roadmap plus this branch's own new entries, each at its sorted slot among same-prefix peers. The other three roadmap guards pass on the result.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift
noahgift enabled auto-merge September 13, 2026 06:24
@noahgift
noahgift added this pull request to the merge queue Sep 13, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 13, 2026
check_roadmap_diff_additive.sh reported base id(s) missing at head: this branch forked before they landed on main, and a plain update takes one side of the file whole. Resolved as main's roadmap plus this branch's own new entries, each at its sorted slot among same-prefix peers. The other three roadmap guards pass on the result.

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift
noahgift enabled auto-merge September 13, 2026 08:23
@noahgift
noahgift added this pull request to the merge queue Sep 13, 2026
Merged via the queue into main with commit 3786870 Sep 13, 2026
18 of 19 checks passed
@noahgift
noahgift deleted the agent/I-26 branch September 13, 2026 09:35
@noahgift noahgift mentioned this pull request Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-rebase mergeStateStatus DIRTY: conflicts with main; rebase before it can enter the queue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant