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

id: impl-detail-implies-short-status
severity: error
category: metadata
since: 2026-06-21
status: active
fixable: false
description: impl_detail 節を持つ ADR は implementation_status を短縮形式 (ADR-0032 6 値のいずれかに完全一致・追加情報なし) にする
related_adrs: [ADR-0162, ADR-0032]

Rationale

ADR-0162 で正式化された impl_detail 節は、ADR 本文と分けて実装の進捗 (Phase 1-2 Done / マージ済 PR / 残タスクなど) を持つための差し替え可能な領域である。一方で本文太字メタ欄 / frontmatter の implementation_status も実装状態を表す。両者に詳細を書くと意味的に乖離した 2 か所ができてしまい、片方を更新し忘れたときに adr-index 「Impl状況詳細」列が古い情報を公開してしまう。

本ルールは形式チェックで二重管理を構造的に防ぐ。impl_detail 節を持つ ADR では implementation_status を ADR-0032 正典 6 値のいずれかに完全一致させ、PR 番号・フェーズ進捗・補足は impl_detail 節に集約する。

❌ FAIL Example

# ADR-0XXX

- **Implementation Status**: In Progress (PR #1703 = 辺語彙 + 整合 lint。残: 初期移行・error 昇格)

## 実装状況詳細 (impl_detail)

<!-- impl_detail:start -->
Phase 1 Done: PR #1703
<!-- impl_detail:end -->

(implementation_status に括弧付き詳細があるのに impl_detail 節も持つ = 2 か所同期リスク → error)

✅ PASS Example

# ADR-0XXX

- **Implementation Status**: In Progress

## 実装状況詳細 (impl_detail)

<!-- impl_detail:start -->
Phase 1 Done: PR #1703
残: 初期移行・error 昇格
<!-- impl_detail:end -->

(implementation_status は短縮 1 行、詳細は impl_detail 節に集約 → pass)

判定対象:

  • impl_detail マーカー (<!-- impl_detail:start ... --> ... <!-- impl_detail:end -->) を本文に含む ADR のみ
  • マーカーを持たない ADR は対象外 (従来通り implementation-status-vocab で 6 値開始のみを検査)
  • 短縮形式 = Not Started / In Progress / Done / Partial / Reverted / N/A のいずれかに完全一致

Migration / Corrigendum

  • 導入時 (2026-06-21・ADR-0162 受理) は ADR-0149 が唯一の impl_detail 利用 ADR (PR #2026 試行起点)。すでに短縮形式 In Progress で記入済みのため遡及修正不要
  • 将来 impl_detail 節を新規 ADR で使う際は、起案時から本ルールを満たすように起案者が implementation_status を短縮形式で書く (テンプレ / operator_guide の選択基準を参照)

References

  • ADR-0162: impl_detail 節の正式化・本ルールの導入根拠
  • ADR-0032: Implementation Status 6 値の定義
  • implementation-status-vocab: impl_detail 節を持たない ADR 向けの語彙検査 (本ルールの相補)
  • frontmatter-meta-sync: frontmatter implementation_status と本文太字メタ欄 Implementation Status の同期検査