---
paths: [".claude/agents/**", ".claude/skills/**", ".claude/rules/**", ".claude/hooks/**", "docs/01_GUIDE/**"]
---

# テンプレート由来ファイルの改変記録ルール (Template Customization Rules)

テンプレート（programming-template）由来のファイルを**このプロジェクトの都合で**変更するときは本ルールに従い，`.claude/template-overrides.md`（テンプレート改変台帳）に記録すること．記録が無いと次回の `/sync-template` で改変が検出・確認の対象になり，判断を誤るとテンプレート版で上書きされて改変が失われる．

## 適用条件 (Scope)

- テンプレートから派生したプロジェクト（`.claude/template-sync-sha` が存在する）でのみ適用する．テンプレートリポジトリ自身の編集では不要
- **対象（テンプレートが管理するファイル）**: `.claude/agents/`，`.claude/skills/`（テンプレート提供の skill），`.claude/rules/`（`git-conventions`・`markdown-style`・`docs-naming`・`progress-log`・本ルール等，テンプレート由来のもの），`.claude/hooks/`，`docs/01_GUIDE/`（`GUIDE_01`〜`GUIDE_03`）
- **対象外**:
  - プロジェクトが新規に作ったファイル（立ち上げ時に作成するコーディング規約 rule，プロジェクト独自の skill / agent 等）．テンプレートに存在しないので同期で上書きされない
  - `CLAUDE.md`・`.gitignore`・`docs/PROGRESS.md`・`.gitattributes`・`.claude/settings.json`．これらは `/sync-template` の「マージ必須ファイル」として別途保護されており，台帳登録は不要
- テンプレート由来かどうか判断に迷う場合は**記録する側に倒す**．余計な記録は `/sync-template` が「テンプレート側に存在しないパス」として警告してくれるが，記録漏れは改変の消失につながる

## 手順 (Procedure)

1. **変更する前に**，その変更が「プロジェクト固有の都合」か「テンプレート自体の改善」かを判断する
   - テンプレート自体の改善（誤記修正，全プロジェクトに有益な手順改善等）であれば，テンプレートリポジトリ側で直すべきことをユーザーに伝える．プロジェクト側で先に直す場合も，テンプレート側の修正に後から追従できるよう台帳には `merge` で登録する
2. **変更後**，`.claude/template-overrides.md` の「台帳」表に 1 行追加する（既に行があるファイルは理由を最新化する）．書式・方針（`keep` / `merge` / `ask`）の定義は同ファイルの「記録ルール」節に従う
   - 方針は，テンプレート側の改善も今後取り込みたいなら `merge`（既定．改変箇所とテンプレートの差分が別の箇所なら自動で両立する），完全に別物にしたなら `keep`，都度判断したいなら `ask`
   - 理由は「なぜテンプレートと変えたか」を 1 文で書く．次回同期時の判断材料になる
3. 改変をやめてテンプレートに追従するときは，台帳から行を削除する（次回 `/sync-template` で上書き／マージされる）

## 禁止事項 (Prohibitions)

- 台帳に記録せずにテンプレート由来ファイルを改変したままにしない
- 台帳の書式を崩さない（`/sync-template` が機械的に読む）
- 台帳ファイル自体の「記録ルール」節の説明文を削除しない（他メンバー・将来の自分が読む）
