Skill

Step 1: サブコマンド判定

- `$ARGUMENTS[0]` が `create` → Step 3(新規作成フロー)へ

From core
Install
1
Run in your terminal
$
npx claudepluginhub kentanakae/claude-code-plugins --plugin core
Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

Step 1: サブコマンド判定

  • $ARGUMENTS[0]create → Step 3(新規作成フロー)へ
  • $ARGUMENTS[0]update → Step 4(更新フロー)へ
  • 未指定 or 上記以外 → AskUserQuestion で create / update を選択させてから対応する Step へ

スキル名は $ARGUMENTS[1] から取得する。未指定の場合は各フロー内で確認する。

Step 2: ドキュメント確認と差分チェック

WebFetchで https://code.claude.com/docs/ja/skills.md を取得し、「フロントマターリファレンス」テーブルの全フィールド名を抽出する。以下の既知フィールド一覧と比較し、差分があれば警告してこのスキル(edit-skill)のアップデートが必要な旨を伝える。差分がなければ次の Step に進む。

既知フィールド: name, description, argument-hint, disable-model-invocation, user-invocable, allowed-tools, model, context, agent, hooks

Step 3: 新規作成フロー

Step 3-1: スキル設計インタビュー

ユーザーに以下を確認する(AskUserQuestionを使用):

基本設定

  1. スキル名:

    • $ARGUMENTS[1] が指定されている場合はそれを使用、なければインタビューで確認
    • 制約: 小文字、数字、ハイフンのみ(最大64文字)
  2. スキルタイプ:

    • リファレンス型: 規約、パターン、スタイルガイドなどの知識を提供
    • タスク型: 特定のアクションを実行するステップバイステップ指示
  3. 説明(description): 推奨

    • スキルの用途、使用タイミング、関連キーワードを簡潔に記述する
    • Claudeはこの説明を使ってスキルを自動適用するか判断するため、ユーザーが自然に言うキーワードを含めること
    • 全スキルの説明がコンテキストウィンドウの2%(フォールバック16,000文字)の予算を共有して常時読み込まれるため、簡潔に保つ
    • 技術用語は英語キーワードのまま含めるとマッチしやすい(例: code, deploy, test)
    • 例: "コードを図解と比喩で説明する。コードの仕組みの質問、コードベースの学習、「これはどう動く?」という質問時に使用。"
    • disable-model-invocation: true の場合、descriptionはコンテキストに載らないため、キーワードやトリガー文言は不要。用途の説明のみで十分
    • 省略時はマークダウンコンテンツの最初の段落が使用される
  4. 引数ヒント(argument-hint): オプション

    • / メニューのオートコンプリート時に表示されるヒント
    • 例: [issue-number][filename] [format]
  5. 適用範囲:

    • 個人(~/.claude/skills/)- 全プロジェクトで利用可能
    • プロジェクト(.claude/skills/)- このプロジェクトのみ
    • モノレポではサブディレクトリ内の .claude/skills/ からも自動検出される

呼び出し制御

  1. 呼び出し方法:
    • 手動のみdisable-model-invocation: true): ユーザーのみが /skill-name で呼び出し可能
      • 判断基準: デプロイ、メッセージ送信、Git操作、ファイル削除など副作用のあるワークフロー。タイミングをユーザーが制御すべきスキルに使う
      • 注意: descriptionはコンテキストに載らないため、キーワード最適化は不要
    • 自動+手動(デフォルト): Claudeが関連時に自動ロード、ユーザーも手動で呼び出し可能
      • 判断基準: コーディング規約、API規約、説明スキルなど、会話の文脈で自動適用されると便利なスキル。大半のスキルはこれでよい
    • Claude専用user-invocable: false): / メニューに非表示
      • 判断基準: レガシーシステムの知識やドメイン固有の背景情報など、ユーザーが直接呼び出すアクションではないバックグラウンド知識向け

