cursor-review — Claude Code skill: what it does, install
This skill sends a diff to Cursor Composer for an advisory review while the host reviewer keeps the final verdict. Use it for a second check.
npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a claude-codeWhat cursor-review does
The skill gives Cursor Composer the diff between a base ref and HEAD, its change statistics, and the requested scope. Composer runs read-only and looks for bugs, regressions, missing tests, and unsafe assumptions. Each finding should include its location, trigger, impact, and evidence that can be checked.
The flow uses cursor-companion.sh, resolve-impl-backend.sh, and model-routing.sh. It resolves the Harness root through HARNESS_PLUGIN_ROOT, CLAUDE_PLUGIN_ROOT, or CLAUDE_SKILL_DIR. The base ref comes from TASK_BASE_REF or falls back to origin/main; pass --base <ref> to select another one. Cursor reports findings, but it cannot issue APPROVE or REQUEST_CHANGES.
The skill must not pass --write to cursor-companion.sh, so the review does not modify files. If the Harness root cannot be resolved, the run exits with an error.
What it helps with
- review a diff against
origin/main - ask Cursor for an independent code review
- spot regressions and missing tests
- separate observed defects from hypotheses
- keep the final verdict with the host reviewer
Example prompts for the agent
- Run
cursor:review --base origin/mainand inspect the full diff. - Use
cursor:reviewto review a command namespace change. - Ask Cursor to sanity-check the current diff in read-only mode with
cursor:review.
How to install cursor-review
1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a claude-code2Manually: put the files in place
~/.claude/skills/cursor-review/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cursor-review/
1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a codex2Manually: put the files in place
.agents/skills/cursor-review/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a cursor2Manually: put the files in place
.cursor/skills/cursor-review/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Chachamaru127/claude-code-harness cursor-review2Manually: put the files in place
.github/skills/cursor-review/SKILL.md1Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a gemini-cli2Platform CLI
gemini skills install https://github.com/Chachamaru127/claude-code-harness --path skills/cursor-reviewManually: put the files in place
.devin/skills/cursor-review/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cursor-review
How do I install cursor-review in Claude Code?
Run npx skills add Chachamaru127/claude-code-harness --skill cursor-review -a claude-code, then check ~/.claude/skills/cursor-review/SKILL.md.
What does cursor-review do?
It sends a diff to Cursor Composer for an advisory second opinion. The host reviewer retains the final APPROVE or REQUEST_CHANGES decision.
How can I choose a different base ref for cursor-review?
Pass it with --base <ref>, such as cursor:review --base origin/main. Without that argument, the skill uses TASK_BASE_REF or origin/main.
Source text
SKILL.md · MIT
---
name: cursor-review
description: "Run a Cursor Composer review as an advisory second opinion while keeping the primary review verdict on the host brain. Use when user invokes cursor:review, asks Cursor to review, or wants composer to sanity-check a diff. Cursor never owns APPROVE/REQUEST_CHANGES."
description-en: "Run a Cursor Composer review as an advisory second opinion while keeping the primary review verdict on the host brain. Use when user invokes cursor:review, asks Cursor to review, or wants composer to sanity-check a diff. Cursor never owns APPROVE/REQUEST_CHANGES."
description-ja: "Cursor Composer に advisory second opinion としてレビューさせるスキル。cursor:review、Cursor にレビューして、composer で差分を sanity check して、という時に使う。primary verdict は常に host brain が持ち、Cursor は APPROVE/REQUEST_CHANGES を所有しない。"
allowed-tools: ["Read", "Bash", "Grep"]
argument-hint: "[--base <ref>] [review-scope]"
user-invocable: true
---
# cursor:review - Advisory Cursor Review
Cursor Composer (`composer-2.5-fast`) を read-only second opinion として使う review skill。primary verdict は host brain (Opus / Claude role) が出す。
## Quick Reference
```bash
cursor:review --base origin/main
cursor:review "Phase 88.5 command namespace diff"
```
## Rules
- Cursor review is advisory. The final verdict must come from the host reviewer.
- Do not pass `--write` to `cursor-companion.sh`.
- Use resolver/model routing, not direct env checks:
```bash
bash scripts/resolve-impl-backend.sh --backend cursor --role reviewer
bash scripts/model-routing.sh --host cursor --role worker --field model
```
- Prefer the existing `harness-review` contract when a full review is requested. This command exists for users who explicitly ask for the Cursor lane.
## Flow
1. Resolve the Harness helper root:
```bash
HARNESS_PLUGIN_ROOT="${HARNESS_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}"
if [ -z "$HARNESS_PLUGIN_ROOT" ] && [ -n "${CLAUDE_SKILL_DIR:-}" ]; then
probe="$(cd "${CLAUDE_SKILL_DIR}" && pwd)"
while [ "$probe" != "/" ] && [ ! -d "$probe/scripts" ]; do
probe="$(cd "$probe/.." && pwd)"
done
[ -d "$probe/scripts" ] && HARNESS_PLUGIN_ROOT="$probe"
fi
if [ -z "$HARNESS_PLUGIN_ROOT" ]; then
echo "ERROR: HARNESS_PLUGIN_ROOT is not set and could not be derived from CLAUDE_PLUGIN_ROOT or CLAUDE_SKILL_DIR" >&2
exit 2
fi
```
2. Determine review scope:
```bash
BASE_REF="${TASK_BASE_REF:-origin/main}"
REVIEW_SCOPE="${ARGUMENTS:-}"
if [ -n "${REVIEW_SCOPE}" ]; then
set -- ${REVIEW_SCOPE}
while [ "$#" -gt 0 ]; do
case "$1" in
--base)
BASE_REF="${2:?--base requires a ref}"
shift 2
;;
--base=*)
BASE_REF="${1#--base=}"
shift
;;
*)
shift
;;
esac
done
fi
DIFF_STAT="$(git diff --stat "${BASE_REF}..HEAD")"
DIFF_TEXT="$(git diff "${BASE_REF}..HEAD")"
```
3. Ask Cursor in read-only mode:
```bash
PROMPT="$(cat <<EOF
Review this diff as an advisory second opinion.
Base ref: ${BASE_REF}
Requested scope: ${ARGUMENTS:-full diff}
Requirement, purpose and DoD: <original request and completion criteria>
Spec and validation evidence: <relevant paths and observed results>
Focus on bugs, regressions, missing tests, and unsafe assumptions. Do not propose broad refactors.
Use the supplied requirement, DoD, spec and validation evidence to assess the requested scope; inspect missing context read-only.
For each finding, state its location, trigger, impact and checkable evidence. Separate hypotheses from observed defects; do not invent findings to fill a quota.
Return an assessment only. Do not implement changes or treat the implementation worker's self-report as verification.
Diff stat:
${DIFF_STAT}
Diff:
${DIFF_TEXT}
EOF
)"
bash "${HARNESS_PLUGIN_ROOT}/scripts/cursor-companion.sh" task "${PROMPT}"
```
4. Host reads Cursor's output and performs the primary review:
- Findings first, ordered by severity.
- Mark Cursor-originated points as advisory when used.
- `APPROVE` / `REQUEST_CHANGES` must be the host decision, not a copied Cursor verdict.
## Output
Use the standard review shape:
- findings
- open questions
- validation run
- final host verdict
© Chachamaru127 · MIT · Chachamaru127/claude-code-harness