第7章:リポジトリにADRを置く(迷子にならない仕組み)📁🧭
この章では、「ADRを書く前にやっておくと一生ラク」な、置き方(フォルダ構成・命名・テンプレ・索引)を作ります😊 ADRは“いい文章”より先に、「探せる・増やせる・腐らない」置き場が命です💪📚
7-1. なんで「リポジトリ内」に置くの?🤔🧷
ADRは、だいたい Markdownのテキスト1枚でOKな軽いドキュメントです📝 しかも「コードと一緒に」置くと、こういう“最強セット”になります✨
- 🔎 検索できる:GitHub検索・VS検索で一瞬で見つかる
- 🧭 変更履歴が残る:いつ、誰が、どんな理由で決めたか追える
- 👀 レビューに乗る:PRでADRも一緒に確認できる(第8章でやるよ)
- 🧠 未来の自分を助ける:「なんでこうしたっけ…😵💫」を消せる
ADRの定番フォーマット(Context / Decision / Consequences)は昔から広く使われていて、テンプレも整っています📄✨ (Cognitect.com)
7-2. まずは結論:おすすめの置き方(迷子にならないやつ)✅📁
迷ったらこれでOKです👇(超定番)
docs/adr/にまとめる📁- 1判断=1ファイル(Markdown)📝
- 連番+短いタイトル(例:
0001-record-architecture-decisions.md)🔢 docs/adr/README.mdを作って 索引(目次) にする🧭
こういう命名(連番+ダッシュ区切り)は、MADR(Markdown ADR)や adr-tools の流れでもよく使われる“王道”です👍 (Architectural Decision Records)
7-3. フォルダとファイルの完成形イメージ🌳✨

こうなってたら勝ちです🎉
<repo-root>/
docs/
adr/
README.md
_template.md
0001-record-architecture-decisions.md
0002-logging-strategy.md
0003-exception-handling.md
ポイント👇
README.md:一覧(索引)_template.md:新規ADRを作るときの型(コピペ元)_template.md:新規ADRを作るときの型(コピペ元)0001-....md:実際のADRたち
7-4. 命名ルール:迷わないための “3つの固定” 🔒🔢🧠

① 連番(NNNN)を付ける🔢
0001,0002…みたいに増やす- 参照しやすい(「ADR-0007見て〜」が通じる)
- スキャンしやすい(古い順に並ぶ)
「ID(番号)+人間が読める名前」を併用するのが推奨されがちです😊 (Embedded Artistry)
② タイトルは短く、名詞+目的に寄せる🪄
例:
logging-strategy(ログ方針)db-access-layer(DBアクセス方針)use-serilog(Serilog採用)
③ スペースは使わず、ダッシュで区切る use-dashes 🏷️
コマンドラインでも扱いやすいし、ツールとも相性良いです👍 (Architectural Decision Records)
7-5. テンプレは “勝手に書ける” ようにしておく🧩✨
ADRテンプレにはいろいろあるけど、初心者は MADR系が書きやすいです😊 MADRは「構造がスッキリしたテンプレ」で、意思決定を取り回しやすくしてくれます📄✨ (Architectural Decision Records)
✅ _template.md のおすすめ(まずはこれでOK)
# ADR-0000: タイトル(短く!)📝
- Status: Proposed / Accepted / Deprecated / Superseded 🧷
- Date: YYYY-MM-DD 📅
## Context(背景)🗺️
- いま何が困ってる?😣
- 制約は?(期限・既存資産・運用など)📌
- どこで問題が起きてる?⚙️
## Decision(決定)✅
- 私たちは **何を採用する**(または **やめる**)と決めた?
## Consequences(結果)⚖️
### 👍 良くなること
-
### 😵 困ること(デメリット)
-
### 🔜 もし見直すなら(条件)
-
Status に「Proposed/Accepted/Deprecated/Superseded」みたいな区分を入れるのは、テンプレ側でもよく整理されてます📌 (GitHub)
7-6. 索引(README)がないと、ADRは100%迷子になる🧭💥

