Skip to content

fixer/sweep skills: recognize Greptile's 👍 reaction as convergence, not a stall #2194

Description

@carlos-alm

Problem

Both `/fixer` (Phase 2f, "Converge the PR and merge it") and `/sweep` (Step 2h, "Wait and re-check") tell the agent to wait for Greptile's response after posting an `@greptileai` re-trigger comment, but neither correctly describes what "done" looks like when Greptile has nothing new to flag.

Observed on PR #2193 (issue #1984): after fixing Greptile's round-2 finding and posting `@greptileai`, the agent waited over 4 hours, re-arming a Monitor tool repeatedly and even re-triggering a second time, because it kept waiting for a brand-new full review object to appear. In reality, Greptile had already responded — with a 👍 reaction on the trigger comment itself, posted within ~2 minutes both times — signaling "examined, nothing further to add." No new review ever came because there was nothing left to say.

Two separate flaws contribute:

  1. `/fixer` Phase 2f's G1 gate documentation (SKILL.md ~line 519) says to "poll... until a `Confidence Score` appears," but the confidence score is typically posted once in Greptile's initial summary and does not necessarily reappear on later reviews — so this instruction can describe a condition that's already trivially satisfied from round 1, while giving no guidance on how to tell whether a re-trigger converged versus is still in flight.
  2. `/sweep` (SKILL.md ~line 280-324) only checks for a positive reaction from `greptile-apps[bot]` before deciding whether to trigger at all (to skip a redundant trigger) — there's no equivalent check after triggering, in Step 2h's "wait and re-check" loop, for the reaction landing on the trigger comment itself as the terminal "done" signal.

Fix

Add explicit reaction-checking guidance (mirroring the existing pre-trigger check in `/sweep`) to both skills' post-trigger wait logic: after posting `@greptileai`, check for a positive reaction (`+1`/`hooray`/`heart`/`rocket`) from `greptile-apps[bot]` on that comment via the reactions endpoint. A reaction with no follow-up review within ~20 minutes means Greptile is done for this round — proceed to (re-)evaluate the gate conditions rather than continuing to wait for a review object that isn't coming.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions