1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「Claude CodeとCodexどっちが最強」より先に、Cursorのハーネスを見た方がいい

1
Posted at

毎日モデル比較してる人、仕事はあんまり終わってないと思う。

仕事が終わるかどうかは、モデル単体の知能じゃなくて、その周りにあるハーネスで決まる。Cursorが強いのはそこ。

この記事で言うハーネスは、モデルに渡すプロンプトの魔法じゃない。エージェントが「読んで、直して、コマンドを打って、失敗したら戻る」ための土台全部のこと。

公式ドキュメントも、Agent をこう分解している。

  1. Instructions(システムプロンプトと Rules)
  2. Tools(検索、編集、ターミナル、ブラウザなど)
  3. Model(そのタスクで使うモデル)

Cursor は対応モデルごとに、この1と2をチューニングする側に回っている。新しいモデルが出ても、こっちはソフトを書くことに集中できる、というのが建前で、現場でもだいたいそう感じる。

モデルは差し替えられる。ループは差し替えにくい

Claude Code も Codex も、中身のモデルは強い。同じ週に同じ系統のモデルを食ってることも多い。

差が出るのはこのあたり。

  • コードベースをどう切って読ませるか
  • 編集を diff として見せられるか
  • 失敗したときに checkpoint で戻せるか
  • ターミナルや MCP をどこで止めるか
  • ルールを「お願い」で済ますか、「実行前に拒否」できるか

ここがハーネス。最強比較スレが噛み合わない理由でもある。モデルの勝敗を議論してる間に、リポジトリ側のループを固めた人のほうが成果物は残る。

Cursor のハーネスは「お願い」と「拒否」が分かれている

ここがいちばん大事。

Rules はソフト制約

.cursor/rules/*.mdcAGENTS.md は、コンテキストに載る指示。コーディング規約、ディレクトリの約束、やってほしくないことを書く場所。

効く。ただし保証ではない。モデルは確率的なので、Rules を無視してファイルを触ることがある。公式も「Rules は steering であって、有害な操作の防止にはならない」と分けて書いてある。

例:

---
alwaysApply: false
globs: src/components/**/*.tsx
---

- named export を使う
- コンポーネントは 200 行超えたら分割する
- 生成物の `dist/` は触らない

alwaysApplyglobsdescription で「いつも / このファイルのとき / Agent が関連と判断したとき / @メンションしたとき」を切り替えられる。チームルールは Team / Enterprise ならダッシュボードからも配れる。

「書いておけば守られる」ではない。守らせたいなら次の層が要る。

Hooks と permissions はハード制約

実行前にプロセスが割り込んで、許可・拒否できる。モデルが「push します」と言っても、フックが deny なら走らない。

公式の Hooks は preToolUse / beforeShellExecution / beforeMCPExecution / beforeReadFile など、エージェントループの段に引っ掛けられる。

git を勝手に叩かれたくないときのイメージ:

{
  "version": 1,
  "hooks": {
    "beforeShellExecution": [
      {
        "command": "./hooks/block-git.sh",
        "matcher": "git push"
      }
    ]
  }
}

block-git.sh 側で permission: "deny" を返す。Rules に「push するな」と書くより、こっちのほうが話が早い。

同じ思想で、.cursorignore は Tab / Agent / メンションからのファイルアクセスを制限する。ただしターミナル経由の cat までは完全に止めない、という既知の穴はある。機密を置くなら allowlist からそういうコマンドを外す。

お願い(Rules)と拒否(Hooks / permissions)を分けて持っているのが、Cursor のハーネスの芯だと思う。片方しかないツールは、現場で必ずどちらかに寄せて壊れる。

現場で効いている残りの部品

比較記事で抜けがちなので、短く置く。

Checkpoints
Agent が大きめの変更に入る前にスナップショットを取る。Git とは別。変な方向に行ったらチャット上の checkpoint からファイルだけ戻せる。探索とリファクタの保険。

並列と Cloud Agent
ローカルで複数エージェント、クラウド側の background agent が PR を開く、という形が公式に載っている。モデル比較より「待ち時間を並列に逃す」ほうが、仕事のスループットは上がる。ただし並列で投げすぎるとレビュー地獄になる。最初は1本。リポジトリのルールが空だと平気で暴れる。

モデルを仕事ごとに替える
Composer、Claude、GPT、Gemini を同じループの上で差し替えられる。Claude Code は Claude のループに最適化されている。どっちが偉いではなく、ハーネスの形が違う。

CLI もある
「Cursor は IDE だから terminal 勢には負け」は、IDE 対 Claude Code CLI の話としては正しい。Cursor CLI 対 Claude Code CLI なら、Rules / MCP / agent は揃ってきている。まだ Skills や Stop フックの深さは Claude Code 側が厚い、という比較は 2026 年時点でもよく見る。

じゃあ Claude Code と Codex は弱いか

弱くない。ハーネスの置き場所が違う。

Claude Code はターミナル常駐。CLAUDE.md、Skills、Stop / SubagentStop の blocking hook、明示的な権限確認。シェルと複数リポジトリをまたぐ仕事は今でも強い。Codex も CLI 側のループが本体。

Cursor が強いのは、編集・検索・ターミナル・レビュー・差し替え可能なモデルを、同じ Agent ループに載せている点。ファイルを見てる最中に仕事が進む。逆に、tmux と neovim から出たくない人には回帰に見える。

「どっちが最強」の正解は、自分の仕事が IDE の中で完結するか、シェルの外に出て完結するか。

明日からやること(モデル比較の代わり)

  1. リポジトリに AGENTS.md.cursor/rules を1枚置く。空のまま Cloud Agent を投げない。
  2. 「してほしくないこと」(本番設定、生成物、git push)は Rules ではなく Hook か permissions に落とす。
  3. 並列は1本から。レビューできない仕事を増やさない。
  4. モデル比較は、同じハーネスの上で同じタスクを1回ずつ流したときだけ意味がある。

最強を毎日決めても、リポジトリに残るハーネスは増えない。残るほうを先に固めた方が、仕事は終わる。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?