読者: 設計判断の Why を知りたい執筆者 + 将来の経営層 使い方: 規約 (ADR-0050) を読んで「なぜそうするか」が気になった時に参照 更新: ADR-0050 v2 改訂時に追従

本ドキュメントは 設計根拠 (Explanation)。手順は synthesis_writing_guide.md、 誤り回避は synthesis_anti_patterns.md 参照。


1. なぜ案 C ハイブリッドを採用したか

詳細議論は RQ-052 Synthesis (RQ-052_mcda_for_adr_synthesis_synthesis.md) および議事メモ (RQ-052_mcda_for_adr_synthesis_stage3_preparation_memo.md) 参照。要点のみ:

  • 案 A (純粋加重和): 速度・自動化親和性は最強だが、Suhr (1999) の 「judges の思考停止を招く」批判が該当、代表取締役氏の「意思決定の質を上げる」 方針と矛盾
  • 案 B (純粋 CBA): 学術的厳密性最強だが、1 件 1-2 時間で年 50 件規模では 運用負荷大、LangGraph 自動化困難
  • 案 C (ハイブリッド): 3 案の Advantage を統合し、bizlp 特性 (1 人法人 + AI Agent + 既存 ADR 資産 + 将来の経営層拡大) に最適化した informed extension

長期的には案 B 移行を視野 (組織成熟度ベース、ADR-0050 §4.8)。


2. arc42 Q42 9 タグ — bizlp 解釈表

arc42 Q42 は ISO 25010 (200+ の品質特性) を 9 個の形容詞タグに圧縮した 業界標準。公式: https://quality.arc42.org/articles/arc42-quality-model

2.1 #reliable (信頼性 — 拡張解釈: 事業継続性)

項目内容
一次定義 (arc42)期待される機能を一貫して提供。fault tolerance, availability, recoverability
bizlp 解釈 (拡張)短期的な技術信頼性 + 長期的な事業継続性 の両方を含む (informed extension)
技術層GAS 実行成功率、データ整合性、月次決算の確実な完了
経営層財務基盤の健全性、人件費・SaaS 利用料・LLM トークンコストの持続可能性
戦略層Time-to-market の確実性、法改正対応の時間的余裕
位置付け他品質の前提条件 — 事業継続できなければ #secure / #safe の長期投資が削られる
Must になるシーンLLM API コストが事業継続を脅かす規模 / 月次決算自動化失敗で締切遅延 / 法改正対応 / 新規事業の市場投入タイミング
他タグとの関係#secure / #safe の前提条件 / #efficient とは別 (#efficient は技術リソース効率、#reliable は事業継続そのもの) / #suitable とトレードオフ

informed extension 根拠:

  • 代表取締役氏の経営判断: 「財務の健全性がないと功利主義になってセキュリティ・ 安全性が疎かになる」
  • dependability hierarchy という業界既存概念に類似
  • bizlp 1 人法人 + AI Agent 構成という識別可能な特徴に紐付け

2.2 #flexible (柔軟性)

項目内容
一次定義 (arc42)変更や新要件への対応容易性。modifiability, scalability, portability
bizlp 解釈新規 RPA 種別の追加が容易 / マルチテナント化の余地 / 法令改正への追従可能性 / 将来の経営層拡大時の対応
Must になるシーン法令変更影響大の機能 (税制対応) / 新規業種拡大時の RPA 拡張 / 案 B 移行可能性を保つ判断
他タグとの関係#suitable (汎用化は特定要求への適合度を下げる) / #efficient (柔軟性のための抽象化はパフォーマンスを下げる)

2.3 #maintainable (保守性)

項目内容
一次定義 (arc42)既存システムの修正・拡張・テスト容易性
bizlp 解釈AI Agent (Claude/Gemini/GPT) がコードを読み解ける / テストが書ける / 代表取締役氏 1 人で全把握可能 / 将来経営層が学習可能
Must になるシーンADR 全件統一スキーマ化 / コア domain 層の設計 / AI Agent 連携基盤
他タグとの関係#efficient (保守性のための抽象化はパフォーマンスを下げる) / #flexible (シンプルさと拡張性は時に対立)

