From magician
Multi-agent code review with parallel correctness, security, and simplification checks, then auto-fixes critical/high issues. Use before shipping a diff or PR.
How this skill is triggered — by the user, by Claude, or both
Slash command
/magician:scrutinizeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Review a code change with three specialist agents in parallel, consolidate findings, then remediate. (This skill absorbed the former `/absorb` — review and fix are one loop.)
Review a code change with three specialist agents in parallel, consolidate findings, then remediate. (This skill absorbed the former /absorb — review and fix are one loop.)
Scale review depth to the change size: a tiny diff needs little; a large changeset or security-sensitive change warrants /effort high (or xhigh for sprawling diffs). See lore/models.md.
Phase 1 runs autonomously: batch the diff write and all three Task dispatches in one message; reads, searches, kg query/blast, and read-only git diff/status NEVER pause for permission. The SCRUTINY REPORT (Phase 1, step 7) is the single approval gate — end your turn there and wait. Once approved, Phase 2 runs the Critical/High fix batch and the re-review loop without gating on intermediate reads, re-gating only on real side effects: the fix Edits and the decline-a-finding decision (never decline Critical/High without sign-off). See lore/autonomy.md.
Collect review scope and write the diff once — files changed since the branch diverged (base defaults to main, or $ARGUMENTS). Write the diff to a single patch artifact so it isn't duplicated across agent prompts:
git diff main...HEAD --name-only
DIFF=".workspace/shared/diffs/review.patch"; [ -d .workspace ] || DIFF="$(git rev-parse --git-dir)/magician-review.patch"
mkdir -p "$(dirname "$DIFF")"; git diff main...HEAD > "$DIFF"; echo "$DIFF"
Dispatch 3 specialist agents simultaneously — in ONE message, make three Task calls using these subagent types (do NOT read agent files by path; the plugin registers them):
magician:reviewer — correctness and edge casesmagician:sentinel — security vulnerabilitiesmagician:simplifier — over-engineeringContext contract (no context loss, no re-dump): each Task prompt MUST be self-contained — the agents see none of this conversation. Pass the patch artifact PATH from step 1 (each agent Reads it) plus the changed-file list, the goal ("review this change for "), the conventions/lore in play, and the output format below. Do not paste the full diff into each prompt — that copies a large payload into the parent's context N times and bloats every agent prompt; pass the path once. See lore/subagent-context.md. If an agent returns NEEDS_CONTEXT, add the missing input and re-dispatch.
Each agent returns findings as:
SEVERITY: Critical | High | Medium | Low
FILE: path:line
ISSUE / VULNERABILITY: <what>
FIX: <remediation>
Collect all findings.
Deduplicate — collapse the same issue flagged by multiple agents into one (note all sources).
Prioritize — Critical → High → Medium → Low.
Present consolidated report:
=== SCRUTINY REPORT ===
Critical: N | High: N | Medium: N | Low: N
[Critical] FILE:LINE — Issue (Source: reviewer/sentinel/simplifier)
Fix: remediation steps
...
Approval gate (AskUserQuestion). Present the report, then ask how to proceed via AskUserQuestion (never bare prose):
End your turn at the tool call. Wait for the choice before remediating. Treat a free-form "yes / approved / looks good" as Fix Critical/High now.
Triage order: Critical (fix immediately), High (fix before PR), Medium (fix if straightforward, else document), Low (note in PR description).
Per finding (Critical and High first):
/ward task <N> if it maps to a plan task — write a failing test first for behavioral fixes).Re-review (evaluator-optimizer loop). After the Critical/High fixes land, re-dispatch the relevant lens(es) on just the remediated files to confirm the fixes didn't introduce new Critical/High. If they did, remediate and re-review again — loop until a clean pass or 2 rounds (then report what remains). This is what makes review + fix one loop, not one pass.
Declining a finding: allowed only for Low/Medium (convention conflict, readability, documented false positive). Never decline Critical/High without sign-off — put the decision to the user via AskUserQuestion ("Decline [finding] because [reason]?"):
End your turn at the tool call. Wait for explicit confirmation before declining any Critical/High.
=== SCRUTINY SUMMARY ===
Fixed: N (list)
Deferred: N (list with rationale)
Declined: N (list with rationale)
For a review the team will circulate, you can publish the SCRUTINY REPORT as a Claude Code Artifact (a live page on claude.ai, team-co-editable on Team/Enterprise) — offer it, don't create it unprompted. Publishing to a public link (anyone with the URL can view it) is an outward sharing action: confirm it, keep it account-private by default, and never expose proprietary/internal code, secrets, or unremediated findings to a public link.
"Scrutinize complete. All critical/high findings resolved. Run /certify to verify clean state."
npx claudepluginhub alexander-tyagunov/magician --plugin magicianStructured code reviews with severity-ranked findings and deep multi-agent mode. Use when performing a code review, auditing code quality, or critiquing PRs, MRs, or diffs.
Reviews code changes using parallel personas for correctness, testing, maintainability, and conditional areas like security, performance, APIs. Merges into P0-P3 severity reports for PR prep and iterative feedback.
Orchestrates parallel multi-agent code reviews with ≥80% confidence filtering for quality, security, and auto-detected discipline-specific issues via git diffs.