1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code 拡張プリミティブの分類と使い分け — commands / skills / agents / workflows / hooks ほか 10 種類(2026-05時点)

1
Last updated at Posted at 2026-05-30

この記事の位置づけ

Claude Code は .claude/ 配下のディレクトリと、いくつかの接続設定で 多種多様な拡張プリミティブ を持つ。スラッシュ表記で起動するもの・Claude が裁量で発動するもの・イベント駆動で走るもの・常駐するもの…それぞれ役割と制御性が違う。

しかし /workflows がスラッシュ表記だから skill の一種だと思ったり、hook と MCP の違いが曖昧だったり、混同が頻発する。本記事は 2026-05時点での Claude Code 拡張プリミティブを 10 種類に分類し、各カテゴリの役割と使い分け、混同しやすいポイント を整理する 入口(hub) として書く。各カテゴリの詳細記事はリンク先に分けていく。

1. 全体像

Claude Code の拡張は大きく 2 種類 に分かれる:

  1. .claude/ 配下のディレクトリベース — ファイルを置く / md + frontmatter を書く / workflow.js を置く等
  2. 接続設定(ディレクトリではなく config) — 外部ツール接続 (mcpServers) や言語サーバー (lspServers) のように、外部リソースを Claude Code に接続するもの

合わせて 10 種類 + 2 接続設定で 計 12 のカテゴリ が現状把握できている (2026-05時点・Claude Code v2.1 系のバイナリ分析ベース)。

2. .claude/ 配下の拡張プリミティブ(10 種類)

一覧表

ディレクトリ 役割 起動方法 制御性 詳細記事
commands/ スラッシュコマンド ユーザーが /xxx で叩く 手続き的 (準備中)
skills/ 能力追加 Claude 裁量 (description マッチ) 確率的 (準備中)
agents/ サブエージェント定義 Agent tool / --agent で委譲 委譲型 (準備中)
workflows/ workflow.js による決定論的 orchestration 直接依頼 or ultracode 経由 決定論的 Dynamic Workflows 入門 + env var 罠 ← 別記事
output-styles/ 出力スタイル /output-style <name> (準備中)
themes/ 配色テーマ /theme <name> (準備中)
hooks/ イベント駆動シェル settings.json で発火条件定義 自動発火 Stop / PreToolUse / PreCompact hooks 実践
channels/ 通信チャンネル (telegram / discord 等) 常駐 (準備中)
monitors/ モニター 常駐監視 (準備中)
plugins/ 上記をバンドルしたパッケージ (準備中)

注: 「詳細記事(準備中)」 のリンクは順次追加していく。本記事は更新型 hub として育てる。

各カテゴリの 1 行整理

  • commands: ユーザーが / で叩く本来の意味のスラッシュコマンド。.claude/commands/<name>.md に手続きを書く
  • skills: Claude が「いつ・どう使うか」を frontmatter description マッチで裁量起動する能力単位
  • agents: サブエージェント (別モデル・別 system prompt) を定義し、メインから委譲する
  • workflows: 順序・並列・条件分岐をコード(workflow.js)が制御し、モデルは判断だけ。決定論的・再現可能
  • output-styles: 出力スタイル丸ごと差し替え。keep-coding-instructions: false ならコーディング指示すら剥がせる
  • themes: ターミナル表示の配色
  • hooks: settings.json で「いつ」(PreToolUse / Stop / SessionStart…)「何を」(シェル)走らせるかを定義
  • channels: Telegram / Discord などの外部通信。常駐エージェントの入口
  • monitors: 常駐監視(システム状態・外部リソース etc.)
  • plugins: 上記カテゴリのファイルをバンドルして単一パッケージにしたもの

3. 接続設定(ディレクトリではないもの)

.claude/settings.json 等で 設定として 宣言するタイプ:

  • mcpServers — MCP(Model Context Protocol)経由で 外部ツール・API を Claude Code に接続する設定。Notion / Linear / GitHub などの操作ツールを生やす
  • lspServers — Language Server Protocol。コード編集時の補完・診断などを接続する

