役割: DRP の検証層(第 7 層)のテストケース台帳。既存テスト資産を TC- 体系に写像し、新規系列(TC-U / TC-G / TC-E / TC-MK)を採番する。戦略・実行タイミングは テスト計画書採番: 既存系列(TC-01〜07 / TC-S01〜03 / TC-C01〜05)の定義場所は従来どおり test_cases.md(変更しない)。本書は新規系列の定義場所。SR / EDD / NFR への割当は各文書 frontmatter の verified-bySSoT(マトリクスの手書きはしない)。

1. 系列の全体像

系列定義場所実体自動化
TC-01〜07test_cases.mdTriage 判定 5 + Scoring 採点 2半自動(test-tc.mjs。ただし転写プロンプト陳腐化 → 分類検証の正は TC-G01)
TC-S01〜03prompts/03_socratic.md 末尾旧問診時代の Socratic ケース半自動(test-tc-socratic.mjs)。盲点検出(ADR-0071)対応の改訂は backlog(§4)
TC-C01〜05prompts/04_consistency.md 末尾Gate 2 Conflict / Supersede 判定半自動(test-tc-consistency.mjs
TC-U01〜07本書 §2.1vitest 単体(workerd プール)✅ 毎 PR
TC-G01〜04本書 §2.2golden eval(SSoT プロンプト直接ロード)✅ prompts 変更時 + 定期(TC-G04 のみ手動・§2.2 注記)
TC-E01〜03本書 §2.3e2e(mocked / contract / 実 LLM)✅ 毎 PR / 隔週
TC-MK01本書 §2.4マスキング検証❌ 未実装(planned)

2. 新規系列の定義

2.1 TC-U: vitest 単体(drp/test/

TCファイル検証内容
TC-U01smoke.test.tsworkerd vitest プールで TS module import / JSON パーサが動く(harness smoke)
TC-U02numbering_pure.test.tsADR 採番の純粋関数(4 桁 / 3 桁混在・次番号決定)
TC-U03perspective_selector.test.ts原稿シード決定的 PRNG による 3 観点選択の再現性
TC-U04crossval_loopbreaker.test.tsgoalpost→escalate / 持続却下→reject 温存 / round-cap / trailing-contiguous(非隣接却下除外)の境界
TC-U05shared_triage.test.tstriage 派生フィールド整形が handler / consumer で一致(drift 構造解消の回帰)
TC-U06session_watchdog.test.tsqueued 30 分 / running idle 20 分の stuck 判定純ロジック
TC-U07problem_space_decide.test.ts受付プリゲート二次判定の決定論(root 2 つ → root_multiple / 従属 issue は数えない / 行き先のない前提 → dangling_premise〔none・reference 空・new_ticket の ADR-0130 3 点欠落〕/ 逐語引用が本文に無い → INVALID / 改行跨ぎ引用の正規化一致 / 複合 reason)。判定は LLM でなくコード(ADR-0142)

2.2 TC-G: golden eval(prompts-eval/datasets/ + tools/

TCデータセットツールゲート性
TC-G01gate0-triage/golden.jsonl(26 ケース)tools/triage-eval/eval.ts(SSoT プロンプト直接ロード)FN=0 ブロッキング(ADR-0102)
TC-G02cross-validation/golden.jsonl(26 ケース)tools/crossval-eval/eval.ts--verify で多モデル多数決診断)FN=0(escalate / reject 境界)
TC-G03body-generation/golden.jsonl(現状 1 ケース)promptfooprompts/production/body-generation/promptfoo.yaml構造検証(ケース拡充は backlog)
TC-G04problem-space-pregate/golden.jsonl(36 ケース)tools/pregate-eval/eval-prod.ts(本番 prompt + decide を評価)FP 率 ≤ 30%(事前 K.O.)/ recall FN=0 / INVALID < 3(ADR-0142)。並列節境界 11 件の false positive を含む

TC-G04 の自動化(注記): 受付プリゲートの 2 プロンプトは promptfoo.yaml を持たないため、CI(prompt_eval.yml)の LLM 評価は skip される。golden eval は人間が Cloud Run gateway + Keychain MASTER key で手動実行する(eval-prod.ts・drp-ops Skill「golden eval」と同手順・エージェント環境からは gateway 不達)。CI で走るのは meta-lint / PII scan / threshold check のみ。決定論部分(root 数 / 行き先 / 逐語照合)は TC-U07 が毎 PR で自動カバーする。Phase A 実測 = FP 率 3.2% / recall 100% / precision 83.3%(tools/pregate-eval/RESULTS.md)。

2.3 TC-E: e2e(test/e2e/ + workflows)

TC実体実行タイミング
TC-E01mocked-route Playwright(toggle_test.mjs / reserve_test.mjs 等。全 API を page.route() でモック)毎 PR(ui-e2e job)
TC-E02mock drift gate(モック応答 ↔ src/contracts/chat_api_contract.ts の型突合)毎 PR(contract-check)
TC-E03実 LLM full-run(起案 → 全ゲート → 終端まで通し)契約/ハンドラ変更 PR 自動 + 隔週月曜 06:00 JST + workflow_dispatch

2.4 TC-MK: マスキング(未実装)

TC想定内容状態
TC-MK01litellm/masking.py の fail-fast 検証 — 機密パターン(取引先名・金額・scriptId・OAuth)の除去と、マスキング不能時に送信せず失敗すること未実装。機密マスキング要件の verified-by を充足するための planned ケース。実装は main 分担(LiteLLM 側のため sub では実装不可)

3. 割当の考え方(記録)

  • 本文生成・情報提供型ゲート(並列レビュー / Policy Alignment)は差戻し判定を持たないため、実 LLM full-run(TC-E03)での出力存在 + スキーマ検証を最低保証とし、品質は実起案モニタリングで補う。
  • 採番・PR 作成は純ロジック(TC-U02)+ full-run(TC-E03)の組合せ。
  • 非同期実行・進捗可観測性は watchdog 純ロジック(TC-U06)+ UI e2e(TC-E01 / TC-E02)+ full-run(TC-E03)。

4. 既知ギャップ(backlog)

  1. TC-S 系の陳腐化: 旧問診(差戻し型)時代のケースのまま。盲点検出エンジン(情報提供型)の期待値(findings スキーマ・決定性)への改訂が必要。
  2. TC-01〜07 の実行器: test-tc.mjs の転写プロンプトが 2026-05-12 のまま陳腐化(SSoT 読込化 or triage 部分退役は main 申し送り済・README §本番運用情報)。
  3. 情報提供型ゲートの品質 assertion: 並列レビュー / Policy Alignment の出力品質を機械検証する手段が未整備(実起案モニタリングのみ)。
  4. TC-G03 の単一ケース: 本文生成 golden が 1 ケースのみ。mode 別構造(Light / Standard / Critical)のカバレッジ拡充が必要。
  5. TC-MK01 未実装: §2.4。
  6. 受付プリゲートのノード統合テスト未整備: TC-U07 は決定論ロジック(problem_space_decide)を、TC-G04 は判定精度を検証するが、受付ノード(problem_space_pregate.ts)の統合挙動 — INVALID(逐語照合失敗)を差戻さず socratic へ通すこと・graph 分岐 OFF・差戻し回数の bounded rounds 通算 — の自動テストは無い。full-run e2e(TC-E03)と本番 20 run の人手確認で代替している。

変更履歴

日時変更
2026-06-05初版 — 既存テスト資産(vitest 6 / golden 3 datasets / e2e 2 層)を TC-U / TC-G / TC-E 系列に写像し、TC-MK01 を planned 採番。verified-by 未割当 SR の解消に使用(ADR-0117 Phase 2)
2026-06-18TC-U07(受付プリゲート二次判定の決定論)+ TC-G04(受付プリゲート golden eval・36 ケース)を採番。SR-012 の暫定割当(TC-E03 流用)を解消(ADR-0142)。TC-G04 は CI 自動評価対象外(手動)の旨を §2.2 に明記。§4 にノード統合テスト未整備(既知ギャップ 6)を追加