上位 doc: §8 in adr-lint_rules.md — Summary Table 集約参照

id: implementation-status-vocab
severity: error
category: metadata
since: 2026-06-15
status: active
fixable: false
description: Implementation Status は正典 ADR-0032 の 6 値 (Not Started / In Progress / Done / Partial / Reverted / N/A) で始まる。フェーズ別・複数決定の併記は Phase / 決定 前置きで許容。正典外の英語トークン (Implemented / Superseded / Deprecated 等) はドリフトとして弾く
related_adrs: [ADR-0032]

Rationale

ADR-0032 は実装ライフサイクルを 6 値で定義したが、語彙を強制する検査が無かったため、同義語 (Implemented = Done) や軸違いの値 (Superseded は意思決定軸 = Status の値) が混入し、INDEX 一覧でドリフトが生じていた (実例: 2026-06 に Implemented 3 本・Superseded 1 本)。状態語が増えると「探す・読む」認知負荷が上がり、DoneImplemented のように「似て非なる」ように見える区別の有無を読者が判断できなくなる。本ルールは正典 6 値を機械強制し、adr-index.mjs の Impl 列トークン定義との二重管理ドリフトも防ぐ。

判定ロジック: 値が正典 6 値で始まれば pass。Phase / 決定 前置き、または非 ASCII (日本語) 始まりの記述 (= 状態語で始まらない併記・凡例どおり Impl 列は「—」へ落とす) も pass。先頭が正典外の ASCII 英語トークンのときだけ fail。

❌ FAIL Example

- **Implementation Status**: Implemented (PR #1303)   ← Done の同義語ドリフト
- **Implementation Status**: Superseded (...)          ← Status 軸の値の誤用
- **Implementation Status**: Completed                 ← 正典外トークン

✅ PASS Example

- **Implementation Status**: Done (PR #1303)
- **Implementation Status**: N/A (実装不要・理由併記)
- **Implementation Status**: Reverted
- **Implementation Status**: Phase 1-2 Done (PR #957)  ← フェーズ別併記
- **Implementation Status**: 決定① Done / 決定② Not Started  ← 複数決定併記

References