はじめに
前回の記事では、Claude Codeをより安全に使うために andrej-karpathy-skills の CLAUDE.md から学べる考え方を整理しました。
andrej-karpathy-skills の CLAUDE.md は、Claude Codeにありがちな以下のような問題を抑えるうえで参考になります。
- 実装前に考えずにコードを書き始める
- 必要以上に複雑な実装をする
- 関係ないコードまで触る
- 成功条件が曖昧なまま作業を進める
実際、andrej-karpathy-skills の CLAUDE.md では、Think Before Coding、Simplicity First、Surgical Changes、Goal-Driven Execution という4つの観点で、Claude Codeのコーディング時の行動指針が整理されています1。
ただ、実務でClaude Codeを使うなら、もう少し踏み込んだ安全運用ルールもあったほうがよさそうだと感じました。
そこで今回は、centminmod/my-claude-code-setup の CLAUDE.md テンプレートを参考に、andrej-karpathy-skills の CLAUDE.md に追記するとよさそうなルールを3つに絞って整理します。
前提:andrej-karpathy-skillsのCLAUDE.mdは「行動原則」として優れている
andrej-karpathy-skills の CLAUDE.md では、主に次の4つの観点が整理されています。
- Think Before Coding
- Simplicity First
- Surgical Changes
- Goal-Driven Execution
要約すると、こんな方針です。
- 実装前に前提を明示する
- 不明点があれば勝手に決めずに確認する
- 必要最小限のコードで解決する
- 単発用途のために過剰な抽象化をしない
- 関係ないコードやコメントを改善しない
- 変更した行は、ユーザーの依頼と直接結びついているべき
- 成功条件を検証可能な形にする
これはClaude Codeを使ううえで重要です。
特に既存コードベースでは、Claude Codeが気を利かせて「ついでに整理しました」「周辺コードも改善しました」と動くと、レビューコストが上がります。
その意味で、andrej-karpathy-skills の CLAUDE.md は、Claude Codeに対して慎重に、最小限に、目的に沿って動くという基本姿勢を与えるものとして有効です。
ただし、実務では「安全運用ルール」も追加したい
一方で、実務利用ではこんなリスクもあります。
- 読んでいないコードについて推測で説明する
- テストやビルドを実行していないのに完了扱いにする
- 勝手に
commitやpushをする -
resetやrebaseのようなGit操作を行う - 不要なファイル削除を行う
-
force-pushやgit reset --hardのような破壊的操作を行う
これらは、単に「最小限の変更をする」というルールだけでは防ぎきれません。
そこで参考になるのが、centminmod/my-claude-code-setup の CLAUDE.md テンプレートです。
このリポジトリでは、Claude Code向けに以下のような観点が整理されています。
- Investigation & Accuracy
- Scope Discipline
- Verification & Safety
- Efficiency & tools
特に CLAUDE-template-2.md では、「読んでいないコードを推測しない」「利用箇所を ripgrep で調べる」「完了前に要件を再確認し、テストやlintを実行し、検証できなかったことを明示する」「破壊的操作は事前確認する」といった実務向けのルールが整理されています2。
これは andrej-karpathy-skills の思想と相性が良いです。
andrej-karpathy-skills が「Claude Codeの実装姿勢」を整えるものだとすれば、my-claude-code-setup は「実務で事故を起こさないための運用ルール」を補強するものとして使えます。
追記したい安全運用ルール3選
ここから、andrej-karpathy-skills の CLAUDE.md に追加するとよさそうなルールを3つ紹介します。
1. 読んでいないコードについて推測しない
まず追加したいのは、これです。
- Never speculate about code you have not read.
日本語にすると、こうなります。
- 読んでいないコードについて推測しない
Claude Codeは、文脈からそれらしい説明を生成するのが得意です。
しかし、既存コードベースでは「それらしい説明」よりも「実際に確認した内容」のほうが重要です。
たとえば、次のような回答は危険です。
この処理はおそらく ViewModel 側で状態管理していると思われます。
たぶんこの関数はAPIレスポンスを整形するためのものです。
通常であれば、このファイルがエントリーポイントになっているはずです。
一見自然ですが、実際にコードを読んでいない場合はただの推測です。
Claude Codeに既存コードを触らせるなら、まず関連ファイルを読み、必要に応じて rg で利用箇所を確認してから判断してほしいです。
たとえば、こんな行動を促すイメージです。
rg "TargetClassName"
rg "targetFunction"
rg "targetProperty"
また、ファイル名がわかっている場合は、先にそのファイルを読むべきです。
- If the user references a file, read it before answering or editing.
このルールを入れておくと、Claude Codeが推測ベースで進めるのを抑えやすくなります。
追記例
- Never speculate about code you have not read. Inspect the relevant files and search for usages before making claims.
- If the user references a file, read it before answering or editing.
2. 検証できない場合は、理由と手動確認手順を出す
次に追加したいのは、検証できなかった場合のルールです。
- If verification cannot be run, explain why and provide manual verification steps.
日本語にすると、こうなります。
- 検証を実行できない場合は、理由と手動確認手順を提示する
Claude Codeに実装を依頼した場合、理想はテストやビルドまで実行してもらうことです。
ただ、実務では常に検証できるとは限りません。
たとえば、こんなケースです。
- ローカルに必要な環境がない
- Xcodeや特定バージョンのSDKが必要
- 認証情報が必要
- 実機確認が必要
- 外部サービス連携が必要
- CI上でしか検証できない
- テストデータが手元にない
このときに困るのは、Claude Codeがあっさりこう終えてしまうことです。
実装しました。
本当に欲しいのは、次の3つです。
- 何を変更したのか
- 何を検証したのか
- 何が未検証なのか
特に未検証の項目がある場合は、人間が次に何を確認すべきかを明示してほしいです。
たとえば、こんな報告が理想です。
変更内容:
- ログイン状態の判定処理を修正しました。
検証済み:
- 関連するユニットテストを実行し、成功しました。
未検証:
- 実機でのLINEログイン導線は、認証情報がないため未確認です。
手動確認手順:
1. アプリを起動する
2. ログイン画面を開く
3. LINEログインボタンをタップする
4. 認証後、マイページに遷移することを確認する
ここまで書かれていれば、レビュー側も判断しやすくなります。
追記例
- If verification cannot be run, explain why and provide the closest reasonable manual verification steps.
- Before declaring completion, state what was changed, what was verified, and what remains unverified.
3. 勝手なGit操作や破壊的操作を禁止する
最後に、個人的に最も重要だと感じるのがこれです。
- Do not commit, push, reset, rebase, force-push, or delete files unless explicitly asked.
日本語にすると、こうなります。
- 明示的に依頼されていない限り、commit、push、reset、rebase、force-push、ファイル削除をしない
Claude Codeはコード編集だけでなく、ターミナル操作もできます。
そのため、ルールを明示しておかないと、状況によっては危険な操作が走る可能性があります。
特に注意したい操作はこのあたりです。
- git commit
- git push
- git reset
- git reset --hard
- git rebase
- git push --force
- git push --force-with-lease
- git branch -D
- rm
- rm -rf
- --no-verify
Claude Codeが常に勝手にこれらを実行する、という意味ではありません。
ただ、実務で使うなら「明示的に依頼されていない限りやらない」と書いておく価値は高いです。
特に reset、rebase、force-push、ファイル削除は、影響範囲が大きくなりやすいです。
my-claude-code-setup の core-rules.md でも、force push、hard reset、ファイルやブランチ削除、--no-verify のような破壊的操作は事前確認するルールとして整理されています3。
追記例
- Do not commit, push, reset, rebase, force-push, delete files, or run destructive commands unless explicitly asked.
- Ask before hard-to-reverse actions such as deleting files or branches, force pushes, hard resets, or using --no-verify.
andrej-karpathy-skillsのCLAUDE.mdに追記するなら
実際に追記するなら、andrej-karpathy-skills の4章構成に続けて、第5章として追加するのが自然です。
## 5. Verification & Safety
Trust comes from inspection and verification, not guessing.
- Never speculate about code you have not read. Inspect the relevant files and search for usages before making claims.
- If the user references a file, read it before answering or editing.
- If verification cannot be run, explain why and provide the closest reasonable manual verification steps.
- Before declaring completion, re-check the original request and state what was changed, what was verified, and what remains unverified.
- Do not commit, push, reset, rebase, force-push, delete files, or run destructive commands unless explicitly asked.
- Ask before hard-to-reverse actions such as deleting files or branches, force pushes, hard resets, or using --no-verify.
ポイントは、andrej-karpathy-skills の思想を置き換えるのではなく、補強することです。
既存の4原則はそのまま活かします。
そのうえで、実務で事故になりやすい以下の3点を追加します。
- 推測で判断しない
- 検証できない場合は未検証として明示する
- 勝手なGit操作や破壊的操作をしない
グローバルCLAUDE.mdに追記する
前回の記事で ~/.claude/CLAUDE.md は作成済みの前提なので、今回は新規作成ではなく、既存ファイルへの追記だけを行います。
今回追記する対象は、グローバルの CLAUDE.md です。
~/.claude/CLAUDE.md
なお、以下のようなプロジェクト配下のファイルとは別物です。
./.claude/CLAUDE.md
今回の安全運用ルールは特定のプロジェクトに依存しないため、グローバルの ~/.claude/CLAUDE.md に追記します。
1. 追記前にバックアップを作成する
念のため、現在の CLAUDE.md をバックアップします。
cp ~/.claude/CLAUDE.md ~/.claude/CLAUDE.md.bak.$(date +%Y%m%d%H%M%S)
これで、以下のようなバックアップファイルができます。
~/.claude/CLAUDE.md.bak.20260526123045
日時部分は、実行した日時によって変わります。
2. 安全運用ルールを追記する
次に、以下のコマンドで ~/.claude/CLAUDE.md の末尾に追記します。
cat >> ~/.claude/CLAUDE.md <<'EOF'
## Additional Safety Rules
- Never speculate about code you have not read. Inspect the relevant files and search for usages before making claims.
- If verification cannot be run, explain why and provide the closest reasonable manual verification steps.
- Do not commit, push, reset, rebase, force-push, delete files, or run destructive commands unless explicitly asked.
EOF
ここで重要なのは、> ではなく >> を使っている点です。
cat > ~/.claude/CLAUDE.md
のように > を1つだけにすると、既存の内容が上書きされます。
既存の CLAUDE.md に追記したい場合は、必ず >> を使います。
cat >> ~/.claude/CLAUDE.md
3. 追記できたか確認する
追記できたか確認します。
tail -n 20 ~/.claude/CLAUDE.md
以下のように Additional Safety Rules が表示されていれば追記完了です。
## Additional Safety Rules
- Never speculate about code you have not read. Inspect the relevant files and search for usages before making claims.
- If verification cannot be run, explain why and provide the closest reasonable manual verification steps.
- Do not commit, push, reset, rebase, force-push, delete files, or run destructive commands unless explicitly asked.
手動で編集する場合
コマンドで追記するのが不安な場合は、手動で編集しても問題ありません。
以下のコマンドで CLAUDE.md を開きます。
nano ~/.claude/CLAUDE.md
ファイルの末尾に、以下を貼り付けます。
## Additional Safety Rules
- Never speculate about code you have not read. Inspect the relevant files and search for usages before making claims.
- If verification cannot be run, explain why and provide the closest reasonable manual verification steps.
- Do not commit, push, reset, rebase, force-push, delete files, or run destructive commands unless explicitly asked.
保存する場合は、以下の順に操作します。
Ctrl + O
Enter
Ctrl + X
グローバルに書いてよいもの・書かないほうがよいもの
今回の3項目は、グローバルに書いて問題ない内容です。
どのプロジェクトでも有効だからです。
- 読んでいないコードについて推測しない
- 検証できない場合は理由と手動確認手順を出す
- 勝手なGit操作や破壊的操作をしない
一方で、以下のような内容はグローバルではなく、プロジェクトごとの CLAUDE.md に書いたほうがよいです。
- ビルドコマンド
- テストコマンド
- ディレクトリ構成
- ブランチ運用
- リリース手順
- API仕様
- 命名規則
- iOS / Web / Backend など特定技術に依存するルール
書き分けの目安
- グローバル
CLAUDE.md:プロジェクトを問わず守ってほしい行動原則 - プロジェクトの
CLAUDE.md:そのリポジトリ固有のルール
この分け方が安全です。
まとめ
andrej-karpathy-skills の CLAUDE.md は、Claude Codeを暴走させないための基本原則として参考になります。
特に以下の4つは、Claude Codeを使ううえで重要です。
- Think Before Coding
- Simplicity First
- Surgical Changes
- Goal-Driven Execution
実務で使う場合は、さらに安全運用ルールを補強すると安心です。
centminmod/my-claude-code-setup の考え方を取り入れるなら、特に以下の3つを追加する価値があります。
- Never speculate about code you have not read.
- If verification cannot be run, explain why and provide manual verification steps.
- Do not commit, push, reset, rebase, force-push, or delete files unless explicitly asked.
Claude Codeを便利に使うだけなら、機能やプラグインを増やす方向に目が行きがちです。
ただ、実務で安全に使うなら、能力を増やすだけでなく、やってはいけないことを明確にすることも重要です。
CLAUDE.md は、Claude Codeに対して
何をしてほしいか
だけでなく、
何を勝手にしてはいけないか
を伝えるための設定ファイルです。
andrej-karpathy-skills の思想をベースにしつつ、my-claude-code-setup のような公開テンプレートから安全運用ルールを補強することで、Claude Codeをより実務向けに使いやすくなるかと思います。
参考
- multica-ai/andrej-karpathy-skills
- andrej-karpathy-skills / CLAUDE.md
- centminmod/my-claude-code-setup
- my-claude-code-setup / CLAUDE-template-2.md
- my-claude-code-setup / .claude/rules/core-rules.md
推奨タグ
ClaudeCode
Claude
AI
CLAUDE.md
プロンプトエンジニアリング