2.4 #efficient (効率性 — 技術リソース)

項目内容
一次定義 (arc42)リソース使用効率。performance, time behavior, resource utilization
bizlp 解釈技術的リソース の効率: GAS 6 分制限内で完了 / UrlFetchApp quota (20,000 件/日) 内で運用 / Sheets セル数制限
注意財務的コストは #reliable (事業継続性)。#efficient は純粋に技術リソース効率に絞る
Must になるシーンバッチ処理 (6 分超過で打ち切り) / 大量 API 呼び出し / LLM トークンの技術上限
他タグとの関係#reliable (効率優先はリトライを削る) / #maintainable (最適化は読みにくくする)

2.5 #usable (使用性)

項目内容
一次定義 (arc42)エンドユーザ視点の使いやすさ。learnability, error prevention
bizlp 解釈経理担当者が直感的に使える UI / エラーメッセージが理解可能 / 入力ミスの未然防止
Must になるシーンUI / UX 改善案件 / 経理担当者の日次操作
他タグとの関係#secure (使いやすさは認可フローを軽くしたがる) / #safe (使いやすさは destructive 操作のガードを甘くしたがる)

2.6 #operable (運用性)

項目内容
一次定義 (arc42)運用者視点の運用容易性。monitorability, deployability, observability
bizlp 解釈CI/CD が安定して回る / clasp push でデプロイ完結 / ログで証跡追跡可能 / Properties 管理が容易 / LangGraph 自動化親和
Must になるシーンデプロイ自動化 / 監査証跡 / 障害対応フロー / 監査要件 (#suitable と組み合わせ)
他タグとの関係#efficient (詳細ロギングはオーバーヘッド) / #secure (運用容易性は権限を緩めたがる)

2.7 #suitable (適合性)

項目内容
一次定義 (arc42)要求機能のカバー度・基準適合
bizlp 解釈監査要件を満たす / 会計基準に適合 / bizlp 既存 ADR との整合 / 業界フレームワーク照合済 (informed synthesis)
Must になるシーン監査対応 / 法令対応 / 既存 ADR 改訂 / フレームワーク確立 (例: ADR-0050)
他タグとの関係#flexible (要求特化は汎用性を下げる) / #efficient (網羅性は処理量を増やす)

2.8 #secure (セキュリティ)

項目内容
一次定義 (arc42)認可・機密性・改ざん防止
bizlp 解釈scriptId が漏れない / scope 分離 (.clasp.dev.json / .clasp.prod.json) / 取引先名や金額の保護 / GitHub への機密混入防止
Must になるシーン認証・認可機能 / 機密データ取扱 / 監査関連 / Corporate × Critical 全般
他タグとの関係#usable (認可フローは使いやすさを犠牲に) / #operable (権限分離は運用工数増)

2.9 #safe (安全性)

項目内容
一次定義 (arc42)環境・人・財産への悪影響回避
bizlp 解釈本番データの意図せぬ書き換え防止 / 806_cleanup_empty_rows 等の destructive 操作のガード / 不可逆操作 (git push --forcerm -rf) の禁止
Must になるシーン本番 prod 関連処理 / destructive スクリプト / 不可逆操作 / Ops × Standard 以上
他タグとの関係#usable (安全装置は手順を増やす) / #efficient (確認ステップは時間がかかる)

3. Subsume パターン (頻出 10-15 件)

Q42 9 タグ完全固定の中で、具体的な bizlp 関心事を より広い概念に 帰属させる ルール。

3.1 subsume の意味

「A subsumes B」= A は B を包含する (A が上位)。Q42 9 タグは抽象的なので、 具体的な関心事を 9 タグのどれかに帰属させる必要がある。

3.2 頻出 subsume パターン

具体的関心事subsume 先補足
財務的コスト (人件費・SaaS 利用料)#reliable事業継続性に直結
LLM トークン月額が事業継続を圧迫#reliable規模次第、技術制約レベルなら #efficient
Time-to-market#reliable市場投入の確実性
GAS 6 分制限超過リスク#efficient技術リソース効率
UrlFetchApp quota#efficient技術リソース効率
Sheets セル数制限#efficient技術リソース効率
監査要件#suitable + #operable基準適合 + 証跡追跡可能
監査証跡の追跡可能性#operable運用観察可能性
AI Agent 解釈性#maintainableAI も保守者の一種
将来の経営層が学習可能#maintainable解釈可能性は保守性の上位概念
既存 ADR 整合性#suitablebizlp 要求への適合
業界フレームワーク照合済#suitable標準適合
マルチテナント化余地#flexibleスケーラビリティ
法令対応#suitable基準適合
デプロイ容易性#operable運用性そのもの
機密値保護 (scriptId 等)#secure機密性
不可逆操作禁止#safe破壊回避
戦略的整合性#suitable要求適合
K.O. の数値ベース閾値該当 Must 軸軸の bizlp 解釈に閾値を明記

3.3 subsume ルールの運用

  • 軸選定時、具体的関心事を 9 タグに帰属させる
  • 同じ関心事を複数案件で扱う場合、subsume 先を一貫させる
  • 上記の表に未収載のパターンは、半年振り返りで追加する

3.4 subsume できない関心事の扱い

万一 9 タグのどれにも帰属させられない関心事を発見した場合:

  1. まず本ファイルの 3.2 表を再確認
  2. 該当する Q42 タグの定義を本ファイル §2 で再確認
  3. それでも帰属困難なら、informed extension として #reliable のような 解釈拡張を検討 (新規 RQ で 3 モデル並列調査 → ADR-0050 v2)
  4. ad-hoc に新規軸を作るのは禁止 (Q42 完全固定の規約)

4. 重要度ラベル係数の根拠

4.1 係数値 (v1 暫定)

Must (K.O.)  ×2.0
High         ×1.0
Medium       ×0.5

4.2 なぜこの値か

  • Must vs High が ×2 倍差 で Must の優先度がはっきり
  • Medium ×0.5 で「参考扱い」を明確化
  • 案件間比較のため 正規化 (案件素点満点で割る) を組み合わせ

4.3 v1 暫定の意味

Synthesis 累計 20-30 件 or 半年経過時点で振り返り、ADR-0050 v2 で改訂検討:

  • Must が強すぎて他軸の評価が無効化されていないか
  • High と Medium の差 (×1.0 vs ×0.5) が判断に効いているか
  • 正規化スコアが案件間で比較可能になっているか

4.4 検討した他の選択肢

ADR-0050 RQ-052 議事メモで以下を検討:

  • 選択肢 A: Must ×2.0 / High ×1.5 / Medium ×1.0 — 差別化が緩やか
  • 選択肢 B: Must ×3.0 / High ×2.0 / Medium ×1.0 — Must が圧倒的
  • 選択肢 C (採用): Must ×2.0 / High ×1.0 / Medium ×0.5 — Medium が「参考扱い」
  • 選択肢 D: Must ×2.0 / Other ×1.0 — 単純化 (2 段階)、濃淡が表現しづらい

5. 省略軸 justification の理由カテゴリ (7 種)

採用軸 (3-5 個) 以外の省略軸 (4-6 個) の justification で使う標準化 カテゴリ。形骸化 (「無関係」テンプレ化) を防ぐため、必ず 7 種から選択する。

5.1 理由カテゴリ一覧

#カテゴリ該当例
1本案件のドメイン外UI 層案件で #reliable / backend 案件で #usable
2既存基盤でカバー済#secure → 既存 ITGC / #operable → 既存 CI/CD
3固定要件 / 法令で確定#flexible → 会計基準で固定
4破壊操作なし#safe → 受信のみで外部書き込みなし
5代替軸で吸収 (subsume 関係)#flexible#suitable に subsume
6影響軽微 (定量的閾値以下)パフォーマンス影響 1ms 未満等
7別案件で扱うUI 改善は別 PR で対応予定

5.2 Triage 別の補足粒度

Light:    省略軸 4-6 個を列挙、理由カテゴリのみ (1 行 / 軸)
Standard: 省略軸 4-6 個 × 理由カテゴリ + 一文補足 (1-2 行 / 軸)
Critical: 省略軸 4-6 個 × 理由カテゴリ + 詳細補足 (1 段落 / 軸)

5.3 形骸化を防ぐ仕組み

  • 7 種から選択を強制 (「無関係」と書く代わりにカテゴリから選ぶ)
  • 同じカテゴリが同案件で連続するのは違和感の兆候
  • 半年振り返りで「省略すべきでなかった軸」を発見したら anti_patterns.md に追記

6. LLM Critic Agent の System Prompt 詳細 (段階 7 実装用)

6.1 基本テンプレート

You are an architecture decision Critic for the bizlp Synthesis pipeline.

Your role: Given a Must Decision Driver (= K.O. criterion) and 3 candidate
options with their Advantages, determine which options satisfy the K.O.
criterion.

Strict rules:
1. Do NOT propose new options. Only evaluate the given ones.
2. Do NOT consider non-Must drivers. Focus exclusively on the Must driver.
3. For each option, output PASS or FAIL with a 1-sentence justification.
4. If the option's Advantages do not explicitly address the Must driver,
   output FAIL.
5. Cite the exact Advantage text you are evaluating against.
6. Flag any Advantages that conflict with the Must driver (FAIL with reason).

Output format (strict JSON):
{
  "evaluations": [
    {"option": "Claude", "ko_judgment": "PASS",
     "cited_advantage": "...", "reason": "..."},
    {"option": "Gemini", "ko_judgment": "FAIL",
     "cited_advantage": "...", "reason": "..."},
    {"option": "GPT", "ko_judgment": "FAIL",
     "cited_advantage": "...", "reason": "..."}
  ]
}

Do not output anything outside the JSON.

6.2 業界事例 (一次資料)

  • AutoGen (Wu et al. 2023, arXiv:2308.08155): GroupChatManager + Critic agent パターン。Critic system prompt verbatim:

    "Critic. Double check plan, claims, code from other agents and provide feedback. Check whether the plan includes adding verifiable info such as source URL."

  • Multi-Agent Debate (Du et al. 2023, arXiv:2305.14325): Society of Minds、複数モデルが相互批評
  • Self-Consistency (Wang et al. 2023, arXiv:2203.11171): 複数 reasoning path をサンプリングし多数決

6.3 失敗モード対策

失敗モード対策
Critic が yes-man になる別モデル使用 (Claude vs Gemini 等) / negative role 強制
Critic が過剰批判「Must driver に直接関わる点のみ」明示 / temperature 0.0-0.3
Multi-round 収束しないラウンド上限 2-3
Critic 自身の confirmation biasJSON 構造化、reasoning 必須
非決定性で再実行で結果違うSelf-Consistency (3 ラウンド多数決)

6.4 Critical 案件での Self-Consistency

// 擬似コード
const rounds = 3;
const results = await Promise.all(
  Array(rounds).fill(0).map(() => criticAgent.evaluate(input))
);
// 1 票でも fail なら fail 扱い (厳しめ)
const consensusKO = consolidateByMajority(results, { strictness: "any-fail" });

7. なぜ規約と教育を分離するか (Diátaxis 原則)

7.1 代表取締役氏の指摘

「規約に教育情報含めると規約の遵守率が下がると思うので、規約は規約で 教育情報は別ファイルにしたい」

7.2 Diátaxis フレームワーク

bizlp が docs/_internal/05_how-to/ で採用している分類体系:

カテゴリ内容本フレームワークでの該当
Reference (規約)"What" のみ、簡潔・規範的ADR-0050 / _meta/templates/synthesis.md
How-to guide"どうやるか" の手順synthesis_writing_guide.md
Explanation"なぜ" の設計根拠本ファイル / synthesis_anti_patterns.md
Tutorial"初めての人向け"(将来必要なら別途追加)

7.3 分離の効果

読者タイプ読むファイル
規約を確認したいだけADR-0050 のみ (264 行で完結)
初めて Synthesis を書くwriting_guide.md → ADR-0050
設計判断の根拠を知りたい本ファイル (rationale.md) → ADR-0050
自分の判断バイアスをチェックしたいanti_patterns.md (定期的に)
過去の判例を見たい実例集ハブ → 個別 Synthesis ファイル

混ぜると「すぐ規約を確認したい人」も「Why を理解したい人」も両方損する。


8. なぜ informed extension (独自合成) が legitimate か

8.1 二種類の「独自合成」

種類内容RQ-052 が問題視するか
ad-hoc invention (= 業界未照合の独自合成)業界調査なしに感覚で軸を作る❌ アンチパターン
informed extension業界フレームワークを基礎に、自社特色で拡張✅ 推奨される正攻法

8.2 informed extension の 3 つのテスト

  1. Pre-registration: 業界調査を結論より先に行ったか
  2. Explicit grounding: どの業界フレームワークを基礎に、どこを自社特色で 拡張したかを明示しているか
  3. Justification: 自社特色での拡張は、自社の識別可能な特徴に 紐付いているか

3 つすべて満たせば legitimate、どれか欠ければ ad-hoc invention に堕ちる。

8.3 業界フレームワーク自体が informed extension の積み重ね

  • ISO 25010 → arc42 Q42 9 タグへの圧縮 = informed extension
  • Nygard ADR + Zimmermann SOAD → MADR への統合 = informed extension
  • bizlp ADR-0020 (Triage) = Kruchten / Zimmermann / Bezos Type 1/2 の informed extension (代表取締役氏が既に実施済)

8.4 bizlp の主要な informed extension

  1. #reliable の事業継続性拡張 (代表取締役氏指摘):

    • 基礎: arc42 公式定義 (fault tolerance / availability)
    • 拡張: 財務基盤・LLM トークンコスト・Time-to-market を含む
    • Justification: 1 人法人 + AI Agent 構成、代表取締役の経営判断
  2. Triage × Scope 直交運用:

    • 基礎: ADR-0020 (Triage) + ADR-0049 (Scope) + GPT 提案
    • 拡張: 12 セルマトリクスで運用差別化
    • Justification: bizlp 既存資産の実運用化、AI Agent パイプライン分岐
  3. 案 C ハイブリッド構成:

    • 基礎: MADR + arc42 Q42 + WSM (Fishburn 1967) + CBA (Suhr 1999)
    • 拡張: 加重和 + K.O. の 2 段構成、Triage 連動運用差分
    • Justification: 代表取締役氏「組織意思決定インフラ構築」志向、ADR-0019/0020/0049

9. 数値スコアと CBA の関係 (上位/下位層の役割分担)

9.1 なぜ 2 段構成か

数値層 (加重和) と論理層 (K.O.) を 直列に並べる ことで:

  • 数値層: 機械集約可能、案件間比較可能、新規参加者の学習補助輪
  • 論理層: 二重カウント排除、Must driver の論理性を強制、説明責任を担保

両方とも単独では弱点があるが、組み合わせると弱点を相互補完できる。

9.2 矛盾時の裁定 (Triage 連動)

加重和首位案 ≠ K.O. 通過案 の場合:

Light:     K.O. 判定なし → 加重和最高を採択
Standard:  K.O. 通過案中で加重和最高 (K.O. 通過ゼロは段階 1 戻し)
Critical:  K.O. 絶対、通過案中で加重和タイブレーク

Critical では「数値で勝った案を K.O. で落とす」ことが頻発する想定。 これは normal、論理層の本領発揮。

9.3 数値層の長期廃止可能性 (案 B 移行)

組織成熟度が育てば数値層を廃止し、純粋 CBA (案 B) へ移行可能。 ADR-0050 §4.8 のトリガー条件を参照。


10. 参照

bizlp 内部

  • ADR-0050 (Synthesis 標準テンプレート) — 規約
  • synthesis_writing_guide.md — 手順
  • synthesis_anti_patterns.md — 誤り集
  • docs/_meta/templates/synthesis.md — Synthesis ひな形

RQ-052 成果物

  • RQ-052_mcda_for_adr_synthesis_synthesis.md — Synthesis 草案
  • RQ-052_mcda_for_adr_synthesis_stage3_preparation_memo.md — 議事メモ
  • RQ-052_mcda_for_adr_synthesis_result_{claude,gemini,gpt}.md — 3 モデル結果

業界フレームワーク (一次資料)