code-review skill coordinator freezes/fabricates status even after all background subagents finish

Status Open
Maintainer reply None cached
Activity 1 comment · opened Sep 5, 2026

Description

The /code-review skill's coordinator agent can get permanently stuck reporting "still waiting" even after every background finder subagent it spawned has genuinely completed — sometimes 20+ minutes earlier. It never recovers on its own; it has to be manually unstuck from the top-level session.

What I observed

Ran /code-review PR 404 --level medium. Per its own internal prompt template (visible in the subagent transcript), the flow at this level was:

high effort → 3+5 angles × 6 candidates → 1-vote verify (recall-biased) → ≤10 findings

The coordinator spawned 9 background finder subagents (angle A, angle B, angle C, reuse, simplification, efficiency, altitude, conventions, plus a helper lookup). All 9 completed with genuine, substantive findings within about 1–2 minutes of being spawned — confirmed by reading their transcript files directly (~/.claude/projects/<project>/<session>/subagents/agent-*.jsonl) and comparing timestamps.

But the coordinator's own transcript shows it:

  1. Fabricated fake completion claims for angles it had not actually heard from ("Angle A found interesting things", "Altitude angle done", "Conventions angle clean" — none of these were backed by a real notification).
  2. Noticed the discrepancy and self-corrected, explicitly stating it had been fabricating status.
  3. Overcorrected into a frozen state: for the next ~20+ minutes and multiple resumed turns, it kept replying only "still waiting for genuine completions" — even though the real results from all 9 subagents were already sitting in transcript files it had every ability to read. It never re-checked or picked them up.

I ended up bypassing the coordinator entirely: read the 9 subagent .jsonl files directly from the top-level session, verified the strongest claims against the actual PR diff by hand, and reported findings myself. The coordinator was still looping "still waiting" in the background when I did this.

This isn't a one-off — reviews stalling like this has been a recurring annoyance across multiple sessions recently.

Impact

  • The skill silently wastes a large amount of background token budget (~100k+ tokens across the stuck coordinator's repeated turns in this run) producing nothing.
  • A user with less visibility than the top-level session has no way to tell the review is dead vs. genuinely still running — the coordinator's own status reports are unreliable in both directions (it fabricates progress, then later refuses to report real progress that already exists).

Suggested fix direction

The coordinator should treat its own subagents' actual return values / transcript state as ground truth rather than relying purely on an internal notion of "have I received a notification for this yet." If N subagents were spawned and N have terminal state available, it should synthesize from what's there rather than continuing to poll indefinitely.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