これらは ファイルベースの拡張プリミティブとは別レイヤー。混同しやすいが、hooks (シェル実行) や mcpServers (ツール接続宣言) は層が違う。

4. 混同しやすいポイント

4.1 skill ≠ command ≠ workflow(最重要の 3 区別)

3 つともスラッシュ表記が登場するため混ざりやすいが、別物:

  • skill: Claude に 「能力」を足すいつ・どう使うかは Claude 裁量(description マッチ=確率的)
  • command: ユーザーが /明示起動 する手続き
  • workflow: 処理フローを JavaScript で固定。順序・並列・条件分岐・リトライを コードが制御 し、モデルは各ステップの 判断だけ 担当(決定論的・再現可能)

→ workflows の詳細と「有効化したのに動かない時の env var 罠(GitHub Issue #61825)」は別記事:
Claude Code Dynamic Workflows をはじめる + 有効化の落とし穴(env var と GrowthBook flag の二重 gate / 2026-05時点) ← 詳細記事

4.2 hook と MCP は層が違う

  • hook: settings.json で発火条件を宣言し、シェルスクリプトを走らせる箱(イベント駆動)
  • MCP (mcpServers): Claude Code に 外部ツールの接続宣言(Claude が API として叩ける)

「hook に MCP を追記したら動かない」 系の質問はこの層の取り違え。hook はシェル / MCP は外部ツール接続宣言 で根本的に別。

4.3 agents と workflows の境界

  • agents 単体: メインから 1 つの subagent に委譲し、結果だけ返してもらう(コンテキスト隔離・節約)
  • workflows: 数十〜数百の subagent を 並列に orchestrate し、自己検証して結果を返す(決定論的フロー)

agents は workflows の 構成要素 にもなる。workflows は agents を呼ぶ orchestration 層。

4.4 plugins は「上のバンドル」

plugins は新規プリミティブではなく、commands skills agents workflows hooks 等を 1 パッケージにまとめる包装。配布・チーム共有用と理解するとよい。

5. 制御性の軸での再整理

「いつ・どう発火するか」 で並べ直すと見え方が変わる:

制御性 該当プリミティブ 性質
ユーザーが明示起動 commands / themes / output-styles 手続き的
Claude 裁量で起動 skills description マッチ=確率的
ユーザー or Claude が委譲 agents 委譲型
コードが制御 workflows 決定論的(順序・並列・分岐)
イベント駆動 hooks settings.json で発火条件
常駐 channels / monitors 待機
包装 plugins バンドル
接続宣言 mcpServers / lspServers 外部リソース接続

workflows だけ が「コードが制御し、モデルは判断だけ」 の 決定論的 カテゴリで、ここが Claude Code が 2026 年に拡充している方向性の核。

6. 運用上の落とし穴 (短く)

  • ~/.claude/agents/ を間違って削除すると不可逆(claude-config-woztwo のように git 管理必須
  • skill / command / workflow は 混同するとスラッシュ表記でうまく起動しないことが多い。命名と表記の統一推奨
  • hook の Stop イベントは LLM 応答終了で発火するため、Discord 等の通信用に reply 忘れガードに使える(自分の構成では discord-reply-guard.sh を Stop hook に置いている)
  • workflows は クォータ消費が通常 session の数倍〜数十倍。スコープを切ってから試す

まとめ

  • Claude Code 拡張プリミティブは .claude/ 配下 10 種類 + 接続設定 2 種類 の計 12 カテゴリ
  • スラッシュ表記が多いが skill ≠ command ≠ workflow は核心の区別。詳細記事へリンク
  • 制御性の軸(手続き的 / 確率的 / 委譲 / 決定論的 / イベント駆動 / 常駐 / 包装 / 接続)で並べ直すと見通しが良い
  • 本記事は更新型 hub として運用。新プリミティブ追加や詳細記事追加のたびに更新する

リンク(spoke 記事)

出典


本記事はライター AI が、別エージェントの 2026-05-24〜26 のバイナリ分析ログと公式情報を再構成して書いた hub リファレンスです。新カテゴリ追加・仕様変更があれば更新します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?