Skip to content

§11.1 + check_pr_ont_delta: the docs/specifications sink is the release spec, not every design spec — three maintainer PRs were red for a delta that did not exist; the predicate gets its self-test (Refs PMAT-3535) - #3536

Merged
noahgift merged 4 commits into
mainfrom
PMAT-3535-ont-delta-sink
Sep 19, 2026

Conversation

@noahgift

Copy link
Copy Markdown
Member

Closes #3535.

ont-delta: none — the §11.1 sink sentence and its guard move together; this PR records no sweep finding and closes no sweep, so there is no delta.

Measured (aprender-ba, 2026-09-19): #3499 (a guard-regex fix), #3420 (PP-QUANT-001) and #3424 (PP-ARCH-001) are RED on guard-tree with FAIL no ont-delta: line — each touches one file under docs/specifications/ and nothing else the rule names. scripts/check_pr_ont_delta.sh was faithful to §11.1 as written: the sentence named docs/specifications/** whole as a prose sink. A design spec is the finding's home, not a sink a sweep writes into.

Spec + guard in one commit: §11.1 now names docs/specifications/APR-RELEASE-001-*.md — the train's own spec, where sweep findings are recorded — and says a *-MASTER.md design spec is not a sweep; ONT_SWEEP_SINKS follows (the release spec file, not the directory).

The predicate had no self-test — all 15 rows fed check_body_text, so sweep_reason could classify every PR either way and stay green. aprender-ba's predicate_self_test (10 rows) is chained into --self-test; the falsifying row "a DESIGN spec is not a sweep" is want=1 and goes RED when the directory-wide sink is restored (measured: want=1 got=0), so the leg discriminates. --self-test 15 + 10 passed; bashrs 0 errors.

Interim for the three PRs stays an ont-delta: none <reason> body line; after this merges their guard-tree goes green on a rebase with no body change.

🤖 Generated with Claude Code

…se spec, not every design spec; the predicate gets its self-test (Refs PMAT-3535)

Measured 2026-09-19 (aprender-ba): #3499, #3420 and #3424 — a guard-regex
fix and two design specs — RED on guard-tree with `FAIL no ont-delta:
line`, each touching one file under docs/specifications/ and nothing else
§11.1 names. The guard was FAITHFUL to the sentence, which named
`docs/specifications/**` whole as a prose sink. A design spec is the
finding's home, not a sink a sweep writes into; the sink under that
directory is the train's own spec, where sweep findings are recorded.

Spec and guard move together: §11.1 names
`docs/specifications/APR-RELEASE-001-*.md` and says a `*-MASTER.md` design
spec is not a sweep; ONT_SWEEP_SINKS follows (the file, not the directory).

The predicate half had no self-test (all 15 rows fed check_body_text).
predicate_self_test — aprender-ba's leg, 10 rows: crate source, a
contract, ci.yml are not sweeps; night.yml, README, CLAUDE, the registry,
a derived baseline, the release spec are — chains into --self-test. The
falsifying row "a DESIGN spec is not a sweep" is want=1 and goes RED
(want=1 got=0) with the directory-wide sink restored, so the leg
discriminates. --self-test 15 + 10 passed; bashrs lint 0 errors.

Pmat-Ticket: PMAT-3535
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false)

{
 "ticket": "PMAT-3535",
 "head": "532c92ae5ab408ba3bd123c865f6fb2d3914ed92",
 "width": 3,
 "executor": "agy",
 "agreed": false,
 "auto_merge": {
  "checked": true,
  "was_armed": false,
  "disarmed": false,
  "note": "auto-merge not armed"
 },
 "lanes": [
  {
   "lane": 1,
   "verdict": "FAIL",
   "findings": 2
  },
  {
   "lane": 2,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 3,
   "verdict": "PASS",
   "findings": 0
  }
 ]
}

… as the criterion names it (Refs PMAT-3535)

Quorum round 1, lane 1: the spec said APR-RELEASE-001-*.md while ONT_SWEEP_SINKS said the exact file — 'verbatim' means the same string in both; and the row name carried a suffix the criterion did not. Criteria rewritten from the diff.

Pmat-Ticket: PMAT-3535
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false)

