plugins/arc/skills/review/SKILL.md
Run expert review on a plan, spec, or implementation approach with parallel reviewer agents. Presents findings as Socratic questions. Use when asked to "review the plan", "check this approach", or before implementation to validate architectural decisions. Optional argument: reviewer name (e.g., `/arc:review daniel-product-engineer`)
npx skillsauth add howells/arc reviewInstall 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.
<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)development
Create, review, or revise a concise project vision document that captures what a project is, who it is for, why it exists, success criteria, constraints, non-goals, and decision principles. Use when starting a new project, clarifying product direction, aligning a codebase for future agent work, defining a north star, or turning a vague idea into docs/vision.md.
tools
Use when starting any conversation - establishes Arc's skill routing, instruction priority, and bootstrap rules
development
Characterization testing and safety-net backfill for existing code. Use when legacy, under-tested, or risky code needs tests before a refactor, bug fix, or behavior change. Captures current behavior through public interfaces, identifies coverage gaps, and adds focused unit, integration, or E2E tests without replacing TDD implementation workflows.
development
Discover architectural friction and propose structural refactors with competing interface options. Focuses on deepening shallow modules, extracting grouped concerns into packages/modules, breaking up god files, reducing duplication, and improving testability. Use when asked to "improve the architecture", "find refactoring opportunities", "deepen modules", "consolidate coupling", "break up god components", "extract this into a package", "make this more testable", or "find architectural friction".