Rule(ルール):毎回の会話で読まれる決まり
Rule が効く仕組み
Rule は .claude/rules/ に置く Markdown で、Claude に「このプロジェクトの決まり」を伝えます。以下はキットの 3 件で、ファイルの全文そのものなのでそのままコピーできます。(プロジェクトのルートの CLAUDE.md がこれらを参照します。)
CLAUDE.md のひな形
CLAUDE.md ダウンロード# プロジェクトのルール(スターターキットのひな形。プロジェクトに合わせて編集してください)
> このファイルはプロジェクトのルートに置きます。Claude Code は毎回のセッション冒頭でこれを読みます。短く保ち、「毎回知っておくべきこと」だけを書きます。
## コミュニケーション
- 回答は常に【あなたの言語】で行う。
- 長い回答は `reply.md` に書き、ターミナルには一言の確認だけを出す(例:「reply を更新しました(120行目)」)。
- 要望は `req.md` に書き、私が「req 更新」と言ったら読みに行く。詳細は `.claude/rules/req-reply-protocol.md`。
## 進め方
- 推奨案を1つだけ出してそのまま実行する。「選択肢を出して」と言われたときだけ相談する。
- できなかった部分、不完全な部分は必ず明言する。`.claude/rules/honest-reporting.md` を参照。
- `[手動修正]` が付いたコードは変更しない。`.claude/rules/protect-hand-edits.md` を参照。
## プロジェクト情報(記入してください)
- このプロジェクトは何をするか:
- 技術スタック:
- 起動方法/テスト方法:
- デプロイ先:
## よく使うコマンド(`.claude/commands/` を参照)
- `/status`:現在の進捗と未完了事項を見る
- `/estimate`:着手前に見積もる
- `/session-end`:終了前に記録を残し、次回の再開をしやすくする
Rule ファイル
.claude/rules/honest-reporting.md ダウンロード# ルール:完了状況を正直に報告する
タスクの一部が「技術的にできない/完全にはできない」場合、完成しているように見えて実際は動かない、または穴のあるもので覆い隠してはいけません。
1. できる部分は手を抜かず本物にする。
2. できない部分は明示する:コードのコメント、画面の警告バー、ドキュメントの ⚠️ 節に「ここはプレースホルダー/モック/デモです」と書く。
3. 「何が揃えば本物になるか」を書く(例:決済コールバックのバックエンド検証が必要、本物の API キーが必要)。「未対応」だけで終わらせない。
4. 完了報告のときに自分から言う。聞かれるのを待たない。
5. 報告は3種類に分ける:検証済み(どう検証したか)、未テスト(理由)、未実施(理由)。
典型的な場面:決済、マルチユーザーのアカウント、権限チェック、ユーザーがまだ持っていないもの(本物のキー、本物のサーバー)に依存するもの、「ローカルのモックデータでしかテストしていない」場合。
.claude/rules/protect-hand-edits.md ダウンロード# ルール:私が手で書いた部分を守る
- `[手動修正]`(または `[hand-edited]`)というコメントが付いた部分は、変更しない。「ついでの整理」もしない。
- 私が「ここは手で直した」と伝えたら、プロジェクトの `CLAUDE.md` にある「手動修正の記録」表に1行(日付/ファイル/説明)追加し、以後も触らない。
- タスクを終えるのにどうしてもその部分を触る必要があるときは、いったん止めて理由を説明し、私の許可を待つ。
手動修正の記録(必要に応じて追記):
| 日付 | ファイル | 説明 |
|------|------|------|
.claude/rules/req-reply-protocol.md ダウンロード# ルール:req / reply コミュニケーション・プロトコル
目的:「人の発言」と「AI の回答」を行番号付きの2つのファイルに残し、いつでも見返せるようにし、セッションをクリアしても失われないようにする。
## ファイル
- `req.md`:私が要望を書く(くだけた書き方で可、1行1件)。
- `reply.md`:あなたが回答を書く。ファイルの末尾に新しいブロックを追加するだけ。古いブロックの書き換え、統合、削除は禁止。
## きっかけ
私が「req 更新」または「req N 行目以降」と言ったら:まず `req.md` を読んで行数が足りているか確認し(足りなければ「ファイルが保存されていない可能性があります」と伝える)、それから回答する。
## reply ブロックの形式
```
══════════════════════════════
❓ [日付 時刻]
原文:
1. (req の原文をそのまま貼る)
2. (req の原文をそのまま貼る)
整理した質問(原文との対応)
1. (原文 [1][2]) 整理した質問
───────────────────────────────
回答
1. (原文 [1][2]) タイトル
答え(プレーンテキストで。表や Markdown 記号は使わない。私は行番号付きの生テキストで読むため)
実施状況:[1] ✅ [2] ⏳ 確認待ち
📌 req X-X 行 → reply XX 行 ✅
```
- 原文は一字一句そのまま。「大意」で代用しない。
- 整理した質問の対応表は必ず付ける。1つの番号に小項目が複数あるときは、1つずつ対応させて1つずつ答える。まとめて1件にして漏らさない。
- `reply XX 行` はこのブロックの `══` の行番号。書き終えたら検索で確認し、「ここ」とは書かない。
- ターミナルには、確認の一言と `✅ req X-X 行 → reply XX 行` だけを出す。