dotfiles/claude/skills/skill-porter/SKILL.md
claude-skills リポジトリ内で、Claude Code 用スキル(<skill>/SKILL.md)と Codex CLI 用スキル(<skill>/.codex/SKILL.md)を相互変換(移植)するスキル。Claude→Codex はMCP/WebFetch/AskUserQuestion等のClaude固有ツールをCodexで動く形に読み替え、Codex→Claude はその逆を行う。「claude用スキルをcodex用に変換」「codex版を作って」「このスキルを移植」「逆変換してclaude版を作る」「skill-porter」などのリクエストでトリガー。
npx skillsauth add octkp/base skill-porterInstall 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 Code 用スキルと Codex CLI 用スキルを**相互変換(移植)**するスキル。
claude-skills リポジトリでは、1つのスキルにつき Claude版(SKILL.md)と Codex版(.codex/SKILL.md、任意)を同じディレクトリに同居させる構造を取っている:
| 区分 | 配布元の場所 | 特徴 |
|---|---|---|
| Claude Code 版 | <claude-skills>/teams/<team>/skills/<名前>/SKILL.md | MCP ツール・WebFetch・AskUserQuestion 等の Claude 固有機能が使える |
| Codex CLI 版 | <claude-skills>/teams/<team>/skills/<名前>/.codex/SKILL.md | それらが無いため、bash/curl/自然文での代替に読み替える必要がある |
両者はドメインのロジック(bash・テンプレート・ワークフローの骨子)は共通だが、ツールの呼び出し方とフロントマターが異なる。このスキルはその差分だけを規則的に変換し、人手判断が要る箇所はフラグして提示する。
これは機械的な文字列置換ではなく、意味を保ったまま読み替える変換。下の対応表を判断基準として使い、骨子はそのまま温存すること。
<skill>/SKILL.md を読み、<skill>/.codex/SKILL.md を生成/更新する。<skill>/.codex/SKILL.md を読み、<skill>/SKILL.md を生成/更新する。リクエストから「どのスキルを」「どちら向きに」変換するかを読み取る。曖昧なら確認する。
REPO_ROOT="$HOME/ghq/github.com/kokopelli-inc/claude-skills"
TEAM_PATH="teams/dev/ba2" # ← 対象スキルが属するチームパス
SKILL_DIR="$REPO_ROOT/$TEAM_PATH/skills/<name>" # ← 対象スキル名に置換
cd "$REPO_ROOT"
git pull --ff-only origin main 2>/dev/null || echo "(git pull はスキップ)"
変換元の SKILL.md(Claude版)または .codex/SKILL.md(Codex版)を Read で読み込む。同ディレクトリに補助ファイル(参照ドキュメント等)があれば併せて把握する。
name: そのまま。description: 内容は保つ。Codex特有の制約で機能を省略する場合(例: JIRA投稿を落とす)はその旨を一文追記する。metadata.short-description を追加する(1行で要約 + 末尾に「(Codex版)」)。---
name: <name>
description: <...> Codex版は<省略点があれば明記>。
metadata:
short-description: <1行要約>(Codex版)
---
metadata.short-description を削除する(Claude版は name + description のみが基本)。description から「Codex版は〜」等の Codex 固有注記を取り除き、Claude で復活する機能(JIRA投稿等)に合わせて文言を戻す。# <スキル名> (Codex版) にし、冒頭に「Claude Code のスキル <name> を Codex 向けに移植したもの。」の一文を入れる。Codexで機能を省略する場合はそれも明記。(Codex版) の接尾辞と移植注記を削除し、Claude版本来の説明に戻す。骨子(bashコマンド・Markdownテンプレート・手順の流れ)はそのまま温存し、ツール依存の箇所だけ下表に従って読み替える。
| 機能 | Claude Code 版 | Codex CLI 版 |
|---|---|---|
| Webページ取得 | WebFetch でURLを取得・抽出 | curl -s <url> で取得し、必要なら python3/jq でパース。取得不可ならユーザーに尋ねる |
| JIRA チケット名取得 | WebFetch(JIRAページ)または Atlassian MCP | curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" .../rest/api/3/issue/KEY?fields=summary。認証なしならユーザーに尋ねる |
| JIRA コメント投稿 | mcp__...atlassian...addCommentToJiraIssue | 省略(ファイル生成のみ)。必要なら curl REST を任意手順として記載。「Codex版はJIRA投稿しない」旨を注意書きに明記 |
| その他の MCP ツール(Slack/Notion/Sentry 等) | mcp__... を直接呼ぶ | 対応する公式 CLI / REST を bash で叩く、または「Codexでは未対応」として省略・ユーザー依頼に切替 |
| ユーザーへの選択質問 | AskUserQuestion(選択肢UI) | 自然文で質問する(「調査/実装/その他 のどれですか?」のように本文で尋ねる) |
| プランニング | EnterPlanMode / ExitPlanMode | プラン手順を自然文・箇条書きで提示してから実行(専用モードは無い) |
| サブエージェント | Agent / Task ツールで委譲 | サブエージェント機構が無いため、手順を本文に展開して直接実行する形に書き換える |
| コミット署名 | コミットメッセージ末尾に Co-Authored-By: Claude ... を付与 | その行は付けない(Codex版) |
Codex → Claude は上表を右→左に適用する。省略されていた機能(JIRA投稿等)を復活させる場合は、対応する MCP ツール名・パラメータを補う(不明なら元の Claude 版があればそれを参照し、無ければ TODO としてフラグ)。
# 例: Claude → Codex
mkdir -p "$SKILL_DIR/.codex"
# 変換後の内容を $SKILL_DIR/.codex/SKILL.md に Write で書き出す
# 例: Codex → Claude
# 変換後の内容を $SKILL_DIR/SKILL.md に Write で書き出す
diff を見せる。cp)。依存があれば同様に読み替える。skill-installer で個人ディレクトリへ取り込める旨、コミットが必要な旨を案内する(このスキル自身はコミットしない)。skill-installer の責務)。ユーザー: 「ticket-knowledge-reader の codex版を作って」
実行:
teams/dev/ba2/skills/ticket-knowledge-reader/SKILL.md を読むmetadata.short-description(Codex版)を追加、タイトルを (Codex版) 化teams/dev/ba2/skills/ticket-knowledge-reader/.codex/SKILL.md に書き出しユーザー: 「この codex スキルを claude 用に逆変換して」
実行:
teams/dev/ba2/skills/<名前>/.codex/SKILL.md を読むmetadata.short-description と (Codex版) 注記を削除teams/dev/ba2/skills/<名前>/SKILL.md に書き出し、要確認点を報告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の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。