You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
gates: duplicate-bodies, scan and t27b-native-ratchet are red on master (has_at, hw_place_before, a home path, 10 unlisted specs) #8361
Three gates are red on master's head (8881377) and therefore on every open pull request. Each one has a single cause in a recent merge.
Goal
Make duplicate-bodies, scan and t27b-native-ratchet pass on master again, each by the narrowest change that removes its own cause, so that pull requests are judged on their own diff.
Where we are
duplicate-bodies: python3 tools/dupe_scan.py on master prints a body written under has_at is now copied [2] time(s) (t27b: the body walks of lower.rs move to specs/tri/t27b/ast_walk.t27 (Closes #8249) #8258: specs/tri/t27b/ast_walk.t27has_at = specs/tri/t27b/source_text.t27starts_with) and hw_place_before ... [2] (d2d1112: specs/queen/actors_hw.t27hw_place_before = specs/queen/actors.t27place_before, at u16 instead of u64 node ids).
t27b-native-ratchet: 10 specs are UNLISTED in docs/reports/t27b_expectations.json (for example specs/queen/keyed.t27, specs/math/constants.t27), seen on PR runs such as 37988934908.
Out of bounds: every spec, the compiler, other ledgers.
User Scenarios & Testing
A pull request that touches none of these files gets green duplicate-bodies, scan and t27b-native-ratchet on its merge commit.
A new copied body, a new home path or a new spec without a ledger row still fails its gate.
Requirements
R1. has_at cannot be replaced by an import: t27c gen-rust emits the call to starts_with without a use, and cli/t27b/src/lower.rs mounts ast_walk.rs as its own module, so cli/t27b would not compile. hw_place_before is the hardware-width profile of place_before (actors_hw.t27 exists for gen-verilog). Both are recorded as deliberate copies; no other group moves.
R2. The skill reads git config --get core.hooksPath, which every worktree shares, instead of a developer's home path.
R3. The t27b rows come from a t27b-native run of this branch's own head, written with tri t27b ratchet --bless --accept-new, and only rows the reference passes are recorded.
Success Criteria
python3 tools/dupe_scan.py and python3 tools/check_devhome_paths.py pass on the branch, and the baseline diff is exactly two added lines.
t27b-native-ratchet is green on the branch head.
Required checks green.
Requirements
FR-001: The duplicate-bodies baseline MUST record specs/tri/t27b/ast_walk.t27has_at = specs/tri/t27b/source_text.t27starts_with and specs/queen/actors_hw.t27hw_place_before = specs/queen/actors.t27place_before as deliberate copies; no import replacement is permitted because t27c gen-rust emits the call to starts_with without a use and cli/t27b/src/lower.rs mounts ast_walk.rs as its own module.
FR-002: The skill file .claude/skills/t27b-loop/SKILL.md MUST read git config --get core.hooksPath instead of a developer's home path.
FR-003: The ledger docs/reports/t27b_expectations.json MUST be updated by running tri t27b ratchet --bless --accept-new on the branch's own head, recording only rows the reference passes.
Activity