xddp-common
XDDP スキル共通ロジック。CR 番号の解決・CR非依存の config 読み込みなどを定義する。
- License 许可
- MIT
- 最近更新
- 2026-11-08
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- xddp-common
- description
- XDDP スキル共通ロジック。CR 番号の解決・CR非依存の config 読み込みなどを定義する。
- user-invocable
- false
02 资源文件 66
- 参考文档procedures/build-arch-agent-paths.md721 B
- 参考文档procedures/build-design-spec-params.md1.5 KB
- 参考文档procedures/build-tsp-output-file.md553 B
- 参考文档procedures/cross-artifact-review.md3.2 KB
- 参考文档procedures/detect-test-framework.md1.2 KB
- 参考文档procedures/final-review-pass.md2.3 KB
- 参考文档procedures/human-review-gate.md6.3 KB
- 参考文档procedures/invoke-reviewer.md4.6 KB
- 参考文档procedures/load-domain-constraints.md1.1 KB
- 参考文档procedures/load-lessons-context.md2.2 KB
- 参考文档procedures/load-steering-context.md1001 B
- 参考文档procedures/regenerate-crs-excel.md2.0 KB
- 参考文档procedures/regression-status.md3.7 KB
- 参考文档procedures/resolve-vcs-target-repos.md4.8 KB
- 参考文档procedures/review-loop.md8.2 KB
- 参考文档procedures/ripple-count-check.md5.5 KB
- 参考文档procedures/ripple-engine-check.md3.3 KB
- 参考文档procedures/ripple-engine-setup.md2.1 KB
- 参考文档procedures/ripple-run-outputs.md3.8 KB
- 参考文档procedures/ripple-run.md8.3 KB
- 参考文档procedures/ripple-wave-loop.md19.4 KB
- 参考文档procedures/ripple-wave-resume.md7.0 KB
- 参考文档procedures/run-verification-tools.md5.0 KB
- 参考文档procedures/snapshot-phase-baseline.md1.9 KB
- 参考文档procedures/specout-doc-levels.md1.4 KB
- 参考文档procedures/specout-finish.md19.5 KB
- 参考文档procedures/vcs-auto-commit.md1.7 KB
- 参考文档procedures/vcs-commit-if-dirty.md6.5 KB
- 参考文档reviewer-checklists/ANA.md1.6 KB
- 参考文档reviewer-checklists/CHD.md5.5 KB
- 参考文档reviewer-checklists/CRS.md5.0 KB
- 参考文档reviewer-checklists/DSN.md2.0 KB
- 参考文档reviewer-checklists/PLAN.md3.0 KB
- 参考文档reviewer-checklists/SPEC.md4.6 KB
- 参考文档reviewer-checklists/SPO.md2.9 KB
- 参考文档reviewer-checklists/TSP.md2.8 KB
- 脚本scripts/ai_index.py20.2 KB
- 脚本scripts/artifact_lint.py47.0 KB
- 脚本scripts/crs_model.py16.3 KB
- 脚本scripts/crs_ur_scope.py6.0 KB
- 脚本scripts/docs_layout.py7.0 KB
- 脚本scripts/knowledge_place.py11.4 KB
- 脚本scripts/tests/test_ai_index.py16.1 KB
- 脚本scripts/tests/test_artifact_lint.py44.9 KB
- 脚本scripts/tests/test_crs_model.py5.6 KB
- 脚本scripts/tests/test_crs_ur_scope.py5.6 KB
- 脚本scripts/tests/test_docs_layout.py4.2 KB
- 脚本scripts/tests/test_knowledge_place.py10.4 KB
- 脚本scripts/tests/test_xddp_config.py9.0 KB
- 脚本scripts/tests/test_xddp_gate_snapshot.py4.3 KB
- 脚本scripts/tests/test_xddp_metrics.py9.6 KB
- 脚本scripts/tests/test_xddp_progress.py18.1 KB
- 脚本scripts/tests/test_xddp_review_brief.py17.3 KB
- 脚本scripts/tests/test_xddp_vcs.py19.3 KB
- 脚本scripts/tests/test_xddp_verify_tools.py4.4 KB
- 脚本scripts/xddp_config.py17.6 KB
- 脚本scripts/xddp_gate_snapshot.py4.9 KB
- 脚本scripts/xddp_metrics.py5.6 KB
- 脚本scripts/xddp_progress.py15.8 KB
- 脚本scripts/xddp_review_brief.py15.6 KB
- 脚本scripts/xddp_vcs.py12.3 KB
- 脚本scripts/xddp_verify_tools.py7.7 KB
- 参考文档templates/project-rulebook-cross-template.md6.1 KB
- 参考文档templates/project-rulebook-repo-template.md6.3 KB
- 参考文档templates/project-rulebook-template.md7.1 KB
- 参考文档templates/review-template.md2.2 KB
03 SKILL.md 正文
XDDP Common Logic
Load Config
xddp.config.md を探索・読み込み、CR に依存しない標準設定バンドルを返す共通手順。
CR 解決が不要なスキル(xddp-status・xddp-codemap・xddp-update-knowledge・
xddp-fill-rulebook 等)はこちらを直接使う。CR 解決が必要なスキルは ## CR Resolution を使う。
Input: NOT_FOUND_MESSAGE(任意, default: "xddp.config.md が見つかりません。ワークスペース ルートまたはそのサブディレクトリで実行してください。"): 未検出時に表示するメッセージ。
Output: スクリプトが出力する JSON のトップレベルキー全て。
キー名・既定値・消費者の一覧は xddp_config.py load --list-keys で得られる。
Process:
- Run via Bash:
PY=$(command -v python3 || command -v python) && "$PY" ~/.claude/skills/xddp-common/scripts/xddp_config.py load --format json --start-dir . - 終了コードで分岐する: 0=成功 / 1=実行時エラー(stderr を表示して停止)/
2=使用法エラー(argparse 既定。stderr を表示して停止)/ 3=xddp.config.md 未検出
(
{NOT_FOUND_MESSAGE}を表示して停止)。 - 出力 JSON をそのまま設定バンドルとして使う。stderr に警告があれば人に中継する。
REPOS:が未設定・空の場合の扱いは呼び出し元スキルの裁量。
CR Resolution
Input:
RAW_ARGS= trimmed string of $ARGUMENTSSKIP_ABORT_GUARD(任意, default:false):trueの場合、下記の「中止済み CR ガード」を スキップする。/xddp-abort専用。他スキルはこの引数を渡さない。
Output: CR(解決済みCR番号), REST_ARGS(CR以降の残り引数)、および ## Load Config が
返す標準設定バンドル全て。
On failure, report error and stop.
apply "## Load Config"(本ファイル内)→ 標準設定バンドルを取得する。
Step 1: Identify CR from arguments
Let FIRST_ARG = first token of RAW_ARGS.
List all directories directly under {WORKSPACE_ROOT}/{XDDP_DIR}/, excluding hidden directories
(dotfiles) and the reserved names latest-specs / survey (同じ除外規則を Step 2 とも共有する)。
FIRST_ARGis non-empty AND exactly matches (完全一致。前方一致・部分一致ではない) the name of one of the listed directories →CR = FIRST_ARG,REST_ARGS= remaining tokens. Go to Step 1.X.- otherwise (FIRST_ARG is empty, or no listed directory name equals
FIRST_ARG) →REST_ARGS = RAW_ARGS(treat all tokens as secondary args). Go to Step 2.
命名上の注意: CRフォルダ名は
{XDDP_DIR}/直下の実在ディレクトリとして解決されるため、 スキルが CR 番号の後に置く引数の語(xddp-review・xddp-reviseのanalysis/req/specout/arch/design/test/spec、xddp-feedbackのcode、xddp-set-profileのfull/quick、xddp-06-designのregression、xddp-investigateのripple/adopt/unadopt/remove/list/finish/document/suggest)、xddp-04-specoutのENTRY_POINTS(調査対象の関数・ クラス名等の自由記述シンボル)、および予約ディレクトリ名(latest-specs・survey)と同名のCRを作成しないこと。 同名の場合、Step 1 がその引数を誤ってCR番号と解釈する可能性がある。
Skills that use secondary args:
xddp-review: first token ofREST_ARGS→DOCUMENT_TYPE(DOCUMENT_TYPE = specの場合、2番目のトークン →TARGET_ARG(省略可))xddp-revise: first token ofREST_ARGS→DOC_TYPExddp-excel2md: first token ofREST_ARGS→EXCEL_PATHxddp-04-specout: remaining tokens ofREST_ARGS→ENTRY_POINTS
Step 2: Auto-detect
List all directories directly under {WORKSPACE_ROOT}/{XDDP_DIR}/ as CR candidates,
excluding hidden directories (dotfiles) and the reserved names latest-specs / survey.
- 0 found → report
"CRフォルダが見つかりません。{WORKSPACE_ROOT}/{XDDP_DIR}/ に CR フォルダを作成するか、CR番号を引数に指定してください。"and stop. - 1 found →
CR = that directory name. Report"CR を自動検出しました: {CR}"and continue. - Multiple found → for each candidate directory
{dir}, letDIR_PATH={WORKSPACE_ROOT}/{XDDP_DIR}/{dir}({dir}は直前の「List all directories directly under{WORKSPACE_ROOT}/{XDDP_DIR}/」で得られる ディレクトリの裸の名前であり絶対パスではない。xddp_progress.pyの_progress_path()は--cr-pathの値をそのままPath(cr_path)/"progress.md"として解決するため、裸の名前を渡すと オーケストレータの cwd 次第でprogress.mdが見つからず全候補が異常系と誤判定される。xddp-abort/SKILL.md「LetCR_PATH={WORKSPACE_ROOT}/{XDDP_DIR}/{CR}」と同一のパス構築パターンに 倣う。CR確定前(Step 1.X 到達前)のこの分岐ではCR_PATH変数が存在しないため、ここで{dir}ごとに個別のローカル変数DIR_PATHを明示的に構築する)、run via Bash:PY=$(command -v python3 || command -v python) && "$PY" ~/.claude/skills/xddp-common/scripts/xddp_progress.py check-in-progress --cr-path {DIR_PATH}→ letCHECK_RESULT(stdout の JSON 1オブジェクト)。 If it errors(e.g.{DIR_PATH}/progress.mdが存在しない・破損している等の異常系): treat{dir}as not in-progress for this candidate, and additionally warn: "⚠️ {dir} の progress.md を読み取れませんでした(不正な CR フォルダの可能性があります)。" (候補一覧からは除外しない——{dir}が実在する以上、人が最終的に選択肢として認識できる必要が あるため。in-progress 判定からのみ除外する) Else: a CR is "in progress" ifCHECK_RESULT.in_progressistrue(判定条件の実装はcheck-in-progressに一元化されている。条件(a)(b)の設計意図・除外条件の理由はxddp_progress.pyのcmd_check_in_progressのコメントを参照):- Exactly 1 in progress →
CR = that directory name. Report"CR を自動検出しました: {CR}"and continue. - 0 or multiple in progress → display candidate list, report
"CR番号を引数に指定してください"and stop.
- Exactly 1 in progress →
Step 1.X: Resolve CR Profile(追加。CR 確定後・## Resolve Affected Repos の前に実行)
Let CR_PATH = {WORKSPACE_ROOT}/{XDDP_DIR}/{CR}(この手続き内部限定のローカル変数。呼び出し元
スキルは ## CR Resolution から戻った後、別途同じ式で CR_PATH を構築して使う — 両者は独立した
構築だが同じ式のため値は一致する)。
CR_PROFILEの初期値は上記 apply "## Load Config" で既に解決済みの値(xddp.config.mdのCR_PROFILE、未設定ならfull)とする。{CR_PATH}/progress.mdが存在する場合: Read し、**CRプロファイル:**行があればその値でCR_PROFILEを上書きする(progress.md が存在しない、または該当行がない場合は上書きせず、 手順1の初期値のまま次のステップに進む。## CR Resolutionはxddp-01-initからは呼ばれずxddp-01-initの Step 5 で progress.md 生成後に初めて他スキルから呼ばれる想定のため、通常の フローではこの分岐に到達しない。到達するのは CR フォルダが手動作成された等の異常系のみ)。- 上書き後の値が
full/quick以外の場合はfullにフォールバックし、警告を出力する。
Step 1.Y: Abort Guard(追加。CR 確定後・戻り値返却前)
If SKIP_ABORT_GUARD is true: このガード全体をスキップする。
Else: CR 確定後、{WORKSPACE_ROOT}/{XDDP_DIR}/{CR}/progress.md が存在する場合、
## CR 中止 セクションの有無を確認する。存在する場合:
⚠️ CR
{CR}は {中止日} に中止済みです(理由: {中止理由})。 このまま処理を続行しますか? [続行 / 中止] Wait for user confirmation. If 中止 が選択された場合、呼び出し元スキルの処理を停止する。
Resolve Affected Repos
Input: REPOS_KEYS, IS_MULTI, CR_PATH(FILTER_BY_SPO=true の場合のみ手続き内部で使用するが、
呼び出し元は FILTER_BY_SPO の値によらず常に渡す), FILTER_BY_SPO(true/false),
HAS_CROSS(FILTER_BY_SPO=true の場合のみ必須),
CR(CR番号。FILTER_BY_SPO=true の場合のみ使用 — SPO-{CR}.md・CHD-{CR}-cross.md の
パス解決に必要。FILTER_BY_SPO=false の場合は不要。既存の Discover CHD Files・
Regenerate CRS Excel プロシージャと同様、CR を明示 Input として受領する)
Output: AFFECTED_REPOS
Process:
FILTER_BY_SPO = false(既定・ほとんどのスキルで使用)の場合:AFFECTED_REPOS=REPOS_KEYSのコピー。 (REPOS: に列挙された全リポジトリを対象とする。個別スキルによる絞り込みが別途必要な場合は 呼び出し元スキルが本プロシージャの結果を上書きする — 例:xddp-04-specoutStep 0.5 の人による確認・絞り込み。)FILTER_BY_SPO = true(xddp-11-specs専用 — 実際に specout・設計が完了したリポジトリのみを 最新仕様書生成の対象とするため。存在しない SPO/DSN/CHD を前提にした生成を防ぐ)の場合:- 基本:
{CR_PATH}/04_specout/{repo}/SPO-{CR}.mdが存在するリポジトリを対象とする。 - 追加条件(
IS_MULTIandHAS_CROSSの場合):{CR_PATH}/06_design/cross/CHD-{CR}-cross.mdを Read し(存在する場合)、インタフェース変更サマリーで「影響リポジトリ」として列挙されている リポジトリをAFFECTED_REPOSに追加する(SPO がなくても overview/architecture.md 更新対象に なる可能性があるため)。CHD cross が存在しない場合はこの追加条件は適用しない。 AFFECTED_REPOS= 上記1・2で確定したリポジトリのリスト。
- 基本:
- Return
AFFECTED_REPOS.
Resolve HAS_CROSS
Input: IS_MULTI, ARTIFACT_PATH(直前工程の cross 成果物ファイルパス。工程により
SPO-{CR}-cross.md / DSN-{CR}-cross.md / CHD-{CR}-cross.md のいずれか)
Output: HAS_CROSS
Process:
HAS_CROSS= (IS_MULTIandARTIFACT_PATHが存在する)。- Return
HAS_CROSS.
注記(呼び出し元が明記すべき事項): ARTIFACT_PATH にどの工程の cross 成果物を渡すかは
呼び出し元スキルの工程位置によって決まる(自分の直前工程が生成した cross 成果物を見る、という
設計上の意図がある)。本プロシージャは存在チェックの実施のみを共通化し、
「どのファイルを見るべきか」の判断は呼び出し元の責務のまま残す。
適用外(本プロシージャを使わないスキルとその理由):
xddp-04-specout: cross 成果物自体がこの工程で初めて生成されるため、着手時点では 存在チェック対象のファイルがまだない。HAS_CROSSは初期値IS_MULTIとし、 Discovery でリポジトリ間依存が見つからなければfalseに降格する、成果物存在チェックとは 異なる判定方式を用いる。xddp-close: 特定1ファイルの存在ではなく、CR 内の cross/ 配下に何らかの成果物が 存在するか(工程4a〜8のどこかで cross 処理が行われたか)を広く問う棚卸し用途のため、 「直前工程の特定ファイル」を前提とする本プロシージャの対象外とする。
Progress Update
progress.md の指定ステップの状態・詳細ステップ・日付を更新する共通手順。
Input:
CR_PATH: CRフォルダのパスSTEP_NUM: 更新するステップ番号STATE: 新しい状態(? 進行中 / ✅ 完了 / ? レビュー待ち / ? 修正中 / ⏸ 中断 / ? 中止)DETAIL_STEP(任意): 詳細ステップ文字列(完了時は"-"とする)。省略時は既存の詳細ステップを 変更しない(例: 差し戻し時に状態列だけを更新する場合)ARTIFACT_LINK(任意): 成果物へのリンク文字列。指定時は STATE によらず成果物列を更新する (工程完了時のリンク設定に加え、xddp-06-design「## Step C': Generate Traceability Matrix (TM)」の ように工程進行中に成果物列だけを先行更新するケースにも使う)。ARTIFACT_LINKの書式はxddp_progress.pyが検証する(不正な場合は非 0 終了して理由を表示する)。 巻き戻し時に成果物列をクリアするには-を明示的に渡す(空文字は無視される)。
Process:
- Run via Bash:
PY=$(command -v python3 || command -v python) && "$PY" ~/.claude/skills/xddp-common/scripts/xddp_progress.py update --cr-path {CR_PATH} --step {STEP_NUM} --state "{STATE}" [--detail "{DETAIL_STEP}"] [--artifact-link "{ARTIFACT_LINK}"](STATE= ✅ 完了 のとき、スクリプトが## 備考・メモの⚠️ 工程{STEP_NUM}:行を自動削除する) - If the script is not found: tell the user to run
setup.shand stop. If it errors: display stderr to the user and stop. - If
{STATE}=✅ 完了: also run via Bash(工程所要時間テレメトリ。ベストエフォート。## Snapshot Phase Baselineを経由していない工程では開始マーカーが無いためduration_msは 省略される。この場合もレコード自体は書き込まれる):PY=$(command -v python3 || command -v python) && "$PY" ~/.claude/skills/xddp-common/scripts/xddp_metrics.py record --cr-path {CR_PATH} --step {STEP_NUM} --event phase_completeIf the script is not found or errors: display stderr as advisory only and continue — do not stop (手順1・2とは異なり、テレメトリ失敗は工程完了そのものをブロックしない)。
Discover CHD Files
CHD(変更設計書)がインデックス + UR別内容ファイルに分割されている前提で、 内容ファイル一覧を解決する共通手順。CHDを参照する全スキル・エージェント呼び出し元はこれを使うこと。
Input:
CR_PATH: CRフォルダのパスREPO_NAME: リポジトリ名("cross"の場合は分割対象外のため単一ファイルを返す)CR: CR番号
Output:
CHD_INDEX_FILE: インデックスファイルのパスCHD_CONTENT_FILES: 内容ファイルのパスのリスト(生成順)
Process:
REPO_NAMEが"cross"の場合:CHD_INDEX_FILE=CHD_CONTENT_FILES[0]={CR_PATH}/06_design/cross/CHD-{CR}-cross.md。Return.CHD_INDEX_FILE={CR_PATH}/06_design/{REPO_NAME}/CHD-{CR}.md。CHD_INDEX_FILEが存在しない場合:CHD_CONTENT_FILES= 空リストを返す(CHD未生成)。CHD_INDEX_FILEを Read し、「## 2. UR別ファイル一覧」テーブルのファイルパス列から 全リンクを抽出してCHD_CONTENT_FILESとする。- Return
CHD_INDEX_FILE,CHD_CONTENT_FILES.
Procedures Index
高頻度(直接参照ファイル数 ≥ 9)の6手順は本ファイルに残置し、それ以外は
procedures/ 配下へ分割した。呼び出し元は該当ファイルを Read ~/.claude/skills/xddp-common/procedures/{ファイル名}
した上で、ファイル内の見出しを対象に apply する。
invoke-reviewer.md— Invoke Reviewer: xddp-reviewer への Agent tool 呼び出し共通手順review-loop.md— Review Loop: AIレビュー→Fixer の反復ループ共通制御フローhuman-review-gate.md— Human Review Gate: 人レビューゲート共通フローfinal-review-pass.md— Final Review Pass: 最終確認パスcross-artifact-review.md— Cross Artifact Review: cross/ 成果物のAIレビュー→インライン修正フローsnapshot-phase-baseline.md— Snapshot Phase Baseline: 工程所要時間テレメトリの開始マーカー記録regenerate-crs-excel.md— Regenerate CRS Excel (UR-016): CRS Markdown → Excel 再生成resolve-vcs-target-repos.md— Resolve VCS Target Repos: VCS操作対象リポジトリの解決vcs-commit-if-dirty.md— VCS Commit If Dirty: 未コミット変更があるリポジトリへの自動コミットvcs-auto-commit.md— VCS Auto-Commit: 指定ステップでの自動コミット制御load-lessons-context.md— Load Lessons Context: 知見ログの読み込みrun-verification-tools.md— Run Verification Tools: lint/build/typecheck の実ツール実行load-steering-context.md— Load Steering Context: project-rulebook.md の読み込みload-domain-constraints.md— Load Domain Constraints: ドメイン制約の読み込みdetect-test-framework.md— Detect Test Framework: テストフレームワーク自動検出build-design-spec-params.md— Build Design Spec Params: xddp-designer-agent 呼び出しパラメータ構築build-arch-agent-paths.md— Build Arch Agent Paths: xddp-architect-agent 呼び出しパス構築build-tsp-output-file.md— Build TSP Output File: TSP 出力ファイルパス構築ripple-engine-setup.md— Ripple Engine Setup: 波紋調査の判定エンジン(スライス判定/規則判定)の決定ripple-engine-check.md— Ripple Engine Check: 状態ファイルのある波紋調査の判定エンジンの照合ripple-wave-loop.md— Ripple Wave Loop: 波紋調査の波ループ(search → 判定 → merge → commit-wave)ripple-count-check.md— Ripple Count Check: 波紋調査の件数一致検証と不一致の扱いripple-wave-resume.md— Ripple Wave Resume: 波の途中の失敗を人が手で復旧する手順ripple-run.md— Ripple Run: 工程4a の初回以外の波紋調査の作成・再開・採用ripple-run-outputs.md— Ripple Run Outputs: 完了した波紋調査1つの出力(要約・全量・検証スイープ・伝播グラフ)specout-doc-levels.md— Specout Doc Levels: スペックアウト資料の記載量の決定specout-finish.md— Specout Finish: 採用した波紋調査の合算による SPO の仕上げregression-status.md— Regression Status: 工程6 Step A3 の回帰の範囲が CHD §4・採用した波紋調査・設定より古いかの確認
04 同仓库更多 Skills
demo.skill
暂无简介
demo.noname
暂无简介
demo.common
暂无简介
demo.badname
暂无简介
xddp-update-knowledge
任意のタイミングで baseline_docs/ の knowledge ディレクトリに知識を追加・更新する。CR 非依存。対話形式と引数形式に対応。「知識を登録して」「callgraph を記録して」「メモを保存して」などで起動する。
xddp-sync-design
コードから DSN を再生成してリビジョンとして記録し、AIレビュー→人承認を実施する。「設計を同期して」「DSN を更新して」などで起動する。