Architecture Decision Records

作者 affaan-mef648e01899b无许可证275K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3天前更新

コーディングセッション中にアーキテクチャ決定を構造化ADRとして記録し、自動的に決定の瞬間を検出し、コンテキスト、検討された代替案、根拠を記録します。今後の開発者がコードベースの形成理由を理解するためのADRログを維持します。

AI 生成的概览

在编码过程中将架构决策记录为结构化 ADR 文档。

功能
该技能在编码会话中识别架构决策时刻,并按改编自 Michael Nygard 的格式起草结构化架构决策记录(ADR)。每份草稿包含背景、决策本身、考虑过的替代方案及其优缺点与未采用原因,以及包括风险在内的后果。经用户确认后,它将 ADR 写入 docs/adr/NNNN-decision-title.md 并更新索引 README;在被问及某项选择的原因时,它也能查阅已有 ADR。
适用场景
当需要做出并记录重要的技术、模式、API、数据建模、基础设施、安全或测试选择时使用。也适用于有人询问既有决策的原因、需要查阅或开始维护 ADR 记录的场景。
运行要求
无需脚本或特殊工具,仅为指令。它会读写项目 docs/adr 目录中的文件,并且在创建文件或写入 ADR 前需要用户明确确认。

アーキテクチャ決定記録

コーディングセッション中にアーキテクチャ決定を構造化ドキュメントとして記録します。決定がSlackスレッド、PRコメント、または誰かの記憶にのみ存在する代わりに、このスキルはコードと並行して存在する構造化ADRドキュメントを生成します。

アクティベーション時期

  • ユーザーが明示的に「この決定を記録しよう」または「このADRを作成しよう」と言う
  • 重要な代替案の選択(フレームワーク、ライブラリ、パターン、データベース、API設計)
  • ユーザーが「私たちは...を選択した」または「YではなくXをしている理由は...です」と言う
  • ユーザーが「なぜXを選んだのか」と尋ねる(既存のADRを読む)
  • アーキテクチャ上のトレードオフが検討される計画段階

ADR形式

Michael Nygardによって提案されたADR形式を、AI支援開発向けに調整したものを使用します:

markdown
# ADR-NNNN: [決定タイトル]
**Date**: YYYY-MM-DD**Status**: proposed | accepted | deprecated | superseded by ADR-NNNN**Deciders**: [関係者]
## Context
この決定または変更を促すどのような問題や状況が見られるのか?
[2~5文で状況、制約条件、作用する力について説明]
## Decision
提案または実施する変更は何か?
[決定を明確に述べる1~3文]
## Alternatives Considered(検討された代替案)
### Alternative 1: [名前]- **Pros**: [利点]- **Cons**: [欠点]- **Why not**: [この選択肢が拒否された特定の理由]
### Alternative 2: [名前]- **Pros**: [利点]- **Cons**: [欠点]- **Why not**: [この選択肢が拒否された特定の理由]
## Consequences(結果)
この変更により、何がより簡単になり、何がより難しくなるか?
### Positive- [利点1]- [利点2]
### Negative- [トレードオフ1]- [トレードオフ2]
### Risks- [リスクと軽減策]

ワークフロー

新しいADRをキャプチャする

決定の瞬間が検出されたとき:

  1. 初期化(初回のみ) — docs/adr/が存在しない場合、ユーザーの確認を得た上でディレクトリ、インデックステーブルヘッダーでシードされたREADME.md(下記のADRインデックス形式を参照)、手動使用用の空白のtemplate.mdを作成します。明示的な同意なしにファイルを作成しないでください。
  2. 決定を特定する — 行われている中核的なアーキテクチャの選択を抽出する
  3. コンテキストを収集する — この問題を起こした背景は?存在する制約条件は?
  4. 代替案をドキュメント化する — どの他のオプションが検討されたか? なぜ拒否されたか?
  5. 結果を述べる — トレードオフは何か?何がより簡単/難しくなるか?
  6. 番号を割り当てる — docs/adr/内の既存のADRをスキャンして増分する
  7. 確認して書き込む — レビュー用のドラフトADRをユーザーに提示します。明示的な承認後にのみdocs/adr/NNNN-decision-title.mdに書き込みます。ユーザーが辞退した場合、ファイルを書き込まずにドラフトを破棄します。
  8. インデックスを更新する — docs/adr/README.mdに追記する

既存のADRを読む

