M.

Claude Code 向けのドキュメントは3つに分ける(CLAUDE.md はルール、README はセットアップ、PROGRESS.md は次にやること)

Claude Code で開発していると、リポジトリに Markdown がどんどん増えます。CLAUDE.md(Claude が毎回読む指示書)、README.md、それから作業の続きを残すための PROGRESS.md です。

最初はどれも Claude に書いてもらっていました。すると、3つのファイルに同じ説明が少しずつ違う形で入る ようになります。API の説明が CLAUDE.md にも README.md にもあり、片方だけ更新されて食い違う、ということが起きました。

そこで、コード進行生成アプリ(Chord Eureka)のリポジトリで、役割を分け直しました。そのときの分け方をまとめます。

環境:Claude Code(Opus)/ Node.js の Web アプリ / 2026年9月

分け方

ファイル書くこと読む人
CLAUDE.mdコマンド、ルールと落とし穴、デプロイの流れ、docs の一覧Claude(毎回)
README.md機能の一覧、セットアップ(インストール・環境変数・起動)、デプロイ、ライセンス人(初めて触るとき)
PROGRESS.md未完了のタスク と、今後の判断に効く 決定事項 だけClaude と自分(次の作業を始めるとき)
docs/調査・提案など、長い資料必要なときだけ
git 履歴完了したタスクの経緯必要なときだけ

それぞれのファイルの冒頭に、ほかのファイルの役割を1行で書いておきます。

CLAUDE.md の冒頭:セットアップと環境変数は README.md、未完了タスクとオーナー判断は PROGRESS.md。

PROGRESS.md の冒頭:コード上のルールは CLAUDE.md、完了タスクの経緯は git 履歴を参照。ここには未完了のタスクと、今後の判断に効く決定事項だけを記載する。

こう書いておくと、Claude が新しい情報を足すときに、どこに書くかを迷わなくなります。

整理の結果

3回のコミットに分けて整理しました。

ファイル前後
CLAUDE.md117行50行
README.md172行35行
PROGRESS.md227行79行

ソースのコメントも、ドキュメントと重複しているものや、コードを読めば分かるものを削りました。最後のコミットだけで、9ファイル・318行を削っています。

CLAUDE.md は「ルールと落とし穴」だけ

一番減ったのは、コードの説明 です。整理する前の CLAUDE.md は、/init で作った英語の雛形に、Claude が説明を足し続けたものでした。

  • 「Express のサーバーで、public/ から静的ファイルを配信する」
  • 「POST /generate-text はキーワードと小節数を受け取り、Claude でコード進行を作り……」
  • 各モジュールが何をするかの説明が、1段落ずつ

どれも、コードを読めば分かることです。Claude は作業のたびにコードを読むので、ここに書いても役に立ちません。それどころか、コードを変えたのに説明が古いまま残ると、間違った前提を毎回読ませる ことになります。

残したのは、コードを読んでも分からないことです。

  • やってはいけないこと:「トークン分割は splitChordTokens() だけを使う。ほかで空白で分割すると、MIDI とラベルがずれる」
  • 消してはいけない理由:「/check から / への 301 は、SNS に残る古い共有リンクのため。消さない」
  • ハマったこと:「公開パスを z で終わらせない(/healthz などは Google Frontend が予約していて 404 になる)」
  • とり忘れる手順:「OGP 画像に出る文字を増やしたら、フォントのサブセットを作り直す。ないと空白で描画される」
  • オーナー(自分)の判断:「既定のボイシングは、既存の利用者の音を保つために固定。了承なしに変えない(2026-09-29 オーナー判断)」

最後の「オーナー判断」には日付を付けています。Claude が「直したほうがいい」と提案してきたときに、それがいつ・なぜ決めたことかを示せるからです。

README はセットアップだけ

README も、CLAUDE.md と同じ API の説明を持っていました。これを消して、人が最初に必要なことだけにしました。

  • 何ができるアプリか(機能の一覧)
  • インストール、環境変数、起動のコマンド
  • デプロイの方法
  • ライセンス

環境変数の一覧は、以前は CLAUDE.md にもありました。README だけに置いて、CLAUDE.md からは「セットアップは README」と指すだけにしています。

PROGRESS.md は「次にやること」だけ

PROGRESS.md は、セッションをまたいで作業を続けるためのファイルです。Claude Code は会話が終わると内容を忘れるので、「どこまでやったか」をここに残させていました。

