code-review plugin: parallel review agents run in background and are abandoned → silent review with is_error:false

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 16, 2026

Summary

The code-review plugin's command instructs launching parallel review sub-agents but never instructs the parent to await them. In a non-interactive context (GitHub Actions via claude-code-action), the model implements "in parallel" as background sub-agents (run_in_background: true), then ends its turn before they complete. The session then terminates and the background agents are killed — so the aggregation/validation/post steps never run, and the review completes silently with is_error: false.

Where

plugins/code-review/commands/code-review.md, step 4: "Launch 4 agents in parallel to independently review the changes." No instruction to run them in the foreground or to await their results before proceeding to steps 5–9.

Evidence

From a real run's execution output, subagent_stats:

spawned: 6, requested: {background: 4, foreground: 2}, started_in_background: 4, completed: 2

The 2 foreground setup agents completed; the 4 background review agents were dispatched and never awaited. The parent's final message: "The four review agents are still running. I'll report once they complete." — then the turn ended, result: success, is_error: false. No findings posted; downstream a verdict/gate that waits for reviewer output sees nothing and (correctly) fails.

Impact

Any CI gate built on this plugin gets intermittent silent reviews — more likely on larger diffs, where the background agents take longer than the parent's turn. It reads as "review passed but posted nothing," and is_error: false hides it. This silently breaks review gates.

Suggested fix

Step 4 should instruct the agents to run in the foreground and the parent to await all results before continuing — or, for CI, avoid the background fan-out entirely (a single-turn review has nothing to abandon).

View original on GitHub ↗