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

Open
noahgift wants to merge 5 commits into
mainfrom
agent/I-25

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).

…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=b73c5e96eb2d26c5fc4d4a8b855ca96817fbbf1c 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.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant