skills/golem-powers/review-router/SKILL.md
Dynamic code review routing with automatic fallback chain when primary reviewer is unavailable. Routes to CodeRabbit, Macroscope, requesting-code-review, or Cursor CLI. Triggers on: 'review-router', 'route review', 'reviewer unavailable'. NOT for: general code review workflow (use /code-review), receiving review feedback (use /superpowers:receiving-code-review).
npx skillsauth add etanhey/golems review-routerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Routes reviews to available tools with automatic fallback. The overnight sprint had CodeRabbit rate-limited and Greptile expired on 4/5 golems PRs. Workers fell back randomly. This skill defines the deterministic fallback chain.
Note: Greptile was evaluated but excluded — expired tokens are not auto-recoverable overnight.
CodeRabbit (coderabbit:code-reviewer subagent or cr review --plain)
cr --version succeeds AND no rate limit in last 5 minMacroscope (GitHub App — posts as PR comment)
gh api repos/{owner}/{repo}/installations includes Macroscopesuperpowers:requesting-code-review (Claude subagent)
Cursor CLI — Red/Blue Profiles (external tool — read-only audit mode)
cursor --version succeeds<cursor-max-mode-model> below: substitute Cursor's current Max Mode model ID (verify via cursor agent --help or the Cursor changelog — IDs change between versions; the user's preference is Cursor on Auto, but Red/Blue audits historically pin to Max Mode for harsher critique).cursor agent --output-format text --model "<cursor-max-mode-model>" "$(cat ~/.claude/commands/code-review/references/red-team-prompt.md | sed 's/{{REPO_CONTEXT}}/...context.../') DIFF: $(gh pr diff)"cursor agent --output-format text --model "<cursor-max-mode-model>" "$(cat ~/.claude/commands/code-review/references/blue-team-prompt.md | sed 's/{{REPO_CONTEXT}}/...context.../') DIFF: $(gh pr diff)"/code-review workflows: workflows/red-team.md and workflows/blue-team.mdIf all 4 tiers fail:
2 independent reviews before merge. Preferred: 1 red team + 1 blue team. If only 1 reviewer tool is available, run it with both profiles:
Deduplicate findings: red H findings take priority over blue suggestions on the same code.
After collecting review findings, classify each:
# In /pr-loop, after PR creation:
/review-router
# Standalone:
/review-router --pr 42 --repo golems
tools
The human-eval UX contract for Phoenix views: turn-by-turn scrollable replay (not a scorecard), hide-but-copyable IDs, collapsed thinking, identity chips, tool filters, tiny frozen starter datasets, mark-wrong-in-thread, mobile-first. Use when: building or reviewing ANY Phoenix/eval view, annotation UI, session replay, or human-grading surface. Triggers: phoenix view, eval UI, annotation view, session replay, human eval UX, grading interface. NOT for: Phoenix data pipelines/ingest (capture scripts have their own specs).
tools
macOS systems specialist — AppKit NSPanel architecture, launchd services, socket activation, MCP bridge resilience, syspolicyd, and high-frequency SwiftUI dashboards. Use when building menu-bar apps, LaunchAgents, debugging syspolicyd/Gatekeeper/TCC, resilient UDS/MCP bridges, or SwiftUI dashboards at 10Hz+.
development
Bulk LLM-judging protocol for fleet-dispatched verdict runs (KG cluster, eval harness). Use when: dispatching or running judge workers (J1/J2/RT), planning bulk-apply from verdict JSONL, or triaging evidence_degraded outputs. Triggers: judge fleet, bulk judge, R3 verdicts, kg-judge, RT gate, evidence_degraded. NOT for: single-item code review, Phoenix view UX (use phoenix-human-view), or non-judge eval pipelines.
development
Quiet-down protocol for sprint close: when the fleet wraps, delete ALL polling crons and monitors, send ONE final dashboard + ONE message, then go SILENT. Use when: fleet wraps, all workers done, overnight queue exhausted, sprint close, Etan asleep/away with nothing approved left. Triggers: fleet wrap, wrap the fleet, stand down, going quiet, sprint close. NOT for: mid-sprint monitoring (keep your loops), spawning a successor (use /session-handoff first).