← ClaudeAtlas

sync-skilllisted

Import or update a skill from another project into a subdirectory-package skills repository (the current one or an auto-detected sibling). Use when user says "sync-skill", "スキル同期", "スキルインポート", or "スキル取り込み"
trapple/skills · ★ 0 · AI & Automation · score 75
Install: claude install-skill trapple/skills
# sync-skill - 他PJのスキルを skills リポジトリに取り込む / 更新する 別プロジェクトの skill ディレクトリを、ユーザーが管理する **subdirectory package パターンの skills リポジトリ**のルート直下にコピーし、必要なら README.md を自動更新する。 「subdirectory package パターン」とは、各スキルがリポジトリ直下のディレクトリ(`<repo-root>/<skill-name>/SKILL.md`)として配置され、`apm install -g <owner>/<repo>/<skill-name>` で個別にインストールできる構成を指す(例: `mizchi/skills`, `anthropics/skills`)。 ## 想定リポジトリの解決 このスキルは特定のリポジトリ名に依存しない。**呼び出し元の `pwd` がスキル管理リポジトリ内とは限らない**ため、以下の順で `<repo-root>` を決定する。 1. **環境変数** — `$AGENT_SKILLS_REPO` が定義されていてディレクトリとして存在し、後述の「skills リポジトリ判定」に合致するなら採用する 2. **pwd** — 現在のディレクトリ(または `git -C . rev-parse --show-toplevel` のリポジトリルート)が skills リポジトリ判定に合致するなら採用する 3. **検索** — リポジトリ名が `skills` のディレクトリを探す: ```bash find ~/repos -maxdepth 5 -type d -name skills 2>/dev/null \ | while read d; do [ -d "$d/.git" ] && echo "$d"; done ``` 結果が 1 件かつ skills リポジトリ判定に合致するなら採用。0 件 / 複数件は次へ 4. **明示** — 上記で決まらなければ AskUserQuestion でユーザーにフルパスを尋ねる ### skills リポジトリ判定 次のいずれか1つを満たせば「skills リポジトリ」とみなす: - ルート直下に複数の `<name>/SKILL.md` ディレクトリが存在する(subdirectory package パターンの実体) - `git -C <repo> remote get-url origin 2>/dev/null` の URL の末尾が `/skills(.git)?$` にマッチする 決定したパスは以降の手順すべての `<repo-root>` として使う。`cd` はせず `git -C <repo-root>` や絶対パスで操作すること。解決結果は必ずユーザー確認(手順3)で提示する。 ### owner/repo の抽出(インストールコマンド表示用) ```bash git -C <repo-root> remote get-url origin \ | sed -E 's#(git@|https://)([^:/]+)[:/]([^/]+)/([^/.]+)(\.git)?#\3/\4#' ``` これで `<owner>/<repo>` が得られる。完了報告のインストールコマンドに使う。 ## 引数 - `$1` (必須): 取り込