Imported from Michaelunkai/study--AI_ML-AI_and_Machine_Learning-Artificial_Intelligence-openclaw (
openclaw-home/generated-skills/custom-commands/review/SKILL.md). Install upstream withnpx skills add Michaelunkai/study--AI_ML-AI_and_Machine_Learning-Artificial_Intelligence-openclaw --skill review. Copyright stays with the author.
Claude Code Review
Use this skill when the user wants Claude Code to review the current working tree or a branch diff in this repository.
Use $cc:review as the default when the user asks for code review, asks you to have Claude review something, or wants a second review pass without explicitly asking for stronger adversarial scrutiny.
If the user asks for stronger challenge on design, tradeoffs, rollout risk, migration risk, configuration behavior, or provides custom review focus text, route to $cc:adversarial-review instead.
If the user wants Claude Code to investigate, validate by changing code, or actually fix/implement something, route to $cc:rescue instead.
If the overall request is "you review it too, also ask Claude to review in the background, then you aggregate and fix it", keep the delegated Claude part on $cc:review unless the user explicitly asks for a harsher or more adversarial review.
$cc:review does not accept custom focus text. If the user wants to steer Claude toward a particular angle, question, subsystem, or risk area, that is a signal to use $cc:adversarial-review instead.
Do not derive the companion path from this skill file or any cache directory. Always run the installed copy:
node "C:/Users/micha/.codex/plugins/cc/scripts/claude-companion.mjs" review ...
Supported arguments: --wait, --background, --base <ref>, --scope auto|working-tree|branch, --model <model>
Raw slash-command arguments:
$ARGUMENTS
Rules:
- This skill is review-only. Do not fix issues, apply patches, or suggest that you are about to make changes.
- Before launching the review, stay in read-only inspection mode: inspect git status and diff stats only, then ask at most one user question about whether to wait or run in background.
- Preserve the user's review scope flags exactly.
- Do not accept staged-only or unstaged-only review modes.
- Do not add extra review instructions or focus text. Route those requests to
$cc:adversarial-review.
Execution mode rules:
- If the raw arguments include
--wait, do not ask. Run the review in the foreground. - If the raw arguments include
--background, do not ask. Run the review in background through the built-in review subagent path. - Otherwise, estimate the review size before asking:
- For working-tree review, start with
git status --short --untracked-files=all. - For working-tree review, also inspect both
git diff --shortstat --cachedandgit diff --shortstat. - For base-branch review, use
git diff --shortstat <base>...HEAD. - Treat untracked files or directories as reviewable work even when
git diff --shortstatis empty. - Only conclude there is nothing to review when the relevant working-tree status is empty or the explicit branch diff is empty.
- Recommend waiting only when the review is clearly tiny, roughly 1-2 files total and no sign of a broader directory-sized change.
- In every other case, including unclear size, recommend background.
- When in doubt, run the review instead of declaring that there is nothing to review.
- For working-tree review, start with
- Then use
AskUserQuestionexactly once with two options, putting the recommended option first and suffixing its label with(Recommended):Wait for resultsRun in background
Argument handling:
- Preserve the user's arguments exactly.
- Treat
--waitand--backgroundas Codex-side execution controls only. Strip them before calling the companion command. $cc:reviewis native-review only. It does not support staged-only review, unstaged-only review, or extra focus text.- If the user needs custom review instructions or more adversarial framing, they should use
$cc:adversarial-review. - The companion review process itself always runs in the foreground. Background mode only changes how Codex launches that command.
- For the detailed execution contract, treat the internal runtime reference at
../../internal-skills/review-runtime/runtime.mdas supporting guidance only. It is an internal reference document, not a public skill to invoke.
Foreground flow:
- Run:
node "C:/Users/micha/.codex/plugins/cc/scripts/claude-companion.mjs" review --view-state on-success <arguments with --wait/--background removed> - Foreground review belongs to the main Codex thread. Do not spawn a review subagent, do not invoke a generic review-runner role, and do not proxy this foreground path through any background worker abstraction.
- Do not fall back to raw
claude,claude-code,claude review,bash -lc ...claude..., or any other direct Claude CLI syntax when the companion path is available. The foreground syntax contract here is the installed companion command above, not a hand-rolled Claude invocation. - If the installed companion command fails, surface that failure. Do not silently retry foreground review through a different CLI shape, a generic review runner, or a custom shell wrapper.
- Present the companion stdout faithfully.
- Do not fix anything mentioned in the review output.
Background flow:
- For background review, use Codex's built-in
defaultsubagent instead of a detached background shell command. - Do not satisfy background review by using a generic
claude_review_runner-style helper role, raw Claude CLI, or any other review executor that bypasses the installed companion command. - Never satisfy background review by running the companion command itself with shell backgrounding such as
&,nohup, detachedspawn, or any equivalent direct background process launch. - Background here means "spawn the forwarding child via
spawn_agentand do not wait in the parent turn." The companion review command inside that child still runs once, in the foreground, inside the child thread. - Before spawning the built-in child, capture the review job id plus routing context in one call:
node "C:/Users/micha/.codex/plugins/cc/scripts/claude-companion.mjs" background-routing-context --kind review --json - If that helper returns a non-empty
jobId, pass it into the companion command as an internal--job-id <reserved-job-id>routing flag. - If that helper returns a non-empty
ownerSessionId, include--owner-session-id <owner-session-id>in the companion command. - If it returns an empty
ownerSessionId, omit--owner-session-identirely. Never leave an empty placeholder such as--owner-session-id --job-id. - If that helper returns a non-empty
parentThreadId, pass it into the child prompt as the parent thread id for one-shot completion notification. - If it returns an empty
parentThreadId, omit the notification path instead of emitting a blank thread-id placeholder. - Spawn exactly one transient forwarding child through
spawn_agentwith:agent_type: "default"fork_context: falsemodel: "gpt-5.4-mini"reasoning_effort: "medium"
- Prefer a self-contained child message over inheriting parent history. The built-in review child should not rely on full parent thread replay for normal operation.
- Only consider
fork_context: trueas a last resort for a short follow-up where essential context truly cannot be summarized. Avoid it for large or long-lived threads because it can exhaust the child context window. - Before spawning the built-in child, emit one short commentary update that records the attempted subagent model selection. Default text should clearly say the parent is starting the built-in review child with
gpt-5.4-miniatmediumeffort. - If
spawn_agentrejectsgpt-5.4-miniwith an explicit model-unavailable error such asUnknown model,model unavailable, or equivalent "not in list / unavailable" wording, retry once withmodel: "gpt-5.4"and the samereasoning_effort: "medium". - If that fallback happens, emit one short commentary update that clearly says
gpt-5.4-miniwas unavailable and the parent is retrying withgpt-5.4. - Do not use that fallback for arbitrary failures.
- The built-in child must be a pure forwarder. It should:
- run exactly one shell command
- execute:
node "C:/Users/micha/.codex/plugins/cc/scripts/claude-companion.mjs" review --view-state defer <arguments with --wait/--background removed> - run that command as one blocking foreground shell-tool call, not as a background terminal/session
- do not request a shell session id, poll a shell session later, or return before the companion command exits
- if the available shell tool is
exec_command, call it once in non-interactive mode and wait for command exit in that same call - include
--owner-session-id <owner-session-id>only when the parent resolved a non-empty owner session id - include
--job-id <reserved-job-id>when the parent reserved one - never leave an empty routing placeholder such as
--owner-session-id --job-id - return only that command's stdout exactly, with no added commentary
- ignore stderr progress chatter such as
[cc] ...lines and preserve only the final stdout-equivalent result text - not inspect the repo or perform the review itself
- if a parent thread id is available, allow one extra
send_inputcall after a successful shell result and before finishing - the child prompt must mention the tool name
send_inputliterally; do not replace it with a vague instruction like "send a message to the parent" - that
send_inputcall must target the provided parent thread id, must happen at most once, and must not run on failure paths - that
send_inputcall should use the exact tool shapesend_input({ target: <parent-thread-id>, message: <steering-message> })with no extra prose payload - if the parent provided a non-empty parent thread id, do not silently drop the completion notification path from the child prompt
- if a reserved review job id is available, use this exact notification message:
Background Claude Code review finished. Open it with $cc:result <reserved-job-id>. - otherwise fall back to:
Background Claude Code review finished. Inspect it with $cc:status first, then use $cc:result for the finished job you want to open. - that
send_inputmessage should use one of those exact steering messages instead of inlining the raw review result - use these steering messages instead of embedding the raw review result in the notification
- do not embed the raw Claude result inside the notification message
- do not include any other prose in that notification message
- use that same steering message as the child's own final assistant message instead of echoing the raw review result
- Do not wait for completion in this turn.
- After launching, tell the user:
Claude Code review started in the background. Check the subagent session or $cc:status for progress, and once it's done, we will let you know to see the results. - Do not fix anything mentioned in the review output.