実行環境

  1. 実行コンテキスト:

    • インライン(デフォルト): メイン会話内で実行。会話コンテキストにアクセス可能
      • 判断基準: 会話の流れに沿って動くスキル。リファレンス型や、会話コンテキストが必要な軽量タスク型
    • サブエージェントcontext: fork): 分離されたコンテキストで実行。会話履歴にアクセス不可
      • 判断基準: 重い処理(リサーチ、大量分析)や、メインの会話コンテキストを消費したくない場合に使う
      • 注意: ガイドラインのみで実行タスクがないスキルには不向き(サブエージェントが何もせず戻る)
  2. サブエージェントタイプcontext: fork 時のみ):

    • Explore(読み取り専用探索)/ Plan(設計・計画)/ general-purpose(デフォルト)/ カスタム(.claude/agents/ で定義)
  3. モデル指定(model): オプション - スキル実行時に使用するモデルを指定

ツールとファイル

  1. 必要なツール(allowed-tools): オプション(設定忘れ注意

    • スキルがアクティブな時にClaudeが許可なく使用できるツール
    • 未設定だとスキル実行中にツール使用の都度ユーザー許可が必要になり、スキルの自動実行が阻害される
    • スキルの指示内容で使うツールを洗い出して設定すること
    • 例: Read, Grep, Glob(読み取り専用)、Bash(gh:*)(GitHub CLI限定)、WebFetch, Read, Write, Edit, Glob(ファイル操作+Web取得)
  2. サポートファイル構成: オプション

    • SKILL.md以外に含めるファイル: テンプレート、例、スクリプト、リファレンスなど
    • SKILL.mdは500行以下を推奨。詳細は別ファイルに分離
  3. フック(hooks): オプション

    • スキルのライフサイクルにスコープされたフック。詳細は Hooks を参照

Step 3-2: 高度な機能確認(該当する場合のみ)

拡張思考(ultrathink)

スキルで拡張思考を有効にしたい場合、SKILL.mdコンテンツ内のどこかに「ultrathink」という単語を含める。これにより、Claudeはより深い思考プロセスを使用してタスクを処理する。

変数置換

スキルコンテンツ内で使用可能な変数:

変数説明
$ARGUMENTSスキル呼び出し時に渡された全引数文字列。コンテンツに存在しない場合は末尾に ARGUMENTS: <value> として追加
$ARGUMENTS[N]N番目の引数(0始まり)。例: $ARGUMENTS[0] は最初の引数
$N$ARGUMENTS[N] の短縮形。$0 は最初の引数、$1 は2番目
${CLAUDE_SESSION_ID}現在のセッションID。ログやセッション固有のファイル作成に有用

動的コンテキスト注入

シェルコマンドの実行結果をスキルコンテンツに注入する機能。エクスクラメーションマーク(!)の直後にバッククォートで囲んだコマンドを記述する。これはプリプロセッシングとして動作し、Claudeが見る前にコマンド出力がプレースホルダーを置換する。

SKILL.md内にサンプルコードを記述するとパーサーが検出・実行するため、直接記述は避けること。詳細は 公式ドキュメント を参照。

ビジュアル出力パターン

スクリプトをバンドルしてHTMLなどのビジュアル出力を生成可能:

my-skill/
├── SKILL.md
└── scripts/
    └── visualize.py  # Claudeが実行するスクリプト

プランモード連携

タスク型スキルで実装を伴う複雑なワークフローの場合、スキル本文にプランモード解除ステップを組み込むか確認する:

  • 含める場合: スキル本文の先頭(最初のステップの前)に以下の文言をそのまま追加する
## Step 0: プランモード解除

プランモードが有効な場合は、ExitPlanMode ツールを呼び出して解除してください。 プランモードでない場合はこのステップをスキップしてください。
  • 含めない場合: スキルが直接実行のみのワークフローであれば不要

判断基準:

  • 実装の方針が複数ありうる → 含める(ユーザーがアプローチを選べる)
  • 手順が決まっている直接実行型 → 不要

Step 3-3: スキル作成実行

作成前チェック:

  • allowed-tools がスキルの指示内容で使うツールを網羅しているか確認。不足があればユーザーに提案する
  • フロントマター値にクオート(" ')が含まれていないか確認

実行:

  1. 指定されたディレクトリにスキルフォルダを作成
  2. SKILL.mdファイルを生成
  3. サポートファイルがある場合は作成
  4. 作成したファイルの内容を表示

Step 4: 更新フロー

Step 4-1: 対象スキルの特定

  • $ARGUMENTS[1] でスキル名が指定されている場合: 以下のパスを Glob で検索し SKILL.md を探す
    • .claude/skills/*/SKILL.md
    • ~/.claude/skills/*/SKILL.md
    • **/plugins/*/skills/*/SKILL.md
  • 未指定の場合: 上記すべてのパスからスキル一覧を収集し、AskUserQuestion で対象を選択させる

Step 4-2: 現在の設定の読み込みと表示

対象の SKILL.md を Read で読み込み、以下を整理して表示する:

  • フロントマター設定一覧: 各フィールドの現在値
  • 本文概要: 見出し構成と行数
  • サポートファイル一覧: 同ディレクトリ内の SKILL.md 以外のファイル(Glob で検索)

Step 4-3: 更新箇所の選択

AskUserQuestion(multiSelect: true)で更新したい箇所を選択させる:

  • フロントマター設定(name, description, argument-hint, allowed-tools など)
  • 本文(スキル指示内容)
  • サポートファイル(テンプレート、スクリプトなど)
  • 高度な機能(変数置換、動的コンテキスト注入、ultrathink、プランモード連携 など)

Step 4-4: 選択項目の更新インタビュー

選択された項目について、現在の値を表示しながら変更内容を確認する:

  • フロントマター: 各フィールドの現在値を提示し、変更したいフィールドのみ新しい値を確認。変更のない部分はそのまま保持
  • 本文: 現在の構成を示しつつ、具体的な変更指示を確認。全面書き換えか部分修正かを確認
  • サポートファイル: 追加・変更・削除の対象を確認
  • 高度な機能: Step 3-2 のリファレンスを参照しながら、追加・変更する機能を確認

Step 4-5: 更新実行

  1. 変更内容のプレビューを表示(変更前 → 変更後の diff 形式)
  2. AskUserQuestion で適用確認
  3. 変更を反映:
    • フロントマターのみの変更 → Edit で部分更新
    • 本文の部分修正 → Edit で部分更新
    • 大幅な書き換え → Write で全体更新
    • サポートファイル → Write / Edit で個別に更新
  4. 更新結果を表示

フロントマター記述ルール

クオート(引用符)は使用しない。 フロントマターはYAML風の記法だが、YAMLパーサーではない。値にダブルクォート(")やシングルクォート(')を付けてはいけない。コロン、カンマ、特殊文字を含む値であっても、クオートなしでそのまま記述すること。

  • OK: description: コードを図解と比喩で説明する。コードの仕組みの質問時に使用。
  • NG: description: "コードを図解と比喩で説明する。コードの仕組みの質問時に使用。"

フロントマターリファレンス

---
name: my-skill                      # スキル名(省略時はディレクトリ名)
description: What this skill does   # 説明(推奨)
argument-hint: [arg1] [arg2]        # 引数ヒント
disable-model-invocation: true      # Claude自動呼び出し無効化
user-invocable: false               # /メニューから非表示
allowed-tools: Read, Grep, Glob     # 許可ツール
model: sonnet                       # 使用モデル
context: fork                       # サブエージェント実行
agent: Explore                      # サブエージェントタイプ
hooks:                              # ライフサイクルフック
  pre-tool-execution:
    - command: echo "Starting"
---

引数

  • /edit-skill create my-new-skill: スキル名を指定して新規作成
  • /edit-skill create: インタビューでスキル名を確認して新規作成
  • /edit-skill update my-existing-skill: スキル名を指定して更新
  • /edit-skill update: スキル一覧から選択して更新
  • /edit-skill: サブコマンド選択から開始
Similar Skills
cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

138.5k
Stats
Parent Repo Stars0
Parent Repo Forks0
Last CommitMar 4, 2026