release: forjar 1.31.0 — the cut (PMAT-574, closes #574) - #575
Conversation
Version, lock, the CHANGELOG heading over the three-PR window, and the crux comparison each behaviour owes. The window is paiml/infra#605 answered end to end: drift's verdict reaches the exit code (PMAT-562, #563), a run that inspected none of the resources it was asked about declines instead of reporting zero drift (PMAT-564, #569), and a service is converged only while the loaded unit executes the declared program (PMAT-560, #568). GATE H PASS 3 of 3 behaviour bullet(s) under [1.31.0] reconciled in docs/audits/crux-1.31.0.md, each naming >= 3 of the 28 surveyed systems. The rows carry no backticks inside the key span, because the gate greps the bullet's first six words LITERALLY and `forjar drift` does not contain "forjar drift". The bookkeeping gate B measures is part of the cut, not around it. Arm 7 was RED on this branch: CB-2112 37 against 35, CB-2114 36 against 34, CB-2115 49 against 43. Repaired rather than raised, by the baseline's own convention (a row whose id tail is the issue number, a milestone, and a bare `release:`): PMAT-557 #557, PMAT-560 #560, PMAT-564 #564 -> status completed; their issues are closed, so the open rows read as ORPHAN-ROADMAP and ISSUE-CLOSED both PMAT-560, PMAT-574 -> release: 1.31.0 #565 #572 #573 -> rows minted under their issue numbers, release: 1.32.0, milestone 1.32.0 PMAT-559 -> its row's title was truncated when it was minted, which is what the DRIFT finding was Measured after, on this tree: CB-2112 34 (ceiling 35), CB-2114 34 (34), CB-2115 43 (43). Nothing is lowered here — a ceiling may only be lowered from a measurement of the COMMITTED tree. PMAT-574 stays inprogress: a ticket is open in its own PR and the booking PR marks it completed, which is the rule the commit-msg hook enforced when this commit first said completed. PMAT-565 is NOT in this release: #570 was still open when the cut was made, so its behaviour owes no crux row and its ticket carries release: 1.32.0. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ersion lines (Refs PMAT-574) `make dogfood-release` exited 0 on the committed tree at 9e3a474 with all nine gates green: GATE A PASS 5 of 5 merged PR(s) since v1.30.0 carry a harness receipt GATE B PASS ... CB-2112=34/35 CB-2114=34/34 CB-2115=42/43 held GATE C PASS 211 CLI name(s), 12 MCP tool(s), 12 HTTP verb(s) GATE D PASS 18 documented invocation(s); version claims reconcile with Cargo.toml GATE E PASS 5 of 5 merged PR(s) since v1.30.0 carry a quorum receipt GATE F PASS line coverage 96.43% >= 95%; nothing to mutate (no .rs differs) GATE G PASS 43 contract(s) validate GATE H PASS 3 of 3 behaviour bullet(s) reconciled in docs/audits/crux-1.31.0.md GATE T PASS ... cut in flight: Cargo.toml is at 1.31.0 The three reds cleared BEFORE that run are in docs/audits/logs/PMAT-574-cut.log with the measurement either side, because a gate that was never red proves nothing about itself. The README's two version lines move 1.30 -> 1.31. Gate D passed either way — Cargo reads `forjar = "1.30"` as `>=1.30.0, <2.0.0`, which admits what this cut ships — so this is the cut keeping the documented version equal to the shipped one, not a gate forcing it. The first draft of the receipt claimed the lines were already correct; they were not, and the claim is replaced by what the file says. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "203d8a65416f492e5ae30f6096795adc5cc6e1ac",
"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": 1
},
{
"lane": 2,
"verdict": "NO-VERDICT",
"findings": 0
},
{
"lane": 3,
"verdict": "NO-VERDICT",
"findings": 0
}
]
} |
…dence (Refs PMAT-574) Lane 1 (gemini-3.1-pro-high, cited at impl-PMAT-574-receipt.md:1) read the receipt's `## The diff` section and found it did not name the receipt doing the listing, nor the quorum artifacts. True, and corrected. The lane's other half — that the receipt is an unrequested file — is refuted by scripts/dogfood/harness.sh: gate A fails any merged PR whose ticket has no docs/audits/impl-<ticket>-receipt.md at HEAD ending in IMPL-<ticket>-RECEIPT-END. Both halves are recorded in .quorum/evidence/release-1.31.0-lanes.md rather than the convenient one. The other two lanes returned NO-VERDICT (one wrote no verdict object, one hit `UNAVAILABLE (code 503): No capacity available for model gpt-oss-120b-medium`), and the evidence says so. A NO-VERDICT is not a PASS. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…, 4 refuted (Refs PMAT-574) The round did not agree and the receipt says so: lane 1 FAIL with one cited finding, lanes 2 and 3 NO-VERDICT (no verdict object; 503 with no capacity for gpt-oss-120b-medium). lane_errors=2. Three of the four refutations came from instruments that ruled before any lane saw the branch — gate H on the crux keys, the commit-msg hook on a completed ticket, and README.md itself on the receipt's claim that its version lines were already right. judges_note says so rather than letting judges=3 read as three independent tiers. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "e65a1fadf47173489a5180d8e9e0d8a1803cb735",
"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": "NO-VERDICT",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "e65a1fadf47173489a5180d8e9e0d8a1803cb735",
"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": 6
},
{
"lane": 2,
"verdict": "NO-VERDICT",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
…al cause (Refs PMAT-574)
Round 3's lane 1 (gemini-3.1-pro-high) refuted two claims this branch had
written:
1. the cut log's after-composition read `CB-2115 43 (ORPHAN-ROADMAP 24,
ORPHAN-GITHUB 8, DRIFT 10)`, and 24 + 8 + 10 = 42. A total that
contradicts its own breakdown is the black box this format exists to
refuse.
2. both the cut log and the dogfood receipt explained the 42-vs-43 difference
as "the receipts this commit had not yet added". A markdown file cannot
move ORPHAN-ROADMAP, ORPHAN-GITHUB or DRIFT.
Re-measured at 06:40Z: CB-2115 42, composition 24 + 8 + 10, which sums. `pmat
comply` reads GitHub LIVE and stamps every run with `snapshot: gh paiml/forjar
taken <ts>`, so 43 at 05:00Z and 42 since are two measurements of a moving
source. Both documents say that now.
The same lane's four other findings are off-by-one citation claims and are
refuted in .quorum/evidence/release-1.31.0-judges.md by re-reading each cited
file — CHANGELOG.md:12 IS the first bullet, crux-1.31.0.md:31 IS the first row,
README.md:96 IS `forjar = "1.31"`, and CB-2114's repair is two rows rather than
four because three were minted already carrying `release: 1.32.0`.
Receipt now records three rounds, 6 confirmed and 6 refuted, and names
gemini-3.8-flash-* as the lane that returned a SUCCESS envelope with no verdict
object in all three.
Pmat-Ticket: PMAT-574
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "1da75f21298bfcfff383f9baad17c72f47cd64f7",
"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": "FAIL",
"findings": 2
}
]
} |
…n convention (Refs PMAT-574) Round 4: lane 1 FAIL, lane 2 PASS, lane 3 FAIL. Two new claims, both refuted by measurement, both now in the digest: gate R reports 6 PR(s) since v1.30.0 while gates A, E and T report 5. Both are right about different windows: gh lists five merged after the tag's timestamp (#571 #569 #568 #563 #548), and gate R's six are those plus #556 — the release PR whose squash commit IS the tag (`git rev-list -n1 v1.30.0` and #556's merge commit are both ddd0c44). The receipt says so where it quotes gate R. the CHANGELOG should cite #569 (the PR) rather than #564 for PMAT-564. The file's convention is the ISSUE, unbroken through the 1.30.0 section: (PMAT-549, #549), (PMAT-534, #534), (PMAT-540, #540), (PMAT-542, #542), (PMAT-535, #535). Two lanes now share the same line-number error — the first bullet at CHANGELOG.md:13 and the version line at README.md:97. Re-measured at HEAD by numbering each blob out of git: CHANGELOG.md:10 heading, :11 blank, :12 bullet; README.md:95 comment, :96 version. Two lanes agreeing does not move a measurement. 6 confirmed, 8 refuted, 4 rounds, none agreed — recorded as it happened. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "b0ccb46a4c0cd6ed964a7496d335c2aa9ef86036",
"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": 3
},
{
"lane": 2,
"verdict": "NO-VERDICT",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
…bles (Refs PMAT-574) Round 5's lane 1 was right, three times in one finding: lanes.md still opened "Three rounds were run" and called 203d8a6 the final head, agy.md still said "One round", and claims.md still said "The round reviewed head 203d8a6" — while the table underneath and the receipt said four. Prose contradicting its own table is exactly the shape this format exists to refuse. All three now describe every round on the head it ran against (203d8a6, e65a1fa twice, 1da75f2, b0ccb46) and say why the count moves: a round that raises a real finding produces a fix, the fix moves the head, and the next round reviews a head no earlier round saw. The rail's final round reviews the final head and cannot, by construction, be described in a file it is reviewing. 6 confirmed, 9 refuted, 5 rounds, none agreed. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "f19c4e8620dd5406c29d180eeb28c2f348bfb1c6",
"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": "NO-VERDICT",
"findings": 0
}
]
} |
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "f19c4e8620dd5406c29d180eeb28c2f348bfb1c6",
"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": "NO-VERDICT",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 4
}
]
} |
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "f19c4e8620dd5406c29d180eeb28c2f348bfb1c6",
"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": 4
},
{
"lane": 2,
"verdict": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "PASS",
"findings": 0
}
]
} |
…-574) Rounds 6 and 7 raised NO finding: every lane that returned a verdict passed, and each round collapsed only because one lane hit `UNAVAILABLE (code 503): No capacity available` for its model. That is the state of the agy backend this morning, not a property of this branch, and the evidence says so. Round 8's lane 1 raised four findings and all four were this receipt's own stale counts: `recorded_at` said three author claims where four had been refuted by lanes, `judges_note` said three rounds and four refutations where the digest said five and nine, and two "three rounds" phrases had survived incremental editing. Every one is corrected. That is the second time a lane has caught the bookkeeping OF the bookkeeping, which is the argument for running it. 8 rounds, 6 confirmed, 10 refuted, none agreed. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "be408017245cdde2c07fc725062eaac9fc6e7d09",
"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": 4
},
{
"lane": 2,
"verdict": "PASS",
"findings": 0
},
{
"lane": 3,
"verdict": "FAIL",
"findings": 4
}
]
} |
Rounds 8 and 9 refuted the same thing, and round 9 did it from two lanes at once: the round count and the refutation count were restated in four files, and had gone stale in three of them. agy.md still said five rounds, claims.md still listed heads up to b0ccb46, and judges.md's opening said nine refutations over ten items. Fixed structurally rather than by another pass of hand-editing four numbers: - the per-round table in .quorum/evidence/release-1.31.0-lanes.md is the ONLY place rounds are counted and heads are named - agy.md and claims.md refer to that table and restate no number - judges.md states the adjudication count once, where the gate reads it - the receipt keeps rounds / claims_confirmed / claims_refuted, which the gate validates against the digest's own items The lanes table also says out loud what it cannot cover: the merge rail runs its round on the FINAL head, and that round cannot be described in a file it is reviewing. 6 confirmed, 11 refuted. Pmat-Ticket: PMAT-574 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "9d72806b07331f3e4b162023b8dcda7f6d1d8671",
"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": 3
}
]
} |
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "9d72806b07331f3e4b162023b8dcda7f6d1d8671",
"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": "FAIL",
"findings": 3
},
{
"lane": 3,
"verdict": "FAIL",
"findings": 1
}
]
} |
…Refs PMAT-574)
Round 11 refuted, from all three lanes, the claim that the structural fix had
landed:
- .quorum/evidence/release-1.31.0-lanes.md still opened "Eight rounds were
run" and named b0ccb46 as the last head. The edit meant to replace that
paragraph matched nothing and reported success, which is the failure mode
worth naming: a replacement that silently applies to zero bytes.
- agy_teamwork.mode still read "one round of three sandboxed agy quorum
lanes" beside "rounds": 9.
- docs/audits/impl-PMAT-574-receipt.md still said "the round that produced
it".
All three fixed, and this time the tree was SWEPT — every count beside the word
"round" in the evidence, the receipt and both audit documents — rather than
assumed. The sweep also separated the live claims from the QUOTATIONS: the
digest quotes stale strings so its findings can be checked, and the lanes table
now says so in its own words.
Round 10's three findings are recorded as false: it claimed the evidence
sha256s and byte counts were stale, every one matches byte for byte at HEAD,
and the total it proposed does not equal the sum it listed.
6 confirmed, 12 refuted.
Pmat-Ticket: PMAT-574
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "ed8879c55cdea6def8615b9bb350e8a7de28ef02",
"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": "FAIL",
"findings": 2
}
]
} |
|
quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "PMAT-574",
"head": "ed8879c55cdea6def8615b9bb350e8a7de28ef02",
"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
}
]
} |
What this is
The 1.31.0 cut: version, lock, the CHANGELOG heading over the window, the crux comparison each behaviour owes, and the ledger bookkeeping gate B measures.
paiml/infra is blocked on this release — PMAT-607 folds
machines/{yoga,gx10}/forjar-ephemeral.yamlinto the host manifest and its done-when is a drift verdict 1.30.0 cannot give (paiml/infra#605).What ships
forjar driftexits 1 on any DRIFTED line, on every run, with no flagforjar driftdeclines — exit 2, the count named — when it inspected none of the resources it was asked about, and never grades a resource from a manifest it was not givenserviceis converged only while the loaded unit executes the declared program (exec_start/exec_sha256)Gates, measured on this branch
GATE H PASS 3 of 3 behaviour bullet(s) under [1.31.0] reconciled in docs/audits/crux-1.31.0.md, each naming >= 3 of the 28 surveyed systemsGATE T PASS 8 tagged release(s) since v1.25.0 reconcile with git and GitHub and 53 ticket(s) carry their tag and say they shipped; 5 ticket(s) from 5 PR(s) merged since v1.30.0 carry release:v1.31.0; cut in flight: Cargo.toml is at 1.31.0What is deliberately not here
PMAT-565 (#570, the per-machine lock names its writer) was still open at the cut, so it owes no crux row and its ticket carries
release: 1.32.0.🤖 Generated with Claude Code