最終更新: 2026/06/22 18:56
DRP アーキテクチャ図
役割: DRP の外部俯瞰図(Container / Deployment)と 1 audit の時系列図(Sequence)を収録する。内部実装ファイルの詳細は 内部実装マップ、Pipeline session の状態遷移は 状態遷移仕様、外部接続の詳細は EDD-005 外部 I/F 一覧。
1. Container / Deployment 図(システム俯瞰)
外部依存・配置先・データ flow を 1 画面で俯瞰。
flowchart TB
User([👤 起案者
社内 / 業務委託 / 代表取締役])
Repr([👤 代表取締役 代表取締役
Accepted/Superseded 権限])
subgraph CF["☁️ Cloudflare Edge"]
WebUI[Hono Web UI
public/chat.html]
Worker[Worker
src/index.ts]
DO[(Durable Objects
SOCRATIC_SESSIONS
PIPELINE_SESSIONS
ADR-0066 実装済)]
KV[(KV
DRAFTS_KV
PROMPTS_KV)]
Graph[LangGraph StateGraph
src/graph.ts]
end
subgraph GCP["🌩 GCP Cloud Run"]
LiteLLM[LiteLLM Gateway
+ masking.py]
SM[(Secret Manager
API keys)]
end
subgraph LLMs["🤖 LLM Providers"]
Claude[Anthropic
Claude Opus + Sonnet]
Gemini[Google Vertex AI
Gemini Flash + Pro]
OpenAI[OpenAI
o3 reasoning]
end
subgraph GH["🐙 GitHub"]
GHA[GitHub Actions
採番 + PR 作成]
Repo[bizlp-gas-accounting
docs/adr/]
end
User --> WebUI
WebUI --> Worker
Worker --> DO
Worker --> KV
Worker --> Graph
Graph --> LiteLLM
LiteLLM --> SM
LiteLLM --> Claude
LiteLLM --> Gemini
LiteLLM --> OpenAI
Worker -->|合格時 webhook| GHA
GHA --> Repo
Repo -.PR.-> Repr
Repr -.adr-kit lint + Accepted.-> Repo
2. Sequence 図(1 audit の時系列)
POST /chat/start から PR 作成まで、各 Gate の順序と LLM 呼び出しを時系列で示す。
sequenceDiagram
autonumber
participant U as 起案者
participant W as Web UI
(chat.html)
participant H as Hono Worker
(src/index.ts)
participant G as LangGraph
(buildGraph)
participant L as LiteLLM
Gateway
participant GH as GitHub
Actions
U->>W: 起案フォーム submit
W->>H: POST /chat/start
H->>G: graph.invoke(state)
G->>L: Gate 0 Triage (gemini-flash)
L-->>G: { needsAdr, mode }
Note over G: needsAdr=false → END (差戻し)
G->>L: 受付プリゲート 一次 (gemini-flash, 属性分岐シグナル抽出)
L-->>G: { 塊複数の疑い? }
Note over G: 疑いありのときのみ二次を呼ぶ
G->>L: 受付プリゲート 二次 (claude-sonnet, 主張グラフへ構造化分解)
L-->>G: { rejected?, reasons[], evidence(逐語引用) }
Note over G: 塊の混在/対症療法/行き先なし前提 → END (差戻し・ADR-0142) / 判定は決定論コード・INVALID は socratic へ
G->>L: Gate 1 盲点検出 (claude-sonnet, DA+PM並列→Judge)
L-->>G: { socraticPass:true, blindSpotFindings[] }
Note over G: ADR-0071 情報提供型・差戻ししない (findings は PR body へ) / 視点は原稿シードで決定的 (Part3)
G->>L: Body generation (claude-opus)
L-->>G: adrBody (Markdown)
G->>L: Gate 4 Scoring (claude-opus + thinking)
L-->>G: { score, weakest_items }
Note over G: score < threshold → END (差戻し)
G->>L: Cross-Validation 盲点×Must軸 (claude-opus, ライフサイクル整合バー)
L-->>G: { verdicts[], undermines? }
Note over G: critical 盲点×Must×undermines → END (差戻し)
Note over G: ただし trailing 連続却下で盲点が「移動」(goalpost) or 連続却下が round-cap(既定3) 到達なら escalate → 自動 reject せず PR 起票 (rejected=false) + 本文に残余リスク節付与 (Part4 / ADR-0109)。人間の merge=受理 / close=却下 が終端 (同一盲点の持続却下は cap 優先で reject 温存 = FN=0)
G->>L: Gate 2 Consistency (claude-opus)
L-->>G: { verdict, conflict? }
Note over G: CONFLICT + supersede 宣言なし → END
par 3 vendor 並列
G->>L: Gate 3 Gemini Pro
G->>L: Gate 3 Claude Opus
G->>L: Gate 3 GPT o3
end
L-->>G: parallel review annotations
G->>L: Policy alignment (claude-opus)
L-->>G: { priority_alignment, accepted_risks }
G->>L: Slug (gemini-flash)
L-->>G: { slug }
G->>GH: Numbering (api.github.com で次 ADR-NNNN 採番)
GH-->>G: { number }
G->>GH: webhook (PR 作成)
GH-->>U: PR URL (Status: Proposed)
変更履歴
| 日時 | 変更 |
|---|---|
| 2026-06-16 | ② 受付プリゲート(Gate 0a・ADR-0142)を Sequence 図に追加 — Triage 後・Gate 1 前に一次(gemini-flash 属性分岐シグナル)→二次(claude-sonnet 主張グラフ分解)の 2 段判定と差戻し分岐を図示。本番稼働 2026-06-15 を反映 |
| 2026-06-07 | 初版 — README §8.1 から移植(経緯: ADR-0117) |