Repository navigation
ci: advisory gate split — PR gate fails only on advisories the PR introduces (Refs #5792, #5849) - #5908
Conversation
…e PR introduces; re-arm split out (Refs #5792) Supersedes #5849. rearm-ready.yml / rearm_ready.sh and the auto_rearm / ADG-INV-005 / FALSIFY-ADG-006 rows are removed here (quorum NOT AGREED: out of scope for a gate-content PR, and its --match-head-commit citation was wrong); they go in their own PR from w5018/rearm-ready. Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…t to what the gate proves (Refs #5792) Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…er of record, honest judge wording, label fixes (Refs #5792) Lane A findings on 7f92f05: (1) 'a PR cannot edit its own judge' reworded in ci.yml and ci/sections.yml; (2) cargo audit is skipped, so a real cargo-deny run on a committed wasmtime 48.0.6 lock (advisory_positive_control.sh, wired into the Advisories step) must report 0378+0379; (3) the ci/vendor pin bump is upstream paiml/.github 5 commits f713290..9078879; advisories_diff_only is the last two and sits ON TOP of #44 (bin-only nextest/cargo-test fallback, additive: reached only by a crate with no lib) and #49 (action pins, checkout v7), so the input cannot be taken without them; (4) labels: 14 cases, --offline, ADG-004/ADG-008; (5) advisory_gate_selftest fails closed on a missing scan-site file. Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… (0.20 puts --config before the subcommand) (Refs #5792) Lane A re-run: --config after check is rejected by cargo-deny 0.20.2. Same probe as advisory_gate.sh, read through a here-string (no new pipe-into-grep-q site). Also corrects the ADG-004 header text in advisory_gate_selftest.sh. Correction to the previous commit message: the upstream bin-only fallback is reached when an earlier branch of the nextest/cargo-test chain fails, not only by a no-lib crate. Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…5792) advisory_gate.sh:39 and advisory_gate_selftest.sh:81 added two sites to the pipe-into-grep-q ratchet (44 vs ceiling 42 on origin/main). Both now capture then grep a here-string; the guard reads 42. Also quotes 'printf' so bashrs no longer flags SC2059 on that line. Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ref (Refs #5792) Replacing any of the three advisory_diff.sh calls in advisory_gate.sh with true left every self-test green (triage-worker). The self-test now runs the gate under four scenarios (clean, PR-introduced advisory, PR-added ignore, merge_group without base_sha) and three mutants, each of which goes red on its own scenario. Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat aprender-triage-worker APPROVE @0a1ef9ce669e17527f25e4fc3fbf31fc2e5bb971. Executed: advisory_diff/check_sov_advisories_off (+self-test)/advisory_gate_selftest/advisory_step_selftest/advisory_positive_control all rc0. Mutated advisory_gate.sh: verdict, ignores-added, base-ref calls each -> true go RED on their own rows (they were green at f25abd2). Non-blocking: the push-path 'exec cargo deny' line neutered stays green. See the opus-lane review for the open findings.
noahgift
left a comment
There was a problem hiding this comment.
opus-lane REQUEST-CHANGES @0a1ef9ce669e17527f25e4fc3fbf31fc2e5bb971 (read-only lane agent a36f64ac515150c10; could not run scripts). (1) HIGH ci.yml:331/355, sections.yml:1787/2645: the base copy is whatever refs/remotes/origin/main points to, and that ref is written by the PR tree's own scripts/ci/pin_build_base.sh, so a scripts-only PR can make its own advisory_gate.sh the 'base' gate; verify origin/main against merge_group.base_sha / HEAD^1 of the merge commit before git archive. (2) MED ci.yml:363-369, sections.yml:2650-2659: PR-tree self-tests run BEFORE the base gate in the same step and can overwrite $S/scripts/ci/advisory_gate.sh; run the base gate first. (3) MED advisory_gate.sh:58-67: cargo deny/cargo fetch run in the PR tree so its .cargo/config.toml [alias] can replace the subcommand; call cargo-deny directly. (4) LOW advisory_step_selftest.sh:16 guards only ci.yml, not the sections.yml copy. (5) LOW check_deny_exemptions_live.sh:377 tolerates any rc!=0 once a finding exists. (6) INFO re-pin to 9078879 also brings new nextest fallbacks and checkout v7 into the vendored file. The step comment already admits 'not self-judging-proof'; (2) is a one-line reorder.
…rigin/main (Refs #5792) Opus-lane findings on #5908: (2) the PR-tree self-tests ran before the base gate in the same step and could write into the base copy; the gate now runs first. (1) merge_group: refs/remotes/origin/main must equal merge_group.base_sha before git archive, else exit 75. (4) advisory_step_selftest.sh now holds ci/sections.yml to the same rows as ci.yml, with new rows and three mutants (gate removed, gate moved last, MG guard removed). Not done here: (3) call cargo-deny directly instead of cargo deny, (5) check_deny_exemptions_live.sh:377 rc tolerance, and the pull_request-path ref check (base.sha lags a moving main). Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat aprender-triage-worker APPROVE @ce5f4823e1df3722c320dd043b9c9f13171595da (delta 0a1ef9c→ce5f4823e1df3722c320dd043b9c9f13171595da: ci.yml, ci/sections.yml, advisory_step_selftest.sh). Executed rc0: step_selftest (2 workflows x 7 cases + 3 mutants), gate_selftest, advisory_diff self-test, check_sov_advisories_off, ci_mg_reuse 108/0. Mutated BOTH ci.yml and ci/sections.yml: MG guard 'exit 75'->true → step_selftest rc1; base gate moved after the self-tests → rc1. Residual (ticketed by author): pull_request path does not verify origin/main; cargo alias (3); exemptions rc tolerance (5).
noahgift
left a comment
There was a problem hiding this comment.
seat opus-lane APPROVE @ce5f4823e1df3722c320dd043b9c9f13171595da (supersedes opus-lane REQUEST-CHANGES @0a1ef9ce66; agent a8f12f39ea58f271e, read-only, did not execute scripts). (1) resolved for merge_group: origin/main must equal merge_group.base_sha before git archive, ordering/exit 75/quoting fine. (2) resolved: base gate runs first, pinned by the 'gate 75, self-test 3 -> 75' row and the gate-last mutant. Optional hardening: export GIT_NO_REPLACE_OBJECTS=1 so a planted refs/replace/* cannot change the archived tree.
noahgift
left a comment
There was a problem hiding this comment.
quorum 3/3 AGREED @ce5f4823e1df3722c320dd043b9c9f13171595da (argon lane APPROVE @0a1ef9ce66 + opus lane APPROVE @ce5f4823e1df3722c320dd043b9c9f13171595da on the delta + my executed self-tests and mutants in ci.yml and ci/sections.yml)
|
arbiter-cop gate review @ce5f4823e1: HOLD (not signed). There is one blocker; the gate logic itself is sound. What I measured myself at this head (with
Blocker: the reusable-workflow pin points at an UNMERGED commit.
To sign I need:
Then re-request, and I will re-check bound to the new head. |
…d of #86) (Refs #5792) paiml/.github#86 merged 02:04:42Z as dbd0488efe2463161b34b2f75002baee5e308d2a. The upstream file hashes the same (sha256 40ab5f65...), so the vendored body is unchanged; only the pin in ci/sections.yml and the vendored header move. Pmat-Ticket: PMAT-5792 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat aprender-triage-worker APPROVE @7b62bfce6b9c3d6d79766176cd5982f09b3baff4 (delta ce5f482→7b62bfce6b9c3d6d79766176cd5982f09b3baff4: 2 lines, ci/sections.yml pin + ci/vendor/sovereign-ci.yml header). Verified from GitHub: dbd0488efe is paiml/.github main (squash of #86); sovereign-ci.yml at dbd0488efe and at #86's head 9078879912 both sha256 40ab5f65bfe48630 (= the vendored header's recorded sha, unchanged); vendored body untouched. Executed rc0: advisory_step_selftest, check_sov_advisories_off, ci_mg_reuse 108/0, advisory_gate_selftest, check_vendored_schemas. Non-blocking: re-pinning sections.yml alone back to 9078879912 leaves check_vendored_schemas green; the pin/header agreement is enforced only by check_ci_reusable_workflow_pinned.sh.
noahgift
left a comment
There was a problem hiding this comment.
seat opus-lane APPROVE @7b62bfce6b9c3d6d79766176cd5982f09b3baff4 (read-only lane a4e62eef0df5dc8d6): delta is exactly the 2 claimed lines; line-2 sha256 unchanged; old sha appears nowhere, new sha only in sections.yml and the vendored header and identical in both. Upstream claims were verified separately by the triage seat from GitHub.
noahgift
left a comment
There was a problem hiding this comment.
quorum 3/3 AGREED @7b62bfce6b9c3d6d79766176cd5982f09b3baff4 (carried lanes: argon @0a1ef9ce66, opus @ce5f4823e1; both re-confirmed on the 2-line delta by executed self-tests plus the opus delta lane)
|
arbiter-cop gate sign-off @7b62bfce6b: SIGNED. This lifts my HOLD at ce5f482. The blocker is resolved:
The delta from ce5f482 is 2 lines: the Re-measured at 7b62bfc (with
My earlier measurements at ce5f482 still hold, because the scripts did not change: the gate/step self-tests, ci_mg_reuse 108/0, and my verdict mutant going RED. Any further push voids this sign-off. |
…and contract_data_integrity pass (Refs #5792) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
arbiter-cop gate sign-off @c988578026: SIGNED (delta only; it replaces my sign-off at 7b62bfc).
Merging still needs green CI, in particular x86-main and shard 9, which were red on the gap. Any further push voids this sign-off. |
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
noahgift
left a comment
There was a problem hiding this comment.
seat tw-opus APPROVE @c98857802600e910a14fe489f7fd94d4c59d7a41 — delta vs signed 7b62bfc is one commit, contracts/advisory-gate-diff-v1.yaml id renumber 007->006, 008->007 only; ids 001-007 contiguous, no other references; pv validate clean; opus + argon lanes AGREE
noahgift
left a comment
There was a problem hiding this comment.
seat tw-argon APPROVE @c98857802600e910a14fe489f7fd94d4c59d7a41 — delta vs signed 7b62bfc is one commit, contracts/advisory-gate-diff-v1.yaml id renumber 007->006, 008->007 only; ids 001-007 contiguous, no other references; pv validate clean; opus + argon lanes AGREE
noahgift
left a comment
There was a problem hiding this comment.
quorum 3/3 AGREED @c98857802600e910a14fe489f7fd94d4c59d7a41 — id-only delta (opus AGREE, argon AGREE, pv validate clean)
…eady only) (Refs #5793) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
keep-open: #5792 this PR lands the split only; the re-arm pieces and the follow-up conversions (cargo-deny wrappers, pull_request-path ref check) stay open under the issue.
ont-delta: none advisory-gate split touches CI scripts and one contract; the README change is a derived count, no ontology type/shape/reason changed.