コンテンツにスキップ

スキルの書き方

スキルはClaude Codeの再利用可能なプロンプトです。SKILL.mdファイルとして定義し、バージョン管理されます。

---
name: my-skill
display_name: My Skill
description: スキルの説明(一行)
---
ここにプロンプトの本文を記述します。
フィールド必須説明
nameYesスラッグ識別子(/^[a-z0-9-]+$/
display_nameYes人間向けの表示名
descriptionYesスキルの説明(一行)
requiresNo依存宣言(下記参照)

スキルが必要とする外部依存を requires ブロックで宣言できます。ワークフロー実行前にミニオンが必要なツールや設定を持っているか事前チェックされます。

---
name: lancers-compe-search
description: ランサーズコンペ検索
requires:
mcp_servers: [playwright, supabase]
cli_tools: [git, node]
env_vars: [LANCERS_EMAIL, LANCERS_PASSWORD]
---
フィールド説明
mcp_servers必要なMCPサーバー(~/.mcp.json の設定と照合)
cli_tools必要なCLIツール(任意のツール名を指定可能。ミニオン上で which により動的チェック)
env_vars必要な環境変数(ミニオンローカルの変数/シークレット、およびHQ注入のプロジェクト/ワークフロー変数と照合)

requires ブロックがないスキルは「外部依存なし」として扱われます。

Markdown形式で記述します。Claude Codeがこのテキストを指示として受け取り、実行します。

スキルでは、設定パラメータにテンプレート変数、機密情報にシークレットの2つの仕組みで外部値を参照できます。

テンプレート変数({{VAR_NAME}}

Section titled “テンプレート変数({{VAR_NAME}})”

スキル本文中に {{VAR_NAME}} と記述すると、実行時に変数の値で自動的に置換されます。

---
name: deploy-site
description: Webサイトをデプロイする
---
{{SITE_URL}} を {{DEPLOY_TARGET}} にデプロイしてください。

変数は4つのスコープで定義でき、同名キーは優先度の高いスコープが上書きします:

優先度スコープ設定場所説明
1(最低)ワークスペースHQダッシュボード → ワークスペース設定配下の全ミニオン・プロジェクトで共有
2プロジェクトHQダッシュボード → プロジェクト設定プロジェクトメンバー間で共有
3ワークフローHQダッシュボード → ワークフロー設定ワークフロー固有の上書き
4(最高)ミニオンHQダッシュボード → ミニオン設定、または PUT /api/variables/:key実行マシン固有の最終オーバーライド(12-factor app流)
  • 変数名: 英数字とアンダースコアのみ(\w+
  • 未定義の変数は {{VAR_NAME}} のまま残る(エラーにはならない)
  • テンプレート展開はデプロイ時ではなく実行時に行われる
  • ワークスペース/プロジェクト/ワークフローはHQ側で展開され、ミニオン側のローカル変数が最後に上書きする。ミニオン運用者がHQ側を変更せずに値を差し替えられる経路を保証する

シークレットは環境変数として実行プロセスに注入されます。APIキーやパスワードなどの機密情報に使用します。

---
name: check-api
description: 外部APIのヘルスチェック
requires:
env_vars: [API_KEY]
---
$API_KEY 環境変数のAPIキーを使用してエンドポイントを呼び出してください。

シークレットはHQダッシュボード(ミニオン設定)または PUT /api/secrets/:key で設定します。変数との違い:

  • シークレットの値は一覧APIで返却されない(キーのみ)。HQ DBには一切保存されない。HQはpass-throughとして値を中継するのみ。
  • {{VAR}} テンプレートとして展開されない — プロセスの環境変数 $ENV_VAR として利用可能
  • フロントマターの requires.env_vars で必要なシークレットを宣言すると、実行前バリデーションが行われる

シークレットのスコープ(マルチワークスペース対応)

Section titled “シークレットのスコープ(マルチワークスペース対応)”

1つのミニオンが複数のワークスペースを担当する場合、漏洩防止のためミニオン側でスコープ別に保存されます:

スコープ保存形式セッションから参照可能な条件
ミニオン全体workspace_id=''常に(どのワークスペースでも、ad-hocコマンドでも)
ワークスペース別workspace_id=<uuid>ランナーがそのワークスペースのコンテキストで実行している時のみ

同じキーが両方のスコープに存在する場合はワークスペース側が勝ちます。スキル側はどちらのスコープに由来するかを意識する必要はなく、$KEY で参照すれば適切な値が渡されます。

ダッシュボードでシークレットを登録する際にスコープを選んでください:

  • ミニオン全体: このミニオンが担当する全ワークスペースで共有したい認証情報(例: 自分の OPENAI_API_KEY を開発用に共有)
  • ワークスペース別: 顧客・テナント固有の認証情報。ワークスペースごとに個別登録することで、ワークスペースAのキーがワークスペースBの実行中に見えることはありません

スキルはミニオンの ~/.claude/skills/<name>/SKILL.md に配置されます。

Terminal window
# ローカルのスキル一覧を確認
minion-cli skill list --local
Terminal window
# HQ上のスキル一覧
minion-cli skill list
# スキルをHQから取得してローカルにデプロイ
minion-cli skill fetch <name>
# ローカルのスキルをHQにpush(新バージョンが自動作成)
minion-cli skill push <name>

スキルはSKILL.mdに加え、テンプレートや設定ファイルを含めることができます。同じディレクトリ内のファイルがすべてスキルの一部として管理されます。

~/.claude/skills/my-skill/
├── SKILL.md # プロンプト本文
├── template.html # テンプレートファイル
└── config.json # 設定ファイル