[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MDRXYF33D8YFNHGC6DJ4QT":3,"skill-same:01M6MDRXYF33D8YFNHGC6DJ4QT":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6MDRXYF33D8YFNHGC6DJ4QT","xddp-codemap",null,"モジュールカタログを生成・更新する。リポジトリのモジュール構成・主要シンボル・依存関係を baseline_docs\u002F{repo}\u002Fmodule-catalog.md に保存し、スペックアウトの BFS 優先度制御に活用する。 「コードマップを生成して」「モジュールカタログを作って」などで起動する。","tsuna44\u002FXddpSettings","tsuna44","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F84987382?v=4","01M6JWX5PY45PD3W2131F7VMF4","01M6JWX5VFK80TQBJJY8SHAE4N",1,"MIT","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002FClaudeCode\u002F.claude\u002Fskills\u002Fxddp-codemap\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"codemap","xddp codemap","docs","baseline","生成","repo","catalog","module","2026-11-10 10:12:30",false,"---\nname: xddp-codemap\ndescription: モジュールカタログを生成・更新する。リポジトリのモジュール構成・主要シンボル・依存関係を\n  baseline_docs\u002F{repo}\u002Fmodule-catalog.md に保存し、スペックアウトの BFS 優先度制御に活用する。\n  「コードマップを生成して」「モジュールカタログを作って」などで起動する。\nargument-hint: \"[repo名 | all]\"\n---\n\nYou are executing **XDDP Codemap — Generate Module Catalog**.\n\n> 本スキルは CR 非依存のため CR 解決行（xddp-common の \"## CR Resolution\"）は不要。\n\n**Arguments:** $ARGUMENTS\n- No args → all repos defined in REPOS:\n- `{repo}` → specific repository (matches a REPOS: key)\n- `all` → all repositories\n\n---\n\n### Step 0: Parse arguments, locate xddp.config.md\n\nRead `~\u002F.claude\u002Fskills\u002Fxddp-common\u002FSKILL.md`, apply \"## Load Config\"\n→ let `WORKSPACE_ROOT`, `DOCS_DIR`, `DOCS`, `REPOS_MAP`, `REPOS_KEYS`,\n  `EXCLUDE_PATTERNS`, `INCLUDE_EXTENSIONS`（他の戻り値は本スキルでは未使用）.\n\n**Resolve target repos:**\n- No args or `all` → `TARGET_REPOS` = all REPOS_KEYS\n- `{repo}` → if matches a REPOS_KEY: `TARGET_REPOS` = [{repo}]. Else: report error and stop.\n- `cross` is reserved and not a valid target (report error).\n\n### Step 1: For each repo in TARGET_REPOS — generate catalog\n\nFor each `{repo}` in `TARGET_REPOS`:\n\nLet `REPO_PATH` = `REPOS_MAP[repo]`.\n\n#### Step 1a: Detect language and project structure\n\nCheck for the following files in `{REPO_PATH}`:\n- `package.json` → Node.js \u002F TypeScript \u002F JavaScript\n- `pyproject.toml` or `requirements.txt` or `setup.py` → Python\n- `go.mod` → Go\n- `pom.xml` or `build.gradle` → Java \u002F Kotlin\n- `Cargo.toml` → Rust\n- `CMakeLists.txt` or `Makefile` → C\u002FC++ (or embedded)\n- Fallback → inspect directory structure for language hints\n\nLet `LANGUAGE` = detected language (or \"Unknown\").\nLet `BUILD_FILE` = path to detected build file (or empty).\n\n#### Step 1b: Identify module directories\n\n**ツール選択（優先度順）:**\n1. Glob ツール（`{REPO_PATH}\u002F**\u002F*` パターンでディレクトリ一覧を取得）を第一選択とする\n2. Glob が使用できない場合: Bash で `find {REPO_PATH} -type d -maxdepth 3` にフォールバック\n\n取得したディレクトリ一覧から EXCLUDE_PATTERNS を**後処理フィルタ**として適用する\n（各ディレクトリパスが EXCLUDE_PATTERNS の任意エントリをサブストリングとして含む場合に除外）。\n\nApply heuristics to identify \"module directories\" (directories that contain source files at the\ndetected extension):\n- If INCLUDE_EXTENSIONS set: directories containing files with those extensions\n- Otherwise: directories containing source files (`.py`, `.ts`, `.go`, `.java`, `.rs`, `.c`, `.cpp`, `.h` etc.)\n- Directories that contain only other directories (no source files) are treated as namespace containers, not modules themselves\n\nLet `MODULE_DIRS` = list of identified module directories.\n\nLimit to at most 50 module directories per repo. If more found: record the first 50 by path depth\n(shallow-first) and add the following note to `CATALOG_FILE`:\n```\n> ⚠️ このリポジトリには {N} 件のモジュールが見つかりましたが、上限（50件）のため最初の 50 件のみ記録しています。\n> 残りのモジュールを追加する場合: このファイルの「## 2. モジュール一覧」に手動でエントリを追記してください。\n```\n\n#### Step 1c: For each module directory — extract symbols and imports\n\nFor each `module_dir` in `MODULE_DIRS`:\n\n**Detect entry point:**\n\n| Language | Entry point files to check |\n|---|---|\n| Python | `__init__.py` in module_dir |\n| TypeScript\u002FJavaScript | `index.ts`, `index.js`, `index.tsx` in module_dir |\n| Go | All `*.go` files in module_dir (package-level) |\n| Java\u002FKotlin | `package-info.java` if present; else first `.java`\u002F`.kt` file |\n| Rust | `lib.rs`, `mod.rs`, `main.rs` in module_dir |\n| C\u002FC++ | Top-level `.h` files in module_dir |\n| Unknown | First 3 source files found |\n\nRead the entry point file(s).\n\n**Extract exported\u002Fpublic symbols (top 10 per module):**\n- Python: top-level `def`, `class`, entries in `__all__` if defined\n- TypeScript\u002FJS: `export function`, `export class`, `export const`, `export type`\n- Go: capitalized top-level `func`, `type`, `var`, `const`\n- Java\u002FKotlin: `public class`, `public interface`, `public fun`\n- Rust: `pub fn`, `pub struct`, `pub enum`, `pub trait`\n- C\u002FC++: non-static function declarations in `.h` files\n- Limit to 10 symbols per module; if more found, record top 10 and note count\n\n**シンボル → モジュール逆引きテーブルの構築:**\n各モジュールのシンボルを記録する際、以下の形式で `SYMBOL_TO_MODULE` マップを構築する:\n  `SYMBOL_TO_MODULE[symbol_name] = module_dir`\nこのマップは specout エージェントの BFS 優先度計算（Wave 0 完了後）でシンボル→モジュール逆引きに使用する。\nマップは `module-catalog.md` の「## 3. シンボル索引」セクションとして出力する。\n\n**Extract module-level imports (dependencies within the same repo):**\nRead the entry point file(s) and scan for import statements.\nFilter to only internal imports (imports that reference another module within REPO_PATH).\nMap import paths to module directory names.\nLet `DEPS[module_dir]` = list of internal modules imported.\n\n#### Step 1d: Build reverse dependency map\n\nAfter processing all modules:\nFor each module M and each dep D in DEPS[M]:\n  Add M to `RDEPS[D]` (D is depended on by M).\n\n#### Step 1e: Infer module roles\n\nFor each module_dir, infer a one-line role description using:\n1. Docstring \u002F module-level comment in the entry point file\n2. README.md in the module directory (if present)\n3. Directory name heuristics (e.g., `auth\u002F` → \"認証・認可\", `db\u002F` → \"データアクセス層\")\n4. If none available: \"(役割未判定 — 手動記入推奨)\"\n\n#### Step 1f: Generate module-catalog.md from template\n\nRead `~\u002F.claude\u002Fskills\u002Fxddp-codemap\u002Ftemplates\u002Fmodule-catalog-template.md`.\nFill in all placeholders with the collected data.\nGenerate Mermaid dependency graph from DEPS\u002FRDEPS.\n\nLet `CATALOG_FILE` = `{DOCS}\u002F{repo}\u002Fmodule-catalog.md`.\nEnsure `{DOCS}\u002F{repo}\u002F` directory exists (`mkdir -p` via Bash).\nWrite `CATALOG_FILE`. (No human confirmation; overwrite if exists.)\n\n### Step 2: Report (in Japanese)\n\nTell the user:\n\n> **モジュールカタログ生成完了**\n>\n> | リポジトリ | 出力ファイル | モジュール数 |\n> |---|---|---|\n> | {repo} | `{CATALOG_FILE}` | {N} |\n>\n> **次のステップ:**\n> - 内容を確認し、役割記述が不正確な場合は手動で修正してください\n> - スペックアウト（`\u002Fxddp-04-specout`）実行時にカタログが自動参照されます\n> - カタログを更新する場合: `\u002Fxddp-codemap {repo}` を再実行してください（上書き再生成）\n\n---\n> **保守メモ:** このファイルを変更した場合は、`README.md`（スキル一覧テーブル）、`CLAUDE.md`（ステップ番号体系テーブル）も合わせて更新すること。\n","You are executing **XDDP Codemap — Generate Module Catalog**.\n\n> 本スキルは CR 非依存のため CR 解決行（xddp-common の \"## CR Resolution\"）は不要。\n\n**Arguments:** $ARGUMENTS\n- No args → all repos defined in REPOS:\n- `{repo}` → specific repository (matches a REPOS: key)\n- `all` → all repositories\n\n---\n\n### Step 0: Parse arguments, locate xddp.config.md\n\nRead `~\u002F.claude\u002Fskills\u002Fxddp-common\u002FSKILL.md`, apply \"## Load Config\"\n→ let `WORKSPACE_ROOT`, `DOCS_DIR`, `DOCS`, `REPOS_MAP`, `REPOS_KEYS`,\n  `EXCLUDE_PATTERNS`, `INCLUDE_EXTENSIONS`（他の戻り値は本スキルでは未使用）.\n\n**Resolve target repos:**\n- No args or `all` → `TARGET_REPOS` = all REPOS_KEYS\n- `{repo}` → if matches a REPOS_KEY: `TARGET_REPOS` = [{repo}]. Else: report error and stop.\n- `cross` is reserved and not a valid target (report error).\n\n### Step 1: For each repo in TARGET_REPOS — generate catalog\n\nFor each `{repo}` in `TARGET_REPOS`:\n\nLet `REPO_PATH` = `REPOS_MAP[repo]`.\n\n#### Step 1a: Detect language and project structure\n\nCheck for the following files in `{REPO_PATH}`:\n- `package.json` → Node.js \u002F TypeScript \u002F JavaScript\n- `pyproject.toml` or `requirements.txt` or `setup.py` → Python\n- `go.mod` → Go\n- `pom.xml` or `build.gradle` → Java \u002F Kotlin\n- `Cargo.toml` → Rust\n- `CMakeLists.txt` or `Makefile` → C\u002FC++ (or embedded)\n- Fallback → inspect directory structure for language hints\n\nLet `LANGUAGE` = detected language (or \"Unknown\").\nLet `BUILD_FILE` = path to detected build file (or empty).\n\n#### Step 1b: Identify module directories\n\n**ツール選択（優先度順）:**\n1. Glob ツール（`{REPO_PATH}\u002F**\u002F*` パターンでディレクトリ一覧を取得）を第一選択とする\n2. Glob が使用できない場合: Bash で `find {REPO_PATH} -type d -maxdepth 3` にフォールバック\n\n取得したディレクトリ一覧から EXCLUDE_PATTERNS を**後処理フィルタ**として適用する\n（各ディレクトリパスが EXCLUDE_PATTERNS の任意エントリをサブストリングとして含む場合に除外）。\n\nApply heuristics to identify \"module directories\" (directories that contain source files at the\ndetected extension):\n- If INCLUDE_EXTENSIONS set: directories containing files with those extensions\n- Otherwise: directories containing source files (`.py`, `.ts`, `.go`, `.java`, `.rs`, `.c`, `.cpp`, `.h` etc.)\n- Directories that contain only other directories (no source files) are treated as namespace containers, not modules themselves\n\nLet `MODULE_DIRS` = list of identified module directories.\n\nLimit to at most 50 module directories per repo. If more found: record the first 50 by path depth\n(shallow-first) and add the following note to `CATALOG_FILE`:\n```\n> ⚠️ このリポジトリには {N} 件のモジュールが見つかりましたが、上限（50件）のため最初の 50 件のみ記録しています。\n> 残りのモジュールを追加する場合: このファイルの「## 2. モジュール一覧」に手動でエントリを追記してください。\n```\n\n#### Step 1c: For each module directory — extract symbols and imports\n\nFor each `module_dir` in `MODULE_DIRS`:\n\n**Detect entry point:**\n\n| Language | Entry point files to check |\n|---|---|\n| Python | `__init__.py` in module_dir |\n| TypeScript\u002FJavaScript | `index.ts`, `index.js`, `index.tsx` in module_dir |\n| Go | All `*.go` files in module_dir (package-level) |\n| Java\u002FKotlin | `package-info.java` if present; else first `.java`\u002F`.kt` file |\n| Rust | `lib.rs`, `mod.rs`, `main.rs` in module_dir |\n| C\u002FC++ | Top-level `.h` files in module_dir |\n| Unknown | First 3 source files found |\n\nRead the entry point file(s).\n\n**Extract exported\u002Fpublic symbols (top 10 per module):**\n- Python: top-level `def`, `class`, entries in `__all__` if defined\n- TypeScript\u002FJS: `export function`, `export class`, `export const`, `export type`\n- Go: capitalized top-level `func`, `type`, `var`, `const`\n- Java\u002FKotlin: `public class`, `public interface`, `public fun`\n- Rust: `pub fn`, `pub struct`, `pub enum`, `pub trait`\n- C\u002FC++: non-static function declarations in `.h` files\n- Limit to 10 symbols per module; if more found, record top 10 and note count\n\n**シンボル → モジュール逆引きテーブルの構築:**\n各モジュールのシンボルを記録する際、以下の形式で `SYMBOL_TO_MODULE` マップを構築する:\n  `SYMBOL_TO_MODULE[symbol_name] = module_dir`\nこのマップは specout エージェントの BFS 優先度計算（Wave 0 完了後）でシンボル→モジュール逆引きに使用する。\nマップは `module-catalog.md` の「## 3. シンボル索引」セクションとして出力する。\n\n**Extract module-level imports (dependencies within the same repo):**\nRead the entry point file(s) and scan for import statements.\nFilter to only internal imports (imports that reference another module within REPO_PATH).\nMap import paths to module directory names.\nLet `DEPS[module_dir]` = list of internal modules imported.\n\n#### Step 1d: Build reverse dependency map\n\nAfter processing all modules:\nFor each module M and each dep D in DEPS[M]:\n  Add M to `RDEPS[D]` (D is depended on by M).\n\n#### Step 1e: Infer module roles\n\nFor each module_dir, infer a one-line role description using:\n1. Docstring \u002F module-level comment in the entry point file\n2. README.md in the module directory (if present)\n3. Directory name heuristics (e.g., `auth\u002F` → \"認証・認可\", `db\u002F` → \"データアクセス層\")\n4. If none available: \"(役割未判定 — 手動記入推奨)\"\n\n#### Step 1f: Generate module-catalog.md from template\n\nRead `~\u002F.claude\u002Fskills\u002Fxddp-codemap\u002Ftemplates\u002Fmodule-catalog-template.md`.\nFill in all placeholders with the collected data.\nGenerate Mermaid dependency graph from DEPS\u002FRDEPS.\n\nLet `CATALOG_FILE` = `{DOCS}\u002F{repo}\u002Fmodule-catalog.md`.\nEnsure `{DOCS}\u002F{repo}\u002F` directory exists (`mkdir -p` via Bash).\nWrite `CATALOG_FILE`. (No human confirmation; overwrite if exists.)\n\n### Step 2: Report (in Japanese)\n\nTell the user:\n\n> **モジュールカタログ生成完了**\n>\n> | リポジトリ | 出力ファイル | モジュール数 |\n> |---|---|---|\n> | {repo} | `{CATALOG_FILE}` | {N} |\n>\n> **次のステップ:**\n> - 内容を確認し、役割記述が不正確な場合は手動で修正してください\n> - スペックアウト（`\u002Fxddp-04-specout`）実行時にカタログが自動参照されます\n> - カタログを更新する場合: `\u002Fxddp-codemap {repo}` を再実行してください（上書き再生成）\n\n---\n> **保守メモ:** このファイルを変更した場合は、`README.md`（スキル一覧テーブル）、`CLAUDE.md`（ステップ番号体系テーブル）も合わせて更新すること。\n",{"name":5,"description":7,"argument-hint":31},"[repo名 | all]","main","0719b3a37b134895da55968646acffe58aedce8f","ClaudeCode\u002F.claude\u002Fskills\u002Fxddp-codemap",0,"https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings","https:\u002F\u002Fgithub.com\u002Ftsuna44","2026-11-08 08:45:39",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add tsuna44\u002FXddpSettings --skill xddp-codemap",{"tool":45,"command":46},"bunx","bunx skills add tsuna44\u002FXddpSettings --skill xddp-codemap",{"tool":48,"command":49},"pnpm","pnpm dlx skills add tsuna44\u002FXddpSettings --skill xddp-codemap","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002FClaudeCode\u002F.claude\u002Fskills\u002Fxddp-codemap\u002FSKILL.md",true,[53],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"templates\u002Fmodule-catalog-template.md","REFERENCE","参考文档",1180,"https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002FClaudeCode\u002F.claude\u002Fskills\u002Fxddp-codemap\u002Ftemplates\u002Fmodule-catalog-template.md",[60,73,80,88,95,115],{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":26},"01M6MDVNN0ZX8D5KABK9G0067Z","demo.skill","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002Ftools\u002Fharness\u002Ftests\u002Ffixtures\u002Fbadrepo\u002FClaudeCode\u002F.claude\u002Fskills\u002Fdemo.skill\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[71,72],"demo skill","demo",{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":26},"01M6MDVK20HAJYBMXM7VX50A3J","demo.noname","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002Ftools\u002Fharness\u002Ftests\u002Ffixtures\u002Fbadrepo\u002FClaudeCode\u002F.claude\u002Fskills\u002Fdemo.noname\u002FSKILL.md",[],[79,72],"demo noname",{"skillNo":81,"name":82,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":26},"01M6MDVFS20532JT4V7WT779XH","demo.common","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002Ftools\u002Fharness\u002Ftests\u002Ffixtures\u002Fbadrepo\u002FClaudeCode\u002F.claude\u002Fskills\u002Fdemo.common\u002FSKILL.md",[],[86,87,72],"demo common","common",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":26},"01M6MDVCV2JFN66NJTFG1CCJS1","demo.badname","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002Ftools\u002Fharness\u002Ftests\u002Ffixtures\u002Fbadrepo\u002FClaudeCode\u002F.claude\u002Fskills\u002Fdemo.badname\u002FSKILL.md",[],[94,72],"demo badname",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":104,"publishedAt":26},"01M6MDV7CHGZGPXR0MQ44VC4C1","xddp-update-knowledge","任意のタイミングで baseline_docs\u002F の knowledge ディレクトリに知識を追加・更新する。CR 非依存。対話形式と引数形式に対応。「知識を登録して」「callgraph を記録して」「メモを保存して」などで起動する。","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002FClaudeCode\u002F.claude\u002Fskills\u002Fxddp-update-knowledge\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000021","资料检索与研究",[105,106,107,108,109,110,111,112,113,21,114,20],"xddp update knowledge","update knowledge","knowledge","update","note","structure","constraint","lesson","glossary","flow",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":129,"publishedAt":26},"01M6MDV2Q1Z02WAN4CZ2WVFZ27","xddp-sync-design","コードから DSN を再生成してリビジョンとして記録し、AIレビュー→人承認を実施する。「設計を同期して」「DSN を更新して」などで起動する。","https:\u002F\u002Fgithub.com\u002Ftsuna44\u002FXddpSettings\u002Fblob\u002Fmain\u002FClaudeCode\u002F.claude\u002Fskills\u002Fxddp-sync-design\u002FSKILL.md",[121,124],{"categoryNo":122,"categoryName":123,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[130,131,132,22],"sync","xddp sync design","design"]