海外の変態AIオタク直伝 Opus 5.5の7層ハーネス設計【トークン削減60%】
文章目录
CLAUDE.md・Skills・MCP・サブエージェント・Hooks・/goalを、7つの役割で1つの仕組みに組む
Claude CodeのモデルがOpus 5.5に替わっても、頼み方は前と同じ。CLAUDE.mdも、Skillsも、許可の設定もそのまま。
それだと、遠くまで走れる頭脳を、近所のおつかいにしか使っていないことになります。
9月22日の発表で、Anthropicはこんな例を出しています。早期に試した人が、20万行のコードの監査と修正を、3時間足らずで終えた。
同じ仕事に、1つ前のOpus 5は20時間以上かかっていました。トークン(AIが処理する文章の単位)も2.5倍使っていたそうです。
もちろん一例です。どんな仕事でも同じ差が出るとは限りません。
それでも、はっきりしたことが1つあります。Opus 5.5は、長い仕事を丸ごと任せられる頭脳になりました。
そして、長く任せるほど効いてくるのは、モデルの外側です。
何を覚えさせるか。どんな段取りで動かすか。どの道具を渡し、誰に仕事を分け、どこで止め、何ができたら終わりにするか。
この外側の仕組みを、ハーネスと呼びます。
Anthropicの開発者向けガイドも、Opus 5.5向けの中身を「プロンプトとハーネスのパターン」と説明しています。後から付けた呼び名ではなく、公式が使っている言葉です。
この記事では、Claude Codeのハーネスを7つの層に分け、1層ずつ部品を作ります。
部品は、1つの作業フォルダに積み上がっていきます。後の層の部品が前の層の部品を使うので、最後の章でひとつながりの仕組みになります。
持ち帰れるのは、この3つです。
・7つの層の地図
・層ごとの部品。設定ファイルと依頼文で12個
・全部をまとめてClaude Codeに作らせる依頼文
部品は各章の途中に置きました。最後の章の依頼文を使えば、設定ファイルを自分で開かなくても組み上がります。
先に2つ断っておきます。「Opus 5.5ハーネス」という名前の製品があるわけではありません。7つの層も、Anthropicの公式の分け方ではなく、この記事の整理です。
頭脳が長く走れるようになった分、差がつくのは外側
なぜ今この話なのか。理由は、Opus 5.5の得意なことそのものにあります。
開発者向けガイドには、こうあります。何時間もかかる監査や、大きなコードベースの移行。これを並列のサブエージェントで、ほとんど監督なしに最後までやり切る力が、Opus 5より上がった。
サブエージェントは、Claudeが仕事の一部を渡す、別の係のClaudeです。⑤で詳しく扱います。
考える力も上がっています。Anthropicのテストでは、既定のmediumのままで、Opus 5のhighと同じか上回ったそうです。大きなコードベースで、テストが通るまで変更をやり切るような仕事での話です。
頭脳の側は、長い仕事に耐えられるようになった。だから次は、長い仕事を支える側を整える番です。
整えないと、何が起きるか。公式の文書から拾えるだけでも、3つあります。
1つ目は、途中で止まることです。Opus 5.5は長い作業の途中で、状況を報告してくれます。
その報告で1回の返事を終えてしまうことがある、と開発者向けガイドは書いています。見張りのいない仕組みだと、作業はそこで止まったままです。
2つ目は、禁止が「お願い」止まりになることです。Claude Codeの公式ドキュメントは、CLAUDE.mdも自動メモリも「強制される設定ではなく、文脈として扱う」と明記しています。
3つ目は、壊したときに戻せない場面があることです。Claude Codeには自動の巻き戻しがありますが、戻せない変更もあります。これは⑦で扱います。
逆に外側が整うと、任せたあとに見張る時間が減ります。止まってほしい場所でだけ止まり、それ以外は最後まで進む。この記事で目指すのは、その状態です。
たとえるなら、Opus 5.5が頭脳、Claude Codeが作業場。ハーネスは、その作業場に置く段取り表と安全装置です。
effortの見直しや、CLAUDE.mdの減らし方は、前回の記事にまとめています。今回は、その先の組み立ての話です。
前回の記事はこちらです。
https://x.com/lucky_note_lab/status/2102908749996544087
全体マップ 考える→覚える→段取り→道具→分業→止める→終える
7つの層は、この順に並べました。
① 思考・制御:どれだけ深く考えさせるか。effortを役割ごとに配ります
② 記憶・文脈:毎回知っておいてほしいこと。CLAUDE.md、ルール、自動メモリです
③ 手順:毎回説明している仕事の段取り。Skillにします
④ 道具:外のサービスにつなぐ。MCPで道具を渡し、使い方はSkillに書きます
⑤ 分業:1人に全部やらせない。書く係と確かめる係を分けます
⑥ 安全:お願いではなく、Claude Code側で止める。権限ルールとHooksです
⑦ 完了・検証:何ができたら終わりか。/goalで決め、失敗はチェックポイントで戻します
7つの後には、長い作業で「残る層・消える層」の章があります。最後の章で、7つの部品を1つのフォルダに組み上げます。
例に使うのは、記事を書く作業フォルダです。クライアントの原稿でも、自分のX記事でも、同じ形で使えます。
時間がない人は、⑥と⑦だけ先に読んでください。どちらも数行の設定で、今日から効きます。
ちなみに、Anthropicの公式ブログにも「7つ」が出てくる記事があります。Claudeへの指示の出し方は7つある、という内容です。
挙がっているのは、CLAUDE.md、ルール、Skill、サブエージェント、Hooks、出力スタイル、システムプロンプトへの追記。この記事の7層とは別の分け方ですが、後半の「残る層・消える層」で、この記事の表を使わせてもらいます。
① 思考・制御 深さは頼み方ではなく、effortで役割ごとに配る
effortは、Claudeにどこまで考えさせるかのつまみです。開発者向けガイドは、Opus 5.5の考える量を決める一番のつまみだと書いています。
この層を放っておくと、全部の作業が同じ深さで動きます。材料を並べ替える作業も、数字の裏取りも、同じ深さです。
簡単な作業では時間と利用枠を余計に使い、難しい作業では浅くなる。どちらも損です。
一番簡単な方法は、何もしないことです。Opus 5.5をClaude Codeで使うと、最初からmediumになっています。公式も、まずmediumから始めるよう勧めています。
xhighとmaxは、上げて良くなったと測れた仕事だけに使う。これも開発者向けガイドの勧めです。
1つだけ落とし穴があります。CLAUDE.mdに「highで考えて」と書いても、effortのつまみそのものは動きません。
書いた指示は、今のeffortの範囲の中で、考え方を寄せるだけです。つまみを動かすなら、/effort のコマンドか設定ファイルを使います。
作り込むなら、深さを役割ごとに配ります。
Skillとサブエージェントには、定義ファイルの先頭にeffortを書く欄があります。書くと、それが動いている間だけ、会話全体の深さを上書きします。書かなければ、会話の深さをそのまま引き継ぎます。
この記事のフォルダでは、普段の会話はmediumのまま。⑤で作る「裏取り係」だけを深く考えさせます。入れるのは、この1行です。
▼ここからコピー
effort: high
▲ここまで
この1行は、⑤の裏取り係の定義ファイルに入れます。今はまだ貼る場所がないので、⑤まで持っていってください。
名前の一括置換のような機械的な作業なら、逆にlowが向いています。9月22日の公式ブログも、そういう作業にはlowを勧めています。
サブエージェントがどの深さで動いたかは、/tasks で確かめられます。定義でeffortを決めていれば、その値が行に出ます(v2.1.242以降)。
ちなみに開発者向けガイドには、少し変わった話も載っています。複数のエージェントで動かすとき、経過時間と持ち時間を毎回伝えると、手分けが増えて早く終わる。
たとえば「340秒経過/持ち時間1200秒」にあたる1行を、返事のたびに付け足すそうです。
持ち時間はあくまで目安です。その時間が来ても、モデルを止めるものは何もありません。時間に追われると、調べ物や確認が少し減ることもある、とガイド自身が断っています。
これは、自分でハーネスを組む開発者向けの話として書かれています。頭の片隅に置いておく程度で十分です。
② 記憶・文脈 CLAUDE.mdは覚え書き。守らせる装置ではない
Claude Codeの記憶には、置き場所が3つあります。
・CLAUDE.md:自分で書く。セッションのたびに毎回読み込まれる
・.claude/rules/ のルール:先頭で対象のフォルダを決めると、そのファイルを扱うときだけ読み込まれる
・自動メモリ:Claudeが自分で書く。直された内容や好みを覚え、目次の先頭200行までを毎回読み込む
自動メモリは最初からオンです。/memory の画面で、オンとオフを切り替えられます。
ここで押さえたいのは、公式ドキュメントのこの一文です。CLAUDE.mdも自動メモリも、強制される設定ではなく、文脈として扱われる。
Claudeの判断に関係なく止めたいなら、PreToolUseフック(道具を使う直前に割り込む仕組み)を使う。ドキュメントは続けてそう案内しています。
つまりCLAUDE.mdは、覚え書きです。「公開済みの原稿は触らない」と書けば、Claudeは守ろうとします。ただ、必ず守られるとは限りません。
だからこの記事では、CLAUDE.mdに「何を、なぜ触らないか」を書き、実際に止めるのは⑥に任せます。役割を分けておくと、どちらが効いているのかで迷いません。
この層がないと、Claudeは毎回まっさらな状態で始まります。読者が誰で、どのフォルダに何があるかを、毎回説明し直すことになります。
最小の1手は、フォルダの事実を短く書いたCLAUDE.mdを1枚置くことです。公式の目安は200行未満。この作業フォルダなら、20行もあれば足ります。
▼ここからコピー
この作業フォルダについて
記事の原稿を書くフォルダです。
読者:[例:Claude Codeを使い始めた、エンジニアではない人]
文体:[例:です・ます。1文60字以内。専門用語には短い説明を添える]
フォルダの使い分け:
・sources/:材料(メモ、資料、URLの控え)
・drafts/:書きかけの原稿
・published/:公開済みの原稿。書き換えない(権限ルールでも止めてある)
進め方:
・記事を書くときは write-article のSkillを使う
・数字、日付、固有名詞は fact-checker に確かめさせる
▲ここまで
[ ]の中は、自分のフォルダに合わせて書き換えます。write-article と fact-checker は、このあと③と⑤で作る部品の名前です。
自分で書くのが面倒なら、Claude Codeに「このフォルダ用のCLAUDE.mdを、上の骨組みで作って。分からない項目は推測で埋めずに聞いて」と頼めば作ってくれます。
③ 手順 毎回同じ説明をしている仕事は、Skillに渡す
CLAUDE.mdが職場の決まりなら、Skillは仕事ごとのマニュアルです。
記事を書くたびに「まず材料を読んで、章立てを作って、見せてから書いて」と説明している。そう気づいたら、Skillにする合図です。
Skillの本文は、その仕事のときだけ読み込まれます。毎回読み込まれるCLAUDE.mdに手順を書くより、ずっと身軽です。
もう1つ、Skillの性格を知っておくと、⑥とのつながりが見えます。
公式ドキュメントは、SkillとHooksの違いをこう説明しています。Hooksは決まった場面で必ず動く。Skillは、Claudeが中身を解釈して使うので、結果が変わることがある。
段取りを任せるならSkill、毎回必ず同じことを起こしたいならHooks。この線引きが、③と⑥の境目です。
この層がないと、段取りは毎回の頼み方しだいになります。うっかり1行書き忘れた日は、その工程がまるごと飛びます。
部品は、記事を書く手順のSKILL.mdです。.claude/skills/write-article/ というフォルダを作り、その中にSKILL.mdという名前で保存します。
▼ここからコピー
name: write-article
description: sources/ の材料から記事の原稿を書き、裏取りまで済ませる。記事や原稿を頼まれたときに使う。
記事を書く手順
-
sources/ の材料を読み、記事に使う事実を箇条書きで並べる
-
章立てを作って私に見せる。OKが出てから本文に入る
-
drafts/ に原稿を書く
-
書き終えたら、章ごとに fact-checker に裏取りを頼む
-
fact-checker の表で「違う」と出たものは直す。「確認できない」ものは本文から外すか、「要確認」の印を付ける
-
最後に、原稿の字数と、全章分の裏取りの表を画面に出す
▲ここまで
手順4の fact-checker は⑤で作る係です。手順6で画面に出す表は、⑦で「終わった」の判定に使います。部品同士が、ここからつながり始めます。
手順2で一度止まるのは、わざとです。章立てだけは自分の目で決めて、そこから先は任せる。止まる場所を、手順の中で先に決めておきます。
自分の今のやり方をSkillにしたいなら、記事を1本書き終えた直後が狙い目です。Claude Codeに「今の会話でやった記事作りの流れを、write-articleというSkillにまとめて。作る前に手順の一覧を見せて」と頼みます。
④ 道具 MCPでつなぎ、使い方はSkillに書く
MCPは、Claudeを外のサービスにつなぐ仕組みです。つなぐと、NotionやSlackなどの中身を、Claudeが読んだり操作したりできるようになります。
ここで、公式ドキュメントの切り分けが役に立ちます。MCPは外のサービスにつなぐ。Skillは、そのサービスをうまく使う方法まで含めて、Claudeの知識を増やす。
公式の組み合わせ例は、データベースでした。MCPがデータベースにつなぎ、Skillが中の構造と問い合わせの型を教える。
道具を渡しただけでは、どのページが材料で、どこを触ってはいけないのかが分かりません。つないだら、使い方をSkillに書き足す。この2つで1セットです。
この層がないと、材料はいつも手でコピーして貼ることになります。貼り忘れた資料は、Claudeにとって存在しないのと同じです。
部品は2つあります。1つ目は、NotionをClaude Codeにつなぐコマンドです。公式ドキュメントに載っている例そのままです。
▼ここからコピー
claude mcp add --transport http notion https://mcp.notion.com/mcp
▲ここまで
これはClaude Codeの中ではなく、ターミナル(コマンドを打つ画面)で打ちます。そのあとClaude Codeを開いて /mcp を打つと、ログインに進めます。
/mcp の一覧で notion が connected になっていれば、つながっています。
Notionを使っていない人は、Anthropicのコネクタ一覧(claude.ai/directory)をのぞいてみてください。載っているものは、同じ claude mcp add で追加できると公式ドキュメントにあります。
2つ目は、③のSKILL.mdへの書き足しです。手順1の行を、次の1行に差し替えます。
▼ここからコピー
- sources/ の材料と、Notionの「ネタ帳」ページ(NotionのMCPで読む)を読み、記事に使う事実を箇条書きで並べる。Notionのページは書き換えない
▲ここまで
「ネタ帳」の部分は、自分のページ名に合わせてください。これで、③の手順書が④の道具を使うようになりました。
ただ、「書き換えない」と書いても、これはCLAUDE.mdと同じお願いです。MCPの道具も、⑥の権限ルールで止める対象にできます。
⑤ 分業 書く係と確かめる係を、別のClaudeにする
公式ドキュメントによると、サブエージェントはそれぞれ自分専用の文脈で動きます。文脈というのは、Claudeがその場で覚えておける作業メモのようなものです。
専用の指示、使える道具、独立した権限も持てます。仕事が終わると、要約だけをメインの会話に返します。
Opus 5.5の公式ブログ(9月22日)も、ここを勧めています。監査や移行、大きなレビューでは、作業をサブエージェントに分けさせ、返ってきた結果を1つずつ確かめさせる。
公式の例文は、サービスごとに1つずつサブエージェントを割り当てる依頼でした。報告が来たら、受け入れる前に証拠を確かめる。最後は表1枚にまとめる。
記事の仕事に置き換えると、書く係と確かめる係を分ける形になります。
この層がないと、裏取りの検索結果がメインの会話にどんどん積み上がります。長い原稿ほど、会話が調べ物のログで埋まっていきます。
サブエージェントに渡せば、調べ物の途中経過は係の側に残ります。メインの会話に戻ってくるのは、結果の表だけです。
部品の1つ目は、裏取り係の定義ファイルです。.claude/agents/ フォルダに fact-checker.md という名前で保存します。①で持ってきたeffortの1行も、ここに入っています。
▼ここからコピー
name: fact-checker
description: 原稿の数字、日付、固有名詞、人の発言を一次情報で確かめ、表で返す。記事の裏取りを頼まれたときに使う。
tools: Read, Grep, Glob, WebSearch, WebFetch
effort: high
あなたは記事の裏取り係です。原稿は書き換えません。
渡された原稿から、数字、日付、固有名詞、人の発言をすべて抜き出してください。
1件ずつ、公式サイトや発表元のページで確かめてください。
結果は「原稿の記述/判定(一致・違う・確認できない)/出典URL」の形で、1件1行の表にして返してください。
確認できなかったものは、どこを探したかも書いてください。
▲ここまで
toolsの行を見てください。読む・探す・検索する道具だけで、書き換える道具を渡していません。この係は、原稿を直そうとしても直せないんです。
指示で「書き換えないで」と頼むのと、書き換える道具を最初から渡さないのとでは、確かさがまるで違います。これが「独立した権限」の使いどころです。
部品の2つ目は、分業を頼む依頼文です。公式の例文の形を、記事向けに置き換えました。
▼ここからコピー
drafts/ の原稿を、章ごとに fact-checker に渡して裏取りしてください。
章ごとに別々の fact-checker を並べて動かしてかまいません。
報告が来たら、出典URLの中身を確かめてから受け入れてください。
最後に、全章分を1枚の表にまとめて画面に出してください。
▲ここまで
係を自分で作るのが面倒なら、Claude Codeに「原稿の裏取りだけをする fact-checker というサブエージェントを .claude/agents/ に作って。原稿は書き換えられないようにして」と頼めば作ってくれます。
上級編として、Agent Teamsという機能もあります。サブエージェントは、呼んだClaudeに結果を返すだけです。Agent Teamsでは、メンバー同士が直接やり取りし、共有のタスクリストで協力します。
ただし、これは実験的な機能で、最初はオフです。使うには、CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS を1にする設定を入れます。
有効にすると、普段の分業のしかたも変わります。Claudeが名前を付けて呼んだサブエージェントがメンバーとして動くようになり、頼んでいなくてもチームができることがあります。
まずはサブエージェントで十分です。チームは、係に分ける感覚に慣れてからでも遅くありません。
⑥ 安全 「やめてね」ではなく、Claude Code側で止める
Claude Codeの公式ドキュメントに、はっきりした一文があります。ガードレール(安全柵)はHooksに置く。
続けてこうあります。CLAUDE.mdやSkillに書いた「.envを編集しないで」は、お願いであって保証ではない。編集を止めるPreToolUseフックが、強制になる。
.envは、パスワードやAPIキー(サービスの鍵)をまとめて置くことが多いファイルです。
②で「CLAUDE.mdは覚え書き」と書いたのは、この話につなげるためでした。守ってほしいことはCLAUDE.mdに書き、破られたら困ることはここで止めます。
公式発表によると、Opus 5.5は取り消しにくい行動や、任された範囲の外の行動を、最近のモデルよりとりにくいそうです。頼もしい話です。でも「とりにくい」と「とらない」は別物です。
この層がないと、どれだけ気をつけてもらっても、最後はモデルの判断しだいになります。
とはいえ、いきなりHooksから入る必要はありません。一番簡単なのは、権限ルールです。
公式ドキュメントによると、権限ルールはモデルではなく、Claude Code自身が守らせます。プロンプトやCLAUDE.mdに何が書いてあっても、許される範囲は変わりません。
ルールは「禁止(deny)」「確認(ask)」「許可(allow)」の3種類です。判定は禁止から順に行われ、広い禁止は細かい許可より強い。守りたいものは、まず禁止に入れておくのが確実です。
部品は、この作業フォルダの .claude/settings.json に書く禁止ルールです。
▼ここからコピー
{
"permissions": {
"deny": \[
"Read(./.env)",
"Edit(./published/\*\*)"
\]
}
}
▲ここまで
1つ目の禁止で、.env を読めなくします。2つ目で、published/ フォルダの中を書き換えられなくします。②のCLAUDE.mdに書いた「書き換えない」が、ここで本当に止まるようになります。
書き込みを止めるルールは、Editで書きます。公式ドキュメントによると、Writeで書いたルールは受け付けても使われません。
.claude/settings.json がすでにある人は、上書きせずに足してください。
正直、設定ファイルを手で開くのは面倒です。Claude Codeに「.claude/settings.json に、.env を読ませない・published/ を書き換えさせない禁止ルールを足して。今ある設定は消さないで」と頼めば済みます。入ったかどうかは /permissions で確かめられます。
1つ、公式が正直に書いている限界があります。この禁止は、Claudeのファイル操作と、catやsedのような決まったコマンドには効きます。
でも、PythonやNodeのプログラムが中でファイルを開く場合までは止まりません。そこまで止めたいなら、サンドボックス(パソコン側で出入りを絞る仕組み)を使うよう案内されています。
権限ルールで表せない細かい条件は、Hooksの出番です。PreToolUseフックは、Claudeが道具を使う直前に割り込み、自分で決めた判定で止められます。
公式の例は、.envやGitのフォルダなどへの編集を、小さなスクリプトで判定して止めるものです。止めた理由はClaudeにも伝わるので、Claudeは別のやり方を探します。
Hooksには、止める以外の使い道もあります。この作業フォルダに入れておきたいのが、通知です。
Claudeが入力や許可を待ち始めたら、デスクトップに知らせてくれます。任せて別の作業をしていても、止まったことにすぐ気づけます。
部品は、通知のHookです。こちらは作業フォルダの中ではなく、自分のどの作業フォルダでも効く ~/.claude/settings.json に書きます。
~ は、パソコンの中の自分専用フォルダを表す記号です。Macの人はこちら。
▼ここからコピー
{
"hooks": {
"Notification": \[
{
"matcher": "",
"hooks": \[
{
"type": "command",
"command": "osascript -e 'display notification \\"Claude Code needs your attention\\" with title \\"Claude Code\\"'"
}
\]
}
\]
}
}
▲ここまで
Windowsの人はこちらです。
▼ここからコピー
{
"hooks": {
"Notification": \[
{
"matcher": "",
"hooks": \[
{
"type": "command",
"command": "powershell.exe -Command \\"\[System.Reflection.Assembly\]::LoadWithPartialName('System.Windows.Forms'); \[System.Windows.Forms.MessageBox\]::Show('Claude Code needs your attention', 'Claude Code')\\""
}
\]
}
\]
}
}
▲ここまで
Macでは、スクリプトエディタに通知の許可が要ることがあります。Windowsは画面の隅の通知ではなく小さな窓が開くので、ターミナルの後ろに隠れることもあります。どちらも公式ドキュメントにある注意です。
ここも、すでに設定ファイルがある人は上書きしないでください。「~/.claude/settings.json に、入力待ちのときに通知するHookを足して。今ある設定は消さないで」と頼めば、Claude Codeが足してくれます。
⑦ 完了・検証 「終わりました」をClaudeの自己申告にしない
開発者向けガイドには、長い作業を無人で回すときの注意があります。
文字だけで終わった返事は、完了の証拠ではなく報告として扱う。仕事の中身はチェックリストに持たせる。
もう1つの方法も紹介されています。終わりの条件を先に決めておき、別の小さなモデルに、返事のたびに条件と照らし合わせさせる。
Claude Codeには、この形がそのまま入っています。/goal です。
/goal のあとに終わりの条件を書くと、Claudeが返事を終えるたびに、別の小型のモデルが判定役として条件を見ます。満たすまで作業は続きます。判定役が「この条件は達成できない」と見切った場合も、そこで終わります。
この層がないと、「終わりました」はClaudeの自己申告のままです。長い作業の途中の報告を、完了と取り違えることもあります。
条件の書き方には、1つコツがあります。判定役はコマンドを動かさず、会話の中身だけを見て判断します。
だから「字数が足りている」ではなく、「字数を画面に出していて、それが足りている」と書く。③の手順6で、字数と裏取りの表を画面に出させたのは、このためです。
部品は、この作業フォルダ用の終わりの条件です。
▼ここからコピー
/goal write-articleの手順どおり drafts/ に原稿がある。原稿の字数と、全章分の裏取りの表が画面に出ていて、表に「違う」が1件も残っていない。「確認できない」ものは本文から外すか「要確認」の印が付いている。25回やり取りしても満たせなければ止める
▲ここまで
/goal は、打った瞬間に条件そのものを指示として作業を始めます。③の手順2の章立てにOKを出してから打ってください。
回数の上限を条件に入れておくのは、回り続けて利用枠を使い切らないためです。途中でやめたいときは /goal clear で取り消せます。
プログラムを書く人なら、条件は「テストが全部通る」が一番確かです。9月22日の公式ブログの例文も、テストを終わりの線にしています。
もう1つ、⑦に入れておきたいのが、やり直しの手段です。Claude Codeは、依頼を送るたびに、その時点のファイルの状態を自動で控えています。チェックポイントと呼ばれる仕組みです。
入力欄が空の状態でEscを2回押すか、/rewind を打つと、戻したい時点を選べます。戻し方は主に3つです。
・ファイルの変更と会話の両方を戻す
・会話だけ戻す(ファイルは今のまま)
・ファイルの変更だけ戻す(会話は今のまま)
ただ、チェックポイントは品質を確かめる仕組みではなく、転んだときの受け身です。公式ドキュメントが挙げている限界も、先に知っておいてください。
・Bashのコマンドで消したり動かしたりしたファイルは、戻らない
・サブエージェントが書き換えたファイルも、基本は戻らない
・その場の復旧用で、Gitのような長期の履歴の代わりにはならない
2つ目については、⑤で裏取り係に書き換えの道具を渡さなかったことが、ここでも効いてきます。確かめる係が原稿を触らないので、巻き戻せない変更がそもそも生まれません。
長い作業では「残る層」と「消える層」がある
ここまでの7層を長い作業で走らせると、1つ気になることが出てきます。途中で、置いたはずの決まりが見えなくなることがあるんです。
9月22日の公式ブログによると、長い作業は会話の容量をいっぱいにします。するとClaude Codeは、古いやり取りを要約して詰め直します。
このとき、層によって扱いが違います。それをまとめているのが、Anthropicの公式ブログ「Steering Claude Code」(2026年6月18日)の比較表です。作業フォルダ向けに言い換えると、こうなります。
・フォルダ直下のCLAUDE.md:要約のあと読み直される。残る
・対象を決めていないルール:要約のあと入れ直される。残る
・対象のフォルダを決めたルールと、サブフォルダのCLAUDE.md:該当するファイルをまた触るまで、消えたまま
・呼び出したSkill:共有の上限までは入れ直される。あふれると、古いものから落ちる
・サブエージェント:もともと、最後の報告だけがメインの会話に戻る
・Hooks:会話の外にあるので、要約の影響を受けない
この表から、置き場所の決め方が3つ出てきます。
1つ目。長い作業の途中でも、絶対に破られたくないことは⑥に置く。Hooksは要約の影響を受けません。権限ルールも、そもそも会話の中の指示ではなく、Claude Code自身が守らせる設定です。
2つ目。長い作業の途中でも必要な決まりは、フォルダ直下のCLAUDE.mdか、対象を決めていないルールに置く。対象を決めたルールは、身軽な代わりに、要約のあとしばらく消えます。
3つ目。進み具合は、会話ではなくファイルに書かせる。9月22日の公式ブログも、やることの一覧をファイルに置けば、要約のあとも残ると書いています。
サブエージェントについても1つ。戻ってくるのは最後の報告だけなので、報告の形を先に決めておくと取りこぼしが減ります。⑤の裏取り係に「1件1行の表で返す」と書いたのは、このためです。
部品は、自分のフォルダの決まりを、この表で点検させる依頼文です。判断の基準を依頼文の中に書いてあるので、Claudeが推測で仕分けにくくなります。
▼ここからコピー
このフォルダの決まりを、長い作業の途中で会話が要約されたときに「残るもの」と「消えるもの」に仕分けてください。ファイルは変えず、画面に一覧で出すだけにしてください。
対象:CLAUDE.md、.claude/rules/、.claude/skills/、.claude/agents/、.claude/settings.json
判断の基準:
・フォルダ直下のCLAUDE.mdと、対象のフォルダを決めていないルールは、要約のあとも残る
・対象のフォルダを決めたルールと、サブフォルダのCLAUDE.mdは、該当するファイルを触るまで消える
・呼び出したSkillは上限まで残り、あふれると古いものから落ちる
・権限ルールとHooksは、会話の外で効く
1件ごとに、決まりの中身、置き場所、要約で消えるかどうか、消えたときに困る度合い(高・中・低)を並べてください。
困る度合いが「高」なのに消える場所にあるものは、移し先の案を書いてください。
▲ここまで
7つの部品を1つのフォルダに組むと、こうなる
ここまでの部品を、1つの作業フォルダにまとめます。以下は、この記事のために組んだ一例です。
・CLAUDE.md:フォルダの事実と進め方(②)
・.claude/skills/write-article/SKILL.md:記事を書く手順と、Notionの材料の読み方(③④)
・.claude/agents/fact-checker.md:書き換えの道具を持たない裏取り係。effortはhigh(⑤①)
・.claude/settings.json:.envと公開済みの原稿を守る禁止ルール(⑥)
・~/.claude/settings.json:入力待ちの通知(⑥)
・NotionのMCP:材料の置き場へのつなぎ(④)
・/goal:頼むたびに渡す、終わりの条件(⑦)
動きを追うと、こうなります。
まず /write-article と打って、材料を指定します。/ のあとにSkillのフォルダ名を打つと、そのSkillを直接呼べます。材料が足りなければ、④のNotionから探しにいきます。
章立てが出たら、自分の目で見てOKを出します。止まるのは、ここだけです。
OKを出したら、⑦の /goal を打ちます。ここから先は、任せる区間です。
原稿を書き終えると、Claudeは章ごとに⑤の裏取り係を呼びます。係は深いeffortで、書き換えの道具を持たずに確かめ、表を返します。
途中で許可が必要になれば、⑥の通知が鳴ります。公開済みの原稿や.envには、⑥の禁止ルールで最初から手が届きません。
字数と裏取りの表が画面に出て、「違う」が0件になったら、/goal の判定役が終わりを認めます。「終わりました」が、ここで初めて本当の意味になります。
ここまでの部品を1つずつ作るのが面倒な人のために、全部を1通で頼む依頼文を置いておきます。設定ファイルを自分で開かなくても、フォルダが組み上がります。
▼ここからコピー
この作業フォルダに、記事制作用のハーネスを組んでください。すでにあるファイルは上書きせず、足す形にしてください。
最初に、作るファイルと足す内容の一覧を見せて、私のOKを待ってください。
-
sources/、drafts/、published/ のフォルダ(なければ作る)
-
CLAUDE.md:フォルダの目的、読者、文体、フォルダの使い分け、進め方。200行未満。フォルダの中身から分からない項目は私に聞く
-
.claude/skills/write-article/SKILL.md:材料を読む→章立てを見せてOKを待つ→drafts/ に書く→章ごとに fact-checker で裏取り→「違う」は直し、「確認できない」は外すか「要確認」の印→字数と裏取りの表を画面に出す
-
.claude/agents/fact-checker.md:数字、日付、固有名詞、人の発言を一次情報で確かめ、1件1行の表で返す係。道具は Read, Grep, Glob, WebSearch, WebFetch だけ。effort: high
-
.claude/settings.json:Read(./.env) と Edit(./published/**) を禁止するルール
-
~/.claude/settings.json:入力や許可を待つときに、デスクトップに通知するNotificationのHook。このパソコンがWindowsかMacかを確かめてから書く
作り終えたら、作ったファイルと中身の要約を一覧で出してください。
NotionなどのMCPをつなぐ作業は私がやるので、手順だけ最後に書いてください。
▲ここまで
作り終えたら、/clear で会話をリセットしてから使い始めます。CLAUDE.mdは、会話の途中で作っても、その会話には反映されないためです。
そのあと、前の章の「残る・消える」の点検を1回かけておくと安心です。
最後に ハーネスは、頭脳に「任せ方」を渡す仕組み
7つの層を並べ直すと、やっていることは単純です。
①で深さを配り、②で覚えさせ、③で段取りを渡す。④で道具をつなぎ、⑤で係を分ける。⑥で止め具を付け、⑦で終わりを決める。
どれも、Claudeを賢くする設定ではありません。賢い頭脳に、長い仕事の任せ方を伝える設定です。
Opus 5.5で、頭脳の側は一段上がりました。次に差がつくのは、どこまで任せて、どこで止めるかを決めた外側です。
全部を今日作る必要はありません。今日1つだけやるなら、⑥の禁止ルールです。数行で、Claude Code側で止まる場所が1つできます。
ハーネスとは、賢い頭脳が最後まで走り切れるように、外側に置く段取りと止め具のことです。



