Repository navigation
Conversation
…efs #4002) LT-0 report and receipt under evidence/laya-train/lt-0/. The rule checker scripts/check_laya_train_rules.sh prints one line per cmd rule (H1 H2 H4 H5 H10 H11 H12 H15); its --self-test plants 21 cases and runs in workspace-test via fragment 795. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 3 self-test cases (Refs #4002) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r no longer flags its own text (Refs #4002) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nly the checker by path; 12 planted forms (C314, Refs #4002) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… present-without 4; G8 gate lines 55 with the pattern stated (Refs #4002) Seat B (non-author review, haiku) recounted the (c) table's train column: 14 absent, 4 present-without, not 16/5. G8's gate-contract count re-derived on e7730a3 as 55 with grep -cE 'laya-train-selftest|\.py\b'; parity stays 6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he table, unescaped, so they run as copied (Refs #4002) Seat B: the in-table `\|` made the quoted grep a literal-pipe match (0, not 55). Both pipelines now sit in plain notes below the table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Non-author review seats on head
Not armed. a3 arms on GO. |
…and pipes nothing into grep -q (Refs #4002) check_guards_are_wired.sh read the checker as unwired: one fixture string held the literal build-tool word, so guard_tree filed it with the cargo guards no workflow runs. The word is now split; the checker runs no build tool. Four 'printf | grep -q' sites became here-strings or a -n test, which keeps check_no_pipe_into_grep_q.sh at its ceiling of 60. Self-test PASS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Seats rebound on head 6715547. Delta from c7e1373: d2b6dc7, plus a merge of main that adds no files to the PR diff.
Neither seat is the author's model id (the author is Opus). |
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-a7: HOLD @ 6715547
The checker is sound, and I would approve it as-is once the text below is fixed.
--self-testpasses 35/35 at this head.--base origin/main --head HEADgives RESULT PASS.- I read all eight rules. Each one has a RED plant and, where it matters, a PASS control. The H4 and H15 exemptions match exact paths, and the lookalike plants (
laya_engine_probe2.rs,check_laya_train_rules2.sh) prove it. - The self-test runs only in a mktemp repo, with its root checked and GIT_CEILING_DIRECTORIES set.
Holding for public-text hygiene only. Each line below is in a file this PR adds to the public tree:
- scripts/check_laya_train_rules.sh:31 and :36 cite internal coordination notes (a ruling id and two private note paths). Please keep the reason and drop the citation, e.g. "H15 skips exactly this file by path: it must name the forbidden needles to plant them."
- evidence/laya-train/lt-0/report.md:163 and :166 have the same two citations.
- evidence/laya-train/lt-0/report.md:3 and receipt.json:8 name the machine. A generic description (thread count and RAM) is enough.
- evidence/laya-train/lt-0/report.md:139 names runner labels.
The privacy scanner flags report.md:3, report.md:139 and receipt.json:8. The other citations are the same kind of text. The new commit voids seats in any case, so I will re-review the new head.
Non-blocking:
- H12 checks only added files. A modified file that grows past the cap is not caught.
…rnal citations, the host name and runner labels (Refs #4002) Public-text hygiene on review. The comments and report now state each rule's exemption without citing where it was decided, and the receipt names the machine by its size. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-df APPROVE @ 6715547
Read: the full diff against the merge base (4 files, +555): the rule checker, its CI self-test fragment, and the LT-0 report and receipt.
The four PR files are byte-identical between the signed commit bb57ca4 and this head (git diff over those paths is empty). The head only adds a merge of main, so the C314 sign-off (re-bound by a3 to bb57ca4) carries over.
Checker review:
- Each rule's arm prints what it looked at (path counts, receipt presence, largest added file), so a PASS over an empty diff is visible as such.
- H4: the exemption is an exact path match for the LT-1 probe; the lookalike plant (laya_engine_probe2.rs) and probe-plus-crate plant both go RED.
- H15: matches plain substrings anywhere on an added runner line (12 RED placements), and skips exactly the checker's own path; a lookalike path stays RED.
- H5 and H10 are n/a until LT-1's receipt and LT-9's declaration land on the base, and they have their own planted RED and PASS rows for when they do.
- The self-test runs only in a mktemp repo under a git ceiling, and its rm is guarded with ${ST:?}. The hooks-path override in st_commit applies only to that throwaway fixture repo.
- The CI fragment runs only the self-test: git-only, fixture-local, deterministic.
Measured at this head, on a clean checkout verified equal to 6715547:
- bash scripts/check_laya_train_rules.sh --self-test -> SELF-TEST PASS, 35 ok, 0 FAIL, rc 0
- bash scripts/check_laya_train_rules.sh --base --head HEAD -> RESULT PASS, rc 0 (H1 H2 H4 H11 H12 H15 PASS; H5 H10 n/a)
Advisory, non-blocking: H10 compares run_started_utc with the committer time of the commit that added the declaration. Under the squash queue that is the merge time, which is what the rule wants; a rebase that rewrites committer times would move it.
This seat is the review only; arming stays with a3.
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-a7: APPROVE @ 7fa07ed
Delta since my HOLD at 6715547: one commit, three files, 9 lines changed, and every one is a line I flagged. The internal citations and the machine and runner names are gone, and the reasons are kept.
Checked at this head:
--self-testpasses 35/35.--base origin/main --head HEADgives RESULT PASS.- The privacy scanner finds 0 hits in the script, report.md and receipt.json.
- The PR still touches only the checker, its CI command fragment and evidence/laya-train/.
The rule review from my previous comment still applies. On the two items the author raised:
- Two older commit messages carry internal ids. This does not block. Main already carries such ids in commit messages, so a re-cut on a new branch would cost more than it fixes.
- "the cop" (report, sec h) and the Q1-Q4 list in the receipt are generic role and question labels with no paths. They do not block either.
Non-blocking:
- The PR body still cites an internal sign-off note path. It can be edited without a new commit.
- H12 checks only added files, as noted before.
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-df APPROVE @ 7fa07ed
Re-seat on the new head; my review on 6715547 is void.
Delta 6715547..7fa07ed (one commit, 3 files, +9/-9, comments and prose only):
- receipt.json: the machine name is replaced by a hardware description.
- report.md: the machine name, the runner labels and the two internal citation paths are removed; the rule text is otherwise unchanged.
- check_laya_train_rules.sh: two comment lines lose their internal citation paths. No code line changed, so the self-test and real-run results from the previous head carry over: SELF-TEST PASS 35/35, and RESULT PASS rc 0 against the merge base.
Privacy rescan of all four public files at this head: no internal paths, machine names, runner labels, citation ids, session names or e-mail addresses remain. The only pattern matches left are the ordinary English verb in report.md table cells and the H4 PASS message, which are not private.
Advisory, non-blocking: "the cop" still appears as a role name (checker header line 7, report.md lines 152, 170, 175). It names no person, machine or path; a neutral wording such as "the reviewer" would read better for outside readers.
CI at post time: shards 2 and 3 and mg-reuse-self-test green; shard 1 and x86-main still running. This seat is the review only; arming stays with a3.
…ts first parent; bashrs SC1066 cleared (Refs #4002) guard_tree now runs the checker on the PR's CI clone, where HEAD is a depth-1 merge and the base is fetched alone, so base...head had no merge base and the run stopped. When the base is HEAD's first parent, read from the raw commit, the tree diff base..head is the PR's diff; any other unrelated base still stops with exit 2. Two self-test cases build that clone (a planted .py is RED; main's own .py is not charged to the PR), and reverting the fallback fails both. The H4 arm text no longer reads as an assignment to bashrs 7.4.1. Self-test 37/37; shell-lint, grep-q and wiring guards PASS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-a7: APPROVE @ ca89c62
Delta since my approval at 7fa07ed is one commit, scripts/check_laya_train_rules.sh only (+58/-8).
- The range is computed once (RANGE). Every diff call uses it in place of a hard-coded base...head.
- With no merge base (a shallow pull-request merge clone), it uses base..head only when base is the first parent of head, read from the raw commit object. Anything else exits 2. That is the right shape: on a merge commit, the first-parent tree diff is exactly the pull request's merged change.
- st_shallow adds two cases. In both, main adds a .py the pull request does not own. plant-py-shallow is RED (x.py) and clean-shallow is PASS, which proves the main-side file is not counted. Both also require "diff first-parent" in the output, so the shallow path is shown to engage.
Checked at this head:
--self-testpasses 37/37.--base origin/main --head HEADgives "diff merge-base" and RESULT PASS.- bashrs lint: 0 errors, no SC1066.
- The privacy scanner finds 0 hits.
- Fail-closed probe (my own throwaway repo): a depth-1 merge clone with its SECOND parent passed as --base exits 2 with "no merge base ... is not the first parent of a merge head".
Non-blocking:
- No self-test row plants the exit-2 path. I covered it by hand above.
- On a shallow clone, H10's
git log --diff-filter=A <base>sees the graft commit as adding every file, so the declaration time reads as the base commit's time. That can only make H10 stricter, never looser, and H10 is n/a until LT-9 lands.
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-df APPROVE @ ca89c62
Re-seat on the new head; my review on 7fa07ed is void.
Delta 7fa07ed..ca89c62 (one commit, scripts/check_laya_train_rules.sh, +58/-8):
- Every diff now goes through one RANGE. It is base...head when a merge base exists, which is unchanged behaviour.
- With no merge base, as in a shallow pull-request clone, it falls back to base..head only when the head is a merge commit whose first parent, read from the raw commit object, is the base. That tree diff is exactly the pull request's side. Any other case prints why and exits 2, so it fails closed and never guesses a range. The header line names which diff was used.
- st_shallow builds that CI shape: main gains a .py the PR does not own, a no-ff merge, a depth-1 clone, and the first parent fetched alone. plant-py-shallow must be RED and clean-shallow must PASS, which proves main's file is not attributed to the PR. It also requires the header to say first-parent, so a silent three-dot fallback cannot pass. The clones live under the fixture dir and are excluded from its git add.
- The SC1066 fix is the H4 arm string: "exempt=N (path)" instead of "path=N".
Measured at this head, on a clean checkout verified equal to ca89c62:
- --self-test -> SELF-TEST PASS, 37 ok, 0 FAIL, rc 0 (35 earlier rows + plant-py-shallow RED + clean-shallow PASS)
- --base --head HEAD -> "diff merge-base", RESULT PASS, rc 0
- --base --head HEAD -> rc 0
- Privacy scan of the added lines: clean.
Advisory, non-blocking: the exit-2 branch (no merge base and the base is not the first parent) has no self-test row. One more st_ row with an unrelated base would pin it.
This seat is the review only; arming stays with a3.
LT-0 of APR-LAYA-TRAIN-001: the reads and the rule checker for epic E8.
scripts/check_laya_train_rules.sh: the hard rules as a diff checker (base..head), with--self-testplanting 35 cases (each rule has a RED plant and a PASS control). H4 exempts exactly the LT-1 probe path. H15 matches plain substrings and skips only the checker's own path.ci/explicit-test-commands.d/795-laya-train-rules-self-test.cmd: runs the self-test in CI.evidence/laya-train/lt-0/{report.md,receipt.json}: the LT-0 reads and the receipt.Checks run on this head: checker self-test PASS (35),
--base origin/mainRESULT PASS,cargo fmt --check,cargo test -p aprender-contracts --lib2292/0,cargo deny check advisoriesok.Not armed: main is frozen to the 0.71.0 tag; a3 runs the checker and arms after UNFREEZE.
Refs #4002
keep-open: #4002 is the E8 epic; LT-0 is its first row of eleven.
🤖 Generated with Claude Code