好文集ChatGPT Plus¥119

海外の変態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/ の材料から記事の原稿を書き、裏取りまで済ませる。記事や原稿を頼まれたときに使う。


記事を書く手順

  1. sources/ の材料を読み、記事に使う事実を箇条書きで並べる

  2. 章立てを作って私に見せる。OKが出てから本文に入る

  3. drafts/ に原稿を書く

  4. 書き終えたら、章ごとに fact-checker に裏取りを頼む

  5. fact-checker の表で「違う」と出たものは直す。「確認できない」ものは本文から外すか、「要確認」の印を付ける

  6. 最後に、原稿の字数と、全章分の裏取りの表を画面に出す

▲ここまで

手順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行に差し替えます。

▼ここからコピー

  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を待ってください。

  1. sources/、drafts/、published/ のフォルダ(なければ作る)

  2. CLAUDE.md:フォルダの目的、読者、文体、フォルダの使い分け、進め方。200行未満。フォルダの中身から分からない項目は私に聞く

  3. .claude/skills/write-article/SKILL.md:材料を読む→章立てを見せてOKを待つ→drafts/ に書く→章ごとに fact-checker で裏取り→「違う」は直し、「確認できない」は外すか「要確認」の印→字数と裏取りの表を画面に出す

  4. .claude/agents/fact-checker.md:数字、日付、固有名詞、人の発言を一次情報で確かめ、1件1行の表で返す係。道具は Read, Grep, Glob, WebSearch, WebFetch だけ。effort: high

  5. .claude/settings.json:Read(./.env) と Edit(./published/**) を禁止するルール

  6. ~/.claude/settings.json:入力や許可を待つときに、デスクトップに通知するNotificationのHook。このパソコンがWindowsかMacかを確かめてから書く

作り終えたら、作ったファイルと中身の要約を一覧で出してください。

NotionなどのMCPをつなぐ作業は私がやるので、手順だけ最後に書いてください。

▲ここまで

作り終えたら、/clear で会話をリセットしてから使い始めます。CLAUDE.mdは、会話の途中で作っても、その会話には反映されないためです。

そのあと、前の章の「残る・消える」の点検を1回かけておくと安心です。

最後に ハーネスは、頭脳に「任せ方」を渡す仕組み

7つの層を並べ直すと、やっていることは単純です。

①で深さを配り、②で覚えさせ、③で段取りを渡す。④で道具をつなぎ、⑤で係を分ける。⑥で止め具を付け、⑦で終わりを決める。

どれも、Claudeを賢くする設定ではありません。賢い頭脳に、長い仕事の任せ方を伝える設定です。

Opus 5.5で、頭脳の側は一段上がりました。次に差がつくのは、どこまで任せて、どこで止めるかを決めた外側です。

全部を今日作る必要はありません。今日1つだけやるなら、⑥の禁止ルールです。数行で、Claude Code側で止まる場所が1つできます。

ハーネスとは、賢い頭脳が最後まで走り切れるように、外側に置く段取りと止め具のことです。

全文完
查看原文