Skip to main content Inicio Creadores chachamaru127 claude-code-harness cursor-do
cursor-do Delegate a single write task to Cursor Composer via cursor-companion.sh inside an isolated worktree, then Lead-review the diff and cherry-pick. Use when user invokes cursor:do, says delegate to cursor, have composer write it, refactor with cursor, hand a file edit to Composer. Do NOT load for: planning, code review only, read-only investigation, or multi-task team runs (use breezing --cursor or cursor:ask instead).
Ir a la instalación Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/Chachamaru127/claude-code-harness --skill cursor-doEl comando permanece en una sola lÃnea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... Más de este repositorio Generic release automation for projects using Keep a Changelog + GitHub. Single confirmation gate then end-to-end automation: bump detection, CHANGELOG promotion, PR/main merge, tag, GitHub Release. Trigger: release, version bump, publish. Do NOT load for: implementation, review, planning, setup.
Generic release automation for projects using Keep a Changelog + GitHub. Single confirmation gate then end-to-end automation: bump detection, CHANGELOG promotion, PR/main merge, tag, GitHub Release. Trigger: release, version bump, publish. Do NOT load for: implementation, review, planning, setup.
Generate an Acceptance Demo HTML for non-engineer vibecoders right before ship/wait/reject decision. Reads back the acceptance_criteria that were stored as personal-preference.v1 by harness-plan-brief (joined by user_request_hash), then renders a single-file HTML showing each criterion as verified or unverified along with a ship/wait/reject recommendation. Use when the user asks for an acceptance review, wants to decide whether to ship a delivered task, or says: acceptance demo, accept demo, åãå
¥ã倿, åå
¥ã¬ãã¥ãŒ, ship/wait/reject å€å®, æ€åã¬ãã¥ãŒ. Do NOT load for: implementation, code review, release work.
Explorador de archivos
2 archivos name cursor-do description Delegate a single write task to Cursor Composer via cursor-companion.sh inside an isolated worktree, then Lead-review the diff and cherry-pick. Use when user invokes cursor:do, says delegate to cursor, have composer write it, refactor with cursor, hand a file edit to Composer. Do NOT load for: planning, code review only, read-only investigation, or multi-task team runs (use breezing --cursor or cursor:ask instead). description-en Delegate a single write task to Cursor Composer via cursor-companion.sh inside an isolated worktree, then Lead-review the diff and cherry-pick. Use when user invokes cursor:do, says delegate to cursor, have composer write it, refactor with cursor, hand a file edit to Composer. Do NOT load for: planning, code review only, read-only investigation, or multi-task team runs (use breezing --cursor or cursor:ask instead). description-ja 1 ä»¶ã® write ã¿ã¹ã¯ã Cursor Composer ã«å§è²ããã¹ãã«ãå°çš worktree (.claude/worktrees/cursor-do-<id>) ãåã£ãŠ `cursor-companion.sh task --write --workspace <wt>` ãçŽæ¥åŒã³ãLead ã diff ã¬ãã¥ãŒ â main ãž cherry-pick â Plans.md `cc:done [hash]` æŽæ°ãŸã§äžæ°é貫ãããUse when user mentions cursor:do, cursor ã§å®è£
ããŠ, composer ã«æžãããŠ, ã«ãŒãœã«ã«ããããŠ, refactor ã Cursor ã«, ãã¡ã€ã«ç·šéã Composer ã«. Do NOT load for: èšç» (harness-plan), ã¬ãã¥ãŒã®ã¿ (harness-review), èªã¿åãèª¿æ» (cursor:ask), è€æ°ã¿ã¹ã¯äžŠå (breezing --cursor ã䜿ã). allowed-tools ["Read","Write","Edit","Bash","Glob","Grep"] argument-hint [task-description] user-invocable true
cursor:do â Single-Task Write Delegate to Cursor Composer
1 ä»¶ã®å®è£
ã¿ã¹ã¯ã Cursor Composer (composer-2.5-fast) ã«å°çš worktree å
ã§å§è²ããLead ã diff ãã¬ãã¥ãŒããŠãã main ãž cherry-pick ãã skillãbreezing ã® team ãããŒãèµ·ãããã1 ã¿ã¹ã¯ 1 cherry-pick ãæççµè·¯ã§åãã
å°ã蟌ã㯠Cursor åŽã«ã¯ãªã (references/cursor-cli-only.md )ãå°çš .git ãæã€ worktree + Lead diff review + cherry-pick (R01-R13 çµè·¯) ã® 3 ç¹ã ããå®å¹çãªå¢çãcursor ã®åºå㯠Lead ã¬ãã¥ãŒãŸã§ untrusted ãšããŠæ±ãã
Step 0 â NARRATION RULES (UX Contract)
æµã¯ åé·ã ã§ãã£ãŠé²æå ±åã§ã¯ãªããbreezing ãšåãå¥çŽãèµ·åæã« banner + å®è¡èšç»ãç°¡æœã«æç€ºããŠããå®è¡ãã ãèŠãããé²æå ±åã¯æè¿ãåé·ãªç¹°ãè¿ãã®ã¿çŠæ¢ã
èµ·åæã«å¿
ãåºããã® (banner + planãåèš 5 è¡ä»¥å
)
ð cursor / composer-2.5-fast / feat/foo-bar / Add login form validation
ãããã:
1. pre-check (branch / cursor-agent) â å°çš worktree äœæ
2. composer ã«å®è£
å§è² (--write)
3. diff ã¬ãã¥ãŒ â cherry-pick â Plans.md æŽæ°
banner 1 è¡ (ð cursor / composer-2.5-fast / <branch> / <task>) + èšç» 2-4 è¡ã1 ç§ä»¥å
ã«åºããå³ Step 1 ãžã
é²æå ±åã¯åºããŠãã (èŠãããç¯å²ã§)
åã¹ãããã®éå§ã»å®äºã 1 è¡ã¹ããŒã¿ã¹ã§ (â worktree äœæ: .claude/worktrees/cursor-do-...)
pre-check / resolve ã®èŠç¹ãcherry-pick ãã SHA
ãªããã®åå²ãåããã®çç±ã 1 è¡ã§
çŠæ¢ (= åé·ã)
åãäºå®ã® 2 åèšãæã : pre-check çµæãåŸæ®µã§å説æããªã
äžèº«ã®ãªãå眮ã : tool call ã§èªæãªå®£èšã ãã®è¡
3 è¡ä»¥äžã®çµç·¯æ¯ãè¿ã : å¿
èŠãªã 1 è¡ã«å§çž®
èµ·åã·ãŒã±ã³ã¹äžã® â
Insight ããã㯠: Insight ã¯æçµ report ã§ 1 åã®ã¿
éåäŸ (åé·):
à ãcomposer 2.5 ã§å®è£
ããæµãã§ããããŸã確èªããŸããïŒäžèº«ã®ãªãå眮ãïŒ
à ãCursor ãåŒã¶åã« branch ãèŠãŸãã â bash â ãbranch ã確èªããŸãããïŒèšãæãïŒ
à â
Insight ââââ Cursor ã®åŒ·ã¿ã¯âŠ
æ£åžžäŸ (ç°¡æœ + èšç»æç€º):
ð cursor / composer-2.5-fast / feat/foo-bar / Add login form validation
ãããã: worktree äœæ â composer ã«å®è£
å§è² â diff ã¬ãã¥ãŒ â cherry-pick
Step 1 â banner + plan ãåºãåã (1 ç§ä»¥å
)
åŒæ° $ARGUMENTS ãã¿ã¹ã¯èª¬æãšããŠåãããåŒæ°ã空ãªã以äžã®ããŒã«ãŒãåºåããŠãŠãŒã¶ãŒã« 1 è¡ã¿ã¹ã¯ãèŠæ±ããå
¥ååŸã« Step 2 ãžé²ã:
CURSOR_DO_AWAITING_TASK: provide a one-line task description as $ARGUMENTS
åŒæ°ãããã°ãå³ 1 è¡ echo:
ð cursor / composer-2.5-fast / <current-branch> / <task-first-60-chars>
<current-branch> 㯠Step 2 ã§ååŸããå€ã ããStep 1 ã§ã¯æªååŸã®ãã ⊠ã§ãå¯ãStep 2 çŽåŸã«ç¢ºå®å€ã 1 è¡ã§ååºåãããStep 0 ã® banner + å®è¡èšç» (5 è¡ä»¥å
) ã¯ããã§åºãåãã以éã¯åã¹ãããã® 1 è¡ã¹ããŒã¿ã¹ã§é²æãèŠãããåé·ãªç¹°ãè¿ãã®ã¿é¿ããã
Step 2 â 䞊å pre-check (1 bash) 1 ã€ã® bash åŒã³åºãã§ä»¥äžã䞊åã«åããçµæã ãã 1 ãããã¯ã§åãããåå¥ã®èª¬æã¯åºããªãã
bash -c '
set +e
echo "==BRANCH=="; git branch --show-current
echo "==VERSION=="; cat VERSION 2>/dev/null
echo "==PLANS_TAIL=="; tail -n 12 Plans.md 2>/dev/null
echo "==CURSOR_AGENT=="
CURSOR_AGENT_BIN="${CURSOR_AGENT_BIN:-}"
if [ -z "$CURSOR_AGENT_BIN" ]; then
# `agent`ïŒå
¬åŒã®æ°è¡šèšïŒâ `cursor-agent`ïŒlegacy aliasïŒã®é ã«æ¢ãã
# `agent` ã¯æ±çšçãªååãªã®ã§ãsymlink 解決åŸã®å®ãã¹ã®ãæåãã«
# cursor-agent ãå®å
šäžèŽã§çŸããå Žåã ãæ¡çšããïŒéšåæååäžèŽã ãš
# /x/cursor-agent-not-really/agent ã®ãããªãã£ã¬ã¯ããªåã§çªç ŽãããïŒã
for _c in agent cursor-agent; do
_p="$(command -v "$_c" 2>/dev/null)" || continue
[ -n "$_p" ] || continue
_r="$(realpath "$_p" 2>/dev/null || readlink -f "$_p" 2>/dev/null || echo "$_p")"
case "/$_r/" in */cursor-agent/*) CURSOR_AGENT_BIN="$_p"; break ;; esac
done
if [ -z "$CURSOR_AGENT_BIN" ] && [ -x "$HOME/.local/bin/cursor-agent" ]; then
CURSOR_AGENT_BIN="$HOME/.local/bin/cursor-agent"
fi
fi
if [ -z "$CURSOR_AGENT_BIN" ]; then
echo "NOT_INSTALLED"
else
"$CURSOR_AGENT_BIN" --version 2>/dev/null || echo "NOT_INSTALLED"
fi
'
CURSOR_AGENT=NOT_INSTALLED â ERROR: cursor-agent not found (exit 3 expected from companion). Install via setup-cursor.sh. ãåºãçµäºã
BRANCH ã main / master â WARN: on protected branch â cherry-pick target is HEAD of this branch. Confirm intent or switch. ãåºãç¶ç¶ã
Step 3 â plugin root + backend + model resolve (1 bash) HARNESS_PLUGIN_ROOT / CLAUDE_PLUGIN_ROOT ãæªèšå®ã ãš :-. fallback ã consumer repo ã® cwd ã«è§£æ±ºããscripts/cursor-companion.sh ãèŠããèµ·åäžèœã«ãªã (Issue #193 §2)ãhooks.json ãšåã valid_root ãã¿ãŒã³ã§å
ç¢ã«è§£æ±ºããã
bash -c '
set -euo pipefail
valid_root() {
[ -n "${1:-}" ] && [ -f "$1/scripts/cursor-companion.sh" ] && { [ -f "$1/.claude-plugin/plugin.json" ] || [ -f "$1/.codex-plugin/plugin.json" ] || [ -f "$1/.cursor-plugin/plugin.json" ]; }
}
HARNESS_PLUGIN_ROOT="${HARNESS_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}"
ROOT="$HARNESS_PLUGIN_ROOT"
if ! valid_root "$ROOT"; then
ROOT=""
if [ -n "${CLAUDE_SKILL_DIR:-}" ]; then
probe="$(cd "${CLAUDE_SKILL_DIR}" && pwd)"
while [ "$probe" != "/" ] && ! valid_root "$probe"; do
probe="$(cd "$probe/.." && pwd)"
done
valid_root "$probe" && ROOT="$probe"
fi
fi
if ! valid_root "$ROOT"; then
ROOT=""
for c in "${CLAUDE_PROJECT_DIR:-}" "$PWD" \
"$HOME/.claude/plugins/marketplaces/claude-code-harness-marketplace" \
"$HOME/.claude/plugins/cache/claude-code-harness-marketplace/claude-code-harness/"*; do
if valid_root "$c"; then ROOT="$c"; break; fi
done
fi
if ! valid_root "$ROOT"; then
echo "ERROR: claude-code-harness plugin root not found (no scripts/cursor-companion.sh)" >&2
exit 2
fi
HARNESS_PLUGIN_ROOT="$ROOT"
BACKEND=$(bash "${HARNESS_PLUGIN_ROOT}/scripts/resolve-impl-backend.sh" --backend cursor --role worker)
MODEL=$(bash "${HARNESS_PLUGIN_ROOT}/scripts/model-routing.sh" --host cursor --role worker --field model)
echo "PLUGIN_ROOT=${HARNESS_PLUGIN_ROOT}"
echo "BACKEND=$BACKEND"
echo "MODEL=$MODEL"
'
è¿åŽå€: PLUGIN_ROOT (Step 5 ã§äœ¿ã) / BACKEND (å¿
ã cursor) / MODEL (éåžž composer-2.5-fast)ãBACKEND ãŸã㯠MODEL ã空ãªã ERROR: backend/model resolution failed ã 1 è¡ã§åºããŠçµäºãPLUGIN_ROOT 解決倱æã¯äžèšã¹ã¯ãªããã exit 2 ã§å ±åããã
Step 4 â å°çš worktree äœæ è¡çªããªã id ãäœã£ãŠ worktree ãåããmain tree ã $HOME ãæããŠã¯ãªããªã (companion åŽ guard ã§ exit 2 ã«ãªã)ãWT_DIR ã¯çµ¶å¯Ÿãã¹ã§äœã (Step 5 ã® --workspace 㯠companion ã® is not a directory ã¬ãŒãã§çžå¯Ÿãã¹ã exit 2 ã«ããããšããããããIssue #193 §4)ã
bash -c '
set -euo pipefail
REPO_ROOT="$(git rev-parse --show-toplevel)"
cd "$REPO_ROOT"
ID="$(date +%Y%m%d-%H%M%S)-$$"
WT_DIR="$REPO_ROOT/.claude/worktrees/cursor-do-${ID}"
BASE_REF="$(git rev-parse HEAD)"
BASE_BRANCH="$(git branch --show-current)"
WT_BRANCH="cursor-do/${ID}"
mkdir -p "$REPO_ROOT/.claude/worktrees"
git worktree add -b "${WT_BRANCH}" "${WT_DIR}" "${BASE_REF}"
echo "REPO_ROOT=${REPO_ROOT}"
echo "WT_DIR=${WT_DIR}"
echo "WT_BRANCH=${WT_BRANCH}"
echo "BASE_REF=${BASE_REF}"
echo "BASE_BRANCH=${BASE_BRANCH}"
'
è¿åŽããã WT_DIR / WT_BRANCH / BASE_REF / BASE_BRANCH ã以éã® Step ã§äœ¿ããå€±ææ (branch åè¡çªç) 㯠ID ãäœãçŽã㊠1 åã ã retryã2 åé£ç¶å€±æã§ ERROR: worktree creation failed ãåºãçµäºã
Step 5 â cursor-companion.sh task --write ã§å§è² Lead ãçŽæ¥ companion ãåŒã¶ (references/cursor-cli-only.md Topology ç¯ â é claude backend ã§ã¯ Worker ä»åšãªã)ãããã³ããã¯åŒæ°ã® task ãã®ãŸãŸ + å¿
èŠãªè¿œè£ã®ã¿ãåé·ãªå眮ãã¯ä»ããªãã
bash -c '
set -euo pipefail
valid_root() {
[ -n "${1:-}" ] && [ -f "$1/scripts/cursor-companion.sh" ] && { [ -f "$1/.claude-plugin/plugin.json" ] || [ -f "$1/.codex-plugin/plugin.json" ] || [ -f "$1/.cursor-plugin/plugin.json" ]; }
}
HARNESS_PLUGIN_ROOT="${HARNESS_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-}}"
ROOT="${PLUGIN_ROOT:-$HARNESS_PLUGIN_ROOT}"
if ! valid_root "$ROOT"; then
ROOT=""
if [ -n "${CLAUDE_SKILL_DIR:-}" ]; then
probe="$(cd "${CLAUDE_SKILL_DIR}" && pwd)"
while [ "$probe" != "/" ] && ! valid_root "$probe"; do
probe="$(cd "$probe/.." && pwd)"
done
valid_root "$probe" && ROOT="$probe"
fi
fi
if ! valid_root "$ROOT"; then
ROOT=""
for c in "${CLAUDE_PROJECT_DIR:-}" "$PWD" \
"$HOME/.claude/plugins/marketplaces/claude-code-harness-marketplace" \
"$HOME/.claude/plugins/cache/claude-code-harness-marketplace/claude-code-harness/"*; do
if valid_root "$c"; then ROOT="$c"; break; fi
done
fi
if ! valid_root "$ROOT"; then
echo "ERROR: claude-code-harness plugin root not found (no scripts/cursor-companion.sh)" >&2
exit 2
fi
HARNESS_PLUGIN_ROOT="$ROOT"
PROMPT="<task-description>
Constraints:
- Modify only files relevant to the task.
- Keep existing tests green. Add tests when the task is verifiable.
- Match existing code style and naming.
- Create exactly one git commit if your environment supports it; otherwise leave one dirty changeset for Lead auto-commit.
- Do not touch .claude-plugin/settings*, .claude/settings*, .eslintrc*, biome.json, tsconfig*.json."
bash "${HARNESS_PLUGIN_ROOT}/scripts/cursor-companion.sh" task \
--write \
--workspace "${WT_DIR}" \
"${PROMPT}"
' 2>&1
exit 0 + result text â Step 6 ãž
exit 1 (result-error) â companion stderr ã 1 è¡èŠçŽã㊠ERROR: cursor returned is_error/empty result ãåºãçµäºãworktree 㯠Step 8 ã®ã¯ãªãŒã³ã¢ããã§åé€
exit 2 (bad-guard) â èšå®äžåãåå (workspace æå®èª€ãç) ã 1 è¡ã§ç€ºãçµäº
exit 3 (not-found) â Step 2 ã§æ€åºæžã¿ã®ã¯ãã ããå床ééãããåæ§ã«çµäº
Step 6 â Lead diff review worktree å
ã§ Composer ãäœæãã倿Žãèªã¿ãç®èŠã¬ãã¥ãŒ + contract grep ã®äºæ®µã²ãŒããéã (harness-work ãLead ã® cherry-pick åã²ãŒãããšåãå¥çŽ)ã
泚æ (Issue #193 §1) : Cursor Composer 㯠--write ã§ãã¡ã€ã«ç·šéãè¡ãã commit ã¯äœããªã ããšããããworktree ã dirty ãªãŸãŸæŸçœ®ãããš Step 7 ã® cherry-pick 察象ããæŒãããŠãŒã¶ãŒèŠç¹ã§ãå®äºããã®ã« main ã«äœãå
¥ããªããç¶æ
ã«ãªããæ¬ Step åé ã§ dirty ãªããæ¢å commit ãããå Žå㯠amendãcommit ããªãå Žå㯠Lead åŽã§ 1 commit ã«ãŸãšããã
bash -c '
set -euo pipefail
cd "${WT_DIR}"
# Composer 㯠dirty changeset ãè¿ãããšããããããæ¢å commit ã« fold ãã
if [ -n "$(git status --porcelain)" ]; then
git add -A
if [ "$(git rev-list --count "${BASE_REF}..HEAD")" -gt 0 ]; then
git -c user.name="cursor-composer" -c user.email="cursor-composer@local" \
commit --amend --no-edit --no-verify
echo "==AUTO_AMENDED=="
else
git -c user.name="cursor-composer" -c user.email="cursor-composer@local" \
commit --no-verify -m "cursor: ${TASK_SUMMARY:-cursor-do delegated change}"
echo "==AUTO_COMMITTED=="
fi
git log -1 --oneline
fi
echo "==LOG=="
git log --oneline "${BASE_REF}..HEAD"
echo "==STAT=="
git diff --stat "${BASE_REF}..HEAD"
echo "==DIFF=="
git diff "${BASE_REF}..HEAD"
'
TASK_SUMMARY ã¯åŒæ° task ã®å
é 60 æå以å
ã«å§çž®ããæååã Lead ãäºåã« export ããŠãã (äŸ: TASK_SUMMARY="Add login form validation")ãæªèšå®ãªã fallback ã¡ãã»ãŒãž cursor-do delegated change ã䜿ãã--no-verify ãä»ããã®ã¯ worktree å
ã®ç·šéããLead ã¬ãã¥ãŒåã®äžé commitããšããŠæ±ããã (cherry-pick åŸã® main commit ã§ R01-R13 ãš pre-commit hook ãéã)ã
Lead 㯠diff å
šæã Read ãã以äžã確èªãã:
åé¡ãªã â Step 7 ãž
ç¯å²å€å€æŽãã â è©²åœ commit ã git reset ã§å·»ãæ»ãããCursor ã«åå§è² (Step 5 ã 1 åã ã retry)ã2 å倱æã§ REQUEST_CHANGES: <çç±> ãåºããworktree ãæ®ãããŸãŸçµäº
protected path / secret æ€åº â å³ abortãABORT: protected path violation ãåºã worktree åé€
Step 7 â cherry-pick + Plans.md cc:done æŽæ° worktree ãã main tree ã« cherry-pick ãããCursor prompt 㯠exactly one commit å¥çŽã ããComposer 㯠dirty changeset ãè¿ãããšããããã Step 6 ã§ commit/amend ãããè€æ° commit ãæ®ã£ãå Žå㯠main tree ãè§Šãåã«åæ¢ããã
ããã« cherry-pick åã« Plans.md ã® staged / unstaged å·®åããªãããšã確èªãããçç±: æ¢åå·®åãããç¶æ
ã§åŸç¶ã® git add Plans.md && git commit --amend ãè¡ããšãtask ãšç¡é¢ä¿ãª plan/status ç·šéã Cursor ã® code commit ã«å·»ã蟌ãããã
SHA çŽæ¥æå® (branch åçµç±ã§ã¯ãªã) ã§ reviewer state drift ãé¿ãã (MEMORY: reviewer_state_drift)ã
bash -c '
set -euo pipefail
COMMIT_COUNT="$(cd "${WT_DIR}" && git rev-list --count "${BASE_REF}..HEAD")"
if [ "${COMMIT_COUNT}" -eq 0 ]; then
echo "ERROR: no commits to cherry-pick"
exit 1
fi
if [ "${COMMIT_COUNT}" -ne 1 ]; then
echo "ERROR: cursor returned ${COMMIT_COUNT} commits; expected exactly one. Keep worktree for manual review: ${WT_DIR}"
exit 1
fi
if ! git diff --quiet -- Plans.md || ! git diff --cached --quiet -- Plans.md; then
echo "ERROR: Plans.md has pre-existing local edits; refusing to cherry-pick before the cursor:do marker amend"
exit 1
fi
SHA="$(cd "${WT_DIR}" && git rev-parse HEAD)"
git cherry-pick "${SHA}"
echo "==CHERRY_PICKED=="
git log --oneline -n 1
'
cherry-pick ã§ conflict ãåºãã git cherry-pick --abort ããCHERRY_PICK_CONFLICT: <files> ã 1 è¡ã§ç€ºããŠçµäº (worktree ã¯æ®ãããŠãŒã¶ãŒå€æ)ã
cherry-pick åŸãPlans.md ã«å¯Ÿå¿è¡ãããã°è©²åœã¿ã¹ã¯ã®ããŒã«ãŒãæŽæ°ããã
äžèšã® clean precondition ãééããŠãããããããã§çºçãã Plans.md å·®å㯠marker-only diff ãšããŠæ±ã:
| <task> | ... | cc:done [<merged-sha>] |
該åœè¡ã®ç¹å®: åŒæ° task æååã®å
é 40 æåã§ grep ãããããããæåã® cc:TODO / cc:WIP / cc:todo è¡ã cc:done [<sha>] ã«çœ®æãããããããªããªãæŽæ°ã¹ããã (Plans.md å€ã®ã¿ã¹ã¯ãšããŠæ±ã)ã
ããŒã«ãŒãæŽæ°ããå Žåããã®ç·šé㯠cherry-pick commit ã«å«ãããæªã³ãããã® Plans.md ãæ®ã㊠cleanup / å®äºå ±åãžé²ãã§ã¯ãªããªãã
以äžã® amend block ã¯ãäžèš precondition ééåŸã«å®è¡ãã marker-only diff ã ãã察象ã«ãã:
bash -c '
set -euo pipefail
if git diff --quiet -- Plans.md; then
echo "PLANS_UPDATED=0"
else
git add Plans.md
git commit --amend --no-edit
echo "PLANS_UPDATED=1"
echo "MERGED_SHA=$(git rev-parse HEAD)"
fi
'
Step 8 â worktree cleanup + å®äºå ±å (1 ãããã¯) cherry-pick æååŸãworktree ã delete ããã倱æ path ã§ã¯åŒã°ããªãïŒworktree ãæ®ããŠãŠãŒã¶ãŒå€æïŒã
bash -c '
set -euo pipefail
git worktree remove --force "${WT_DIR}"
git branch -D "${WT_BRANCH}" 2>/dev/null || true
echo "==CLEANUP=="
git worktree list | grep -v "cursor-do-" || true
'
å®äºå ±å㯠1 ããã㯠ã§åºããäžéãã¬ãŒã·ã§ã³ãªã:
cursor:do completed
task: <task-first-60-chars>
commits: <count>
base: <BASE_REF> â cherry-picked into <BASE_BRANCH>
plans: <updated|skipped (no match)>
files: <changed-file-count> changed, +<inserts> -<deletes>
Full Containment (write mode å¿
é ) å±€ åœ¹å² skip å¯åŠ å°çš .git worktree cursor ã®æžèŸŒã main tree ããéé¢ äžå¯ïŒå¿
é ïŒ Lead diff review untrusted cursor åºåã®å質ã²ãŒã äžå¯ïŒå¿
é ïŒ contract-grep ã²ãŒã docs / locale / matrix åºå®æååã®ä¿è· äžå¯ïŒå¿
é ïŒ cherry-pick â main R01-R13 guard rail ãéãå¯äžã®çµè·¯ äžå¯ïŒå¿
é ïŒ Plans.md cc:done æŽæ° å°åž³ãšã® sync 該åœè¡ãªããã° skip å¯
Prohibited
--force / --yolo ã companion ã«æž¡ãïŒCursor å
¬åŒ "Never use"ïŒ
cursor åºåã Lead ã¬ãã¥ãŒåã« main ãžçŽæ¥ commit ãã
protected path (.claude-plugin/settings*, .eslintrc*, tsconfig*.json, etc.) ã Step 5 ã® prompt ã§èš±å¯ãã
$HOME / / / main tree ã --workspace ã«æå®ãã
Plans.md ã® cc:* ããŒã«ãŒã task ãšç¡é¢ä¿ã«æžãæãã
Related Skills / Rules
cursor:ask â èªåå°çšã®è³ªåã»èª¿æ»ã»æµå¯ŸçèŠç¹ (worktree äžèŠ)
breezing --cursor â è€æ°ã¿ã¹ã¯ã team ãããŒã§ cursor å§è²ããå Žå
harness-work â claude backend ã® default ãã㌠(Worker agent çµç±)
references/cursor-cli-only.md â Cursor backend governance + Topology (æ§ .claude/rules/cursor-cli-only.md ã®å
šæãããã«ç§»èšæžã¿)