ユーザーが「なぜXを選んだのか」と尋ねたとき:

  1. docs/adr/が存在するかチェック — 存在しない場合、「このプロジェクトでADRが見つかりません。アーキテクチャ決定の記録を始めたいですか?」と応答
  2. 存在する場合、関連エントリのdocs/adr/README.mdインデックスをスキャン
  3. 一致するADRファイルを読み、ContextとDecisionセクションを表示
  4. 一致が見つからない場合、「その決定についてのADRが見つかりません。今すぐ記録しますか?」と応答

ADRディレクトリ構造

docs/└── adr/    ├── README.md              ← すべてのADRのインデックス    ├── 0001-use-nextjs.md    ├── 0002-postgres-over-mongo.md    ├── 0003-rest-over-graphql.md    └── template.md            ← 手動使用用の空白テンプレート

ADRインデックス形式

markdown
# Architecture Decision Records
| ADR | Title | Status | Date ||-----|-------|--------|------|| [0001](0001-use-nextjs.md) | Use Next.js as frontend framework | accepted | 2026-01-15 || [0002](0002-postgres-over-mongo.md) | PostgreSQL over MongoDB for primary datastore | accepted | 2026-01-20 || [0003](0003-rest-over-graphql.md) | REST API over GraphQL | accepted | 2026-02-01 |

決定検出シグナル

会話の中でアーキテクチャ決定を示すこれらのパターンに注意:

明示的なシグナル

  • 「Xにしよう」
  • 「YではなくXを使うべき」
  • 「トレードオフは...だから価値がある」
  • 「このをADRとして記録して」

暗黙的なシグナル(ADRの記録を提案する — ユーザーの確認なしに自動作成しない)

  • 2つのフレームワークまたはライブラリを比較して結論に達する
  • 述べられた根拠を持つデータベーススキーマ設計の選択をする
  • アーキテクチャパターン(モノリス対マイクロサービス、REST対GraphQL)の間で選択する
  • 認証/認可戦略を決定する
  • 代替案を評価した後、デプロイインフラストラクチャを選択する

良いADRとは

すること

  • 具体的に — 「ORMを使う」ではなく「Prisma ORMを使う」
  • 根拠を記録する — 根拠は何よりも重要です
  • 拒否された代替案を含める — 将来の開発者は何が検討されたかを知る必要があります
  • 結果を正直に述べる — すべての決定にはトレードオフがあります
  • 短く保つ — ADRは2分で読めるべき
  • 現在時制を使う — 「Xを使う」ではなく「私たちはXを使う」

しないこと

  • 些細な決定を記録する — 変数名またはフォーマット選択はADRを必要としません
  • エッセイを書く — contextセクションが10行を超える場合は長すぎます
  • 代替案を省略する — 「単に選んだ」は有効な根拠ではありません
  • マーキングなしでバックフィルする — 過去の決定を記録する場合は元の日付を注記
  • ADRを古い状態にする — 置き換えられた決定は置き換えを参照する必要があります

ADRライフサイクル

proposed → accepted → [deprecated | superseded by ADR-NNNN]
  • proposed: 決定が検討中であり、まだコミットされていない
  • accepted: 決定が有効であり、フォローされている
  • deprecated: 決定は関連性がなくなった(例:機能が削除された)
  • superseded: 新しいADRがこれを置き換える(常に置き換えをリンク)

記録する価値のある決定カテゴリ

CategoryExamples
Technology choicesフレームワーク、言語、データベース、クラウドプロバイダ
Architecture patternsモノリス対マイクロサービス、イベント駆動、CQRS
API designREST対GraphQL、バージョニング戦略、auth機構
Data modelingスキーマ設計、正規化決定、キャッシング戦略
Infrastructureデプロイメントモデル、CI/CDパイプライン、監視スタック
SecurityAuth戦略、暗号化アプローチ、シークレット管理
Testingテストフレームワーク、カバレッジ対象、E2E対統合のバランス
Processブランチング戦略、レビュープロセス、リリースケーデンス

他のスキルとの統合

  • Planner エージェント: プランナーがアーキテクチャ変更を提案するとき、ADRの作成を提案
  • Code reviewer エージェント: 対応するADRなしでアーキテクチャ変更を導入するPRにフラグを立てる

来源与署名

来源:affaan-m/ecc位于docs/ja-JP/skills/architecture-decision-records提交ef648e0

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架