---
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 行追加する（既に行があるファイルは理由を最新化する）
   - 書式: `| \`パス\` | 方針 | 理由 | 記録日 |`（パスはリポジトリルートからの相対パス．ディレクトリ全体なら末尾 `/`）
   - 方針の選び方:
     - `merge`（既定）: テンプレート側の改善も今後取り込みたい．プロジェクトの改変とテンプレートの差分が別の箇所なら自動で両立する
     - `keep`: テンプレートと完全に別物にした／テンプレート側の変更を取り込みたくない
     - `ask`: 同期のたびに差分を見て判断したい
   - 理由は「なぜテンプレートと変えたか」を 1 文で書く．次回同期時の判断材料になる
3. 改変をやめてテンプレートに追従するときは，台帳から行を削除する（次回 `/sync-template` で上書き／マージされる）

## 禁止事項 (Prohibitions)

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