dotfiles/claude/skills/skill-installer/SKILL.md
claude-skills リポジトリ(teams/dev/ba2/skills/ 配下)で共有されているスキルを、各自の個人スキルディレクトリ(~/.claude/skills/ ・ ~/.codex/skills/)へ取り込む/更新するスキル。チームで作ったスキルを自分の環境で使えるようにする配布ツール。「スキルをインストール」「リポジトリのスキルを取り込んで」「共有スキルを個人に入れて」「スキルを最新に更新」「新しいスキル使いたい」「skill-installer」などのリクエストでトリガー。
npx skillsauth add octkp/dotfiles skill-installerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
claude-skills リポジトリでチーム共有しているスキルを、各メンバーの個人スキルディレクトリへ取り込む(コピーする)ためのスキル。
このリポジトリでは「スキルの配布元」と「実際に使う場所」を分けている:
| 区分 | 場所 | 役割 |
|---|---|---|
| 配布元(repo) | <claude-skills>/teams/dev/ba2/skills/<名前>/SKILL.md(Claude版)<br><claude-skills>/teams/dev/ba2/skills/<名前>/.codex/SKILL.md(Codex版・あれば) | チームで共有・バージョン管理するスキルの正本 |
| 利用場所(個人) | ~/.claude/skills/<名前>/SKILL.md<br>~/.codex/skills/<名前>/SKILL.md | Claude Code / Codex CLI が実際に読み込む場所 |
スキルは個人ディレクトリに置かれて初めて発動する。このスキルは配布元 → 個人へのコピーを対話的に行う。
REPO_ROOT="$HOME/ghq/github.com/kokopelli-inc/claude-skills"
TEAM_PATH="teams/dev/ba2" # ← 自分のチームパス(必要なら変更。例: teams/qa)
SKILLS_DIR="$REPO_ROOT/$TEAM_PATH/skills"
cd "$REPO_ROOT"
git pull --ff-only origin main 2>/dev/null || echo "(git pull はスキップ。ローカルの内容でインストールします)"
git pull は best-effort。失敗しても続行する。$HOME/ghq/... 以外の場合は REPO_ROOT を実態に合わせる。shared/ 配下等)を入れたい場合は SKILLS_DIR をその都度切り替える。各スキルディレクトリには Claude版(SKILL.md)と Codex版(.codex/SKILL.md、あれば)が同居している。両方の存在を確認し、個人側に「未インストール / 同一 / 差分あり(更新可能)」のどれかを判定する。
cd "$REPO_ROOT"
[ -d "$SKILLS_DIR" ] || { echo "($SKILLS_DIR が無い)"; exit 0; }
echo "===== $TEAM_PATH/skills ====="
for dir in "$SKILLS_DIR"/*/; do
[ -d "$dir" ] || continue
name=$(basename "$dir")
# Claude版(必須想定)
src_claude="$dir/SKILL.md"
dest_claude="$HOME/.claude/skills/$name/SKILL.md"
if [ ! -e "$src_claude" ]; then st_c="(Claude版なし)"
elif [ ! -e "$dest_claude" ]; then st_c="未インストール"
elif diff -q "$src_claude" "$dest_claude" >/dev/null 2>&1; then st_c="同一"
else st_c="差分あり"; fi
# Codex版(任意)
src_codex="$dir/.codex/SKILL.md"
dest_codex="$HOME/.codex/skills/$name/SKILL.md"
if [ ! -e "$src_codex" ]; then st_x="(Codex版なし)"
elif [ ! -e "$dest_codex" ]; then st_x="未インストール"
elif diff -q "$src_codex" "$dest_codex" >/dev/null 2>&1; then st_x="同一"
else st_x="差分あり"; fi
printf " %-28s claude:%-14s codex:%-14s\n" "$name" "$st_c" "$st_x"
done
SKILL.md が無く .codex/SKILL.md だけある ような構成は基本ない(Claude版が正本)。.codex/ が無いスキルもある(Codex対応不要のもの)。その場合は Codex 側のコピーをスキップする。一覧を提示し、ユーザーにどれを取り込むか確認する(AskUserQuestion 等)。
diff -u "$dest_claude" "$src_claude" の内容を見せてから進める。対象スキルごとに、配布元に存在する版(Claude / Codex)をそれぞれの個人ディレクトリへコピーする。
NAME="ticket-knowledge-reader" # 対象スキル名に置換
src_dir="$SKILLS_DIR/$NAME"
# Claude版
if [ -e "$src_dir/SKILL.md" ]; then
mkdir -p "$HOME/.claude/skills/$NAME"
cp "$src_dir/SKILL.md" "$HOME/.claude/skills/$NAME/SKILL.md"
# SKILL.md 以外の補助ファイル(.codex/ を除く)もコピー
for f in "$src_dir"/*; do
bn=$(basename "$f")
[ "$bn" = "SKILL.md" ] && continue
[ "$bn" = ".codex" ] && continue
cp -r "$f" "$HOME/.claude/skills/$NAME/"
done
echo "installed (Claude): $HOME/.claude/skills/$NAME/"
fi
# Codex版
if [ -e "$src_dir/.codex/SKILL.md" ]; then
mkdir -p "$HOME/.codex/skills/$NAME"
cp "$src_dir/.codex/SKILL.md" "$HOME/.codex/skills/$NAME/SKILL.md"
# .codex/ 配下の他ファイルもコピー
for f in "$src_dir/.codex"/*; do
bn=$(basename "$f")
[ "$bn" = "SKILL.md" ] && continue
cp -r "$f" "$HOME/.codex/skills/$NAME/"
done
echo "installed (Codex): $HOME/.codex/skills/$NAME/"
fi
~/.claude/skills/、~/.codex/skills/)が無ければ mkdir -p で作る。SKILL.md 以外の補助ファイル(参照ドキュメント、設定ファイル等)も同梱されている場合は併せてコピーする。.codex/ 自体はサブディレクトリ構造なのでコピー対象から除外する点に注意。インストール/更新したスキル名と、コピー先(~/.claude/skills/ / ~/.codex/skills/)を報告する。
<claude-skills>/teams/dev/ba2/skills/<名前>/)を直接編集してコミットする。SKILL.md)と Codex版(.codex/SKILL.md)は内容が異なることがある。それぞれの配布元からそれぞれの個人ディレクトリへコピーする(クロスコピーしない)。git pull は best-effort。ネットワーク不可でもローカルの配布元内容でインストールできる。teams/<other>/skills/ や shared/ を取り込みたい場合は SKILLS_DIR を切り替えて同じ手順を実行する。このスキル自体も配布元に置かれている。まだ個人ディレクトリに無いメンバーは、最初の1回だけ手動でコピーする:
REPO_ROOT="$HOME/ghq/github.com/kokopelli-inc/claude-skills"
SRC="$REPO_ROOT/teams/dev/ba2/skills/skill-installer"
mkdir -p "$HOME/.claude/skills/skill-installer" "$HOME/.codex/skills/skill-installer"
cp "$SRC/SKILL.md" "$HOME/.claude/skills/skill-installer/SKILL.md"
cp "$SRC/.codex/SKILL.md" "$HOME/.codex/skills/skill-installer/SKILL.md" # Codex も使う場合
以降は「スキルをインストールして」と頼めば、このスキルが他のスキルをまとめて取り込む。
ユーザー: 「リポジトリのスキルを個人に入れて」
実行:
git pull(best-effort)ユーザー: 「ticket-knowledge-reader を最新にして」
実行:
git pull(best-effort)ticket-knowledge-reader の配布元(SKILL.md と .codex/SKILL.md)を個人ディレクトリへ cp で上書きdocumentation
base リポジトリ(~/base)の主要ディレクトリ(dotfiles / home / local / scripts / docs)の README.md と、リポジトリ直下の README.md を、実際のファイル構成に合わせて更新・新規作成するスキル。各ディレクトリの中身を実際に走査して内容を導出するので、設定追加・ディレクトリ移動のあとに走らせると README が現状と一致する。「READMEを更新して」「READMEを作り直して」「base のドキュメントを整える」「/base-readme」などのリクエストで使用。
development
旧 badev-knowledge-base リポの docs/{苗字}/ 配下を、許可リストの現役メンバー 4 人 (takano / tokita / yukioka / ushiroyama) に絞って ba2-workspace/docs/ に同期するスキル。旧リポを source of truth として、衝突時は新リポ側を旧リポで上書きする。コミット・プッシュは行わず、git add までで停止する。「badev-knowledge-base から同期して」「旧リポのナレッジを取り込んで」「badev-knowledge-sync を走らせて」「旧 docs を同期」などのリクエストでトリガー。
documentation
チケット番号(BAX-XXXX)を伝えるだけで、ba2-ticket-knowledge-logger が記録したナレッジドキュメント(README.md / LOG.md / PLAN.md)を全ユーザー・全カテゴリ横断で自動検索して読み込み、要約して提示するスキル。別セッションで過去の調査・実装内容を読み直したいときに使う。「BAX-10987」「BAX-10325のナレッジ読んで」「前に調べたBAX-XXXXの記録」「BAX-XXXXの続きをやりたい」「BAX-XXXX読み直して」などのリクエストでトリガー。
tools
チケット番号(BAX-XXXX)とカテゴリ(調査/実装/その他)を指定して、会話ログとまとめファイルを記録し、JIRAチケットにもコメントとしてナレッジを投稿するスキル。「BAX-10325の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。