SJ blog
ai
B

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

プロンプトを書き捨てるな:3回書いたらCLAUDE.mdに昇格させる流儀

同じ指示を3回書いたら永続化する、というベテランClaude Code使いの鉄則。CLAUDE.md / Skills / Hooks / subagent のどこに昇格させるかの判断軸を実例で整理します。

一言結論

プロンプトはその場で消費される使い捨て資産、CLAUDE.md は積み上がる資産であり、「同じ内容を3回書いた」と気づいた瞬間にCLAUDE.md か Skills に昇格させるかどうかで、半年後の生産性が桁で変わる。

Claude Codeを使っていて一番静かに時間を吸われているのは、「似たような指示を毎回書き直している」状態です。

  • 「テストは pnpm --filter api test で実行して」
  • 「TypeScriptの any は使わないで」
  • 「エラーメッセージは日本語で」
  • 「コミットメッセージは Conventional Commits で」

毎セッションこれを打ち直している人と、一度CLAUDE.mdに書いて終わりにしている人とでは、1日あたり数十分、年間で100時間単位の差が出ます。しかもCLAUDE.md側に書けばAIの遵守率も上がる——二重に得します。

Anthropic公式のMemoryドキュメントにも「プロジェクトの前提は CLAUDE.md に書け」とは書いてありますが、「どのタイミングで・どこに昇格させるか」は書かれていません。この判断がシニアとそれ以外を分けるポイントになります。

3回ルール

経験則として共有されている流儀が「3回ルール」です。

同じ指示を3回書いた瞬間に、それをその場のプロンプトから永続化された場所に移す。

1回目: 偶発的に必要になった 2回目: 偶然じゃない可能性が出てきた 3回目: 確実にパターンである → 永続化する

2回目で昇格させると「例外だった」ケースで CLAUDE.md が汚れます。4回以上書いてから昇格させると、その間の時間が無駄です。3回目の書き出しでタイマーが鳴るのが最適、というのが経験上の結論です。

昇格先の判断軸

昇格先は4つあります。CLAUDE.md / Skills / Hooks / Subagent。判断基準は次のとおりです。

昇格先使うべき条件
CLAUDE.md全タスクで共通の前提(規約、コマンド、避けたい動作)
Skills特定の手順を一括で呼び出したい(PR作成、リリース手順など)
HooksAIに守らせるのではなく、決定論的に強制したい制約
Subagent独立したコンテキストで動かした方がいいタスク(レビュー、調査)

迷ったら次のフローチャートです。

「その指示は常に真か?」
 ├─ Yes → CLAUDE.md
 └─ No
    └─ 「AIに破られたくないか?」
       ├─ Yes → Hooks
       └─ No
          └─ 「手順の塊か?」
             ├─ Yes → Skills
             └─ No → Subagent

実例:3回書いた指示を Skill に昇格する

ありがちなのが「PRを書いてほしいときの指示」です。最初はプロンプトで書きます。

このブランチの変更を踏まえて、PRタイトルと本文を書いて。
タイトルは70文字以内、本文は Summary / Test Plan の2セクション
で、Test Plan は [ ] のチェックリスト形式にして。

3回目に書こうとしたその瞬間、Skill に昇格させます。

---
name: pr-writer
description: 現在のブランチ変更からPRタイトルと本文を生成する
user-invocable: true
allowed-tools: Bash, Read
---

以下の形式でPRを書いてください。

タイトル: 70文字以内、feat/fix/chore の prefix を付ける
本文:
  ## Summary
  1〜3個のbullet
  ## Test Plan
  [ ] 形式のチェックリスト

現在のブランチの変更は `git diff main...HEAD` で確認してください。

以降は /pr-writer と打つだけで起動できます。3回目に書く手間で永久に自動化できる計算です。

CLAUDE.md に書くべきでないもの

逆にCLAUDE.mdが膨れて重くなる原因は、「書くべきでないもの」を書いているからです。

  • ❌ 1プロジェクトで1回しか使わない手順 → Skillに入れる
  • ❌ 特定のファイルに閉じたルール → そのディレクトリに CLAUDE.md を分けて置く
  • ❌ セキュリティ強制事項 → Hooksで縛る(AIの遵守に頼らない)
  • ❌ 議論の記録・TODO → そもそも別ファイル

CLAUDE.md は毎セッションで読まれ続けるコストを払います。1行書くたびにトークン消費と注意散漫のリスクが増えます。200〜400行を超えてきたら「分割するか切るか」を考えるタイミングです。

落とし穴

  • 昇格したあとにプロンプトで同じことを繰り返す: CLAUDE.md に書いた内容をプロンプトでも繰り返すのは「二重指示」で逆効果。忘れた頃に /memory で眺めて、自分が同じ指示を二度書いていないか点検する
  • 3回ルールを忘れる: 気付いたらプロンプトで7回同じことを書いている状態になる。セッション開始時に「今日書いた似た指示はあったか?」を自分に1回問う習慣
  • Hooksを使うべき場面でCLAUDE.mdに頼る: 「.env に触らないで」と書いてもAIはたまに破る。破られると困るものは例外なくHooks
  • CLAUDE.mdを個人メモ帳にする: 開発日記、今後のTODO、壊したログなどを入れない。メモは別ファイルで

まとめ

Claude Codeを使う時間の長さに比例して、「同じことを書いている時間」が累積していきます。3回書いた指示は必ず永続化する——これだけの習慣で、3ヶ月後の自分のCLAUDE.mdが資産になります。

プロンプトは書き捨て、CLAUDE.md/Skills/Hooksは積み上がる。この区別を意識するかどうかで、Claude Code のレバレッジは大きく変わります。


参考: