Skip to content

fix(I-25): --workload is bound to the prompt corpus — receipt.workload only with corpus_sha256 of a prompts file whose _meta.corpus equals the label; --workload W1 --profile short is refused with one line (PMAT-973, #2888, #2756) - #3008

Merged
noahgift merged 9 commits into
mainfrom
agent/I-25
Sep 14, 2026

Conversation

@noahgift

@noahgift noahgift commented Sep 6, 2026 •

Copy link
Copy Markdown
Contributor

PP-066 DAG row I-25 (issue #2888; defect #2756; epic #2873; ticket PMAT-973; owner perf-gate; receipt docs/audits/impl-PMAT-973-receipt.md, status: partial until merged).

The defect (#2756): --workload was a free-text label with no connection to the prompts sent; apr test llm band --workload W1 --profile short sent one prompt thirty times and the receipt recorded workload: W1 — the W1 corpus's own _meta.distinctness_rationale says identical prompts let prefix caching, not the scheduler, drive Arm A's number. A label the receipt cannot falsify is not provenance.

What lands: bind_workload(label, prompts_file) -> WorkloadBinding { label, corpus_sha256, prompt_count } — accepted only when the file's first-line _meta.corpus equals the label (refused naming both labels, or "not a labelled corpus"); the band receipt carries corpus_sha256 (sha256 of the file bytes); --workload <corpus label> with no prompts file is refused before the first request with one line naming the corpus. Test module workload_corpus_binding (RED first at 24b077a): the real W1 corpus binds (256 prompts), a W2-labelled file refuses W1, a header-less file refuses, a receipt with a label and no digest is refused. Contract contracts/apr-workload-corpus-binding-v1.yaml (kind: pattern); README 1812 contracts.

Acceptance, re-run by the orchestrator on e925fc0

A_i rc
cargo test -p apr-cli --lib workload_corpus_binding 0 (4 passed)
cargo test -p apr-cli --lib test_llm_band (65 tests) 0
cargo fmt --all -- --check · cargo clippy -p apr-cli --lib -- -D warnings · pv validate · pv lint · check_contract_test_binding.sh · check_contract_enforcement.sh · check_readme_claims.sh · check_no_claim_literals.sh · check_roadmap_diff_additive.sh 0 each

Mutation — RED, then restored GREEN: the _meta.corpus comparison removed (any file accepted) → a_corpus_labelled_w2_refuses_the_w1_label and a_prompt_set_with_no_meta_header_is_not_a_labelled_corpus FAILED (2/4) → restored 4/4.

Recorded: the card's --test workload_corpus_binding is a #[cfg(test)] module of commands::test_llm_band (crate-private tree; the lib.rs seam is blocked by the pre-commit gate on pre-existing debt — same as R-3/T-2); the --profile short refusal is the unit-tested branch, not a live server run. Receipt for this PR itself: advisory, not produced (driver A1).

no-close: #2873 is the epic this row implements one item of, and the remaining refs are cited as context; an epic is not closed by one of its rows.

…label decoupled from the prompts sent (#2756)

Pmat-Ticket: PMAT-973
…d is accepted only with corpus_sha256 of the loaded prompts file whose _meta.corpus equals the label; --workload W1 --profile short (no corpus) is refused with one line before the first request (PMAT-973, #2888, #2756)

Pmat-Ticket: PMAT-973
…rpus label is earned by its corpus; README contract count 1812 (PMAT-973, #2888)

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

github-actions Bot commented Sep 6, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=3008 head=271f717ffdac4855d7a0c5899ed6d22169097e46 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.

…enerated (T-5 R-4)

Pmat-Ticket: PMAT-1098

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@noahgift
noahgift removed this pull request from the merge queue due to a manual request 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 09:16
Noah Gift and others added 2 commits September 13, 2026 12:29
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>
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 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
@noahgift
noahgift added this pull request to the merge queue Sep 13, 2026
Merged via the queue into main with commit 9f55235 Sep 14, 2026
18 of 19 checks passed
@noahgift
noahgift deleted the agent/I-25 branch September 14, 2026 00:43
@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.

Epic: PP-066 — 0.66 performance-parity release

1 participant