CLAUDE.md
Claude Codeがチャットの前に必ず事前参照するテキストを書く場所
使用例1:軌道修正を簡単にするために,検証手順や禁止事項などを書く
Human-in-the-loopやHuman-on-the-loopにおける軌道修正において,説明を細かくしなくても,「claude.mdの手順に従ってください」などと言うだけで意思疎通できるようになる
使用例2:依頼を簡単にするために,具体的な操作を書く
例えば,詳細なプルリクエストの書き方をclaude.mdに書いておくと,チャットに「プルリクエストを作成してください」と書くだけで伝えられる
Claude.mdの使用例
例1:venvの利用
関連:コマンドラインからvenv環境を扱う方法
code:md
## python環境はvenvで作成されたmyenvと呼ばれる環境を使用します.
- 存在しない場合は作成してください.
- 仮想環境の内部では自由にライブラリなどを追加してください.
- プログラムの実行方法は,myenv/bin/python xxxx.pyです.
- ライブラリのインストール方法はmyenv/bin/python -m pip install パッケージ名,myenv/bin/python -m pip install -r requirements.txtです
- 環境を更新した場合は,requirements.txtをmyenv/bin/python -m pip freeze > requirements.txtとして更新してください.
例2:ipynbファイルの作業
関連:AIエージェントにipynbファイルの操作を依頼する
code:md
## ipynbファイルの作業はpythonファイルで行ってください.
1. myenv/bin/jupytext --set-formats ipynb,py:percent xxxx.ipynbでipynbファイルとpyファイルをペア化します(percent形式).
2. pyファイルを編集・修正します.
3. myenv/bin/python xxxx.pyでpythonファイルを実行します.
4. pythonファイルの実行結果を確認して目的を達成できているかどうか調べます.
5. 達成困難な場合,ユーザーにそのことを伝えて次の指示を待ちます.
6. 達成した場合,myenv/bin/jupytext --sync xxxx.pyで修正をipynbファイルに同期します.
例3:長時間かかるプログラムの検証フロー
code:md
## 長時間かかるプログラムの検証フロー
- プログラムにかかる時間が長い場合は,リアルタイムに結果をlogs/に書き出すようにしてバックグラウンド実行をしてください.
- logは他の実行結果と見分けを付けるためにタイムスタンプを入れるなどの工夫をしてください.
- バックグラウンド実行開始後はps aux | grep pythonでプロセスの状態を確認してください.
- 既にプログラムが実行中の場合は、重複して同じプログラムや類似のテストプログラムを実行しないでください.
- 動いていることを確認後,ユーザーに終わったら結果を確認する指示を出すように依頼してください.
例4:CLAUDE.mdの更新
※ ソースコード同様に扱う.例えば人間によるレビューを経る
code:md
## CLAUDE.mdの位置づけと更新
- このファイルは作業手順・プロセスの記録です:具体的なコード例や詳細実装を書く場所ではありません.
- 作業で解釈を誤った点があれば更新してください:ユーザーの介入が必要だった箇所や認識違いがあった場合,CLAUDE.mdの記述に問題や不足があるなら更新してください.
- Git操作は不要です:issue対応報告はissues/ディレクトリにプルリクエストとしてmarkdownファイルを作成するだけです.
例5:小規模な検証
code:md
## 小規模な検証
- 小規模な検証は、正規のプログラムが実行できない場合の事前チェック用です.正規のプログラムが実行可能な場合は、小規模な検証は不要です.
- 小規模な検証を行う際にはtemp/という一時ディレクトリを作成してください.
- ただし,小規模な検証は実際の成功とは異なるため,かならずその後に正規の手順でプログラムが動くことを確認する必要があります.
- ディレクトリを移動するとmyenvやリポジトリ外部のファイルやアプリケーションなどを参照するためのパス依存関係が崩れるので,cdなどで作業ディレクトリを変えずにpathを指定するようにしてください.
例6:作業の仕方
禁止事項や推奨事項など(関連:Serena)
code:例5.md
## 作業の仕方
- 変数で自動調整されているコードはtemp/以下に書く小規模な検証を除いて,ハードコーディングをしないでください.
- コードベース内の広い範囲,例えば長いファイルを扱う場合や複数ファイルを扱う場合は,Serenaを活用してください.
例7:プルリクエストの作成
※関連:prefix
code:md
## プルリクエストの作成
- 「?番でプルリクエストを作成してください」と言われたら,issues/のPR?.md(?は数字)としてプルリクエストを書いてください.
- 成功を強調せず,正当なレビューを補助することを最優先とした中立的な書き方をしてください.
- タイトルはPrefix + 簡潔な一文にしてください.Prefixの例は以下の通りです.
- add: ファイルや機能の追加
- remove: ファイルや機能の削除
- update: 問題のなかった既存機能を変更
- change: 仕様変更に伴う既存機能の修正
- rename: ファイルや機能の名前の修正
- refactor: コードの修正・改善
- fix: 既存機能の問題を修正
- move: ファイルや関数の移動
- docs: ドキュメントの修正
- test: テストコードの追加・修正
- chore: ツールによる自動生成,あるいはその他の変更を反映
- 対応issueが分かる場合は,以下の記法を用いてcloseを宣告してください.(?は数字)
`md
## 関連Issue
- Closes #?
`