From arc
Runs expert review on plans, specs, or approaches using parallel specialized agents. Prioritizes actionable findings and activates automatically 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 surfacesaccessibility-engineer — WCAG conformance, keyboard navigation, screen-reader support (UI-facing plans)Check 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]..."
Keep the two finding axes separate:
Spec-compliance findings (does the approach do what it was supposed to?) and code-quality findings (is it well-shaped regardless of spec?) stay under separate headings. Never merge them into one list or rerank one axis against the other — a sound approach does not offset quality problems, and vice versa.
Transform findings into Socratic questions:
See references/review-patterns.md for approach.
Instead of presenting critiques:
Example transformations:
Present questions one at a time:
Before starting this question loop, see references/question-loops.md for the shared one-question-at-a-time rules.
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 → (/arc:review) → /arc:implement
cross-cutting,
optional ✓ YOU ARE HERE
Review is cross-cutting: it can run between ideate and implement, or against any plan/spec/approach at any time. It is not a required lifecycle stage.
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 howells/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 implementation plans through multiple quality lenses (security, architecture, tests) and iterates based on findings.
Dispatches parallel specialist review agents for code diffs, PRDs, or implementation plans. Operates as a pre-PR quality gate or via /review command.