Help us improve
Share bugs, ideas, or general feedback.
From arc
Runs expert review on plans, specs, or implementation approaches using parallel reviewer agents. Presents findings as Socratic questions. Useful before implementation to validate architectural decisions.
npx claudepluginhub howells/arc --plugin arcHow 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>
Orchestrates 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.
Performs multi-agent review of implementation plans using PoLL consensus protocol. Independent expert panels surface diverse issues and blind spots before coding.
Reviews an implementation plan through multiple quality lenses (architecture, security, test coverage, code quality) and iterates based on findings.
Share bugs, ideas, or general feedback.
<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<arc_log>
After completing this skill, append to the activity log.
See: references/arc-log.md
Entry: /arc:review — [Plan name] reviewed
</arc_log>
<success_criteria> Plan review is complete when:
/arc:implement or done)