第3章:いつADRを書く?“書きどき判定”ルール🎯✅
この章のゴールはひとつだけ! 「ADRを書くべき判断」と「書かなくていい判断」を、サクッと見分けられるようになることです🕵️♀️💡
ADRってそもそも「重要な設計判断を、背景(Context)と結果(Consequences)つきで残す短い記録」なんだよね📒✨(重要=アーキテクチャ的に大事なやつ) (Cognitect.com) だから、何でもかんでもADRにすると逆に死ぬ😇💦 この章では「ちょうどいい量」にする判定ルールを身につけよう〜!🌸
3-1. まず結論:ADRを書くのは「あとで困る」判断だけ😵💫🧠
ADRの価値って、超ざっくり言うとこれ👇
- 未来の自分/未来の誰かが「なんでそうしたの?」って聞いたときに答えられる🙋♀️
- 同じ議論を何度も繰り返さなくて済む🔁
- 「決めた」だけじゃなくて、決めた理由とトレードオフが残る⚖️✨ (Cognitect.com)
3-2. “書きどき判定”の超シンプル3条件🎯✨

迷ったらまずこれ!👇 1個でも当てはまったら、ADR候補だよ✅
✅ 条件A:後戻りコストがデカい💥
例:
- APIの方針(REST / GraphQL / tRPC など)
- DBやORM選定
- モノレポにするかどうか → 後から変えると、コードも運用も泣く😭
✅ 条件B:長く効く(寿命が長い)🕰️
例:
- エラーハンドリング方針(例外?Result風?)
- 型の厳しさ方針(strict強め?ゆるめ?)
- ディレクトリ構成や境界(層/モジュールの切り方) → 何ヶ月も効いて、チームの習慣になるやつ🔥
✅ 条件C:影響範囲が広い(人・機能・チーム)👥🌍
例:
- 共通ライブラリ導入
- コーディング規約の強制ルール(lint/format)
- 認証方式や権限管理 → 「その判断、全員が巻き込まれる」やつ💡
3-3. さらに精度UP!“ADR向き度”5問チェック🧪📊
次は「ちゃんと判断する」ための質問セット✨ YESが多いほどADR向きだよ✅
- 他の選択肢が現実的にある?(AかBで迷った?)🤔
- 選ぶとトレードオフがある?(良い点も悪い点もある?)⚖️
- 間違えると痛い?(障害・コスト・遅延・炎上🔥)
- 説明責任が必要?(レビューで突っ込まれそう?)👀
- 3ヶ月後に忘れそう?(未来の自分が記憶喪失)🧠💫
だいたい 「YESが2〜3以上」→ADR候補 にしちゃってOK🙆♀️✨ ADRは「重要な設計判断のログ」を作る考え方だよ〜 (AWS ドキュメント)
3-4. ADR不要ゾーン🙅♀️🍃(ここ超大事!)

ADRを書かなくていい判断も、ちゃんと決めよう✨ ADRにしない方が健全なやつ👇
- 変数名や関数名の軽いリネーム✏️
- UIのちょい修正(色・余白・文言)🎨
- 小さいバグ修正🐛
- すぐ捨てる試作(1日PoC)🧪
- 依存パッケージのパッチアップデート(影響小)📦
こういうのは、PR説明やIssueで十分なことが多いよ👍 ADRは「重要な判断」だけに集中させるのがコツ🌟
3-5. 「判断がデカすぎる問題」✂️😇 → 分割ルール

