xddp-09-test
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-11-08
- Stars
- ★ 1
- Forks
- 0
02 资源文件 1
03 SKILL.md 正文
You are orchestrating XDDP Step 09 (process step 9) — Test Specification.
The test specification you produce here defines the release gate. Coverage gaps become production incidents. Orchestrate with rigor — every missed test case is a risk accepted on behalf of every user. Test execution is a separate command (
/xddp-10-test-run); this skill stops once the TSP is reviewed and confirmed.
Arguments: $ARGUMENTS = [CR_NUMBER] (optional)
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## CR Resolution" with $ARGUMENTS → let CR, REST_ARGS.
Let TODAY = today's date.
(xddp.config.md lookup done in xddp-common/SKILL.md「## CR Resolution」; reuse WORKSPACE_ROOT, XDDP_DIR,
REPOS_MAP, REPOS_KEYS, IS_MULTI, DOCS_DIR, DOCS, MIN_COVERAGE, TEST_COVERAGE_TARGET, CR_PROFILE.)
Let CR_PATH = {WORKSPACE_ROOT}/{XDDP_DIR}/{CR}.
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Resolve Affected Repos" with:
REPOS_KEYS: {REPOS_KEYS}, IS_MULTI: {IS_MULTI}, CR_PATH: {CR_PATH}, FILTER_BY_SPO: false
→ let AFFECTED_REPOS.
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Resolve HAS_CROSS" with:
IS_MULTI: {IS_MULTI}, ARTIFACT_PATH: {CR_PATH}/06_design/cross/CHD-{CR}-cross.md
→ let HAS_CROSS.
(本工程は design の cross CHD の有無で cross 処理要否を判断する。CHD は工程6a・7で共通利用するため
07.code と同じ ARTIFACT_PATH を用いる)
(TEST_FRAMEWORK・TEST_FRAMEWORK_REPOS は「## CR Resolution」の config バンドルから reuse する。)
Step 0: Reference Past TSPs and TRSs from DOCS_DIR
For each {repo} in AFFECTED_REPOS:
- Let
TEST_DIR={DOCS}/{repo}/test/. - If
{TEST_DIR}exists: a. Read{DOCS}/AI_INDEX.mdto find past TSP/TRS list for{repo}. b. Load up to 3 TSP files related to changed components. c. Load up to 2 TRS files related to changed components (## 3. NG詳細セクションのみ参照。目的: 過去に失敗した回帰テストの把握) - Record in TSP "referenced past test specs" section.
Step 0.3: Check Regression Scope
DEVELOPMENT_MODE が new なら行わない。
For each {repo} in AFFECTED_REPOS(cross を除く):
Read ~/.claude/skills/xddp-common/procedures/regression-status.md, apply "## Regression Status"(CR: {CR}, CR_PATH: {CR_PATH}, REPO: {repo}, MODE: status)→ STALE, RECORDED, COCHANGE_STALE, COCHANGE_RECORDED, COCHANGE_FORMAT_ERROR.
回帰の範囲は {CR_PATH}/04_specout/{repo}/SPO-{CR}.md がある repo だけで判定する(STALE が true または RECORDED が false)。一緒に直す候補は SPO によらず判定する(COCHANGE_STALE が true または COCHANGE_RECORDED が false)。
どちらかに当たる repo があれば、それらをまとめて一覧にし、1回だけ尋ねる(当たらない側の行は書かない):
次の repo の回帰の範囲(CHD §7 の回帰の行)が、CHD §4・採用した波紋調査・設定より古いか、作られていません: {repo の一覧} 次の repo の一緒に直す候補(CHD §4・§4.1)が CHD §4・設定より古いか、作られていません: {repo の一覧。
COCHANGE_FORMAT_ERRORが空でない repo には「(CHD §4.1 の表の書式の誤り: {COCHANGE_FORMAT_ERROR}。先に /xddp-revise {CR} design で直す)」を添える}
- やり直してから TSP を作る(/xddp-06-design {CR} regression を実行してから /xddp-09-test {CR} を再実行してください)
- このまま TSP を作る 1 なら終わる(工程9 はまだ進行中にしていない)。
Step 0.5: Mark In-Progress
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Progress Update" with:
CR_PATH: {CR_PATH}, STEP_NUM: 9, STATE: ? 進行中, DETAIL_STEP: Step A: TSP生成中
(cross行の「レビュー」列を — に固定するのは、cross TSP に対する自動AIレビューループが
存在しないため。6aのcross行は逆に「設計」列を — に固定しており、これは6aが「即時生成・
レビューに時間がかかる」のに対し、9は「生成に時間がかかる・自動レビューが存在しない」という
非対称な構造のためである)
If IS_MULTI, append a per-repo progress table for step 9:
## 工程9 テスト仕様書進捗(リポジトリ別)
| リポジトリ | 生成 | レビュー | 完了日 |
|---|---|---|---|
{for each repo in AFFECTED_REPOS: | {repo} | ⏳ 未着手 | ⏳ 未着手 | - |}
{if HAS_CROSS: | cross | ⏳ 未着手 | — | - |}
Write back.
Read ~/.claude/skills/xddp-common/procedures/snapshot-phase-baseline.md, apply "## Snapshot Phase Baseline" with:
CR_PATH: {CR_PATH}, STEP_NUM: 9
Step A0: Reference Lessons Learned Log
Read ~/.claude/skills/xddp-common/procedures/load-lessons-context.md, apply "## Load Lessons Context" with:
LESSONS_FILE: {XDDP_DIR}/lessons-learned.md
TARGET_TAGS: [#テスト, #不具合, #テスト観点, #見落とし]
→ let LESSONS_CONTEXT.
Step A: Generate Test Specifications (per repo)
IS_MULTI = true(マルチリポジトリ)の場合:
Agent ツールで各リポジトリの TSP 生成を並列呼び出しする(各リポジトリの CHD・SPO は独立しており、TSP 生成に相互依存がないため並列実行可能。xddp-04-specout の Discovery Phase と同様のパターン)。
IS_MULTI = false(シングルリポジトリ)の場合:
順次呼び出しでよい。
Let TEST_TEMPLATE_FILE = ~/.claude/skills/xddp-09-test/templates/09_test-specification-template.md
({repo} に依存しないため、本 Step A 内で逐次実行される per-repo 呼び出し・cross 呼び出しの両方からこの1箇所の定義をそのまま参照できる)
Let WRITER_CALL_SHARED =
CR_NUMBER: {CR}
TODAY: {TODAY}
MIN_COVERAGE: {MIN_COVERAGE}
TEST_COVERAGE_TARGET: {TEST_COVERAGE_TARGET}
({repo} に依存しないため、Step A per-repo・Step A cross・Step B FIXER_PARAMS の3箇所から
この1箇所の定義をそのまま参照できる。REPO_NAME は呼び出し箇所ごとに値が異なるため
各呼び出し箇所に個別記述のまま残す)
Update per-repo progress table for all repos in AFFECTED_REPOS at once: | {repo} | ? 進行中 | ⏳ 未着手 | - |
For each {repo} in AFFECTED_REPOS:
Read ~/.claude/skills/xddp-common/procedures/load-steering-context.md, apply "## Load Steering Context" with:
XDDP_DIR: {XDDP_DIR}
REPO_NAME: {repo}
→ let RULEBOOK_CONTEXT.
Let REPO_TEST_FRAMEWORK = TEST_FRAMEWORK_REPOS[{repo}] if defined, else use TEST_FRAMEWORK (default: auto).
Read ~/.claude/skills/xddp-common/procedures/build-tsp-output-file.md, apply "## Build TSP Output File" with:
CR_PATH: {CR_PATH}, REPO_NAME: {repo}, CR: {CR}
→ let TSP_OUTPUT_FILE.
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Discover CHD Files" with:
CR_PATH: {CR_PATH}, REPO_NAME: {repo}, CR: {CR}
→ let CHD_CONTENT_FILES.
Agent tool subagent_type=xddp-test-writer-agent:
{WRITER_CALL_SHARED を展開}
REPO_NAME: {repo}
REPO_PATH: {REPOS_MAP[repo]}
CHD_FILES: {CHD_CONTENT_FILES}
CRS_FILE: {CR_PATH}/03_change-requirements/CRS-{CR}.md
({CR_PATH}/04_specout/{repo}/SPO-{CR}.md が存在する場合のみ追加)SPO_FILE: {CR_PATH}/04_specout/{repo}/SPO-{CR}.md
VERIFY_FILE: {CR_PATH}/08_code-review/VERIFY-{CR}-{repo}.md (if exists)
{TEST_TEMPLATE_FILE を展開}
OUTPUT_FILE: {TSP_OUTPUT_FILE を展開}
TEST_FRAMEWORK: {REPO_TEST_FRAMEWORK}
RULEBOOK_CONTEXT: {RULEBOOK_CONTEXT}
(Step A0 で LESSONS_CONTEXT が空でない場合のみ追加)LESSONS_CONTEXT: {LESSONS_CONTEXT}
全リポジトリの TSP 生成 Agent 呼び出しの完了を待ってから、対象repo全件をまとめて
| {repo} | ✅ 完了 | ⏳ 未着手 | - | へ一括更新する。
If HAS_CROSS, after all per-repo TSPs are done, generate cross integration test spec:
Update per-repo progress table: | cross | ? 進行中 | — | - |
Read {CR_PATH}/06_design/cross/CHD-{CR}-cross.md.
Agent tool subagent_type=xddp-test-writer-agent:
{WRITER_CALL_SHARED を展開}
REPO_NAME: cross
CHD_FILES: [{CR_PATH}/06_design/cross/CHD-{CR}-cross.md]
CRS_FILE: {CR_PATH}/03_change-requirements/CRS-{CR}.md
{TEST_TEMPLATE_FILE を展開}
OUTPUT_FILE: {CR_PATH}/09_test-spec/cross/TSP-{CR}-cross.md
TEST_FRAMEWORK: {TEST_FRAMEWORK}
TEST_FOCUS: |
Focus on integration test cases that verify the inter-repo interface contract:
- Each interface in "インタフェース変更サマリ" must have at least 1 happy-path TC and 1 error TC.
- Verify consumer repos can receive and handle responses from provider repos correctly.
Update per-repo progress table: | cross | ✅ 完了 | — | {TODAY} |
Step B: Test Spec Review Loop (up to REVIEW_MAX_ROUNDS.TSP rounds)
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Progress Update" with:
CR_PATH: {CR_PATH}, STEP_NUM: 9, STATE: ? 進行中, DETAIL_STEP: Step B: AIレビュー中
For each {repo} in AFFECTED_REPOS:
Update per-repo progress table: | {repo} | ✅ 完了 | ? 進行中 | - |
Read ~/.claude/skills/xddp-common/procedures/load-steering-context.md, apply "## Load Steering Context" with:
XDDP_DIR: {XDDP_DIR}
REPO_NAME: {repo}
→ let RULEBOOK_CONTEXT.
Let REPO_TEST_FRAMEWORK = TEST_FRAMEWORK_REPOS[{repo}] if defined, else use TEST_FRAMEWORK (default: auto).
Read ~/.claude/skills/xddp-common/procedures/build-tsp-output-file.md, apply "## Build TSP Output File" with:
CR_PATH: {CR_PATH}, REPO_NAME: {repo}, CR: {CR}
→ let TSP_OUTPUT_FILE.
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Discover CHD Files" with:
CR_PATH: {CR_PATH}, REPO_NAME: {repo}, CR: {CR}
→ let CHD_CONTENT_FILES.
Read ~/.claude/skills/xddp-common/procedures/review-loop.md, apply "## Review Loop" with:
DOCUMENT_TYPE: TSP
CONFIG_KEY: REVIEW_MAX_ROUNDS.TSP
TARGET_FILE: {CR_PATH}/09_test-spec/{repo}/TSP-{CR}.md
REFERENCE_FILES: [{CHD_CONTENT_FILES を展開}, {CR_PATH}/03_change-requirements/CRS-{CR}.md, ({CR_PATH}/04_specout/{repo}/SPO-{CR}.md が存在する場合のみ追加){CR_PATH}/04_specout/{repo}/SPO-{CR}.md]
REVIEW_OUTPUT_FILE: {CR_PATH}/09_test-spec/{repo}/review/09_test-spec-review.md
FIXER_AGENT: xddp-test-writer-agent
FIXER_PARAMS:
{WRITER_CALL_SHARED を展開}
REPO_NAME: {repo}
TEST_FRAMEWORK: {REPO_TEST_FRAMEWORK}
RULEBOOK_CONTEXT: {RULEBOOK_CONTEXT}
OUTPUT_FILE: {TSP_OUTPUT_FILE を展開}
REVIEW_FILE: {CR_PATH}/09_test-spec/{repo}/review/09_test-spec-review.md
PROGRESS_CR_PATH: {CR_PATH}
PROGRESS_STEP_NUM: 9
METRICS_TARGET: {repo}
EXTRA_REVIEWER_PARAMS:
MIN_COVERAGE: {MIN_COVERAGE}
TEST_COVERAGE_TARGET: {TEST_COVERAGE_TARGET}
(CR_PROFILE = quick の場合のみ追加)QUICK_PROFILE: true
Update per-repo progress table: | {repo} | ✅ 完了 | ✅ 完了 | {TODAY} |
Step B2: Human Review Gate
Build ARTIFACTS_TEXT by expanding the following (AFFECTED_REPOS/HAS_CROSS are already resolved
in this skill's scope):
{for each repo in AFFECTED_REPOS:}
- {repo}: `{CR_PATH}/09_test-spec/{repo}/TSP-{CR}.md`
- AIレビュー: `{CR_PATH}/09_test-spec/{repo}/review/09_test-spec-review.md`
{if HAS_CROSS:}
- cross: `{CR_PATH}/09_test-spec/cross/TSP-{CR}-cross.md`
Read ~/.claude/skills/xddp-common/procedures/human-review-gate.md, apply "## Human Review Gate" with:
CR_PATH: {CR_PATH}
STEP_NUM: 9
STEP_LABEL: Step B2
ARTIFACTS_TEXT: {built above}
REVISE_COMMAND: /xddp-revise {CR} test(対象リポジトリを指定)
→ let CHANGED.
If CHANGED:
- For each
{repo}inAFFECTED_REPOS: Read~/.claude/skills/xddp-common/procedures/final-review-pass.md, apply "## Final Review Pass" with: DOCUMENT_TYPE: TSP TARGET_FILE: {CR_PATH}/09_test-spec/{repo}/TSP-{CR}.md REFERENCE_FILES: {Step B と同一} REVIEW_ROUND: (last_round + 1) OUTPUT_FILE: {CR_PATH}/09_test-spec/{repo}/review/09_test-spec-review.md EXTRA_REVIEWER_PARAMS: MIN_COVERAGE: {MIN_COVERAGE} TEST_COVERAGE_TARGET: {TEST_COVERAGE_TARGET} (CR_PROFILE=quickの場合のみ追加)QUICK_PROFILE:true
Step C: Mark Test Spec Complete
状態遷移の注意(必須): step 9(テスト設計)→ ✅ 完了 は、本 Step C(= Step B2 人レビューゲート
通過後)でのみ付与する。Step B2 を経ずにセッションが中断された場合は step 9 を ✅ にせず、
? レビュー待ち(Step B2 の Human Review Gate が設定した状態)のまま留めること。
これにより後続 /xddp-10-test-run の前提チェック「step 9 ✅ = 人レビュー確定」が実効を持つ
(✅ を無条件付与すると人レビュー実施有無に関わらず常に ✅ となり前提チェックが機能しないため)。
Read ~/.claude/skills/xddp-common/SKILL.md, apply "## Progress Update" with:
CR_PATH: {CR_PATH}, STEP_NUM: 9, STATE: ✅ 完了, DETAIL_STEP: -,
ARTIFACT_LINK: [09_test-spec/](09_test-spec/)
次に実行すべきコマンド → /xddp-10-test-run {CR}
Step D: Report in Japanese
Report:
- 生成した TSP ファイル一覧(per repo + cross/ if applicable)
- AIレビューのラウンド数・残指摘の有無
- 次のアクション案内:
✅ テスト仕様書(TSP)を生成し、AIレビュー→人レビューで確定しました。
- 修正が必要なら
/xddp-revise {CR} test - 問題なければ
/xddp-10-test-run {CR}でテストを実行してください。
- 修正が必要なら
04 同仓库更多 Skills
demo.skill
暂无简介
demo.noname
暂无简介
demo.common
暂无简介
demo.badname
暂无简介
xddp-update-knowledge
任意のタイミングで baseline_docs/ の knowledge ディレクトリに知識を追加・更新する。CR 非依存。対話形式と引数形式に対応。「知識を登録して」「callgraph を記録して」「メモを保存して」などで起動する。
xddp-sync-design
コードから DSN を再生成してリビジョンとして記録し、AIレビュー→人承認を実施する。「設計を同期して」「DSN を更新して」などで起動する。