型付き辺: 出 4 / 入 0
ADR-0073: Gate 0 Triage Seed 固定再現性 回帰テスト
- Status: Proposed
- Mode: Standard
- Kruchten Type: Existence/Property
- Scope: platform
- Implementation Status: Not Started
- 起案者: [email protected]
- 起案日時 (JST): 2026-05-26 21:32
- 承認日時 (JST): -
- Deciders: [email protected] (単独)
コンテキスト
1.1 背景 (Background)
ADR-0056 は Gate 0 Triage に seed: 42 / temperature: 0.2 を設定し、ADR worthy 判定の再現性を確保した (Phase 3, PR #1009)。§6.5 検証手段 2 で「golden.jsonl で T=0 工程の再現性を回帰テスト」を計画していたが、未実装のまま残置されている。
1.2 現状 (Current State / As-Is)
- Anthropic は 2025-06〜2026-05 の期間に Claude Sonnet を 3 回メジャー更新 (3.5 v2 → 4.5 → 4.6)。各更新で seed 固定出力が変化する可能性がある
- 現在の Gate 0 は月 5 件の ADR を処理
- 過去に明確な drift 発生は未計測 (本 ADR が計測の出発点)
1.3 課題 (Problem)
- ADR-0056 §6.5 で計画された回帰テストが未実装で、モデル更新時の Gate 0 判定 drift を検出できない
- 1 件でも mode 誤判定 (Light→Standard 等) があると Pipeline 全体のコスト・処理時間に影響
- drift が蓄積するまで気づけない
1.4 制約・要件 (Constraints & Requirements)
- ADR-0056 の
seed: 42/temperature: 0.2設定を前提とする - CI 実行時間を過度に増やさない (golden.jsonl 10 件上限推奨)
- モデル更新は不可避であり、判定変化が必ずしもバグではないため CI は WARN とし FAIL にしない
- golden 維持コストは年 1 人日未満に抑える
1.5 目標 (Goals / To-Be)
Gate 0 Triage 専用の回帰テストを整備し、モデル更新時の判定 drift を CI 上で早期に WARN として可視化する。Non-Goals: Gate 1 以降の再現性テスト、自動 golden 更新。
決定
prompts-eval/datasets/gate0-triage/golden.jsonl に 5-10 件の入力→期待出力ペアを定義し、seed=42 で Gate 0 を実行 → mode 完全一致 + reason 類似度 (cosine ≥ 0.8) で判定する回帰テストスクリプトを実装する。CI には WARN レベルで組込み、WARN 発生時は人間が golden 更新 or mode 変化妥当性をレビューする運用とする。
判断基準 (Decision Drivers)
3.1 評価軸 (Q42 9 タグから 3-5 個選定)
| # | 軸 | 重要度 (係数) | 案件特有の解釈 |
|---|---|---|---|
| 1 | #reliable | [Must] (×2.0) | Gate 0 判定 drift を検出できる信頼性 |
| 2 | #operable | [High] (×1.0) | CI 運用負荷 (WARN 対応・golden 更新頻度) |
| 3 | #maintainable | [High] (×1.0) | golden.jsonl のメンテナンス容易性 |
| 4 | #efficient | [Medium] (×0.5) | CI 実行時間・初期実装工数 |
K.O. criterion: Must 軸 (#reliable) の score < 3 は不採用。
3.2 評価軸 × 案スコア表
| 軸 | 係数 | 採択案 (WARN 方式) | 案 A (テストなし) | 案 B (厳密 FAIL) |
|---|---|---|---|---|
#reliable | 2.0 | 4 | 1 | 5 |
#operable | 1.0 | 4 | 5 | 1 |
#maintainable | 1.0 | 4 | 3 | 2 |
#efficient | 0.5 | 4 | 5 | 2 |
| 加重和 (正規化) | 0.800 | 0.522 | 0.633 | |
| K.O. 通過 (Must ≥3) | ✓ | ❌ | ✓ |
検討した代替案 (Alternatives Considered)
- 案 A: テストなし (現状維持) — 不採用理由: ADR-0056 §6.5 の計画未達。モデル更新時の判定変化が検出されず drift が蓄積するまで気づけない。
#reliableで K.O.。 - 案 B: 厳密 FAIL (完全一致必須) — 不採用理由: モデル更新のたびに CI が壊れ、golden.jsonl の更新が頻発。年 3 回のモデル更新 × 毎回 golden 全件再評価で運用負荷過大。
影響 (Consequences)
5.1 正の影響 (Good)
- モデル更新時の Gate 0 判定 drift を早期検出できる
- golden.jsonl がドキュメントとしても機能 (「この入力にはこの判定が正解」の定義)
- ADR-0056 §6.5 の計画達成
5.2 負の影響 (Bad)
- golden.jsonl のメンテナンスコスト (モデル更新時に review + 必要なら update、年 0.9 人日想定)
- 初期実装で 1.5 人日が必要
5.3 中立・トレードオフ (Neutral / Trade-offs)
- provider が seed パラメータの挙動を変更した場合、WARN が常態化する可能性 → §撤退条件で対応
- golden.jsonl の件数が多すぎると CI 実行時間増加 → 10 件上限推奨
- モデル固有の mode 境界値 (Light/Standard 判定の閾値) 変化は mode 不一致として検出される
人的ステークホルダー:
- 代表取締役 (Pipeline オーナー): WARN 発生時の golden 更新判断
- Jr 開発者 (2026-10): モデル更新 PR 作成時の回帰テスト確認
コスト試算
| 項目 | 工数 |
|---|---|
| golden.jsonl 5-10 件作成 (既存 ADR draft から選定・期待出力記録) | 0.5 人日 |
| 回帰テストスクリプト実装 (seed=42 実行 + golden 比較) | 0.5 人日 |
| CI 組込み (GitHub Actions workflow) | 0.2 人日 |
| 初回 WARN チューニング (閾値調整) | 0.3 人日 |
| 初期実装合計 | 1.5 人日 |
| モデル更新時の golden レビュー + 更新 | 0.3 人日/回 (年 3 回想定 = 0.9 人日/年) |
完了条件 (Definition of Done)
prompts-eval/datasets/gate0-triage/golden.jsonlに Light/Standard/Critical 各 2 件以上、計 6-10 件が定義済- 回帰テストスクリプトが seed=42 で Gate 0 を実行し、golden との mode 一致率を出力
- GitHub Actions CI に組込み完了 (PR トリガで自動実行)
- 初回実行で全件 mode 一致 (WARN ゼロ) を確認
- 意図的に golden を 1 件変更して WARN が発生することを確認 (偽陰性テスト)
Confirmation (準拠確認 / Fitness Function)
- 検証手段: GitHub Actions workflow が PR トリガで
prompts-eval/datasets/gate0-triage/golden.jsonlに対し seed=42 で Gate 0 Triage を実行し、mode 完全一致 + reason cosine similarity ≥ 0.8 を評価。不一致時は WARN ラベルを PR にコメント。 - 実行頻度: PR 作成・更新時 (自動)、およびモデル更新 PR 時に手動再実行。
- 違反時の対応: WARN 発生時は起案者 (代表取締役) が golden を更新するか、mode 変化が妥当か人間レビューを行う。WARN 率が 3 ヶ月連続 50% 超の場合は撤退条件発動。
撤退条件 (Rollback Plan)
- WARN 率が 3 ヶ月連続 50% 超なら seed 固定の前提自体を ADR-0056 改訂で見直し
- golden.jsonl が 6 ヶ月更新されていなければ obsolete 判定 → テスト無効化 (CI から除外)
- スクリプト廃止手順: 1) CI workflow から job 削除、2) golden.jsonl アーカイブ、3) ADR-0056 §6.5 に廃止追記
- Review After: 2026-11-26 (6 ヶ月後)
参照 (References)
- 関連 ADR: ADR-0056 (Gate 0 Triage seed 固定, Phase 3, PR #1009)
- 関連 PR/Issue: PR #1009 (要追記: 本 ADR 実装 PR)
- 外部資料: -