• Status: Accepted
  • Mode: Critical
  • Kruchten Type: Property
  • Scope: platform
  • Implementation Status: N/A (Triage 基準根拠の純ドキュメント)
  • 起案者: [email protected]
  • 起案日: 2026-05-12
  • 承認日: 2026-05-12

Kruchten Type は ADR-0031 (2026-05-13) で遡及追加。分類根拠は ADR-0031 §決定セクションおよび docs/adr/README.md の Kruchten 3 分類ガイドを参照。 Status / Mode / Scope は 2026-06-11 に遡及追加 (ADR-0031 corrigendum パターン)。出典: Status = 旧形式「## ステータス」節の機械転記 / Mode = 旧 README §既存 ADR 一覧の推定値 (git 履歴) / Scope = ADR-0049 4 層分類の遡及付与 (PR レビューで確定)。

Status は Proposed → Accepted (マージ時) / Rejected (Close 時) / Superseded by ADR-XXX (後続 ADR で更新) に遷移する。 Mode = Critical の理由: Decision Pipeline 自身の判定基準を改変するメタ決定であり、本リポの ADR 全件の評価基準を遡及的に拘束するため。Bezos Type 1 一方向ドアに該当。

決定の早わかり(Y-statement)

本節は ADR-0140 の方針で遡及追加された本文の要約で、新しい意味は加えていない (意思決定内容は不変)。「文脈で問題に直面し、対抗案でなくこの案を選び、目的のため代償を受け入れる」と読む。詳細はコンテキスト以降の本文に展開する。

  • 文脈: ADR-0019 で Decision Pipeline を LangGraph TS に移行後、本番稼働中の Triage v0.2 / Scoring v0.1 の判定基準は経験的に設計されている。RQ-039 で主要文献 (Nygard / Chen et al. / Zimmermann / Bezos など) を網羅調査済み。
  • 問題: 判定基準について「他人に説明可能な根拠」が記録されていない。ADR Review で「なぜ Critical なのか」を問われても経験論しか提示できず、属人化リスクが高い。
  • 問題点と課題(直せる原因 → 発生を止めるためにやること):
    • Triage 4 カテゴリ分類の根拠が暗黙 → 各カテゴリの採用根拠を学術文献に明示的に紐付ける。
    • 数値閾値 35/40/45 の外部根拠が不在 → 「外部根拠を持たない組織内合意」であることをプロンプト冒頭に明記する。
    • 「迷ったら厳しめ」原則が経験論のみ → Bezos Type 1 非対称リスクモデルで正当化し判定ルールに追記する。
  • 前提(解決を課題に立てない与件):
    • 数値閾値の絶対値根拠は学術文献・業界白書のいずれにも存在しない (RQ-039 調査結果)。
    • 動的閾値 (プロジェクトフェーズに応じた係数) の導入は Phase 3 検討事項として継続オープンのまま置く。
  • 決定(対応策): 根拠を記録しない現状維持 (案 A) や全閾値の引用付き再設計 (案 B) でなく、案 E を採用する。①4 カテゴリ分類の根拠を学術文献に紐付け、②数値閾値 35/40/45 を組織内ヒューリスティクスと明文化し、③「迷ったら厳しめ」を Bezos Type 1 非対称リスクで正当化し、④改善経路を Zimmermann (2023) Adoption Model ("measured" → "continuously improving") で位置付ける。
  • 目的: Triage 判定の説明責任を確立する。業務委託エンジニア・監査人・第三者に「なぜこの基準か」を文献で説明可能にし、将来の閾値変更を組織合意で動かせる形に正式化する。
  • 代償: メタ ADR の重み (将来の基準変更時に本 ADR の Superseded 更新が必要な運用負担)。「外部根拠なし」と認めることによる対外説得力の低下。「迷ったら厳しめ」正式化による過剰スコアリング発生リスク。
  • 詳細は本文の影響・撤退条件セクションを参照のこと

コンテキスト

ADR-0019 で Decision Pipeline を LangGraph TS に移行した後、本番稼働中の Triage v0.2 / Scoring v0.1 が採用する判定基準について以下 3 点を明文化すべきことが判明した:

  1. 判定基準の根拠が暗黙: drp/src/nodes/triage.ts の 4 カテゴリ分類(ADR 対象外 / Light / Standard / Critical)は経験的に設計されたが、学術的・業界標準との対応が明示されていない。Phase 1 検証 (TC-01〜07) で挙動は実証済だが、他人に説明可能な根拠 が記録されていない。
  2. 数値閾値 35/40/45 の根拠不在: スコア閾値が「採点 10 項目 × 5 段階の平均値 3.5/4.0/4.5」に対応する内部整合性は持つが、学術文献・業界白書のいずれにも絶対値根拠は存在しないことが調査で判明 (RQ-039)。
  3. 「迷ったら厳しめ」原則の説明責任: ADR Review で起案者が「なぜ Critical なのか」を問われた際、現状は経験論しか提示できない。

