
「CLAUDE.mdに全部書く」をやめてみた話 — SkillとHookで自動化した実例
SNSで、Claude Codeの「リポジトリ構成」に関する投稿が話題になっていました。要点はシンプルで、「同じモデル・同じプロンプトでも、フォルダ構成次第でAIの働きぶりが変わる」というものです。
このブログもClaude Codeで運用しているので、実際に自分の環境に取り入れてみました。今回は、その内容と実際にやったことを紹介します。
話題の投稿の要点
ポイントは大きく3つでした。
- 繰り返す指示は、置き場所を変える:毎回のやり取りで同じ説明を書いているなら、それは「呼び出した時だけ読み込まれる手順書」(Skill)にすべき
- 「お願い」と「強制」を使い分ける:AIへの指示(CLAUDE.mdなど)はあくまで「できるだけ従ってもらう」お願いにすぎません。絶対に守りたいルールは、設定ファイル側で機構的に強制する(Hook)必要がある
- 調べ物・手順・保証の3つに振り分ける:繰り返し行う作業は「調査」「手順」「保証」のどれかに分類できる、という考え方
正直、最初に読んだときは「なるほど、でも自分のような小規模な個人運用には大げさかな」とも思いました。ただ、②の「お願い」と「強制」の使い分けだけは、このブログの運用にそのまま当てはまる部分があったので、試してみることにしました。
このブログでやったこと
1. 記事執筆の手順を「Skill」にした
このブログの記事は、だいたい毎回同じ流れで作っています。
- 下書きを書く
- 画像生成用の指示をMarkdownに埋め込む
- 画像を自動生成するスクリプトを実行する
- ローカルで見た目を確認する
- 問題なければ公開する
これまでは、この流れを毎回Claudeに口頭で説明していました。今回、この手順をまるごと「呼び出せば毎回同じ流れをなぞってくれる手順書」として保存しました。以後は「新しい記事を書きたい」と伝えるだけで、この一連の流れを自動でこなしてくれるようになりました。
地味な変更に見えますが、「同じ説明を繰り返し書かなくて済む」というのは、想像以上にストレスが減ります。
2. 「うっかりコミット」を防ぐ仕組みを「Hook」にした
こちらが今回の本題です。
このブログは.envファイルにAPIキー(画像生成用など)を保存しています。.gitignoreで除外設定はしていますが、「絶対に公開リポジトリに載せない」という点は、うっかりミス一つで壊れてしまう類のルールです。実際、git add -fのようなコマンド一つで、除外設定は簡単に無視できてしまいます。
そこで、「コミットしようとする直前に、ステージされた内容を自動でチェックし、怪しい内容が含まれていたらコミット自体をブロックする」仕組みを追加しました。具体的には、以下の2つを検知するようにしています。
.env系のファイルが(除外設定を無視して)そのままステージされていないか- APIキーらしき文字列が、差分の中に紛れ込んでいないか
これは「お願い」ではなく「強制」です。Claudeがどう判断しようと、該当する内容があれば機構的にコミットが止まります。
試しに、わざと偽のAPIキーを仕込んだファイルをステージしてコミットを実行してみたところ、狙い通りその場でブロックされました。逆に、通常の変更だけをコミットしようとした場合は、何も引っかからずにそのまま通ることも確認しています。
個人開発・副業レベルでも取り入れる価値はあるか
冒頭で触れた通り、この話題の投稿はどちらかというと大規模なチーム開発を意識した内容でした。今回のブログのような一人運用の小さなプロジェクトに、全部を真似する必要はないと思います。
ただし、「本当に守ってほしいルールは、AIへのお願いではなく仕組みで縛る」という考え方だけは、規模に関係なく効きます。特に、副業や個人開発でAPIキーや個人情報を扱っている人には、費用対効果の高い工夫だと感じました。
まとめ
- 繰り返す作業の説明は、毎回書き直すのではなく「手順書」として1回まとめておくと楽になる
- 「絶対に守りたいルール」は、AIへのお願いではなく、仕組み側で機構的に強制する方が確実
- 個人開発・副業レベルでも、②の考え方だけは取り入れる価値がある
大掛かりな構成を一気に整える必要はありません。まずは「毎回同じことを説明している作業」と「絶対に失敗できないルール」を1つずつ見つけて、それぞれSkillとHookに切り出してみる、くらいの小さな一歩で十分だと思います。


