From arc
Runs expert review on plans, specs, or implementation approaches using parallel specialized agents. Presents prioritized, concrete findings as Socratic questions. Automatically invoked during ideate or on-demand.
How this skill is triggered — by the user, by Claude, or both
Slash command
/arc:reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<tool_restrictions>
<tool_restrictions>
EnterPlanMode — BANNED. Do NOT call this tool. This skill has its own structured process. Execute the steps below directly.ExitPlanMode — BANNED. You are never in plan mode.
</tool_restrictions><arc_runtime> This workflow requires the full Arc bundle, not a prompts-only install.
Paths in this skill use these conventions:
agents/..., references/..., disciplines/..., templates/..., scripts/..., rules/..., skills/<name>/... are Arc-owned files at the plugin root. Resolve the plugin root from this skill's filesystem location — it's the directory containing agents/ and skills/../... is local to this skill's directory..ruler/..., docs/..., src/..., or any project-relative path refers to the user's project repository.
</arc_runtime><required_reading> Read these reference files NOW:
<rules_context> Check for project coding rules:
Use Glob tool: .ruler/*.md
Determine rules source:
.ruler/ exists: Read rules from .ruler/.ruler/ doesn't exist: Read rules from rules/Pass relevant core rules to each reviewer:
| Reviewer | Rules to Pass |
|---|---|
| daniel-product-engineer | react.md, typescript.md, code-style.md |
| lee-nextjs-engineer | nextjs.md, api.md |
| senior-engineer | code-style.md, typescript.md, react.md |
| architecture-engineer | stack.md, turborepo.md |
| mastra-agent-engineer | api.md, integrations.md, typescript.md |
| security-engineer | security.md, api.md, env.md |
| data-engineer | database.md, testing.md, api.md |
| senior-engineer | cloudflare-workers.md (if wrangler.toml exists) |
| accessibility-engineer | (interface rules only — already in agent prompt) |
</rules_context>
<scope_discipline>
Reviewers must respect the plan's scope. This is non-negotiable:
If argument provided (e.g., daniel-product-engineer):
agents/review/{argument}.mdagents/review/ and ask user to pickAvailable reviewers:
daniel-product-engineer — Type safety, UI completeness, React patternslee-nextjs-engineer — Next.js App Router, server-first architecturesenior-engineer — Asymmetric strictness, review disciplinearchitecture-engineer — System design, component boundariesperformance-engineer — Bottlenecks, scalabilitysecurity-engineer — Vulnerabilities, OWASPdata-engineer — Migrations, transactionsmastra-agent-engineer — Mastra, agents, workflows, tools, memory/RAG, MCP, agent-readable surfacesCheck if plan file path provided as argument:
Search strategy:
Check conversation context first — Look for Claude Code plan mode output
Search Arc plan folders — Look for plan files
Use Glob tool: docs/arc/plans/*.md
Fallback: docs/plans/*.md
Present options if multiple found:
If no plans found:
Once plan located:
Skip if specific reviewer provided in Phase 0.
Detect project type for reviewer selection:
Use Grep tool on package.json:
"next" → nextjs"react" → reactUse Glob tool:
requirements.txt, pyproject.toml → pythonSelect reviewers based on project type:
TypeScript/React:
Next.js:
Python:
General/Unknown:
Conditional addition (all UI project types):
agents/review/accessibility-engineer.mdConditional addition (all project types):
package.json includes @mastra/* or the plan involves agents, tools, workflows, memory, RAG, MCP, model routing, browser/sandbox capabilities, or agent-readable software surfaces → add agents/review/mastra-agent-engineer.mdIf specific reviewer from Phase 0: Spawn single reviewer agent.
Otherwise: Spawn selected reviewer agents in parallel:
Task [reviewer-1] model: sonnet: "Review this plan for [specialty concerns].
Plan:
[plan content]
Focus on: [specific area based on reviewer type]"
Task [reviewer-2] model: sonnet: "Review this plan for [specialty concerns]..."
Task [reviewer-3] model: sonnet: "Review this plan for [specialty concerns]..."
Task [conditional-reviewer] model: sonnet: "Review this plan for [specialty concerns]..."
Transform findings into Socratic questions:
See references/review-patterns.md for approach.
Instead of presenting critiques:
Example transformations:
Present questions one at a time:
For each decision:
If plan came from a file:
/arc:commit or the user.## Review Summary
**Reviewed:** [plan name/source]
**Reviewers:** [list]
### Changes Made
- [Change 1]
- [Change 2]
### Kept As-Is
- [Decision 1]: [reason]
### Open Questions
- [Any unresolved items]
Show remaining arc:
/arc:ideate → Feature spec ✓
↓
/arc:review → Review ✓ YOU ARE HERE
↓
/arc:implement → Plan + Execute task-by-task
Offer next steps based on what was reviewed:
If reviewed a feature spec:
/arc:implement (which will create the plan internally)If reviewed an implementation plan:
/arc:implement<success_criteria> Plan review is complete when:
/arc:implement or done)npx claudepluginhub commoninstruments/arc --plugin arcOrchestrates parallel architecture and experience reviews of implementation plans, scores findings across dimensions like data flow and UX, consolidates ranked fixes for user approval and auto-application. Use after planning, before non-trivial coding.
Reviews an implementation plan through multiple quality lenses (architecture, security, test coverage, code quality) and iteratively improves it with the user.
Dispatches parallel specialist review agents for code diffs, PRDs, or implementation plans. Operates as a pre-PR quality gate or via /review command.