並行して 2026-05-12 に Gemini Deep Research と Anthropic Claude Research を並列実行し、Nygard (2011) / Chen et al. (2013) / Zimmermann (2020) / Bezos (2015/2016) などの主要文献を網羅的に調査した結果 (RQ-039)、4 カテゴリ分類は学術・業界の双方で強くサポートされるが、数値閾値は組織内ヒューリスティクスであると確認された。

この差異を Triage プロンプトとスコアリングプロンプトに正式に反映し、説明責任を担保する必要がある。

決定

以下 4 点を同時に決定する:

  1. Triage 4 カテゴリ分類(対象外 / Light / Standard / Critical)の正式採用根拠を、以下の学術文献に明示的に紐付ける:

    • 対象外: Spotify (2020) "small decisions with little to no impact" / AWS Prescriptive Guidance "start small" / Chen et al. (2013) ASR の対偶(measurable effect on architecture なし)
    • Light: Kruchten (2004) "property decisions (diacrises)" の軽量版 / MADR minimal template / Y-Statements (Zdun et al. 2013)
    • Standard: Nygard (2011) "structure + interfaces" 領域 / Chen et al. (2013) ASR "system-wide impact"
    • Critical: Nygard (2011) 5 領域全該当 / Zimmermann (2020) "5+2 criteria" のうち business value/risk + key stakeholder + external dependencies + cross-cutting + past troublemaker / Bezos (2016) Type 1 一方向ドア / Chen et al. (2013) "compliance audit concern"(会計・課金は SOX / 税法 / PCI-DSS 適用領域)
  2. 数値閾値 35 / 40 / 45 は「組織内ヒューリスティクス」であることを明文化する:

    • 採点 10 項目 × 5 段階スケール (5=模範的, 4=十分, 3=最低限) の平均値 3.5 / 4.0 / 4.5 に対応する内部整合性は保つ
    • 外部根拠は存在しない(Basili GQM 1994 / Tofan et al. 2011 / Capilla et al. 2016 は全て「組織別 calibration」を説く)
    • Phase 1 検証 (TC-06=3/50 大幅低スコア / TC-07=45/50 境界値) で閾値の弁別力は実証済
    • 01_triage.md および 02_scoring.md の冒頭に「数値閾値は外部根拠を持たない組織内合意」と明記
  3. 「迷ったら厳しめ」原則を Bezos Type 1 非対称リスクモデルで正当化する:

    • 不可逆決定 (Type 1) の過少評価コスト >> 可逆決定 (Type 2) の過剰評価コスト
    • 採点で 1 点上振れるのは無害だが、Critical を Standard 扱いするのは監査リスク
    • この非対称性を 01_triage.md の判定ルール 5 のコメントに追記
  4. 将来の改善経路を Zimmermann (2023) Adoption Model で位置付ける:

    • 現状の bizlp-gas-accounting Decision Pipeline は 5 段階のうち "measured" レベル(スコアリングによる定量化済)
    • 次の改善目標は "continuously improving" レベル: 各 ADR の事後評価ループ追加(6 ヶ月後の DORA 指標 / インシデント数との相関分析)
    • 動的閾値(プロジェクトフェーズに応じた係数)の導入は Phase 3 検討事項として継続オープン

検討した代替案 (Alternatives Considered)

  • 案 A: 学術的根拠を一切記録しない(現状維持) — 不採用: ADR Review で起案者が「なぜ Critical なのか」を問われた際の説明責任を果たせない。属人化リスク高。
  • 案 B: 全閾値を学術文献の引用付きで再設計 — 不採用: Basili GQM (1994) / Tofan et al. (2011) / Capilla et al. (2016) すべてが「閾値は組織別 calibrate」と説いており、絶対値根拠は学術的に存在しないため、再設計しても引用は付けられない。むしろ「外部根拠なし」と明示することが正直かつ Tofan GQM 原則に整合する。
  • 案 C: 数値スコアを廃止し定性的ルーブリックに戻す — 不採用: Phase 1 検証で TC-06 (3/50) と TC-07 (45/50) の弁別力が実証されており、定量化のメリット(PR ゲート自動化・属人性排除)を失うコストが大きい。
  • 案 D: 学術的根拠を Triage プロンプト本体に直接埋め込む — 不採用: プロンプトトークン消費が増え、LLM の指示遵守率が低下するリスク (arXiv "Paradoxical Interference between Instruction-Following and Task Solving"; RQ-038 で 150–200 命令で遵守率劣化を確認済)。Progressive Disclosure 原則で 01_triage.md の説明部分(システムプロンプト外)に注記し、本体プロンプトは現状維持。
  • 案 E: 4 カテゴリの学術根拠注記 + 数値閾値の限界明示 + 改善経路の Adoption Model 位置付け採用

