コンテンツにスキップ

ADR テンプレート

このページは、記入用テンプレートを誤ってサイトのメタデータとして解釈しないよう、原文をコードとして表示しています。

原本をダウンロード

---
schema: codex-delivery/adr@1
document_id: "ADR-<<required: zero-padded number or stable ID>>"
change_id: "CHG-<<required: YYYYMMDD-slug>>"
risk_tier: "<<required: R0 | R1 | R2 | R3>>"
document_status: draft
decision_state: UNKNOWN
owner: "<<required: decision owner>>"
evidence_as_of: "<<required: ISO 8601 or UNKNOWN>>"
commit_sha: N/A — architecture decision is implementation-independent
supersedes: N/A — first decision
refs:
- TASK-<<required>>
---
# ADR-<<required>>: <<required: decision in one sentence>>
## Lifecycle
- ADR state: `proposed | accepted | rejected | deprecated | superseded`
- Current state: `<<required>>`
- Proposed / decided: `<<required: ISO 8601>>`
- Decision owner: `<<required>>`
- Reviewers/consulted: `<<required or N/A with reason>>`
- Superseded by: `<<required or N/A>>`
## Context
- Customer/operational outcome: `<<required>>`
- Current system and problem: `<<required>>`
- Why a durable decision is needed: `<<required>>`
- Scope: `<<required>>`
- Out of scope: `<<required>>`
## Decision drivers
Rank drivers; do not list every desirable property as equally important.
| Priority | Driver | Constraint/evidence | How measured |
|---:|---|---|---|
| 1 | <<required>> | <<required>> | <<required>> |
## Assumptions and unknowns
| ID | Statement | Evidence | If false | Owner/due | State |
|---|---|---|---|---|---|
| ADR-UNK-01 | <<required>> | <<required>> | <<required>> | <<required>> | UNKNOWN |
## Options
Include the status quo unless it is impossible.
### Option 0 — Keep current behavior
- Description: `<<required>>`
- Benefits: `<<required>>`
- Costs/risks: `<<required>>`
- Reversibility: `<<required>>`
- Evidence: `<<required>>`
### Option 1 — <<required>>
- Description: `<<required>>`
- Benefits: `<<required>>`
- Costs/risks: `<<required>>`
- Reversibility: `<<required>>`
- Migration/exit: `<<required>>`
- Evidence: `<<required>>`
### Option 2 — <<required or delete if genuinely unnecessary>>
- Description: `<<required>>`
- Benefits: `<<required>>`
- Costs/risks: `<<required>>`
- Reversibility: `<<required>>`
- Migration/exit: `<<required>>`
- Evidence: `<<required>>`
## Decision
- Chosen option: `<<required>>`
- Decision: `<<required: exact scope and behavior>>`
- Non-negotiable invariants: `<<required>>`
- Exceptions: `<<required or N/A with reason>>`
- Why this option now: `<<required>>`
- Why rejected options were not chosen: `<<required>>`
## Consequences
### Positive
- `<<required>>`
### Negative / debt accepted
- `<<required>>`
### New risks and operational load
- `<<required: monitoring, support, cost, vendor, security, privacy>>`
## Implementation and migration contract
- Compatible sequence: `<<required: e.g. expand → migrate → contract or N/A>>`
- Data/backfill/reconciliation: `<<required or N/A with reason>>`
- Public/client compatibility: `<<required or N/A with reason>>`
- Rollback or compensating action: `<<required>>`
- Last-known-good state: `<<required>>`
- Irreversible point: `<<required or N/A with reason>>`
## Verification
| Claim | Evidence ID / method | Required fingerprint | Owner | Result/maturity |
|---|---|---|---|---|
| <<required>> | EVID-<<required>> | <<required>> | <<required>> | UNKNOWN |
## Revisit
- Revisit trigger: `<<required: volume, failure, cost, contract, product, date>>`
- Review date: `<<required>>`
- Evidence needed: `<<required>>`
- Exit/removal path: `<<required>>`
## Decision events
Append; do not replace the reason for an old decision with a new one.
| Time | Event | Actor | Evidence | Result |
|---|---|---|---|---|
| <<required>> | proposed / accepted / rejected / deprecated / superseded | <<required>> | <<required>> | <<required>> |