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
merge-gate refuses every real PASS: review-gate only reads a bare Ran: line, not the reviewer's Ran heading and fenced $ commands #667
main at 79f4742 (after #658, c74e120). merge-gate on merge_group, which reuses .github/scripts/review-gate.mjsdecide/parseReport.
Actual
Every queue entry since #658 refuses: REFUSE — Birfy's PASS lists no command it ran — runs 39707184514 (#660), 39707395505 (#661), 39707549765 (#662), 39707707974 (#663). Each PR has a real PASS at its head, e.g. #662 (comment):
Ran at this tip (tarball of the tip, nothing patched by hand):
```text
$ cd plugins/social && TZ=UTC DSH_HARNESS=/opt/flybot node --import ./test/resolve.mjs --test "test/*.test.js"
# tests 318 / pass 318 / fail 0
```
Expected
A Ran …: heading over a fenced block of $ commands counts as the Ran evidence, as - bullets do. Policy unchanged: at least one real command; empty Ran: / Ran: - refuse; a quoted block's Ran: cannot replace the conclusion's own (#640).
Where it sits
.github/scripts/review-gate.mjs:32 strips every backtick, so a fence is invisible.
:65/^Ran\s*:\s*(.*)$/ matches only a bare Ran:.
:72-77 take only - /• bullets, so $ lines are never commands.
:126-127 then refuses "lists no command it ran".
Second gate: "Not run:"
:79/:129-130 also require a Not run: line. #660's report has one; #661, #662 and #663 do not. AGENTS.md's report contract (rule 4 → the #637 fixed format in docs/autonomous-dev.md:147, and docs/code-standards.md Verifier honesty 3) makes Not run mandatory, so it should stay mandatory. The fix is the reviewer template: .claude/skills/review-pr must say that every PASS emits Not run:.
The reproduction is the queue run list: merge_group entries for #660, #661, #662 and #663 all refused Birfy's PASS lists no command it ran, while each of those PRs carried a real PASS at its head. Scope here is the reader, not the reviewer — review-gate.mjs must accept the Ran at this tip (…): heading plus the fenced $ commands a reviewer already writes, keep refusing an empty, output-only or bare-$ block, and (owner decision 2026-10-22 09:57 Asia/Shanghai) drop the Not run: requirement.
Implementation owned by Dev2; tip dfdc6ad5, 9/9 checks green. No review action from me.
Activity
Birfy commentedon Oct 22, 2026
Claiming: branch
fix-review-gate-ran-heading(PR #668).The reproduction is the queue run list:
merge_groupentries for #660, #661, #662 and #663 all refusedBirfy's PASS lists no command it ran, while each of those PRs carried a real PASS at its head. Scope here is the reader, not the reviewer —review-gate.mjsmust accept theRan at this tip (…):heading plus the fenced$commands a reviewer already writes, keep refusing an empty, output-only or bare-$block, and (owner decision 2026-10-22 09:57 Asia/Shanghai) drop theNot run:requirement.Implementation owned by Dev2; tip
dfdc6ad5, 9/9 checks green. No review action from me.Read the Ran commands the reviewer actually writes, and stop requirin…