ADRにしたいテーマが巨大すぎると、だいたい失敗する💦 (読む気がなくなるやつ…😵💫)
✅ 分割のコツ:1ADR = 1つの結論
たとえば「APIまわり全部」って大きすぎ! こう割ると強いよ👇
- ADR-000X:APIスタイルは REST にする
- ADR-000Y:契約は OpenAPI で管理する
- ADR-000Z:認証は JWT + Refresh にする
それぞれ別の結論だから、別ADRの方が読みやすい📚✨
3-6. “早すぎ問題”と“遅すぎ問題”⏱️💦
😭 遅すぎ:実装してから「あ、書くの忘れた」
→ だいたい理由が抜け落ちて「結論だけ」になりがち💀
😭 早すぎ:何も決まってないのにADRを書き始める
→ ふわふわした作文になりがち☁️
✅ ちょうどいい:状態(Status)で解決する✨
AWSのADRガイドみたいに、ADRは状態を持つ運用が相性いいよ👍 例:Proposed → Accepted → Superseded(置き換え) (AWS ドキュメント)
つまり…
- 迷ってる最中は Proposed で「叩き台」を置く📝
- 決まったら Accepted にする✅
- 後で方針変えたら Superseded にする🔁
これで「早すぎ/遅すぎ」両方が救える〜!🎉
3-7. VS Codeで“書きどき”を逃さない小ワザ📌🧭
✅ 小ワザ1:判断が出たPRに「ADRいる?」を入れる
PRテンプレ(または自分のチェック)にこれを追加👇
- 「このPR、後戻りコスト大きい?」💥
- 「長く効く?」🕰️
- 「影響範囲広い?」👥
✅ 小ワザ2:Node系のADR CLIを使って“書くハードル”を下げる🤖✨
TypeScript界隈なら、たとえば @meza/adr-tools みたいにnpmで入るADRツールがあるよ📦
adr new ... で番号付け&テンプレでファイル生成してくれるやつ💡 (GitHub)
(元祖の adr-tools も「Markdownをリポジトリに置いてログ管理する」流れを作った代表例だよ) (GitHub)
3-8. ワーク🗂️✨:「ADR必要/不要」仕分け10連発🔥
次の10個を、直感で3つに分けてみてね👇
- ✅ ADR必要
- 🤔 迷う(状況次第)
- 🙅♀️ ADR不要
- runtime validation を zod に統一する
tsconfigを strict 強制にする- 一部画面の文言を変更する
- API層を
fetch直書きからラッパに変える - ESLintルールを少し厳しくする(warning→error)
- 状態管理を導入する(例:何かしら採用)
- テストフレームワークを置き換える
- 変数名をいくつか読みやすくする
- 認証方式を変更する
- 使い捨てPoCで1日だけ試す
✅ 例:よくある答え(参考)
- ✅ ADR必要:1,2,4,6,7,9
- 🙅♀️ ADR不要:3,8,10
- 🤔 迷う:5(規模と影響次第!)
ポイントは「後戻りコスト・寿命・影響範囲」だったよね🎯✨
3-9. AI活用🤖💕:ADR向き度を“採点”させるプロンプト
コピペで使えるやつ置いとくね🪄✨(短くて強い)
プロンプト例①:ADR向き度を判定
次の判断がADRを書くべきか判定して。
判断内容:<ここに判断>
評価軸:後戻りコスト/長期影響/影響範囲/トレードオフの有無/リスク
出力:①ADR必要度(0-10) ②理由 ③書くならタイトル案 ④Contextに入れるべき情報
プロンプト例②:テンプレに当てはめて下書き
次の判断を、Context/Decision/Consequencesの最小ADRにして。
短く、曖昧語(たぶん、場合によって)を減らして。
判断内容:<ここに判断>
検討した選択肢:<A/B/C>
制約:<納期、既存、スキルなど>
あと、Copilot向けにADR作成プロンプトの雛形も公開されてたりするので、チームで型を揃えたいときに便利だよ📎✨ (GitHub)
まとめ:第3章の“合格ライン”🎓🌸
次が言えたらこの章クリア✅✨
- ADRを書くのは「重要で、あとで困る判断」だけ📒
- 判定は 後戻りコスト💥/長く効く🕰️/影響範囲👥 が軸🎯
- 迷ったら「5問チェック」でYESが増えたらADR候補🧪
- 巨大判断は「1ADR=1結論」で分割✂️
- Proposed/Accepted/Supersededみたいな状態運用で、早すぎ遅すぎ問題を解決🔁 (AWS ドキュメント)
次は第4章の「比較軸と選択肢の出し方⚖️✨」で、**“筋の良い決め方”**に進むよ〜!🚀💕