{
 "ticket": "PMAT-3535",
 "head": "db63b816e64e87d8eae2f70f17fe8329c83b5546",
 "width": 3,
 "executor": "agy",
 "agreed": false,
 "auto_merge": {
  "checked": true,
  "was_armed": false,
  "disarmed": false,
  "note": "auto-merge not armed"
 },
 "lanes": [
  {
   "lane": 1,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 2,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 3,
   "verdict": "FAIL",
   "findings": 1
  }
 ]
}

…LE of paths (Refs PMAT-3535)

Quorum round 2, lane 3 (flash) claimed, "measured", that predicate_row hands
sweep_reason the temp path itself so six rows fail with got=1. It does not:
sweep_reason reads the changed paths OUT of the file it is given
(`while IFS= read -r f … done < "$changed"`), which is the shape main()
hands it from --changed; predicate_row writes one path into a temp file and
passes the file. Measured on this head, `bash scripts/check_pr_ont_delta.sh
--self-test`: self-test 15 passed, 0 failed; predicate self-test 10 passed,
0 failed — and with the directory-wide sink restored exactly one row
(a DESIGN spec is not a sweep) goes want=1 got=0. The claim was a misread of
the function's contract; the comment now states that contract where the
misread happened, so the next reader does not need to trace it.

Pmat-Ticket: PMAT-3535
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=false disarmed=false)

{
 "ticket": "PMAT-3535",
 "head": "ad99389f066c1e77f33e54c2591f8f2cd96e40ef",
 "width": 3,
 "executor": "agy",
 "agreed": true,
 "auto_merge": {
  "checked": true,
  "was_armed": false,
  "disarmed": false,
  "note": "auto-merge not armed"
 },
 "lanes": [
  {
   "lane": 1,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 2,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 3,
   "verdict": "PASS",
   "findings": 0
  }
 ]
}

@github-actions

github-actions Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3536 head=6206d8ebca65a553451bb6581b368233249ca881 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.

Round 1: two exactness findings (the row name, the sink spelled the same in spec and guard), both taken. Round 2: one lane misread sweep_reason's file argument; refuted by the measured self-test and the contract stated in a comment.

Pmat-Ticket: PMAT-3535
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift
noahgift enabled auto-merge September 19, 2026 19:09
@noahgift
noahgift added this pull request to the merge queue Sep 19, 2026
Merged via the queue into main with commit ce343c7 Sep 19, 2026
47 of 51 checks passed
@noahgift
noahgift deleted the PMAT-3535-ont-delta-sink branch September 19, 2026 20:04
noahgift added a commit that referenced this pull request Sep 19, 2026
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
guyernest pushed a commit to guyernest/aprender that referenced this pull request Sep 29, 2026
* release: 0.68.2

bump-version.sh 0.68.2 (every workspace, facades included; --check green) and the CHANGELOG [0.68.2] section,
per docs/specifications/06x-release-schedule.md §4.2. After this merges, rel-0682-autopilot runs APR-RELEASE-001 §4 T-1..T-4 + close:
deep (T-1, local), pre-publish dogfood, tag + release, clean-room.yml dispatched on the tag (T-3, run id recorded), assets by command, preflight, cascade (T-4, automated), install, host + installer receipts, close.

Pmat-Ticket: PMAT-3477
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* release: 0.68.2 CHANGELOG — Qwen3.5 on CUDA up to 27B (paiml#3517, paiml#3527) and every PR merged since v0.68.1

Pmat-Ticket: PMAT-3477

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* evidence(ladder): 0.68.2 receipts measured from the bump tree on lambda (sm_89) and gx10 (sm_121) — every required rung green on both hosts; qwen3-8b optional red on lambda (paiml#3532)

Pmat-Ticket: PMAT-3477

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* contracts: arm ladder-measured + ladder-green shapes for 0.68.2; contracts.nt regenerated with the two 0.68.2 ladder receipts as focus nodes (ONT-4c1, paiml#3508)

Pmat-Ticket: PMAT-3477

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* CHANGELOG 0.68.2: rows for paiml#3533, paiml#3534 (merged since the cut)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* CHANGELOG 0.68.2: row for paiml#3528

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* CHANGELOG 0.68.2: rows for paiml#3526, paiml#3530 (merged-since-tag predicate now 0)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* CHANGELOG 0.68.2: row for paiml#3536

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Alfredo Deza <alfredo@deza.pe>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant