fix(G-10, PR-A): the shipped-path ratchet runs under ONE pinned analyser — stamped baseline, differential HEAD vs base under the same binary, never the tree against itself (PMAT-1059) - #3011
Merged
Conversation
…ser — scripts/pmat_bin.sh (PMAT_PIN=3.37.0, refuses absent/off-pin, option-neutral); the baseline is stamped (count/pmat_version/basis; INVALID is not a number, a stamp bump without a measurement is refused); a count is compared only under a matching stamp, otherwise REPORT BASELINE-STALE/INVALID and decide HEAD vs merge-base under the same binary; resolve_base.sh shared with G-6; 8 fixture rows; contract apr-pinned-analyser-ratchet-v1; CI step reads the pin (PMAT-1059, #2999) Pmat-Ticket: PMAT-1059
…tself: on the push shape (HEAD is the origin/main tip) resolve_base names the FIRST PARENT and refuses when it is not fetched (ci.yml deepens by one on push); `PROG=x . file` does not outlive the builtin, so R7 had passed by an unbound-variable death — plain assignment + a named refusal; LC_ALL=C comm; env -u GIT_* around the analyser; ratchet rows R9-R11 and G-6 rows 16-17; obligations map 1:1 onto PIN-F-001..004; resolver candidates are an array (zsh-safe, lint-clean) (PMAT-1059, #2999) Pmat-Ticket: PMAT-1059
…ed from the job logs, quorum verdict and per-finding disposition, verification claimed vs re-run, gaps G-10b/G-10c/PMAT-1061 Pmat-Ticket: PMAT-1059
noahgift
enabled auto-merge
September 6, 2026 11:13
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
This was referenced Sep 6, 2026
noahgift
added a commit
that referenced
this pull request
Sep 6, 2026
noahgift
added a commit
that referenced
this pull request
Sep 6, 2026
…endered Pmat-Ticket: PMAT-1059
This was referenced Sep 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PP-066 DAG row G-10 · ticket PMAT-1059 · Refs #2999 · epic #2873 · PR-A of three (G-10b pin guard, G-10c sweep follow). Receipt:
docs/audits/impl-PMAT-1059-receipt.md(status: partial until merged).Root cause, cited from the job logs (not inferred)
34011762858main @ 027ed88, 04:35Zpmat: /home/noah/.cargo/bin/pmat (pmat 3.31.0)SKIPPED (proven): pmat 3.31.0 cannot run this analysis.→ success34018449576#3008, 07:53Zpmat: /home/noah/.cargo/bin/pmat (pmat 3.37.0)pmat is capable (pmat 3.37.0) -- the ratchet is ARMED and blocking.→FAIL: shipped machine-specific paths grew 277 -> 317.The runner's analyser moved between those two runs (paiml/infra
machines/intel/forjar.yamlpins 3.37.0, PMAT-231). The baseline 277 named no instrument; 3.37.0 and 3.38.0 both count 317 on the unchanged tree. Main was vacuously green; every PR since is red for a defect none introduced. The instrument is part of the number.What this PR does
scripts/pmat_bin.sh— the ONE pin (PMAT_PIN=3.37.0). ResolvesPMAT_BIN_OVERRIDE,~/.local/pmat/<pin>/bin/pmat, then PATH — and accepts a binary only if it reports the pin; otherwise returns 1 naming every version tried. Option-neutral (sourced), zsh-safe (array candidates).scripts/hardcoded_path_shipped_baseline.txtgainspmat_version:andbasis:. Both areINVALID/UNMEASUREDby design: the 277 was never measured under a named binary. No baseline raise. The re-baseline is PMAT-1061, stamped, its own PR.scripts/check_hardcoded_paths.sh --full-if-capable— an absolute compare only under a matching stamp. OtherwiseREPORT BASELINE-STALE{old,new}/BASELINE-INVALIDand the verdict is the differential: HEAD and merge-base scanned under the same binary, delta ≤ 0 PASS, a positive delta FAILS naming the added paths. A stamp bumped without a re-measurement is refused. No base → RED. No analyser at the pin →FAIL (ENV), never PASS.base=027ed889d … head=HEAD— the base was the pushed commit): on the push shapescripts/lib/resolve_base.shnames HEAD's first parent and refuses when it is not fetched; ci.yml deepens the depth-1 checkout by one onpush. The resolver is G-6's, extracted verbatim and now shared, so both differential guards judge against one base.contracts/apr-pinned-analyser-ratchet-v1.yaml(kind: pattern; PIN-OB-001..004 ↔ PIN-F-001..004, 1:1).pv validate: valid.Mutations — RED then GREEN, each observed
pub const MUTATION_PROBE: &str = "/home/probe/models/x.gguf";tocrates/apr-cli/src/main.rs, run--full-if-capableunder the pindifferential: base 027ed889d = 317 shipped; HEAD = 318 shipped; delta +1→FAIL … crates/apr-cli/src/main.rs|/home/probe/models/x.ggufrc=1delta +0→PASS (differential, delta +0)rc=0src/f8.rs|fixture://p8count:standsA stamp is not a measurementrc=1cannot resolve the comparand ref) ·FAIL (ENV)rc=1never the tree against itselfPROG=x . filedoes not outlive the.builtin;$PROGunset underset -uinsideresolve_base)comm: input is not in sorted orderon the first live mutation (sort underLC_ALL=C, comm under the user locale)LC_ALL=C comm→ the path is namedCase tables:
bash scripts/check_hardcoded_paths.sh --self-test→ 16/16 (5 contract rows + R1–R11) ·bash scripts/check_roadmap_diff_additive.sh --self-test→ 17/17.Acceptance, re-run by the orchestrator (the quorum lanes ran no commands; every lane claim was re-verified)
Review quorum
3 agy lanes, review-only, verdict 3/3 do-not-implement-as-written on the pre-fold diff; the blocking finding (vacuous HEAD-vs-HEAD on the push shape) is confirmed and fixed above; the 1:1 obligation mapping applied; lane 1's dissent (the stored-count shrink-only ratchet blocks a rising re-baseline) is recorded as PMAT-1061's precondition. Full disposition table in the receipt.
Deployment precondition (why this is green on the runner)
The runner's PATH
pmatis 3.37.0 (the log line above) and~/.local/pmat/does not exist there → the resolver's third candidate takes it. The baseline is INVALID → the differential runs: HEAD vs merge-base (pull_request / merge_group) or vs the first parent (push, deepened). Expected on this PR:REPORT BASELINE-INVALID+delta +0+ PASS.Not in this PR
G-10b (
check_pmat_pinned.sh, 281 shrink-only) · G-10c (the sweep to 0) · PMAT-1061 (stamped re-baseline; needs a "stamped series" rule in the baseline kind table). All preserved onagent/G-10-full.