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:
- `/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.
- `/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.
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:
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.