From creview
Automatically iterate review, triage, respond, and resolve across multiple rounds until no actionable findings remain
How this skill is triggered — by the user, by Claude, or both
Slash command
/creview:roundsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You act as the **review round orchestrator**, automatically iterating a flow equivalent to `/creview:start` → `/creview:triage` → `/creview:respond` → `/creview:resolve` across multiple rounds to comprehensively discover and fix significant issues. You do not take on the role of a reviewer or fix author yourself; everything is delegated to sub-agents. See "Sub-agent usage rules" for detailed re...
You act as the review round orchestrator, automatically iterating a flow equivalent to /creview:start → /creview:triage → /creview:respond → /creview:resolve across multiple rounds to comprehensively discover and fix significant issues. You do not take on the role of a reviewer or fix author yourself; everything is delegated to sub-agents. See "Sub-agent usage rules" for detailed responsibility allocation.
The user may optionally specify an output base path. When the argument is $ARGUMENTS, interpret it as the output base path (and options). When no output base path is specified, use the project root's .claude/tmp/ as the default.
--confirm (default OFF) — After triage / estimate are persisted into the review document (Step 2.2) and before the fix phase (Step 2.3), present the estimate summary to the user and wait for confirmation.--confirm-round (default OFF) — After resolve, if unresolved findings remain, wait for user confirmation before proceeding to the next round.--commit (default OFF) — Perform a git commit after each finding is fixed (passed through to the respond phase).--max-rounds N (default 5, range 1–10) — Change the maximum number of rounds for the outer loop.--base {branch} (default main or master) — Specify the base branch (passed to the review phase).{base-path}/{branch-dir}/review-round{N}.mdgit branch --show-current./) becomes the directory hierarchy.{branch-name}_1, {branch-name}_2, ... to the suffix (smallest non-existing number).
feat/add-replay, first run → {base-path}/feat/add-replay/review-round1.md, re-run → {base-path}/feat/add-replay_1/review-round1.md.claude/tmp/. Create the directory as needed.Write the review document in the user's chat language.
${CLAUDE_PLUGIN_ROOT}/rules/sub-agent.md.templates/*.md, with template_id in the frontmatter). When launching a sub-agent via the Agent tool, the orchestrator passes a launch prompt that says "Read the template and follow its instructions," with variable values (including plugin_root: ${CLAUDE_PLUGIN_ROOT}) and round-specific overrides filled in. The sub-agent includes template_id in its return value. The orchestrator verifies that the returned template_id matches the UUID specified in each Step (hard-coded per Step in the referenced SKILLs), and relaunches the sub-agent if it does not match. The UUIDs are documented in the ${CLAUDE_PLUGIN_ROOT}/skills/{start,triage,respond,resolve}/SKILL.md SKILLs..claude/agents/ (or general-purpose) in parallel. Each reviewer Writes findings to a file; return value is path and counts only.subagent_type="review-helper" (analysis / compile / estimate-summary / format-build-verify) or subagent_type="general-purpose" (triage / select-fix-targets). model: sonnet is already specified in review-helper's agent definition. For reviewer / estimate / fix / verify / build-fix sub-agents, specify the assignee resolved from the destination project's .claude/agents/ (or general-purpose) via subagent_type. Do not specify model="..." from the SKILL (the model follows each agent definition's frontmatter).For the launch prompt completeness convention, see ${CLAUDE_PLUGIN_ROOT}/rules/sub-agent.md § Launch prompt completeness.
Round 1 start
├─ 2.1 review (start skill)
│ [scope-analysis Sub] selects reviewers from destination .claude/agents
│ [reviewers] parallel → each Writes reviews/{name}.md
│ [aggregator Sub] reviews/*.md → round1.md (no triage yet)
├─ 2.2 triage + estimate (triage skill)
│ [triage Sub] round1.md → triage.json (includes by_assignee)
│ ↳ if Will Fix is 0, persist Won't Fix triage and skip to 2.4
│ [estimate Subs (per-assignee, parallel)] → estimates/{id}.json
│ [estimate aggregator Sub] estimates/*.json → estimate-summary.md
│ [compile Sub] triage.json + estimates/*.json → events.jsonl → render-review.py (persists triage/estimate into round1.md)
│ ↳ --confirm: present estimate summary, wait for confirmation
├─ 2.3 respond / fix (respond skill)
│ [select-fix-targets Sub] round1.md metadata → targets.json (by_assignee)
│ ↳ if no Maintain/Alternative target, skip to 2.4
│ [fix Subs (per-assignee, parallel)] fix Maintain, attach FIXME for Alternative → statuses/{id}.json
│ [format & build verification Sub] ⇄ [build-fix specialist Sub] loop (max 5, leader-controlled)
│ [compile Sub] statuses/*.json → events.jsonl → render-review.py (persists status)
├─ 2.4 resolve (resolve skill)
│ [analysis Sub] round1.md → by_assignee (no file output)
│ [verification Subs] per-specialist parallel → verifications/{id}.json
│ [compile Sub] verifications/*.json → events.jsonl → render-review.py (persists verification)
├─ 2.5 feedback re-fix loop (max 3)
│ [triage Sub] → [estimate Subs] → [compile] → [select-fix-targets] → [fix Subs]
│ → [format & build verification Sub] ⇄ [build-fix specialist Sub] loop
│ → [compile] → [analysis Sub] → [verification Subs] → [compile]
└─ 2.6 round end → judge condition for proceeding to the next round
Round 2 start (do not pass the previous round's review document)
└─ ...
Final step
└─ [final report aggregator Sub] all round{N}.md + template → final-report.md
While the round counter is at most --max-rounds, repeat the following.
The orchestrator (you) directly takes on the "review leader" role of /creview:start. Follow the procedure, templates, and format in ${CLAUDE_PLUGIN_ROOT}/skills/start/SKILL.md.
Procedure:
## Round {N} — Step 1: Reviewline_count / recommended_reviewers) in context.name in recommended_reviewers in parallel via Agent(subagent_type=name, prompt=...). Each reviewer Writes findings to {tmp_dir}/reviews/{name}.md; return value is {path, severity counts} only.{doc_path, findings_total, severity_counts}) in context.{tmp_dir}.Round-specific overrides (apply after following the template's instructions):
C-1, M-1, etc.).The orchestrator (you) directly takes on the "triage leader" role of /creview:triage. Follow the procedure and templates in ${CLAUDE_PLUGIN_ROOT}/skills/triage/SKILL.md.
Input document: {this round's file path}
triage / estimate into the document at its Step 3 (compile).Round-specific overrides (apply after following the template's instructions):
## Round {N} — Step 2: Triage; at estimate start ## Round {N} — Step 2.5: Estimate.previous_round_doc_paths variable (Round 1: (none); Round N: doc_paths of Round 1..N-1). For decision behavior, see the Won't Fix guideline in ${CLAUDE_PLUGIN_ROOT}/skills/triage/templates/triage.md. State the Will Fix count explicitly in the triage report (also when 0).FIXME: / TODO: in the review body or target file.--confirm: after the triage compile completes and at least one Maintain / Alternative exists, Read the estimate aggregator's summary_path, present it to the user, and wait for confirmation before 2.3.The orchestrator (you) directly takes on the "respond leader" role of /creview:respond. Follow the procedure and templates in ${CLAUDE_PLUGIN_ROOT}/skills/respond/SKILL.md. Pass --commit through when the round option is enabled.
Input document: {this round's file path} (triage / estimate already persisted by 2.2)
## Round {N} — Step 3: Respond (Fix & Verify).status into the document at its Step 4.fix_count == 0 (no Maintain / Alternative targets), the respond skill's compile reflects nothing; proceed to 2.4.The orchestrator (you) directly takes on the "review verification leader" role of /creview:resolve. Follow the procedure and templates in ${CLAUDE_PLUGIN_ROOT}/skills/resolve/SKILL.md.
Input document: {this round's file path}
## Round {N} — Step 4: Resolve{summary_path, summary_line, resolved_count, feedback_count, unresolved_count}) in context. Do not read the verification body.From the Step 2.4 return value (feedback_count), determine whether there are findings that "require feedback." Do not Read the review document body directly.
feedback_count == 0: end the round (proceed to 2.6).feedback_count > 0: enter the re-fix loop (max 3).Re-fix loop (max 3) — each attempt re-runs the triage skill flow, then the respond skill flow, then the resolve skill flow. In each sub-agent's launch prompt, add a "Feedback finding priority" constraint to the "Round-specific overrides" section.
## Round {N} — Step 5.1: Feedback Triage (attempt {M}/3). Re-run the triage skill (2.2). Add to the triage launch prompt overrides: Triage findings whose stage is "feedback" with priority (current_meta.verification has Feedback details). Add to the estimate launch prompt overrides: Estimate based on the Feedback content in current_meta.verification. Consider Downgrade if cost grows. If all are Downgrade, run the triage compile and skip step 2; go to step 3.## Round {N} — Step 5.2: Feedback Fix (attempt {M}/3). Re-run the respond skill (2.3). Add to the fix launch prompt overrides: Re-fix based on the Feedback content in current_meta.verification.## Round {N} — Step 5.3: Feedback Verify (attempt {M}/3). Re-run the resolve skill (2.4).--confirm-round is enabled and unresolved findings remain, wait for user confirmation before proceeding to the next round.Record the round's results. Each counter is obtained from sub-agent return values (do not Read the review document body to count):
will_fix_countmaintain_count / alternative_count / downgrade_countfixed_count (sum of Maintain normal fixes + Alternative FIXME attachments)feedback_count after the final attempt of Step 2.5resolved_countCondition for proceeding to the next round: only when all of the following are met, increment the round counter and return to Step 2.1:
--max-rounds.If not met, proceed to final report generation.
Final report path: {base-path}/{branch-dir}/final-report.md
Agent(subagent_type="review-helper", prompt=...). The task-specific instructions are stored in the external template templates/final-report-compile.md. Example launch prompt:As your first action, you MUST Read `${CLAUDE_PLUGIN_ROOT}/skills/rounds/templates/final-report-compile.md`. Do not perform any other judgment, action, or tool call before the Read completes. After reading, follow its instructions.
Variables (substitute into the template's {{...}} placeholders):
- plugin_root: ${CLAUDE_PLUGIN_ROOT}
- round_doc_paths: Round 1 → {round1_doc_path}, Round 2 → {round2_doc_path}, ...
- round_stats: Round 1: findings=N, will_fix=N, maintain=N, alternative=N, downgrade=N, fixed=N, wontfix=N, feedback_attempts=N, unresolved=N, code_changed=<bool>, ...
- template_path: {template_path}
- report_path: {report_path}
- language: user's chat language
Round-specific overrides (apply after following the template's instructions):
- (none)
Include `template_id` (Read from the template's frontmatter) in the return value.
{report_path, template_id}). Verify that template_id matches 4f8a2d1c-9b35-4e67-a2c1-8b5d3f9e7a16. If it does not match, relaunch the sub-agent. Hold only report_path in context.Template: ${CLAUDE_PLUGIN_ROOT}/skills/rounds/templates/final-report.md (the final report aggregator Sub Reads it to grasp the skeleton. The leader fills this path into the Sub prompt's {template_path}).
Report the final report path to the user, and concisely convey key statistics (total findings, resolved count, unresolved count).
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub opensphere-inc/claude-plugin-marketplace --plugin creview