Skip to content

merge-gate refuses every real PASS: review-gate only reads a bare Ran: line, not the reviewer's Ran heading and fenced $ commands #667

Closed

Description

@Birfy

Environment

main at 79f4742 (after #658, c74e120). merge-gate on merge_group, which reuses .github/scripts/review-gate.mjs decide/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:.

Activity

  1. added
    bugSomething isn't working
    area:automationScheduled tasks and automation
    on Oct 22, 2026
  2. Birfy commented on Oct 22, 2026

    @Birfy
    CollaboratorAuthor

    Claiming: branch fix-review-gate-ran-heading (PR #668).

    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.

  3. added
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 22, 2026
  4. removed
    agent-workingAn agent has claimed this issue (the claim comment names the branch)
    on Oct 22, 2026
  5. added a commit that references this issue on Oct 23, 2026
    8005fc9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:automationScheduled tasks and automationbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions