deep-review
Installation
SKILL.md
Deep Review
Run an independent, specialist review panel as the last step before merge. The lead agent designs the reviewer mix for the specific change, then owns the outcome: verify every finding against the real code, fix accepted issues, rerun validation, and repeat review until no accepted findings remain.
Contract
- Use subagents. If no subagent tool is available, say that deep-review requires subagents and do not replace it with a single self-review.
- Tailor the panel to the change. Do not mechanically spawn a fixed set of reviewers when fewer, broader, narrower, or different specialists would review the PR better.
- Keep reviewer agents independent. Start them with fresh context where possible; do not include implementation chat history, your private conclusions, or expected findings.
- Run the panel concurrently. Spawn reviewers in parallel and blind to each other, then aggregate once they all return.
- Review a frozen target per round. Pin the change to a stable reference and give every reviewer in that round the same diff; after fixes, create a new frozen target for the next round.
- Reviewer output is advisory. Verify findings by reading the actual code path, adjacent files, project standards, and external docs when relevant.
- Prefer actionable findings over nits. Reject speculative risks, taste-only feedback, broad rewrites, and edge cases that do not matter for the PR.
- Guard strictly against over-engineering. Treat needless abstraction, cleverness, generic machinery, duplicated concepts, or extra moving parts as review-worthy only when they materially hurt the code's future maintainability.
- Fix accepted findings at the right ownership boundary. When one finding reveals a repeated bug class, inspect sibling instances in the PR scope.
- Rerun the relevant reviewers after review-triggered code changes. Continue until all accepted findings are fixed or consciously rejected and the final pass reports no accepted findings.
- Do not push only to run this skill. Push or update a PR only when the user asked for that.