docs/adr/README.md を “目次” にします📚✨
ここがあるだけで、ADRが「育つドキュメント」になります🌱
✅ READMEの例(コピペでOK)
# ADR Index 🧭📒
## 🟢 Accepted
- [ADR-0001: Record architecture decisions](0001-record-architecture-decisions.md)
- [ADR-0002: Logging strategy](0002-logging-strategy.md)
## 🟡 Proposed
- [ADR-0003: Exception handling policy](0003-exception-handling.md)
## 🔁 Superseded
- (none)
## 🔴 Deprecated
- (none)
これで「何が決まってて」「何が検討中で」「何が置き換えられたか」が一目でわかります👀✨
7-7. 実戦:最初の1本(ADR-0001)を作ろう🎮📝✨
最初のADRは、よくある “自己参照ネタ” でOKです😂 例:「このプロジェクトではADRをMarkdownで管理する」
adr-toolsでも最初に似たADR(0001-record-architecture-decisions)を作る流れが紹介されています📌 (A nice guy's view on life)
✅ 0001-record-architecture-decisions.md サンプル
# ADR-0001: Record architecture decisions 📒
- Status: Accepted 🟢
- Date: 2026-01-14 📅
## Context(背景)🗺️
設計の重要判断(ログ方針、例外方針、DBアクセス方針など)が増えてきた。
あとから「なんでこうした?」が頻発すると、変更が怖くなる。
## Decision(決定)✅
このリポジトリでは、重要な設計判断を ADR として Markdown で記録し、
`docs/adr/` に集約する。
## Consequences(結果)⚖️
### 👍 良くなること
- 決定理由が残り、後から読み返せる
- PRレビューで判断も共有できる
- 新メンバーが理解しやすい
### 😵 困ること(デメリット)
- 書く手間が少し増える(ただしテンプレで軽減する)
### 🔜 もし見直すなら(条件)
- ADRが増えすぎて探しづらくなったら、索引ルールや分類を追加する
7-8. Visual Studioで「フォルダ作成→コミット」まで(超実務)🧑💻✅
やることはこの順番だけ👇
docs/adr/を作る📁README.mdと_template.mdと0001-...mdを作る📝- Git Changes でコミットする✅
Visual StudioのGit操作(コミット)は公式ドキュメントでも案内されています📌 (Microsoft Learn)
7-9. VS Code派:ターミナルでサクッと作る(Windows)⚡🪟
PowerShell でもOKです👌
mkdir docs\adr
ni docs\adr\README.md
ni docs\adr\_template.md
ni docs\adr\0001-record-architecture-decisions.md
git add docs/adr
git commit -m "Add ADR directory and first ADR"
7-10. AI活用:第7章は “自動化” と相性バツグン🤖🪄✨
🪄 1) ファイル名(slug)を作ってもらう
- 「タイトル:『ログ方針の決定』を、ファイル名向けに英語短縮して」
🪄 2) README索引を自動更新してもらう
- 「
docs/adr/のファイル一覧からREADMEのIndexを生成して」
🪄 3) テンプレに流し込む
- 「この判断を、Context/Decision/Consequencesに分けて短くまとめて」
7-11. ミニ演習(15〜30分)⏱️🎯✨
🧪 演習A:置き場を完成させる📁
docs/adr/を作る_template.mdを置くREADME.mdを索引にする
🧪 演習B:ADR-0001を作ってコミットする📝✅
0001-record-architecture-decisions.mdを作る- Status を Accepted にする
- READMEにリンクを追加する
7-12. ありがち事故と対策(ここで防げる!)🚧😂
-
😵 ADRが増えたのにREADMEが更新されない → ✅ “ADR追加=README更新” をセットにする(第8章でPRルール化)
-
😵 ファイル名がバラバラ(日付だったり日本語だったり) → ✅
NNNN-kebab-case.mdに統一(検索もリンクも楽) (Architectural Decision Records) -
😵 Statusが書かれてない → ✅ Proposed/Accepted/Deprecated/Superseded をテンプレ固定にする (GitHub)
まとめ:第7章のゴール達成チェック✅🎉
-
docs/adr/がある📁 -
_template.mdがある🧩 -
README.mdが索引になってる🧭 -
0001-...mdが1本ある📝 - それらがコミットされてる✅ (Microsoft Learn)
次の第8章では、このADR置き場を PRレビューに組み込んで “後回し撲滅” していきます🔁✅💬✨