Skip to content

ARB-APR-3: parity receipt for the decide lane's cell (Qwen3.5-9B-Q4_K_M @ lambda-labs) - #3575

Open
noahgift wants to merge 2 commits into
mainfrom
PMAT-3574-arb-apr-3-receipt
Open

noahgift wants to merge 2 commits into
mainfrom
PMAT-3574-arb-apr-3-receipt

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

Closes #3574. ARB-APR-001 row 3 (aprender-owned).

What

One evidence file: evidence/parity/arb-apr-001/lambda-labs/qwen3.5-9b-q4_k_m.json. No code.

rust-agentic-harness.md §3.4 — a lane on a backend that has not passed parity is not a reviewer. The apr decide lane had no receipt for its cell. This is it.

Measured

apr parity ~/models/Qwen3.5-9B-Q4_K_M.gguf --prompt "<68-token corpus>" --json, published 0.68.2 from crates.io built --features cuda, on the agent host:

positions 68
parity true — 68 passed, 0 failed
min cosine 0.9986588 at position 44
threshold 0.99 (evidence/parity/thresholds.yamlmodels.qwen3.5-9b)
judged scripts/check_model_parity.sh --judge … --model qwen3.5-9bPASS
model sha256 03b74727a860a563… (recorded in the receipt)

Why now, rather than when the cell is ideal

The preferred cell — a declared apr carrying --features cuda on the agent host — is blocked on ARB-APR-2a, which is blocked on forjar's cargo provider having no features: field. Holding this row until then leaves the decide lane running unreceipted while the CLI demonstrably works (apr run: 20/20 cells across 0.8B–27B on two GPU hosts). Producing the receipt for the cell that exists, with its limits stated, beats producing nothing.

What it does not certify — in the file, not just the PR

The receipt carries a non-empty unmeasured[]:

A receipt with an empty unmeasured[] on a host that could not prove everything would be a lie; that field is why this one is worth committing.

Still owed for ARB-APR-001 row 3's done_when

The infra decide config must reference this receipt, and decide must refuse apr cell unreceipted when the reference is missing. That half is infra's.

🤖 Generated with Claude Code

Qwen3.5-9B-Q4_K_M on noah-Lambda-Vector (RTX 4090, sm_89): 68 positions,
min cosine 0.9986588 >= 0.99, judged PASS by check_model_parity.sh.

rust-agentic-harness.md 3.4: a lane on a backend that has not passed
parity is not a reviewer. The apr decide lane had no receipt for its
cell; this is it.

Produced rather than deferred. The preferred cell (a CUDA-featured
declared binary) is blocked on forjar's cargo provider having no
features field, and waiting for it would leave the lane running
unreceipted. The receipt carries an unmeasured[] naming exactly what it
does not cover: the lane's binary is the default-features build and runs
the CPU arm; apr serve cannot load qwen35 (#3571); the serving shape is
ungated (#3555).

Pmat-Ticket: PMAT-3574
Refs #3574, #3080

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 20, 2026

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3575 head=8543674413ab9c4556369021d1f024c7ffa4c7af 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.

…t oracle parity

Review finding: apr parity compares apr's CPU arm against apr's CUDA
arm. That is two of our own implementations agreeing, which the
0.941807 lesson says can happen while both are wrong. Rule 4 requires
the comparator named by reference with comparator_sha.

There is no oracle arm available: llama.cpp at llama_pin.toml
build_commit cannot load qwen35 (exits 1, 'unknown model architecture',
0 hits for qwen35 in the pinned checkout) — documented in
evidence/parity/thresholds.yaml. So comparator: self is recorded
explicitly, comparator_sha is null with the reason, and the cell is
marked partially_receipted rather than presented as full parity.

Pmat-Ticket: PMAT-3574
Refs #3574

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

Landing obligation: this PR must bump the committed receipt denominator from 7 to 8.

The receipts-under-contract row (#3577) commits a denominator file recording the expected focus-node count, and the extractor exits Unknown{ExtractorMiss} when its count disagrees. Measured on origin/main by the ontology lane: 113 files under evidence/parity/, 7 parity records, 0 carrying a comparator. So the committed denominator is 7, and it is correct — because this receipt is not on main yet.

When this PR lands it adds the eighth, so it must carry the bump in the same commit. If it does not, #3577's gate fires Unknown{ExtractorMiss} and names this PR — which is the falsifier working, not a defect: the acceptance for that row is literally "add a receipt without updating the denominator → ExtractorMiss".

Recording it here because the coupling is invisible from either side alone: whoever merges this will not see #3577's denominator, and #3577 cannot commit an 8 for a file that is not in the tree.

(My earlier "denominator = 8" on #3577 was wrong — I counted a receipt in my own unmerged PR as landed. The ontology lane caught it with git ls-files.)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-owner Open work with no live owner — 0.70 batch triage; pick it up and reassign

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ARB-APR-3: parity receipt for the decide lane's cell on the agent's host (Qwen3.5-9B-Q4_K_M @ lambda-labs)

1 participant