役割: DRP のテスト戦略の正典 — どの文書層の変更を、どの種別のテストで、いつ検証するか。個々のテストケース(TC-)の定義は テスト設計書トレーサビリティ: SR/EDD ↔ TC の対応は各文書 frontmatter の verified-bySSoT。マトリクスは CI が生成する(手書き・コミット禁止 / id_conventions.md §2.4)。

1. テスト層 × 変更影響分類(L1〜L4)

改修の影響分類(id_conventions.md §3)ごとに再実行するテスト層:

変更分類再実行するテスト層実体
L1(ビジネス要件)受入 — Confirmation KPIADR-0117 等の §Confirmation 計測(escalate 終端率・差戻し率トレンド: GET /audit/runs/summary
L2(システム要件)システムテストTC- 手動/半自動ケース(test_cases.md 系)+ golden eval 全件
L3(外部設計 = 契約)契約テストgolden eval(FN=0 ブロッキング)+ OpenAPI diff(CI 化予定)+ chat API contract-check + プロンプト仕様 ↔ nodes 突合(CI 化予定)
L4(内部設計のみ)単体vitest(workerd プール)pass の確認のみ

2. テスト種別カタログ

種別実体実行ゲート性
単体(vitest)drp/test/*.test.ts(6 ファイル)pnpm --filter drp run test・毎 PR(path filter)CI 必須
契約 — golden evalprompts-eval/datasets/{gate0-triage, cross-validation, body-generation}/golden.jsonl + tools/triage-eval / tools/crossval-evalprompt_eval.yml(prompts/production 変更時)+ prompt_regression_cron.yml(定期)triage FN=0 はブロッキング
契約 — API 型src/contracts/chat_api_contract.ts + mock drift gate(type-check:e2e毎 PRCI 必須
e2e — mocked-route UItest/e2e/(Playwright、全 API モックで決定論的)pnpm run test:e2e:ui・毎 PR(ui-e2e job)CI 必須
e2e — 実 LLM full-rundrp-real-e2e.yml契約/ハンドラ変更 PR で自動 + 隔週月曜 06:00 JST + workflow_dispatch定期保証
システム — TC 手動系test_cases.md(TC-01〜07 / TC-S / TC-C)プロンプト・ゲート判定変更時に該当系列を実行変更時必須
基盤検証drp-graph-check.yml(mermaid グラフ整合)毎 PRCI 必須

3. 方針

  1. FN=0 はブロッキング: 「記録に値する起案を誤って捨てない」golden eval(26 ケース)が落ちたらマージ不可。閾値の緩和・ケース削除は不可(CLAUDE.md「既存テストの skip / 削除禁止」)。
  2. 差戻し型ゲートはテスト必須・情報提供型は実起案モニタリング許容: 止めるゲート(0 / 4 / CV / 2)は自動テストで判定境界を固定する。助言のみのゲート(1 / 3 / Policy)は出力スキーマの存在検証 + 実起案モニタリングで足りる(品質 assertion の整備は backlog。テスト設計書 §4)。
  3. 転写コピーを正としない: test-tc*.mjs のスクリプト内転写プロンプトは陳腐化している。分類検証の正は SSoT を直接ロードする golden eval。
  4. 新規ゲート・新規契約には同一 PR で verified-by を割当: テスト未整備のまま SR/EDD を増やさない(未整備の場合も planned TC を採番し状態を明示する)。

4. 内容整合指標の CI 化(main 申し送り)

ADR-0117 §Confirmation の Phase 2 完了判定 2 指標。文書側は突合可能な構造で整備済み:

指標突合対象(文書側)突合対象(実装側)CI 化
① OpenAPI ↔ 実 API レスポンス型openapi.yaml(唯一の機械可読定義)src/contracts/chat_api_contract.ts / 実レスポンス型main 分担
② プロンプト仕様 ↔ nodes 使用プロンプトprompt_io_contracts.md §2 表 + 各 output_schema.jsonsrc/nodes/*.ts の loadPrompt/inline 経路main 分担

変更履歴

日時変更
2026-06-05初版 — CLAUDE.md「変更時テスト」表の DRP 部分を一般化し、L1〜L4 × テスト層の戦略を定義(ADR-0117 Phase 2)