ところが、残させているうちに 完了したタスクの記録 が溜まっていきました。「〜を実装した。理由は〜。テストは〜」という段落が、終わったタスクの数だけ並びます。整理したら227行が79行になったので、3分の2ほどがそれでした。

完了した記録は、git のコミットメッセージに同じことが書いてあります。そこで、PROGRESS.md には次の2つだけを残すことにしました。

  • 未完了のタスク:大きさ(中・大)、アイデア(未着手・要設計判断)、保留・凍結(オーナー判断)に分ける
  • 覚えておく決定事項:「テンションを足さない」のように、また同じ議論をしないための結論

終わったタスクは消します。経緯を知りたくなったら git log で探せます。

長い資料は docs/ に出す

調査や提案のように長い資料は、docs/ に分けました。CLAUDE.md の最後に一覧と1行の説明だけを書いておきます。

## Docs

- `docs/competitive-analysis.md` — 競合調査(プロダクト方針の根拠)
- `docs/ux-redesign-proposal.md` — UX 提案。PROGRESS.md の「施策N」はこの番号

CLAUDE.md は毎回まるごと読まれるので、長い資料を入れるとそのぶん毎回コンテキストを使います。一覧だけにしておけば、Claude は必要なときにだけ開きます。

役目を終えたものは消す(か、凍結する)

ほかのリポジトリでも、同じ整理をしています。

  • Windows アプリ:全機能が完成して公開したあと、PROGRESS.md そのものを消しました。「開発中の実装ログとしての役割を終えた」ためです
  • 画像生成サービス:完了した調査レポートや、対応の終わった不具合リストなど、約900行を消しました
  • 別の Web アプリ:古い改善案のファイルは、消さずに先頭に [ARCHIVED] と書いて凍結しました。頼んだのは「分割」で「削除」ではなかったので、Claude が消さずに残した形です。git 履歴を見なくても、凍結済みだと分かります

Claude に頼むときの言い方

整理は Claude に頼みました。そのとき効いたのは、ファイルごとに「書くこと」を先に決めて伝える ことです。

CLAUDE.md はルールと落とし穴だけ、README はセットアップだけにして。重複と、コードを読めば分かる説明は消して。

「整理して」とだけ頼むと、Claude は見出しを並べ替えたり、説明を書き足したりしがちです。何を残すかの基準を渡すと、消すほうに動いてくれます。

ふだんの作業では、Claude は変更のたびにドキュメントへ説明を足していきます。放っておくと増える一方なので、ときどき上の頼み方で削ってもらっています。

まとめ

  • CLAUDE.md・README.md・PROGRESS.md を Claude に書かせていると、同じ説明が重複して食い違う
  • CLAUDE.md はルールと落とし穴、README はセットアップ、PROGRESS.md は未完了のタスクと決定事項だけにする
  • コードを読めば分かる説明は書かない。古くなると間違った前提を毎回読ませることになる
  • 完了したタスクの記録は git 履歴に任せて、PROGRESS.md から消す
  • 整理を頼むときは、ファイルごとに「書くこと」の基準を渡す

参考文献

この記事をシェア

関連する記事

Claude に「敵対的レビュー」をさせて、指摘がどれくらい当たっていたかを数えた

個人開発では、Claude Code に「壊れるところを探して」と頼む敵対的レビューを何度も使っています。4つのリポジトリに残っていた再検証の記録から、指摘がどれくらい当たり、どう外れていたかを数えました。外れ方には決まった型がありました。

Claude Code に GCP の課金を棚卸しさせたら、月1万円が半分になった(失敗込みの記録)

個人開発で使っている GCP の全プロジェクトを、Claude Code と一緒に横断して見直しました。gcloud での調査、ストレージの掃除、通信料の削減、そして CUD の二重契約という失敗まで。AI に任せられたこと・人間がやる必要があったことを整理します。

claude -p を評価器にして、AI の生成結果を930件自動採点した

コード進行アプリのキーワードボタンが本当に効いているのかを確かめるため、Claude Code の `claude -p` で930件を生成し、プログラムで採点しました。API キーを使わない生成のしかた、本番に近づけるためのオプション、Windows での落とし穴、AI に採点させない集計の考え方をまとめます。

AI コード進行アプリを2年運用して分かったこと(GPT-4o から Claude へ、2024→2026)

キーワードからコード進行を作る Web アプリ Chord Eureka を、2024年12月の公開から2年近く運用してきました。GPT-4o 時代のコストと出力崩れへの対処、Claude への移行、temperature 廃止で本番が落ちた件、構造化出力、測ってから決めたモデル更新までを、git の履歴をもとに振り返ります。

テーマから探す