Claude Codeを育てる - Part 1:概念編
日本では長期連休、時間もあるのでClaude Codeの育て方に関して長文を書いたが ブログとしては長いので分割して投稿する。
これから6回に分けて、Claude Codeを実環境で「育てる」ための具体的な方法を書いてゆく。 今回は概念編。
■ Claude Codeは新人エンジニアではない
Claude Codeは賢い。でも完璧ではない。
口頭で直しても、次のセッションでは何も覚えていない。
新人エンジニアは経験から学んで内面化していく。 Claude Codeは違う。
👉 毎朝入れ替わりでやってくる MIT の学生アルバイト
これに近い。
つまり、1回教えても次のセッションでは何も覚えていない。 だから「育てる = 文書化する」になる。
口頭で1回直すのは育成ではなく、ただの愚痴。 直したいなら、その場でルール化・自動化・強制化のどれかに落とす必要がある。
■ Claude Codeに知識を持たせる4つの仕組み
セッションを跨いで知識を持たせる手段は4つある。
CLAUDE.md— 毎ターン会話に注入される方針書- Skills — スラッシュコマンドで呼ぶ手順書
- Hooks — イベントで自動実行されるスクリプト
settings.jsonのpermissions— 許可/拒否ルール
それぞれ役割が違うが、特に大事なのは強制力の差。
なお、厳密にはもう1つ auto memory(会話から学んだことを Claude が自動でファイルに溜める仕組み)があるが、これはユーザーが設計するのではなく Claude 側が勝手に育てる別軸なので、設計対象としては上記4つで十分。auto memory の位置付けは Part 6 で扱う。
■ 「説得」と「強制」は別物
4つの仕組みはこう分類できる。
説得(Claudeが守るかどうかに依存)
- CLAUDE.md
- Skills
強制(Claudeの判断に依らずハーネス側で実行される)
settings.jsonの permissions- Hooks
これがこのシリーズで一番重要なポイント。
ここで言う「強制」は「危険を止める」という意味ではなく、「Claudeの意思に関係なくハーネス側で動く」という意味。中身は2つの役割に分かれる:
- 禁止 —
permissions.denyで危険操作を物理ブロック - 自動化 — Hooks で lint/format などを自動実行
CLAUDE.mdに「rm -rf 禁止」と書いても、Claudeは状況で判断を変える。
本当に止めたいものは permissions.deny で物理的にブロックする必要がある。
👉 説得と強制を混同すると、事故が起きる
■ シリーズ全体像
このシリーズではこの順番でやる。
- Part 1(今回):概念編 — 4つの仕組みと、「説得」「強制」の区別
- Part 2:強制編 —
permissions.denyで事故を防ぎ、Hooks で品質チェックを自動化する - Part 3:説得編 — CLAUDE.md の書き方、ルールの粒度
- Part 4:拡張編 — Skills と Subagents の使いどころ
- Part 5:Subagent 実装編 — Subagent の具体的な書き方、ロール定義、複数連携
- Part 6:運用編 — インシデントドリブンの改善ループ + auto memory の位置付け(最終回)
実際に自分の開発環境に入れていく順番でもある。
■ 今回のまとめ
Claude Code は魔法ではないが、新人エンジニアでもない。 毎朝入れ替わりでやってくる MIT の学生アルバイト。
だから「育てる = 文書化する」が成立する。
そして、文書化する場所には説得と強制の2層がある。 この区別を最初に頭に入れておくと、Part 2 以降の話がスッと入る。
次回は強制編。permissions.deny で危険操作を物理的にブロックする話から始める。