RQ-044 突合 (Synthesis): LLM プロンプトライフサイクル管理 — Claude / Gemini / GPT 3 モデル比較・bizlp 採択方針
位置付け: Claude / Gemini Deep Research / GPT-4o の RQ-044 3 回答を論点ごとに突き合わせ、bizlp 文脈での ADR 起草方針を整理する。
本ファイルは「ADR 起案準備資料」。正式採択判断は Decision Pipeline 経由で新規 ADR として行う。
- 突合対象:
RQ-044_result_claude.md/RQ-044_result_gemini.md/RQ-044_result_gpt.md- 起票日: 2026-05-15
0. TL;DR
- 3 モデル完全一致の核心: プロンプトは SE artifact / 6 段階状態遷移 / SemVer の MAJOR-MINOR-PATCH 定義 / Type 1(本番)のみ SemVer 適用 / Git + Promptfoo + GHA が最小ツール構成 / eval gate を PR 必須化 / LLM-as-Judge はマルチサンプル + 位置スワップ + ルーブリック
- 最大の対立点(bizlp ADR の主論点):
- Claude: 同一リポ(monorepo)推奨 — atomic 変更・コード同期が最優先
- Gemini: Polyrepo 必須 — 業務委託アクセス制御 + Cloudflare KV 動的ロードが不可欠
- GPT: モノレポ先行 → 要件に応じて Polyrepo 移行(段階的アプローチ)
- bizlp 採択方針(要約):
- リポジトリ: Monorepo 内
prompts/— 現状 1 人法人でアクセス制御不要。Jr. 参加・業務委託発生時に Polyrepo 移行を評価 - ランタイム: Cloudflare KV でプロンプト文字列を管理 — アプリ再デプロイ不要のロールバックを実現(Gemini の核心提案を取り込み)
- Observability: Langfuse Hobby(無料)→ 2 名体制で Core $29/月(GPT 推奨・$50 制約内)
- meta.yaml: GPT の
prompt.meta.yamlスキーマ(最も詳細)を採用
- リポジトリ: Monorepo 内
- 次工程: 本 synthesis を Decision Pipeline に投入 → プロンプトライフサイクル管理 ADR として正式起案
1. 完全一致部分(採用根拠)
3 モデルが独立に到達した一致点は、bizlp 採択根拠の中で最も強い。
1.1 「プロンプト = SE artifact」という前提(3 者一致)
| 観点 | 3 者共通の見解 |
|---|---|
| 学術的位置づけ | Promptware Engineering (arXiv:2503.02400) / Prompts Are Programs Too (arXiv:2409.12447) に代表される「プロンプトはソフトウェア工学の対象」という方向に収斂 |
| 実証的根拠 | 243 リポジトリ・1,262 変更の分析 (arXiv:2412.17298) で「コードと同じ進化パターンを示すが文書化率 21.9%」と貧弱さが指摘されている |
| 実務的位置づけ | LangSmith / Braintrust / Langfuse はいずれもコミット / タグ / 環境 / ロールバックを前提に設計済み |
→ bizlp ADR 採択: プロンプトはコードと同様に git 管理・レビュー・バージョニング・eval を義務化する。
1.2 状態遷移モデル(3 者実質一致)
| モデル | 提案した状態遷移 |
|---|---|
| Claude | Draft → Experimental → Review (eval gate) → Staging → Production → Deprecated → Archived |
| Gemini | Draft → Review/Evaluation → Staging → Production → Deprecated → Archived |
| GPT | Draft → Experimental → Review Candidate → Stable → Deprecated → Archived |
3 者の差は「Staging を明示するか」「Experimental と Review を分けるか」程度で、本質的に eval gate を通過した後に Production に遷移する 6 段階モデルでは一致。
→ bizlp ADR 採択(統合案):
draft → experiment → candidate → production → deprecated → archived
| 状態 | 説明 | 遷移条件 |
|---|---|---|
draft | ローカル / プレイグラウンドで試行中 | — |
experiment | CI 環境で eval 実行可能な状態 | golden.jsonl 初期構築完了 |
candidate | eval gate 通過・PR レビュー中 | unit eval 合格率 ≥ 静的閾値(プロンプトごとに meta.yaml に定義) |
production | 本番稼働 / Immutable | PR マージ + KV デプロイ完了 |
deprecated | 後継バージョンあり / 段階廃止予告 | MAJOR バンプ後の旧バージョン |
archived | 本番除去 / 監査証跡として保持 | deprecated から 90 日経過 |
1.3 Semantic Versioning の定義(3 者一致)
| バージョン | 3 者共通の定義 | 例 |
|---|---|---|
| MAJOR | 出力スキーマ破壊・必須入力変数追加・呼び出し側契約変更 | JSON → プレーンテキスト変換、基盤モデル変更 |
| MINOR | 後方互換の機能追加・Few-shot 追加・評価観点拡張 | 新しい審査観点追加、Few-shot 3 件→5 件 |
| PATCH | 表現修正・誤字・XML タグ整理・同世代モデル差し替え | 文言整理、句読点修正 |
Claude 独自追加:「eval で合格率が静的閾値を下回ったら PATCH でも MAJOR 扱いを強制」→ bizlp ADR に採用(プロンプトの非決定性を考慮した安全弁)。閾値はベースライン比の相対判定ではなく、プロンプトごとに meta.yaml の eval_pass_threshold フィールドに固定値(例: 0.85)を定義する static 方式を採用。
→ bizlp ADR 採択: Type 1(本番)のみ SemVer 適用。Type 3(調査用)は YYYYMMDD-topic 命名で十分。
1.4 ツールコア構成(3 者一致)
| ツール | 3 者共通の評価 |
|---|---|
| Git | Source of truth(異論なし) |
| Promptfoo(OSS) | 3 者全員が「CI eval の中核」として推奨 |
| GitHub Actions | PR eval 自動化に最適(異論なし) |
| LangSmith | LangChain 強結合・$39/seat — 1 人法人には過剰 |
| Braintrust | $249 フラット — 月 $50 制約に不適合(ただし Starter 無料枠は Gemini が評価) |
→ bizlp ADR 採択: Git + Promptfoo + GHA を必須コアとし、SaaS は無料枠のみ許容。
1.5 LLM-as-Judge 設計(3 者一致)
| バイアス | 3 者共通の対策 |
|---|---|
| 位置バイアス | A/B と B/A の両方を評価して平均化(位置スワップ) |
| 冗長性バイアス | 詳細な rubric で「文量でなく事実精度を見よ」と明示 |
| スタイルバイアス | スタイル無視を rubric に明記(Claude 報告: 支配的 0.76-0.92) |
| 自己類似バイアス | 判定モデルと被判定モデルを別系列に |
| 単発評価の信頼性 | 複数 trial の平均を使用(単発禁止) |
GPT 独自追加:「pairwise judge の非推移性(A>B・B>C だが A>C とは限らない)」(arXiv:2502.14074) → bizlp ADR に採用(judge 評価を絶対順位として扱わない注記)。
2. 対立・差異点と bizlp 向け採択方針
2.1 【最重要対立】Monorepo vs Polyrepo
これが本 ADR の核心的な判断事項。
各モデルの主張
| 観点 | Claude(同一リポ推奨) | Gemini(Polyrepo 必須) | GPT(段階的移行) |
|---|---|---|---|
| 推奨構成 | bizlp/prompts/ ディレクトリ | bizlp-app + bizlp-prompts 別リポ | Monorepo → 要件次第で移行 |
| 主な根拠 | Atomic 変更・コード同期崩れ防止・1 人法人は PdM 分離不要 | 業務委託アクセス制御・Cloudflare KV 動的ロードの必要性 | 変更コスト最小・将来の柔軟性確保 |
| アクセス制御 | CODEOWNERS で近似(不完全) | リポジトリ単位で完全分離 | 現状不要、必要時に分離 |
| CI/CD 複雑度 | 単一パイプライン | 2 リポジトリ間同期が必要 | 当初単純・後に複雑化 |
| ロールバック | 同一 PR で atomic revert | KV ポインタ書き換えで瞬時 | 両方の要素を段階的に実装 |
bizlp 固有コンテキスト評価
現状(2026-05 時点):
- 実働: 代表取締役 1 名(PdM = 開発者 = 意思決定者)
- Jr. 参加: D-180 以降(2026-11 目安)
- 業務委託アクセス制御要件: 現状なし(将来発生可能性あり)
- スタック: Cloudflare Workers + GAS + LangGraph TS
- 既存: PropertiesService Feature Flag 機構あり
採択方針: GPT の段階的アプローチ + Gemini の Cloudflare KV 動的ロードを組み合わせる
Phase 1(現在〜Jr. 参加前): Monorepo 内
prompts/ディレクトリ- アクセス制御不要のため Monorepo の「Atomic 変更」「同期崩れゼロ」のメリットを享受
- ただし Gemini 提案の Cloudflare KV 動的ロードは Phase 1 から実装(再デプロイ不要ロールバックは現時点でも価値大)
Phase 2(Jr. 参加後 / 業務委託要件発生時): Polyrepo 移行を評価
bizlp-promptsリポジトリに分離 + KV デプロイパイプライン継続- 移行トリガー: 「外部業務委託者に prompt のみ編集させる要件が発生した時点」
KV と Monorepo は並立する(Gemini 提案の本質):
Monorepo(git source of truth)
└── prompts/production/gate0/v1.1.0.md
↓ CI/CD(GHA)でマージ後自動プッシュ
Cloudflare KV(ランタイムキャッシュ)
└── bizlp:prompts:gate0:active → "v1.1.0"
└── bizlp:prompts:gate0:v1.0.0 → "<prompt text>"
└── bizlp:prompts:gate0:v1.1.0 → "<prompt text>"
↓ Workers が KV から動的ロード
Cloudflare Workers(アプリ再デプロイ不要)
2.2 Observability / 第 2 ツール層
| モデル | 推奨ツール | 理由 |
|---|---|---|
| Claude | Agenta OSS 自己ホスト(Jr. 参加後) | 完全無料・自前管理 |
| Gemini | Braintrust Starter(月 10,000 スコアまで無料) | eval UI が使いやすい |
| GPT | Langfuse Hobby → Core $29/月 | prompt 管理 + observability 統合・$50 制約内 |
採択方針: Langfuse(GPT 推奨)を採用
- Langfuse は prompt 管理・observability・A/B testing が統合(Braintrust は eval 特化で prompt 管理が薄い)
- Hobby 無料枠で開始 → 2 名体制で Core $29/月(月 $50 制約内)
- GitHub Integration で git に push すると Langfuse に自動同期できる(公式対応)
- Agenta OSS は自前ホスト運用コストが発生するため 1 人法人には不向き
2.3 prompt.meta.yaml スキーマ
GPT が最も詳細なスキーマを提示。Claude は meta.yaml に言及あるが項目定義が緩め。Gemini はスキーマ未定義。
採択方針: GPT の prompt.meta.yaml スキーマをベースに bizlp 向けに調整
# prompt.meta.yaml(Type 1 必須、Type 2 推奨)
id: gate0-policy-screen # 一意識別子(kebab-case)
owner: [email protected]
status: production # draft | experiment | candidate | production | deprecated | archived
semver: 1.1.0
model_family: claude-sonnet # major family 固定(マイナーバージョンは prompt 本文に記載)
model_pin: claude-sonnet-4-6 # 具体的 pin(Prompt Drift 対策)
inputs:
- name: application_json
type: string
description: ADR 申請 JSON
output_schema: ../schemas/gate0_output.json
eval_suite: ../../prompts-eval/datasets/gate0-policy-screen/golden.jsonl
eval_pass_threshold: 0.85 # static 方式(個別設定): この合格率を下回ったら merge block / MAJOR 強制
kv_key: bizlp:prompts:gate0-policy-screen # Cloudflare KV キー名
deprecation_at: null # deprecated 状態に入った日付(ISO 8601)
全体床値は .promptpolicy.yaml(リポジトリルート)で定義:
# .promptpolicy.yaml
global_min_threshold: 0.70 # 全 Type 1 プロンプトに適用される絶対下限
# 個別 eval_pass_threshold はこの値以上でなければならない
2.4 Bradley-Terry モデルと A/B 統計
Gemini のみが明示的に推奨(Elo レーティング相当の統計的強度評価)。Claude と GPT は power analysis・paired bootstrap を推奨。
採択方針: bizlp のトラフィック規模では offline eval 優先、Bradley-Terry は将来検討
- bizlp の本番トラフィック(ADR 審査: 推測 1 日数件〜数十件)では統計的有意差を出すのに数ヶ月かかる
- Offline eval(golden set 50-200 件)が主、本番 A/B は補助(3 者共通の現実認識)
- Bradley-Terry の計算実装コストに対してメリットが現時点では薄い → プロンプト数 20 本超・本番 A/B トラフィックが 1 日 100 件超の段階で再評価
3. 論文・知見のユニーク貢献
各モデルが独自に提示した重要知見をまとめる。
3.1 Claude 独自の知見
| 知見 | 内容 | ADR への影響 |
|---|---|---|
| Prompt Drift vs Regression の区別 | Drift = モデル側の暗黙更新による無編集での挙動変化 / Regression = 意図的編集による性能低下。対策が異なる | Weekly regression cron(Drift 監視)と PR eval gate(Regression 監視)を分離実装 |
| SPEAR 論文(CIDR 2026) | arXiv:2508.05012「prompts as first-class citizens」「versioned views」「adaptive refinement」の 3 層モデル | bizlp Gate 0-4 設計との親和性が高い |
| SemVer + eval 合格率を両方リリース条件に | PATCH でも静的閾値(eval_pass_threshold)を下回ったら MAJOR 強制 | ADR のリリースルールとして採用(static 方式:ベースライン比ではなく固定閾値で判定) |
| スタイルバイアスが支配的(0.76-0.92) | Soumik ら (arXiv:2604.23178) — 位置バイアスより重大 | Judge LLM への rubric で「フォーマット・文体を無視せよ」を必須記載 |
| プロンプト × モデルペアで逆転 | Ma ら (arXiv:2311.11123)「異なるプロンプト設計がモデル更新で optimal が逆転する」 | モデル更新時には全 Type 1 プロンプトの再回帰テストを必須化 |
3.2 Gemini 独自の知見
| 知見 | 内容 | ADR への影響 |
|---|---|---|
| Cloudflare KV 動的ロード | アプリ再デプロイ不要でプロンプト更新・ロールバックが可能 | Phase 1 から実装(bizlp Workers スタックと親和性大) |
| Active Pointer パターン | KV に v1.2.0・v1.2.1 両方保持し、「現在有効ポインタ」を別 KV キーで管理 | ロールバックを「ポインタ書き換えのみ」で完結する設計に採用 |
| LLM as Microservice パターン | プロンプト管理・モデル呼び出し・リトライ・出力パースを単一 Cloudflare Workers 関数にカプセル化 | GAS と Workers の呼び出し境界設計に活用 |
| Bradley-Terry モデル | プロンプト A/B の Elo 相当強度評価 | 将来(A/B トラフィック十分時)に採用検討 |
| 微細摂動で 30% 変動 | 文末空白・区切り文字・Few-shot 順序だけで最大 30% 性能差(arXiv:2406.06608) | PATCH バンプでも eval 実施を義務化する根拠として採用 |
| HAPO | 特定エラー修正が他タスク性能を下げる「最適化のジレンマ」に対するアプローチ | スライス単位の eval(全体平均ではなくカテゴリ別)を義務化する根拠 |
3.3 GPT 独自の知見
| 知見 | 内容 | ADR への影響 |
|---|---|---|
| Promptware Engineering(arXiv:2503.02400) | SE ライフサイクル(要件定義〜監視)の完全適用を体系化した最新 ACM 論文 | ADR の conceptual foundation として明示引用 |
| Prompts Are Programs Too(arXiv:2409.12447) | 「開発者がプロンプトを実際にどう扱っているか」の実態調査 | 現状の業界ギャップを ADR の動機として記述 |
| prompt.meta.yaml の詳細スキーマ | id / owner / status / semver / model_family / inputs / output_schema / eval_suite / deprecation_at | ADR の必須メタデータフォーマットとして採用 |
| pairwise judge の非推移性 | A>B・B>C だが A>C とは限らない (arXiv:2502.14074) | eval ランキングを絶対順位として扱わない注記を ADR に追加 |
| Langfuse GitHub Integration | git push で Langfuse に自動同期 | Monorepo + KV 構成での observability 追加コスト最小化 |
| shared/ ディレクトリ | 複数システム再利用プロンプトを集約(コピペ禁止) | GAS と Workers 両方で使う共通 prompt の管理方針 |
4. bizlp ADR 起草のための決定事項整理
ADR として確定すべき判断を以下に整理する(Decision Pipeline 投入前の自己整理)。
4.1 確定できる事項(3 者合意 + bizlp 文脈で迷いなし)
| # | 決定事項 | 採択内容 |
|---|---|---|
| D1 | プロンプトの分類(Tier) | Type 1: 本番 LLM / Type 2: Agent templates / Type 3: 調査 / Type 4: 生成中間物(gitignore) |
| D2 | SemVer 適用範囲 | Type 1 のみ厳格 SemVer。Type 2 は v1.14 流。Type 3 は YYYYMMDD-topic |
| D3 | 状態遷移 | draft → experiment → candidate → production → deprecated → archived |
| D4 | Eval CI | Promptfoo + GHA。prompts/production/** への PR 時に必須実行。合格率が meta.yaml の eval_pass_threshold(固定値)を下回ったら merge block(static 方式)。全体床値 global_min_threshold: 0.70 を .promptpolicy.yaml で定義 |
| D5 | LLM-as-Judge 設計 | 位置スワップ + マルチサンプル + rubric(スタイルバイアス無視明示) + 別系列モデル。pairwise 結果を絶対順位として扱わない |
| D6 | meta.yaml スキーマ | GPT 案ベース(id / owner / status / semver / model_pin / inputs / output_schema / eval_suite / eval_pass_threshold / kv_key / deprecation_at) |
| D7 | モデル Pin | model_pin を meta.yaml に必須化。Prompt Drift 防止の基本手段 |
| D8 | Immutability | production に入ったバージョンは直接変更禁止。変更は新バージョンの PR 経由のみ |
| D9 | golden.jsonl | Type 1 各プロンプトに prompts-eval/datasets/<name>/golden.jsonl を必須配置。最低 20 件 |
| D10 | ロールバック | Cloudflare KV の Active Pointer パターン。ポインタ書き換えのみで 5 分以内復旧 |
| D15 | eval 境界(LangGraph) | PR 時:ノード単体 eval(高速・merge block 判定用)。週次 cron:パイプライン end-to-end eval(品質俯瞰)の 2 層構成 |
| D16 | GAS / KV 役割分担 | Workers 用プロンプト → Cloudflare KV(CI が自動プッシュ)。GAS 側 LLM 呼び出しが発生した場合は Workers KV を UrlFetchApp 経由で参照。git が唯一の source of truth、KV は ランタイムキャッシュ |
| D17 | 週次 regression cron | GHA cron(毎週月曜 0:00 JST)で全 Type 1 を golden.jsonl に対して実行。閾値割れで GitHub Issue 自動起票。golden.jsonl が各プロンプト 20 件以上そろった段階で有効化(段階的導入) |
4.2 Phase 1 で決定・Phase 2 で再評価する事項
| # | 決定事項 | Phase 1 採択 | Phase 2 再評価トリガー |
|---|---|---|---|
| D11 | リポジトリ構成 | Monorepo 内 prompts/ | 外部業務委託者に prompt 編集権限を付与する要件発生時 |
| D12 | Observability ツール | Langfuse Hobby(無料) | 2 名体制以降 → Core $29/月 |
| D13 | A/B 統計手法 | offline eval(golden set 主体)+ 手動比較 | 本番トラフィック 1 日 100 件超 → Bradley-Terry 導入 |
| D14 | Type 2 の SemVer | 不要(Claude Code テンプレは git コミット追跡のみ) | Jr. 参加後・Type 2 が 20 本超えたら再評価 |
4.3 ADR 本体で定義すべき bizlp 固有の項目
- Gate 0-4 それぞれのプロンプト名・KV キー名の命名規約(例:
bizlp:prompts:gate{N}:{name}:active) - GAS 側と Cloudflare KV の役割分担(D16 採択: git = source of truth、KV = ランタイムキャッシュ。GAS 側 LLM 呼び出し発生時は UrlFetchApp 経由で KV 参照)✅ 方針確定
- モデル更新通知時のアクション(Anthropic release note 購読 →
workflow_dispatchで全 Type 1 regression を即時実行) - 週次 regression cron のスケジュール(D17 採択: 毎週月曜 0:00 JST、golden.jsonl 20 件以上充実後に有効化)✅ 方針確定
- golden.jsonl の構造仕様(input / expected / metadata / slice_tags フィールド定義)
- LangGraph ノードの eval 境界(D15 採択: PR 時 = ノード単体 eval、週次 cron = E2E eval の 2 層構成)✅ 方針確定
- eval_pass_threshold の個別値設定ガイド(Gate 重要度別の推奨閾値レンジ。例: Gate 0 ≥ 0.90 / Gate 3 ≥ 0.75)
.promptpolicy.yamlのスキーマ定義(D4 採択: global_min_threshold = 0.70)✅ 方針確定
5. 推奨ディレクトリ構成(統合案)
bizlp/ # 既存モノリポ内
├── prompts/
│ ├── production/ # Type 1: 本番 LLM パイプライン
│ │ ├── gate0-policy-screen/
│ │ │ ├── v1.0.0.md # Immutable(内容変更禁止)
│ │ │ ├── v1.1.0.md
│ │ │ └── prompt.meta.yaml # id / owner / status / semver / model_pin 等
│ │ └── gate1-xxx/
│ ├── agents/ # Type 2: Claude Code 向けテンプレート
│ │ ├── spec_creator_v1.14.md
│ │ └── ...
│ ├── research/ # Type 3: 使い捨て調査(日付+タイトル命名)
│ │ ├── 2026-04-12_deep_research_xxx.md
│ │ └── ...
│ └── shared/ # 複数システム再利用(コピペ禁止)
│ └── account_classification_prefix.md
├── prompts-eval/ # Eval datasets & evaluators
│ ├── datasets/
│ │ └── gate0-policy-screen/
│ │ └── golden.jsonl # 最低 20 件
│ ├── schemas/
│ │ └── gate0_output.json # JSON Schema
│ └── evaluators/
│ └── gate0-policy-screen.ts # Promptfoo config or custom TS eval
├── .github/workflows/
│ ├── prompt_eval.yml # PR 時: lint → unit eval(static 閾値 block)→ cost check
│ └── prompt_regression_cron.yml # 週次(月曜 0:00 JST): 全 Type 1 E2E eval → 閾値割れで Issue 起票
├── .promptpolicy.yaml # global_min_threshold: 0.70
└── .gitignore
└── prompts/generated/ # Type 4: 生成中間物(バージョニング不要)
6. 参考文献(3 モデル横断で重要度が高いもの)
3 モデル共通引用(最高信頼度)
- Gu et al. (2024). "A Survey on LLM-as-a-Judge." arXiv:2411.15594
- Schroeder & Wood-Doughty (2024). "Can You Trust LLM Judgments?" arXiv:2412.12509
- Semantic Versioning 2.0.0. https://semver.org/
2 モデル以上が引用
- OpenAI. "Evaluation best practices." https://developers.openai.com/api/docs/guides/evaluation-best-practices
- Braintrust. "Best prompt versioning tools 2025." https://www.braintrust.dev/articles/best-prompt-versioning-tools-2025
- LangSmith. "Manage prompts." https://docs.langchain.com/langsmith/manage-prompts
各モデルの独自重要文献
Claude 独自:
- Ma et al. (2023). arXiv:2311.11123 — プロンプト × モデルバージョン回帰テスト
- SPEAR (2025). arXiv:2508.05012 — prompts as first-class citizens(CIDR 2026)
- Soumik (2026). arXiv:2604.23178 — スタイルバイアス 0.76-0.92
Gemini 独自:
- arXiv:2406.06608 — 微細摂動で 30% 変動
- arXiv:2506.10095 — SBERT による prompt drift 検知
- HAPO (arXiv:2601.02683) — 最適化のジレンマへの対処
GPT 独自:
- Chen et al. (2026). arXiv:2503.02400 — Promptware Engineering(最重要新論文)
- Liang et al. (2025). arXiv:2409.12447 — Prompts Are Programs Too
- Xu et al. (2025). arXiv:2502.14074 — LLM-as-Judge の非推移性
7. 次工程
本 synthesis を Decision Pipeline(ADR Quality Review Gate 0-4)に投入
- Gate 0: Policy Alignment(既存 ADR との整合)
- Gate 1: Context Quality(RQ-044 根拠の充足性確認)
- Gate 2: Option Analysis(Monorepo vs Polyrepo の費用対効果算定)
- Gate 3: Consequence Analysis(KV 動的ロード実装の工数見積もり)
- Gate 4: Human Review(代表取締役による Phase 1/2 トリガー条件の最終確認)
ADR 仮題(案): 「LLM プロンプトのライフサイクル管理ポリシー — Tier 別 SemVer + Cloudflare KV 動的ロード + Promptfoo eval CI の採択」
ADR 番号: 起草前に
docs/adr/の連番を確認して採番(grep "^# ADR-" docs/adr/*.md | tail -5で確認)