From creview
Fix the Will-Fix / Maintain / Alternative review findings, verify the build, and reflect the fix status into the review document
How this skill is triggered — by the user, by Claude, or both
Slash command
/creview:respondThis 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 **respond leader**: read a review document that already carries `triage` / `estimate` metadata (written by `/creview:triage`), select the findings to fix, delegate fixes to the appropriate specialist agents, ensure quality through build verification, and reflect the fix `status` into the review document via `render-review.py`.
You act as the respond leader: read a review document that already carries triage / estimate metadata (written by /creview:triage), select the findings to fix, delegate fixes to the appropriate specialist agents, ensure quality through build verification, and reflect the fix status into the review document via render-review.py.
The respond leader does not perform fix work themselves; the leader orchestrates the process and aggregates / decides on its outcomes. Fix work is delegated entirely to sub-agents.
Run /creview:triage {document} before this skill. This skill fixes only findings whose triage is 🔧 Will Fix and whose estimate is ▶️ Maintain or 🚧 Alternative, and that have no status yet.
The user supplies a path to a review document (markdown). When the argument is $ARGUMENTS, interpret it as the path to the review document.
--commit (default OFF) — Create a commit for each finding's fix.--commit optionWhen enabled, in Step 2 each completed fix per finding is committed to git.
C-1, M-1, etc.).git add -A). Do not commit the review document.fix: Add null check before accessing output pointer
The review document is generated by /creview:start and updated by /creview:triage. Each finding carries a metadata block:
<!-- METADATA({finding-id}) -->
- **Triage:** 🔧 Will Fix (assignee: cpp-sensei) — Valid finding
- **Estimate:** ▶️ Maintain — Cost: M, Future: S, Signals: b,d
<!-- /METADATA({finding-id}) -->
This skill appends:
status (Step 3) — Value format: 🟢 Fixed — {concise description of the fix}.A finding is a fix target when all hold (read from the METADATA marker, using the last value when a field repeats):
Triage: is 🔧 Will Fix (the assignee is parsed from (assignee: {specialist})).Estimate: is ▶️ Maintain (normal fix) or 🚧 Alternative (FIXME insertion only).Status: is present (not already fixed).Triage: 🚫 Won't Fix, Estimate: 🔻 Downgrade, and findings already Status: 🟢 Fixed are skipped.
For the common prohibitions, see ${CLAUDE_PLUGIN_ROOT}/rules/sub-agent.md. The body of the prompt for each sub-agent is stored in external templates under templates/*.md (each carries a template_id in its frontmatter). When launching via the Agent tool, the leader sends a launch prompt that tells the sub-agent to "Read the template and follow its instructions" with the variable values filled in. The sub-agent includes template_id in its return value. The leader checks that the returned template_id matches the UUID specified for that step (hardcoded per step, see below); on mismatch, relaunch that sub-agent.
For launch-prompt-completeness rules, see ${CLAUDE_PLUGIN_ROOT}/rules/sub-agent.md § Launch prompt completeness.
This skill does not bundle specialist agents. Each finding's assignee is read from its Triage: metadata ((assignee: {specialist})), written by /creview:triage against the destination project's .claude/agents/. The leader passes those assignee names through to subagent_type verbatim. When an assignee is absent or unresolvable, use general-purpose. The build-fix specialist is resolved by the format & build verification Sub from the destination project's .claude/agents/ (or general-purpose).
Each decision is written to an intermediate file, and the aggregator sub-agent compiles them. The leader (you) does not load the body of any decision into context.
{tmp_dir} = .claude/tmp/creview-respond-{timestamp}/
{tmp_dir}/targets.json ← output of the select-fix-targets sub-agent
{tmp_dir}/statuses/{id}.json ← output of the fix sub-agents (one file per finding)
{tmp_dir}/events.jsonl ← output of the aggregator sub-agent (input to render-review.py)
Use the Write tool for file output. Bash cat heredoc is unusable because apostrophes inside values (e.g. Won't) break the outer quoting.
At the start of Step 1, the leader (you) creates {tmp_dir} with mkdir -p {tmp_dir}/statuses and passes {tmp_dir} to each sub-agent.
Launch via Agent(subagent_type="general-purpose", prompt=...). The Sub Reads the review document, applies the fix-target selection rule, and Writes {tmp_dir}/targets.json. Task-specific instructions are stored in the templates/select-fix-targets.md external template:
As your first action, you MUST Read `${CLAUDE_PLUGIN_ROOT}/skills/respond/templates/select-fix-targets.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}
- document_path: {document_path}
- tmp_dir: {tmp_dir}
Round-specific overrides (apply after following the template's instructions):
- (none)
Include `template_id` (Read from the template's frontmatter) in the return value.
Receive the return value ({path, fix_count, by_assignee: [{assignee, ids: [id, ...]}], template_id}). Verify that template_id matches 7c3e9a1d-5b48-4f62-9a8c-2d6f1b3e7a95; on mismatch, relaunch the sub-agent. Do not load the body.
When fix_count == 0, skip Steps 2–3 and proceed to Step 4 (compile; nothing to reflect → report "no fix targets").
For each {assignee, ids} in by_assignee, launch a fix sub-agent via Agent(subagent_type=assignee, prompt=...). Different assignees launch in parallel; ids within the same assignee follow the parallelization constraint in the template.
Task-specific instructions are stored in the templates/fix.md external template:
As your first action, you MUST Read `${CLAUDE_PLUGIN_ROOT}/skills/respond/templates/fix.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}
- ids: {ids}
- document_path: {document_path}
- tmp_dir: {tmp_dir}
Round-specific overrides (apply after following the template's instructions):
- (none)
Include `template_id` (Read from the template's frontmatter) in the return value.
Receive the return value from every fix agent ({items: [{id, path}, ...], template_id}). Verify that template_id matches 2f8a1c5d-7b94-4e63-a1c8-5d3f9b2e7a14; on mismatch, relaunch that agent. Collect only items; do not load the status body.
The leader (you) does not run the formatter or build commands directly and does not read source code. The format & build verification Sub performs only a single pass of format and build. On build failure, it reads the code, identifies the responsible specialist, and returns the result (it does not fix the code itself). The leader launches a specialist Sub to perform the fix, and orchestrates a loop that alternately relaunches the format & build verification Sub and the specialist Sub until the build passes.
Maximum attempts: 5. Repeat the following up to the maximum:
Agent(subagent_type="review-helper", prompt=...).{path, success, format_violations_fixed, summary_line, template_id}). Verify that template_id matches 9d3c5f8a-2b71-4e94-a8c5-1f7d3b9e2c46; on mismatch, relaunch the Sub.success == true, exit the loop.success == false:
a. Read {tmp_dir}/format-build-result.json and obtain suggested_specialist / error_summary / error_files / fix_guidance / build_log_path (operational data, not decision body; do not Read source code itself).
b. Launch the build-fix specialist Sub via Agent(subagent_type=suggested_specialist, prompt=...).
c. Receive the return value ({description, template_id}) and verify template_id matches 6e2a9f5c-1d83-4b74-9c2e-5a8d3f1b7e29; on mismatch, relaunch that Sub.
d. Return to the top of the loop (format must be rechecked because code changed).error_summary to the user, exit the loop, and proceed to Step 4.As your first action, you MUST Read `${CLAUDE_PLUGIN_ROOT}/skills/respond/templates/format-build-verify.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}
- tmp_dir: {tmp_dir}
- attempt_num: {attempt_num}
Round-specific overrides (apply after following the template's instructions):
- (none)
Include `template_id` (Read from the template's frontmatter) in the return value.
As your first action, you MUST Read `${CLAUDE_PLUGIN_ROOT}/skills/respond/templates/build-fix.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}
- tmp_dir: {tmp_dir}
Round-specific overrides (apply after following the template's instructions):
- (none)
Include `template_id` (Read from the template's frontmatter) in the return value.
The leader (you) does not load decision bodies into context.
Agent(subagent_type="review-helper", prompt=...). Task-specific instructions are stored in the templates/compile.md external template:As your first action, you MUST Read `${CLAUDE_PLUGIN_ROOT}/skills/respond/templates/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}
- tmp_dir: {tmp_dir}
- document_path: {document_path}
Round-specific overrides (apply after following the template's instructions):
- (none)
Include `template_id` (Read from the template's frontmatter) in the return value.
Receive the return value ({fixed_count, code_changed, summary_line, template_id}). Verify that template_id matches 3b7f1c5d-8a29-4e63-b1c8-9d3a7f5e2b41; on mismatch, relaunch the sub-agent.
The leader removes {tmp_dir} in one shot:
${CLAUDE_PLUGIN_ROOT}/scripts/rm-tmp.sh {tmp_dir}
The leader prints the summary_line received from the aggregator sub-agent to the console. Only when a detailed table is needed, Read the updated {document_path} and present it following the ${CLAUDE_PLUGIN_ROOT}/skills/respond/templates/respond-summary.md format.
npx claudepluginhub opensphere-inc/claude-plugin-marketplace --plugin creviewGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.