The challenger pass (step 6e in the pr-review skill) previously ran
inline within the orchestrator's LLM context. The same context that
synthesized findings also challenged them, reducing false-positive
detection effectiveness since the LLM had already formed opinions
during synthesis.
This change extracts the challenger into a dedicated sub-agent with
fresh context, as specified in the parent issue #1085. The challenger
sub-agent receives only the raw merged findings and the PR diff —
not the orchestrator's synthesis — preserving context isolation.
Changes:
- Add sub-agents/challenger.md with adversarial review instructions,
structured output format, and evidence-based removal requirements
- Update SKILL.md step 6e to dispatch the challenger as a sub-agent
after dimension sub-agents complete (sequential, not parallel)
- Add challenger to the sub-agent roster table
- Define graceful degradation: if the challenger fails, fall back to
the pre-challenger finding set with an info-level disclosure
Note: make lint could not run (Go toolchain permission denied in
sandbox). Changes are markdown-only; no Go code modified.
Closes #1797
Signed-off-by: fullsend-code <fullsend-code@users.noreply.github.com>
The challenger pass (step 6e in the pr-review skill) previously ran inline within the orchestrator's LLM context. The same context that synthesized findings also challenged them, reducing false-positive detection effectiveness since the LLM had already formed opinions during synthesis.
This change extracts the challenger into a dedicated sub-agent with fresh context, as specified in the parent issue #1085. The challenger sub-agent receives only the raw merged findings and the PR diff — not the orchestrator's synthesis — preserving context isolation.
Changes:
structured output format, and evidence-based removal requirements
after dimension sub-agents complete (sequential, not parallel)
the pre-challenger finding set with an info-level disclosure
Note: make lint could not run (Go toolchain permission denied in sandbox). Changes are markdown-only; no Go code modified.
Closes #1797
Post-script verification
agent/1797-challenger-sub-agent)972ce7f6654f0b7edaf699298901b10db69e4e4c..HEAD)