From claude-code-harness
Read-only delegate to cursor-agent for questions, investigation, design discussion, and adversarial sanity checks. No write access.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-harness:cursor-ask [question][question]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
cursor-agent (Composer) に **read-only** で質問・調査・設計相談・敵対的レビューを委譲する軽量スキル。
cursor-agent (Composer) に read-only で質問・調査・設計相談・敵対的レビューを委譲する軽量スキル。
cursor-companion.sh task は引数なしで --mode ask (hard read-only stop) が自動で付くため、--write を渡さない限り cursor 側は ファイル書き込み・コマンド実行ができない。これにより worktree 隔離・cherry-pick・Lead diff review がすべて不要になる。
cursor:ask "この設計判断、Composer 視点でどう思う?"
cursor:ask "TASK_BASE_REF からの diff を読んで、見落としを 3 つ挙げて"
cursor:ask "harness-mem の cross-project N-call、楽観的すぎる前提はある?"
用途:
| ケース | 例 |
|---|---|
| 質問 | "この型エラーの根本原因は?" |
| 調査 | "scripts/ 配下で curl を使ってる箇所を全部挙げて理由付きで" |
| 設計相談 | "この abstraction、3 年後に保守できる?" |
| 敵対的視点 | "この PR の最大の弱点を 1 つだけ挙げて" |
敵は 冗長さ であって進捗報告ではない。起動時に何を聞くか・どう進めるかを簡潔に明示してから実行する。冗長な繰り返し・中身のない前置きだけを禁ずる。
🚀 cursor / composer-2.5-fast / ask
これから: <質問の要点> を composer に投げて、結果を 3-5 行で要約
banner 1 行 + 計画 1-2 行。1 秒以内に出し、即 Step 2 へ。
→ composer に問い合わせ中)違反例 (冗長):
× 「cursor に質問を投げる準備をします」→ bash → 「投げます」(中身のない前置き + 言い換え)
× 「ask モードは読み取り専用なので安全です」と再説明(既知事実の繰り返し)
× ★ Insight ──── まず cursor の状態を確認します: ...
正常例 (簡潔 + 計画明示):
🚀 cursor / composer-2.5-fast / ask
これから: 設計の弱点を composer に問い、結果を 3-5 行で要約
上記 Narration Rules に従い、banner + 計画 (3 行以内) を出してから Step 1 へ。
Step 0 で banner + 計画 (3 行以内) は出し切っているので、ここでは banner 行が出ていることを確認する。banner は:
🚀 cursor / composer-2.5-fast / ask
以降は委譲開始の 1 行ステータス等で進捗を見せてよい。冗長な繰り返しのみ避ける。
composer-2.5-fast は scripts/model-routing.sh --host cursor --role worker --field model で解決される値の代表表記。実際の resolved model は cursor-companion 側のログに出る。
$ARGUMENTS を質問文として渡す。--write は絶対に付けない。scripts/cursor-companion.sh を相対パスで呼ぶと consumer repo の cwd 直下に見えず exit するため、CLAUDE_PLUGIN_ROOT / HARNESS_PLUGIN_ROOT を hooks.json と同じ valid_root パターンで解決する (Issue #193 §2):
QUESTION="$ARGUMENTS"
if [ -z "$QUESTION" ]; then
echo "ERROR: question required. Usage: cursor:ask \"<your question>\"" >&2
exit 1
fi
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"
bash "${HARNESS_PLUGIN_ROOT}/scripts/cursor-companion.sh" task "$1"
' _ "$QUESTION"
これだけで cursor-agent 側は --mode ask (hard read-only stop) に locked される。--force / --yolo も付かない。
cursor の出力をそのまま貼らない。host (Claude/Codex) が読んで 3-5 行に要約 する:
要約後、最後に literal で次の一文を出力する:
↑この結果は host が要約します。Enter キーで次へ進むか、新規 prompt で別の指示を出してください。
cursor は不透明なサブプロセスであり、Harness のガードレール (R01-R13) は内部に適用されない。read-only 委譲でも以下の前提条件を満たすこと。
| 項目 | 内容 | 設定場所 |
|---|---|---|
| Secret 遮断 | .cursorignore で .env / *.pem / *.key / .ssh / .aws / .git を読取対象から除外 | repo root .cursorignore |
| Egress allowlist | ~/.claude/settings.json の sandbox.network.allowedDomains に *.cursor.sh を追加 | user settings |
| Filesystem allowlist | 同 sandbox.filesystem.allowWrite に ~/.cursor を追加 (cursor-agent が状態書込を行うため) | user settings |
| permissions.json | ~/.cursor/permissions.json の terminalAllowlist / mcpAllowlist は read mode でも有効 (allowlist は best-effort、security boundary ではない) | user config |
詳細は .claude/rules/cursor-cli-only.md を参照。
| 通常の cursor 委譲で必要 | ask mode では不要 | 理由 |
|---|---|---|
| 隔離 worktree | 不要 | cursor は書き込みできない |
| Lead diff review | 不要 | 差分が生まれない |
| cherry-pick | 不要 | 同上 |
worker-report.v1 / self_review 5 件 | 不要 | 実装をしないため |
.cursorignore を怠ると秘密ファイルが cursor 推論に渡るLead (Claude/Codex) ──[cursor-companion.sh task]──> cursor-agent (--mode ask, locked read-only)
│
└──[Step 3: 3-5 行要約]──> User
Worker 介在なし。Reviewer 介在なし。worker-report.v1 / review-result.v1 契約は発生しない。
cursor-do — 書込タスク委譲(worktree + Lead review + cherry-pick の full containment)breezing --cursor — Reviewer のみ cursor に逃がす lean second-opinion レーンharness-review --cursor — レビューを cursor (composer-2.5-fast) に second-opinion として依頼.claude/rules/cursor-cli-only.md — Cursor backend governance (trust boundary, prohibited flags)npx claudepluginhub amirulandalib/claude-code-harness5plugins reuse this skill
First indexed Jul 9, 2026
Read-only delegate to cursor-agent for questions, investigation, design discussion, and adversarial sanity checks. No write access.
Consults Codex CLI for second opinions on code reviews, designs, or implementations by crafting context-based prompts, executing via bash with configurable depth (light/normal/deep), and summarizing results.
Consults subagent for second opinions on code reviews, designs, and implementations by crafting context-based prompts, handling 1-2 rounds of dialogue, and summarizing results.