con un clic
harness-review
// HAR: Multi-angle code, plan, scope review. Security/quality check. Trigger: review, code review, plan review, scope analysis. Do NOT load for: implementation, new features, bugfix, setup, release.
// HAR: Multi-angle code, plan, scope review. Security/quality check. Trigger: review, code review, plan review, scope analysis. Do NOT load for: implementation, new features, bugfix, setup, release.
Read-only delegate to cursor-agent (Composer) for questions, investigation, design discussion, and adversarial sanity checks. No worktree, no cherry-pick, no Lead diff review — cursor-agent is locked to ask mode and cannot write. Use when user says: ask cursor, cursor sanity check, get a second opinion, adversarial review, design discussion, investigate with cursor, /cursor:ask, /ask-cursor. Do NOT load for: implementation, refactor, file edits, commit/push work, anything requiring write access (use /cursor:do or /breezing --cursor instead).
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).
HAR: Multi-angle code, plan, scope review. Security/quality check. Trigger: review, code review, plan review, scope analysis. Do NOT load for: implementation, new features, bugfix, setup, release.
Team execution mode — backward-compatible alias for harness-work with team orchestration.
Read-only delegate to cursor-agent (Composer) for questions, investigation, design discussion, and adversarial sanity checks. No worktree, no cherry-pick, no Lead diff review — cursor-agent is locked to ask mode and cannot write. Use when user says: ask cursor, cursor sanity check, get a second opinion, adversarial review, design discussion, investigate with cursor, /cursor:ask, /ask-cursor. Do NOT load for: implementation, refactor, file edits, commit/push work, anything requiring write access (use /cursor:do or /breezing --cursor instead).
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).
| name | harness-review |
| description | HAR: Multi-angle code, plan, scope review. Security/quality check. Trigger: review, code review, plan review, scope analysis. Do NOT load for: implementation, new features, bugfix, setup, release. |
Harness の統合レビュースキル。
この SKILL.md は薄い dispatcher であり、詳細な品質基準は references/ を読む。
if $ARGUMENTS == "": → 「今までの作業のレビュー」と解釈し、Review target detection を実行する → review target が 1 つに確定できる場合だけ自動開始する → review target が不明または複数候補の場合は AskUserQuestion で選択肢を出し、認識を揃えてから開始する
skill 結論時の output の 最後の 1 行は必ず次の literal を含める:
↑この結果は Claude が要約します。Enter キーで次へ進むか、新規 prompt で別の指示を出してください。
これは <local-command-stdout> 経由で text response として表示されると user が「止まった」と感じる UX 問題への明示的な instruction (patterns.md P35)。
この skill の責務は review 判定だけ。 commit / push / release は既定では行わない。
APPROVE でも自動 commit しないharness-work、または harness-release の Work Commit Gate に委譲する--commit-on-approve のような明示 opt-in が設計されるまで、この skill 単体の default side effect は禁止| Command | Mode | Purpose |
|---|---|---|
/harness-review | code | 今までの作業を自動検出して review |
/harness-review --quick | quick | 小さな dirty change を軽く closeout |
/harness-review --codex-closeout | codex-closeout | Codex 助言 + focused tests で closeout |
/harness-review --dual | dual | Claude + Codex second opinion |
/harness-review --cursor | cursor-second-opinion | cursor (composer-2.5-fast) を second-opinion として並走 (read = lean、Opus reviewer 必須併走) |
/harness-review --team-debate | team-debate | TeamAgent Debate を強制 |
/harness-review --security | security | security 専用 review |
/harness-review plan | plan | Plans.md の計画 review |
/harness-review scope | scope | scope creep / 漏れ review |
引数から実行 mode を決定し、必要な references/ を選択ロードする。
| 入力 | mode | 読む reference |
|---|---|---|
引数なし / code | code | references/code-review.md, references/governance.md |
--quick | quick | references/codex-closeout.md, references/code-review.md |
--codex-closeout | codex-closeout | references/codex-closeout.md |
--dual | dual | references/dual-review.md, references/team-debate.md |
--cursor | cursor-second-opinion | references/cursor-review.md, references/dual-review.md |
--team-debate | team-debate | references/team-debate.md, references/governance.md |
--security | security | references/security-profile.md, references/governance.md |
--ui-rubric | ui-rubric | references/ui-rubric.md |
plan | plan | references/plan-review.md, references/governance.md |
scope | scope | references/scope-review.md, references/governance.md |
full | full | references/code-review.md, references/team-debate.md, references/dual-review.md |
quick と codex-closeout は軽量 path。
小さな dirty change、single commit、PR branch の closeout を速く見る。
品質 gate を捨てるものではない。
REVIEW_AUTOSTART 契約:
引数なし ($ARGUMENTS == "") で呼ばれた場合、review / /review / /harness-review だけの入力を「今までの作業のレビュー」と解釈する。
Step 1 開始前の handshake 行として次を 1 行だけ出力する。
REVIEW_AUTOSTART: target={resolved_target}, base_ref={resolved_base_ref}, type={mode}
REVIEW_TARGET_ASK 契約:
bare 呼び出しで review target が不明または複数候補の場合、Step 1 に進む前に AskUserQuestion を 1 回だけ使い、候補を 2-3 個に絞って確認する。
候補は次の順で作る。
複数候補が同時に成立する場合:
REVIEW_TARGET_AMBIGUOUS: working_tree_and_branch_commits
AskUserQuestion の候補:
clean tree かつ branch 差分がない場合:
REVIEW_TARGET_AMBIGUOUS: clean_tree_no_branch_commits
AskUserQuestion の候補:
ユーザー回答後:
REVIEW_TARGET_CONFIRMED: {choice}
REVIEW_AUTOSTART: target={resolved_target}, base_ref={resolved_base_ref}, type={mode}
禁止:
Plans.md を確認するAPPROVE / REQUEST_CHANGES / decision_needed を返すREQUEST_CHANGES の場合は critical / major の修正方針と修正後再レビュー条件を示す詳細は references/governance.md。
ここでは最低限の合格ラインだけ固定する。
APPROVE は次のすべてを満たす時だけ返す。
spec_path) または明示された spec_skip_reason と矛盾しないPlans.md の task / DoD / Depends と矛盾しないAPPROVE なのに evidence が空の出力は禁止minor / recommendation として理由付きで格下げ済み詳細は references/team-debate.md。
TeamAgent Debate は、異なる見解を read-only で衝突させる review pass。
| Agent | 主な問い |
|---|---|
| Spec Agent | 仕様正本と実装差分の矛盾を探す |
| Plans Agent | Plans.md の task / DoD / Depends と差分の対応を確認する |
| Regression Agent | 既存挙動・テスト・配布 mirror・CLI/skill UX のデグレを探す |
| Skeptic Agent | 合格させたい前提で見落としている major risk を探す |
Codex 環境で native TeamAgent が使えない場合でも、この gate を省略してはいけない。
codex-companion.sh review、利用可能な reviewer subagent、または明示的に分けた read-only manual-pass で同じ 2-4 視点を再現し、team_agent_mode に native / codex-companion / manual-pass / unavailable を記録する。
詳細は references/code-review.md。
通常 code review は次を見る。
仕様正本 alignment check は必須。
spec_path がある場合は差分が仕様正本と矛盾しないか確認し、仕様正本が必要なのに無い場合は spec_skip_reason の妥当性を見る。
Plans.md alignment check とデグレ alignment check も同じ gate で扱う。
AI Residuals は scripts/review-ai-residuals.sh と scripts/review-weak-supervision-report.sh を優先して使う。
untracked も見る場合は --include-untracked を使う。
mockData, dummy, fake, localhost, TODO, FIXME, it.skip, test.skip, expect(true).toBe(true) などは候補であり、diff 文脈で severity を決める。
finding 段階は網羅優先。minor と判定した指摘も observations[] / recommendations[] に残し、gate は verdict 段階だけで行う(Opus 4.8 は low-severity の報告を絞る癖がある。references/code-review.md の Finding coverage 参照)。
TDD が required の task では skip_tdd_reason、red-log、focused tests の証跡を確認する。
証跡なしで APPROVE しない。
詳細は references/codex-closeout.md。
軽量 path の原則:
helper:
bash scripts/harness-review-closeout.sh --dry-run --uncommitted
bash scripts/harness-review-closeout.sh --base origin/main --parallel-tests --test "bash tests/test-harness-review-governance.sh"
bash scripts/harness-review-closeout.sh --commit HEAD
詳細は references/plan-review.md。
Plan Review は Plans.md の DoD / Depends / Status と実装順序を見る。
仕様正本が必要なタスクで spec_path がない場合は、decision_needed として止める。
詳細は references/scope-review.md。
Scope Review は、要求・差分・テスト・docs の境界が膨らんでいないかを見る。
範囲変更が必要なら、推測で進めず AskUserQuestion または plan 更新に戻す。
references/security-profile.mdreferences/ui-rubric.mdreferences/vision-high-res-flow.mdreferences/dual-review.md/ultrareview は Harness flow 内では既定で呼ばない。
Harness flow の review-result.v1、commit guard、sprint-contract との接続を置き換えないため。
claude ultrareview [target] --json は CI / script からの second-opinion としてだけ扱う。
GitHub-first。 PR host 上の review 事実は GitHub を正とし、local diff は補助証拠として扱う。 ただし local uncommitted review は GitHub に push しない。
User-facing prose follows the explicit session or project language.
If no language is configured, use English. Use Japanese only when
i18n.language: ja, CLAUDE_CODE_HARNESS_LANG=ja, or an explicit session
instruction requests Japanese output.
Machine-readable values stay English.
Start with the result summary.
## Review Result
### {APPROVE | REQUEST_CHANGES | decision_needed} - {one-line conclusion}
Target: `{BASE_REF}..HEAD` or `{target}`
Verification: {commands run}
Strengths:
- ...
Findings:
- [severity] file:line - issue and evidence
Next Actions:
- ...
Details:
```json
{
"schema_version": "review-result.v1",
"verdict": "APPROVE | REQUEST_CHANGES",
"decision_needed": {
"required": false,
"ask_tool": "AskUserQuestion"
},
"accepted_findings": [],
"rejected_findings": [],
"acceptance_bar": {
"critical_major_zero": true,
"spec_alignment": "pass | fail | not_applicable",
"plans_alignment": "pass | fail | not_applicable",
"regression_safety": "pass | fail | not_applicable",
"verification_evidence": "pass | fail | not_applicable"
},
"team_debate": {
"required": false,
"mode": "native | codex-companion | manual-pass | unavailable",
"team_agent_mode": "native | codex-companion | manual-pass | unavailable",
"agents": [],
"disagreements": []
},
"critical_issues": [],
"major_issues": [],
"observations": [],
"recommendations": []
}
```
Codex 環境では使える tool が異なる。
それでも、合格ライン、仕様正本、Plans.md、デグレ、修正後再レビュー、AskUserQuestion / decision_needed.v1 の契約は同じ。
| 通常環境 | Codex fallback |
|---|---|
| Task tool の TeamAgent Debate | reviewer subagent / codex-companion.sh review / manual-pass |
| AskUserQuestion | 使えない場合は decision_needed.v1 を stdout に出し、推測で進めない |
| TaskList | Plans.md を直接読む |
harness-work: REQUEST_CHANGES 後の修正実行harness-plan: plan / scope / spec の更新harness-release: review 済み work の commit / release