ADR テンプレート
このページは、記入用テンプレートを誤ってサイトのメタデータとして解釈しないよう、原文をコードとして表示しています。
---schema: codex-delivery/adr@1document_id: "ADR-<<required: zero-padded number or stable ID>>"change_id: "CHG-<<required: YYYYMMDD-slug>>"risk_tier: "<<required: R0 | R1 | R2 | R3>>"document_status: draftdecision_state: UNKNOWNowner: "<<required: decision owner>>"evidence_as_of: "<<required: ISO 8601 or UNKNOWN>>"commit_sha: N/A — architecture decision is implementation-independentsupersedes: N/A — first decisionrefs: - 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>> |