位置付け: Claude Research と Gemini Deep Research の RQ-041 両回答を論点ごとに突き合わせ、bizlp 文脈での採択方針案を整理する。

本ファイルは「ADR 起案準備資料」。正式採択判断は Decision Pipeline 経由で新規 ADR として行う。


0. TL;DR

  • 両エンジン完全一致の核心: フラット構造 / docs/adr/ 配置 / Co-location with code / 4 桁連番 + ハイフン + ケバブケース / イミュータブル原則 (Supersede パターン) / 運用ガイドは README.md / アンチパターン (ステータス別フォルダ・運用ガイドの ADR 混在・連番リセット)
  • 3 つの相違点 (bizlp 文脈の採択方針):
    1. メタ ADR 番号: Claude = ADR-0001 開始 / Gemini = ADR-0000 開始 → ADR-0000 採用を推奨 (Gemini 案 / Backstage の慣例)
    2. メタ ADR の分割: Claude = 1 本派 / Gemini = 三層分離モデルを強調 → Gemini 案 (三層分離) を概念モデルとして採用、実装は 1 本派
    3. MOC / Backstage: Claude = 言及のみ / Gemini = 詳細推奨 → 将来検討に格下げ (個人開発に過剰)
  • bizlp 現状とのギャップ 5 件 (採用すべき): ①3 桁→4 桁 ②_- ③メタ ADR 不在→新設 ④_template.mdtemplates/template.md ⑤既存 21 ADR の命名規約準拠
  • 次工程: 本 synthesis を Decision Pipeline に投入 → **ADR-0023 「ADR ドキュメント群の構造リファクタリング」**として正式起案 (ADR-0022 は Policy Alignment ノード追加で使用中 = PR #625)

1. 完全一致部分 (採用根拠)

両エンジンが独立に到達した一致点は、bizlp 文脈における採択根拠の中で最も強い。

1.1 基本構造 (両者一致)

観点両者一致の推奨
保存場所プロジェクトリポジトリ内の docs/adr/ (Co-location with code)
構造フラット単一ディレクトリ (100 本未満では一択)
配置形式Markdown ファイル (.md) + Git バージョン管理
PR レビューPull Request ベースでアーキテクチャ意思決定を非同期議論

1.2 ファイル命名 (両者一致)

要素両者一致の推奨
連番4 桁ゼロパディング (0001-, 0002-)、再利用禁止、スキップ禁止
区切りハイフン (-) でケバブケース
タイトル現在形・命令形の動詞フレーズ (use-X, adopt-Y)
0001-record-architecture-decisions.md / 0042-use-postgres-for-payment.md

1.3 文書役割分離 (両者一致)

文書層配置性質役割
メタ ADR0000-record-architecture-decisions.md (or 0001-)不変 (Immutable)ADR 導入の決定そのものを記録
運用ガイドREADME.md可変 (Mutable)日々の運用ルール・命名規則・閾値定義
個別 ADRNNNN-*.md不変・追記専用個々の技術的決定、Supersede パターンで上書き

1.4 ライフサイクル (両者一致)

ステータス両者一致の意味
Proposed提案中・議論中、可変
Accepted採用済、この時点で不変
Deprecated非推奨だが残骸として残存
Superseded by ADR-NNNN後続 ADR で完全置換

1.5 アンチパターン (両者一致 = 採用しない)

アンチパターンなぜダメか
ステータス別フォルダ (accepted/ proposed/ superseded/)ADR はイミュータブル。フォルダ移動が Git 履歴・リンク・連番を壊す
Accepted ADR の本文編集 (typo 修正以外)Nygard 原則違反。Supersede で新 ADR を書く
運用ガイドを ADR 内に混在進化する運用ルールと Accepted ADR の不変性が矛盾する
過剰な階層化 (最初からドメイン別)YAGNI。連番のグローバル一意性を捨てる代償が大きい
連番リセット / スキップ / 再利用履歴の連続性とツール互換性が壊れる
Wiki/Confluence への分離コードと同期しない、PR レビュー不可、diff 不可

1.6 イミュータブル原則 (両者一致)

一度 Accepted となった ADR は本文を編集しない。決定が変わったら新しい ADR を作って古い方を Superseded by ADR-NNNN とマークする。

これにより「いつ、なぜ方向転換が行われたか」の組織の思考の歴史 (History of thinking) を保全する。

1.7 テンプレート (両者一致 / 細部相違)

  • 両者ともテンプレートを別ファイルに置く方針 (templates/template.md または template/ 配下)
  • bizlp は既に Nygard + MADR 4.0 ミニマル統合形式を _template.md に保持済 (内容は維持、配置位置のみ調整候補)

2. 相違点 1: メタ ADR 番号 (ADR-0000 vs ADR-0001)

2.1 両エンジンの主張

観点ClaudeGemini
推奨ADR-0001 で「Record architecture decisions」ADR-0000 で「Record architecture decisions」
根拠adr-tools の adr init がデフォルトで生成、GOV.UK / Apache James / 多くの OSS が踏襲Backstage / MADR 自身の慣例、「制度の礎石」として 0000 番を予約
補足MADR は例外的に 0000 から開始 (運用ルールも全部メタ ADR 化する流派)KEP-0000 (Kubernetes) も同じ思想

2.2 bizlp 文脈での評価

評価
既存 ADR との連続性bizlp は ADR-0001〜0021 で運用済。新たに ADR-0000 を追加すれば「最初に置く」が物理的に可能 (連番衝突なし)。0001 を追加すると既存 001 と二重採番 (3 桁 vs 4 桁) で識別困難
慣例adr-tools (1 開始) は Bash CLI 利用前提。bizlp は Decision Pipeline (独自) を使うため CLI 慣例の制約なし
「予約番号」概念0000 をメタ ADR に予約する Backstage 流の方が「テンプレートが連番先頭に来ない」効果と整合
Decision Pipeline 採番ロジックとの整合Pipeline は次空き番号を自動採番。0000 番は手動で予約する必要があるが、001 系の renaming 時に併せて整理可能

2.3 採択方針 (Synthesis 推奨)

ADR-0000 採用を推奨 (Gemini 案)。理由:

  1. 既存 ADR-0001〜0021 を 4 桁化 (0001〜0021) にする際、メタ ADR を ADR-0000 として頭に置くことで連番が綺麗に並ぶ
  2. Backstage / Kubernetes KEP の「予約番号」慣例と整合
  3. Decision Pipeline 採番ロジックは次空き番号を自動採番するため、最初の 1 回だけ手動採番すれば以降の起案には影響なし

ただし内容は両エンジン共通の「ADR 導入の決定そのものを記録」=「Record architecture decisions」型を採用。


3. 相違点 2: メタ ADR の分割 (1 本派 vs 三層分離モデル)

3.1 両エンジンの主張

観点ClaudeGemini
強調1 本派: メタ ADR 1 本 + README.md で運用ガイド三層分離モデル: 初期マスター ADR + 運用ガイド + 個別 ADR の役割を概念的に明確分離
adr-tools / GOV.UK / Apache James は 1 本派各層の性質 (不変 / 可変 / 追記専用) を強調
補足MADR は例外的に運用ルールごとにメタ ADR 化 (19 本)三層分離は概念モデル、実装は 1 本派でも可

3.2 bizlp 文脈での評価

bizlp は既に README.md = 初期マスター ADR 役割 + 運用ガイド という構造を採用済 (前 PR で確立)。三層分離モデルは概念的にこれと一致するが、Gemini が言う「初期マスター ADR (不変)」と「README.md (可変)」を別ファイルに物理的に分離するかは別判断。

両者の中間案: README.md は運用ガイド (可変) として維持しつつ、別途 ADR-0000 として「ADR を採用する」決定そのものを不変アーティファクトとして残す = 三層分離モデルを採用しつつ実装は 1 本派の最小構成。

3.3 採択方針 (Synthesis 推奨)

Gemini 案 (三層分離モデル) を概念モデルとして採用、実装は 1 本派の最小構成:

  • ADR-0000: 「Record architecture decisions」(不変、20-30 行)
    • ADR 採用の決定そのものを記録
    • Nygard + MADR 4.0 ミニマル形式の宣言
    • 一度 Accepted 後はイミュータブル
  • README.md (docs/adr/README.md): 運用ガイド (可変)
    • 命名規則 / Status 遷移 / 起案フロー / アンチパターン警告
    • 用語定義 (Glossary)
    • リスク受容方針
    • 既存 ADR 一覧
  • 個別 ADR (docs/adr/NNNN-*.md): 通常 ADR

3 ファイル種類の役割を明確にすることで、後から読む人が「どこに何があるか」を即座に把握できる。


4. 相違点 3: MOC / Backstage の扱い

4.1 両エンジンの主張

観点ClaudeGemini
MOC (Map of Content)言及なし詳細推奨 (Zettelkasten / Obsidian 連携)
Backstage 開発者ポータル言及 (拡張トリガー = 別プロジェクト発生時)詳細推奨 (catalog-info.yaml で全社横断インデックス)
Log4brains言及 (拡張トリガー = 50 本超 or ステークホルダー閲覧時)言及
自動 TOC 生成adr-log / adr generate toc 推奨 (拡張トリガー = 30 本超)GitHub Actions jules2689/adr-action を推奨 (CI 統合強調)

4.2 bizlp 文脈での評価

評価
MOC概念的に有用だが、現状 21 本の ADR では過剰投資。Obsidian / Zettelkasten ツールへの依存も発生
Backstageエンタープライズ向け開発者ポータル。bizlp は単一リポジトリ・1 人開発で過剰
Log4brains50 本超で再評価のトリガー扱いで OK
自動 TOC 生成既に docs/adr/README.md に手書きで 21 本記載済、自動化は将来 (50 本超)

4.3 採択方針 (Synthesis 推奨)

全て将来検討に格下げ (Claude 案寄り):

  • 今は導入しない: MOC / Backstage / Log4brains / 自動 TOC 生成
  • 再評価トリガー:
    • ADR が 50 本超 → Log4brains / 自動 TOC 生成を検討
    • 別プロジェクトを始めた → Backstage 検討 (組織レベル ADR の分離)
    • 「現在の認証システムがなぜこうなっているか」型の横断的理解が頻繁に必要 → MOC を README.md 内に手書き で導入 (ツール不要)

Gemini の MOC / Backstage 推奨は「数百本規模」を前提とした内容で、bizlp の 21 本規模には合わない。Claude の拡張トリガー方式の方が個人開発に適する。


5. bizlp 現状とのギャップ + 採用判断

5.1 ギャップ一覧

#ギャップ現状業界標準 (両者一致)採用判断
1採番桁数3 桁 (021_*)4 桁 (0021-*)採用
2区切り文字アンダースコア (_)ハイフン (-)採用
3メタ ADR不在 (README.md が暗黙的代行)ADR-0000 「Record architecture decisions」採用 (新規作成)
4テンプレート位置docs/adr/_template.md (root + _ prefix)docs/adr/templates/template.md (サブフォルダ)採用
5タイトル命令形010_modular_monolith_numbering.md (名詞)0010-use-modular-monolith-numbering.md (動詞)採用 (理想は動詞、既存は名詞ベースで定着済)

5.2 既存 ADR-0001〜0022 の renaming 範囲

Option範囲影響
A. 全件 renaming (推奨)既存 21 本 + 新メタ ADR を全て新規約に整える21 ファイル名変更 + nav 更新 + 内部相互参照更新 (ADR-0010ADR-0010 等) + 外部参照 (CLAUDE.md / changelog / コード コメント等)
B. 新規 ADR から適用、既存は据え置き既存 ADR-0001〜0021 は変更なし、新規 ADR から NNNN- 4 桁ハイフン形式移行コスト低、ただし二重採番期間が永続化 (混乱要因)
C. 新規 ADR から適用、既存は将来別 PR で renamingB + マイルストーン化中間案、ただし「いつ」が曖昧化

bizlp 規模 (21 本) なら A 案が綺麗。renaming スクリプトで一括処理可能。

5.3 タイトル命令形化の現実

既存 ADR-0001〜0021 のタイトルは名詞ベース (010_modular_monolith_numbering.md)。これを動詞形 (use-modular-monolith-numbering) に変える意義は薄い (履歴の連続性が消える)。

採用方針: 既存は名詞ベースのまま、新規 ADR-0022 以降のみ動詞形を推奨。テンプレートと README.md に「新規は動詞形が望ましいが既存形式の踏襲も可」と注記。


6. ADR 起案の骨格 (Decision Pipeline 経由)

本セクションは「ADR-0023 (ADR ドキュメント群の構造リファクタリング)」を Decision Pipeline で起案する際の素材。

6.1 タイトル候補

「ADR ドキュメント群の構造を業界標準 (Nygard + MADR 4.0 ミニマル) に整える」

6.2 Mode

Critical (既存 21 ADR を全件 renaming するため不可逆度高、ただし decision-specific には小さな決定の集合)

6.3 Context

  • 既存 ADR-0001〜0021 は 3 桁連番 + アンダースコア区切り + 名詞ベースで運用
  • メタ ADR が不在 (README.md が暗黙的に役割を兼ねる)
  • テンプレートが _template.md (root + _ prefix)
  • ADR-0022 は再起案され「Policy Alignment ノード追加」として PR #625 で確定 (旧テナント層分離 ADR-0022 は close 済)
  • RQ-041 で Claude + Gemini が業界標準を調査、両者一致で構造改革を推奨

6.4 Decision

  1. 採番: 既存 21 ADR を 4 桁化 (010_*0010-*)、新規は 4 桁開始
  2. 区切り: アンダースコア → ハイフン
  3. メタ ADR 新設: 0000-record-architecture-decisions.md で ADR 採用の決定を不変記録
  4. テンプレート移動: _template.mdtemplates/template.md
  5. タイトル命令形: 新規 ADR は動詞形推奨、既存は据え置き
  6. README.md 維持: 運用ガイドは現状の README.md を維持 (前 PR で完成)
  7. MOC / Backstage / Log4brains: 今は導入せず、再評価トリガー (50 本超 等) を README.md に明文化

6.5 Consequences

  • Good: 業界標準準拠、ツール互換性 (adr-tools / adr-log / Log4brains) 確保、新規参加者の認知負荷低減
  • Bad: 既存 21 ADR のファイル名変更でリンク切れリスク → 内部参照全件更新が必要 (約 40 箇所推定)
  • Neutral: Decision Pipeline の slug 生成ロジックがハイフン形式に対応するかの確認が必要

6.6 Considered Options

  • 案 A: 全件 renaming (4 桁 + ハイフン) ← 採択
    • Good, because 業界標準準拠、二重採番なし
    • Bad, because 21 ファイル + 約 40 参照を更新する作業コスト
  • 案 B: 新規のみ新規約適用、既存据え置き
    • Good, because 移行コスト最小
    • Bad, because 二重採番が永続化、新規参加者が混乱
  • 案 C: メタ ADR + テンプレート移動のみ、命名はそのまま
    • Good, because 影響範囲限定
    • Bad, because 業界互換性 (ツールチェーン) が半端な状態に

6.7 撤退条件

  • リンク切れ多発 → 個別修正 PR で順次対応、ロールバックは不要
  • Decision Pipeline 採番が新形式 (0000+ハイフン) でエラー → Pipeline 側の slug 生成ロジック修正で対応 (本 ADR の決定自体は撤退不要)

7. 次のアクション

  1. 本 PR (RQ-041 保存 + synthesis) をマージ
  2. 本 synthesis を Decision Pipeline (POST /draft) に投入ADR-0023 「ADR ドキュメント群の構造リファクタリング」 として起案
  3. ADR-0023 がマージされたら、§5.2 Option A (全件 renaming) を別 PR で実施
  4. renaming 完了後、ADR-0000 メタ ADR を新規作成 (Decision Pipeline 経由 or 直接 PR)

8. Caveats

  • 本 synthesis は 2 エンジンの回答に対する解釈。Claude / Gemini 自身の合議結果ではない
  • bizlp 規模 (21 本 ADR / 1 人開発 + Jr 1 名予定) に最適化した判断
  • MOC / Backstage / Log4brains を不採用とするのは現規模での判断。50 本超や複数プロジェクト化で再評価
  • ADR-0000 を採用する判断は Backstage / Kubernetes KEP / Gemini 推奨に従ったが、adr-tools 標準 (0001 開始) と異なる点に注意 (将来 adr-tools 連携時は要調整)
  • 既存 21 ADR の renaming は履歴の連続性を保つため、Git の git mv で実施 (旧パス削除 + 新パス追加ではなく rename を明示)

9. 関連ドキュメント

  • 突合元: RQ-041_*_result_claude.md / RQ-041_*_result_gemini.md
  • 関連 ADR (既存): ADR-0018 (Markdown 単一ファイル管理 / 拡張) / ADR-0019 (Decision Pipeline) / ADR-0021 (UC スライス採用)
  • 関連 RQ: RQ-040 (開発組織化パラダイム)
  • 業界標準参照: Michael Nygard "Documenting Architecture Decisions" / MADR 4.0 / Joel Parker Henderson "ADR" / Backstage / adr-tools / Log4brains