影響 (Consequences)

正の影響

  • 説明責任の確立: Triage 判定について「なぜこの基準か」を学術文献で説明可能。業務委託エンジニア・監査人・第三者へのオンボーディングコスト削減。
  • 数値閾値の透明性: 「35/40/45 は組織内合意」と明文化することで、将来の閾値変更(フェーズ変化・チーム拡大時)の議論を Bezos の非対称リスク前提を維持する範囲で組織合意で動かせる 形に正式化。
  • Adoption Model でのポジショニング: Zimmermann (2023) の 5 段階で現在地("measured")と目標("continuously improving")を可視化し、次の投資領域(事後評価ループ)が明確化。
  • Phase 1 検証実績との接続: TC-06/07 の実測値が「外部根拠なき閾値」の弁別力を実証するエビデンスとして公式化される。

負の影響 / 受容するリスク

  • メタ ADR の重み: 本 ADR は Decision Pipeline 自身の評価基準を遡及的に拘束する。将来 ADR-0021 以降で閾値や基準を変更する場合、本 ADR を Superseded として明示的に更新する必要がある(運用負担増)。
  • 数値閾値の「弱い根拠」を明文化することによる説得力低下: 「外部根拠なし」と認めるため、対外プレゼン時に「なぜこの数字か」を質問された場合の答えは「組織内合意」になる。これは透明性とのトレードオフ。
  • Critical モードの厳格化リスク: 「迷ったら厳しめ」を正式化することで、本来 Standard で十分な決定まで Critical 扱いになる過剰スコアリングが発生しうる。Phase 2 で発生率をモニタリングし、必要なら本 ADR 改訂。

検証計画 (Review Plan)

  • Review After: 2026-11-12(6 ヶ月後)
  • 検証観点:
    • Triage 判定で Critical / Standard 境界の誤判定発生率(< 10% を目標)
    • 業務委託エンジニアからの「基準説明依頼」発生回数(オンボーディング後 1 件以下を目標)
    • 数値閾値の上振れ / 下振れ調整議論の発生有無
  • Superseded 条件: Zimmermann Adoption Model "continuously improving" 移行時(事後評価ループ実装時)に ADR-XXX として後継起案

関連 ADR / ドキュメント

  • ADR-0019: Decision Pipeline LangGraph 移行(本 ADR の前提インフラ)
  • RQ-039: ADR 採択基準・粒度分類・品質ルーブリックの学術的根拠調査(本 ADR の根拠資料)
  • docs/_internal/decision_pipeline/prompts/01_triage.md: 本 ADR で根拠注記を追加
  • docs/_internal/decision_pipeline/prompts/02_scoring.md: 数値閾値の限界明記対象(本 ADR と同一 PR で更新予定 or 後続 PR)
  • docs/_internal/decision_pipeline/test_cases.md: TC-06/07 の Phase 1 検証実績が本 ADR のエビデンス

起案者の言葉

AI レビューを踏まえた上で、最終的に私がこの決定で進めたい理由:

Triage / Scoring の判定基準は Decision Pipeline 全体の挙動を決定する「メタ基準」であり、その根拠が暗黙のままでは将来の改修・チーム拡大時に必ず属人化する。Gemini と Claude の Deep Research で「4 カテゴリは学術裏付け強い・数値閾値は外部根拠なし」という非対称な調査結果を得たため、両者を正直に区別して明文化することが ADR 設計原則(「AI に責任逃れさせない」)に最も整合する。数値閾値の外部根拠不在を弱みとして隠すのではなく、Phase 1 検証で実証された弁別力をエビデンスとして提示し、組織内合意としての正当性を確立する。

Confirmation (準拠確認 / Fitness Function)

本セクションは ADR-0036 (Accepted 2026-05-14) で遡及追加された。ADR-0031 パターン (業界標準準拠メタデータ後付け = 誤字修正範疇) に準拠する遡及で本文の意思決定内容は不変。

  • 検証手段: N/A (ガバナンス ADR で実装不要のため継続検証対象外)
  • 実行頻度: —
  • 違反時の対応: —