さとまたwiki

🧩 Claude Code Skills 完全ガイド 2026

「2025年8月からずっと使っているけれど、Skillsは一個も作っていない。アップデートのたびに性能が変わるので、スキルが無駄になりそうで踏み出せなかった」——この懸念に正面から答えます。本ページでは、Skillsの仕組み・他機能との使い分け・コミュニティの人気スキルランキング・「更新で無駄になる」問題への4つの根拠・Electron/Turso/SvelteKit スタック別おすすめ禁止リスト・普遍的エラー削減スキル・生産性数値・入れるべき/避けるべき判断ガイドを一次情報ベースで解説します。

Claude Code Skills 2026年版

結論(3行)

① Skills はモデル非依存のプレーンMarkdownなので「更新で無駄になる」は誤解。Agent Skills オープン標準準拠でツール移行にも強い。

② description の品質がすべて。214スキル監査で73%が事実上サイレント故障しており、壊れているのは仕組みではなく書き方。

③ まず入れるべきは code-review系 / スタック別禁止リスト(Svelte5 runes等) / commit前チェック の3つ。あなたの CLAUDE.md の手順節を切り出すだけで作れる。

🧩 Section 1: Skillsの仕組み — SKILL.md と progressive disclosure

このセクションの3点

① Skills は SKILL.md 1枚で成立する拡張。セッション開始時は description だけがロードされる。

② 大量のスキルを登録しても平時のトークンコストはほぼゼロ——これが CLAUDE.md 直書きとの決定的な差。

③ frontmatter フィールドで「手動専用」「メニュー非表示」「subagent隔離」など細かく制御できる。

Skills とは、SKILL.md という1枚のMarkdownファイルで定義する拡張手順書です。/skill-name で手動呼び出しするか、description に書いた条件を Claude が判断して自動発動します。

ディレクトリ階層と優先度

スコープパス有効範囲優先度
Enterprisemanaged(管理者配布)組織全体最高
Personal~/.claude/skills/<name>/SKILL.md全プロジェクト
Project.claude/skills/<name>/SKILL.mdそのプロジェクト・git管理可
Plugin<plugin>/skills/<name>/SKILL.mdプラグイン経由

frontmatter 主要フィールド

フィールド型・既定役割推奨
namestring表示名・/コマンド名任意
descriptionstring・1536字上限Claudeが「いつ使うか」を判断する唯一の手がかり最重要
allowed-toolsstring[]使えるツールを許可リストで制限任意
disallowed-toolsstring[]禁止ツールのリスト任意
disable-model-invocationbool・falsetrueで自動発動オフ→手動専用(deploy等)任意
user-invocablebool・truefalseで /メニュー非表示→背景知識用任意
modelstring・inherit省略時はセッションのモデルを継承任意
context: forkboolsubagent隔離で独立context任意
pathsglob[]globマッチ時に自動発動任意
argument-hint / argumentsstring / schema手動呼び出し時の引数ヒント・スキーマ任意

⚡ Progressive Disclosure — これが最大の利点

セッション開始時にロードされるのは SKILL.md の frontmatter(description)だけです。本体の手順書・禁止リスト・コード例は、スキルが実際に発動した時に初めてロードされます。

→ スキルを50個登録しても、平時のコンテキスト消費は description 数行×50個だけ。CLAUDE.md に全文を書くのとは根本的に異なります。

動的注入と旧 slash command との関係

SKILL.md 本体内では !`git diff HEAD` のような構文で、LLMではなく前処理としてシェルコマンドを実行し、出力をインライン展開できます。

旧来の .claude/commands/*.md(slash command)は Skills に統合済みです。.claude/skills/<name>/SKILL.md と等価で、後者が優先されます。

→ 次の Section 2 では CLAUDE.md / hooks / subagents / MCP との使い分けを見ます。

🔀 Section 2: 他機能との使い分け(CLAUDE.md / hooks / subagents / MCP)

このセクションの3点

① CLAUDE.md は「常時有効ルール」、Skills は「発動時だけロードされる手順書」——役割が全く異なる。

② hooks は LLM 非依存の決定的検証、Skills は Claude が読む知識——補完関係であり競合しない。

③ あなたの CLAUDE.md は既にかなり長い。手順節をスキルに切り出すと平時トークンを節約できる。

機能役割ロードタイミング使う場面
CLAUDE.md常時有効ルール・プロジェクト定義セッション開始時に全文ロード禁止事項・ディレクトリ構造・言語設定
Skills手順・チェックリスト・長い参照発動時のみロード(平時はdescriptionのみ)コーディング規約・deploy手順・レビューフロー
Subagents役割付き隔離エージェントfork で独立 context並列実装・context 節約・大規模作業
Hookscommand型の決定的自動処理ツール前後に自動実行(LLM非依存)JSON検証・BOM検出・秘密情報チェック
MCP外部API・ツールを公開接続時に有効化DB操作・外部サービス連携

使い分け指針

→ スキル化すべき状況

  • 同じ手順を何度もCLAUDE.mdに貼っている
  • CLAUDE.md の一節が手順書化している
  • 副作用ある操作(deploy/publish)→ disable-model-invocation: true
  • 背景知識だがメニュー非表示で良い→ user-invocable: false
  • 隔離並列処理→ context: fork

→ CLAUDE.md のままで良い状況

  • 禁止事項・常に守るべき絶対ルール
  • ディレクトリ構造・モデル設定
  • 「このプロジェクトで使う言語はTypeScript」等の事実
  • コンパクション後も必ず再注入したい核心ルール

あなたへの一言: このプロジェクトの CLAUDE.md にはすでに「新ページ作成チェックリスト」「サイドバー追加手順」「思考模写シリーズ書き方」等の手順節があります。これらは Skills に切り出すと平時トークンを大幅に節約できます。CLAUDE.md は200行以内に抑えるのが推奨です。

→ 次の Section 3 ではコミュニティで人気のスキルランキングを見ます。

🏆 Section 3: みんなの使い方 — 人気スキルランキング2026

このセクションの3点

① コミュニティには1,200超のスキルがあるが、実際に機能しているのは27%だけ。

② 最人気は code-reviewer・git-commit-writer・readme-generator の Git/レビュー系。

③ 公式同梱スキルと Anthropic 配布17スキルから始めるのが最も安全。

1,200+

コミュニティスキル数

73%

事実上故障(信頼スコア60未満)

116

最人気 code-reviewer のインストール数

17

Anthropic 公式配布スキル数

出典: Agensi — Best Claude Code Skills 2026 (2026-03時点)

人気スキルランキング TOP7

順位スキル名インストール数用途
1code-reviewer116コードレビュー(4フェーズ・信頼スコア付き)
2git-commit-writer65コミットメッセージ生成
3readme-generator49README 生成
4pr-description-writer36PR 説明文生成
5temporal-reasoning-sleuth32日付・タイムゾーン推論補正
6env-doctor30環境変数健全性チェック
7changelog-generator27変更履歴生成

公式同梱(bundled)スキル

Claude Code にはじめから入っているスキル: /code-review / /debug / /batch / /loop / /run / /verify / /claude-api / /run-skill-generator

Anthropic 公式配布(anthropics/skills — 17スキル)

カテゴリスキル例用途
ドキュメント系pdf / docx / pptx / xlsx各種ドキュメント生成・変換
開発系claude-api / mcp-builder / frontend-design / webapp-testingAPI実装・MCP構築・フロントエンド・テスト
デザイン系brand-guidelines / canvas-design / theme-factoryブランド・デザインシステム

インストール例:

/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills

代表的キュレーション

awesome-claude-skills には test-driven-development / systematic-debugging / using-git-worktrees / mcp-builder 等が収録されています。

→ 次の Section 4 では「アップデートで無駄になる」という読者の核心懸念に答えます。

🔄 Section 4: 「アップデートで無駄になる」問題への答え

このセクションの3点

① Skills はプレーンMarkdown宣言——モデルのAPIや内部バイナリに一切依存しない。

② Agent Skills オープン標準準拠でツール間移行も低コスト。Claude Code に縛られない。

③ 腐るのは「指示文の微調整」だけ。禁止リスト・リファレンス資料は陳腐化しにくい。

「アップデートのたびに性能が変わるので、せっかく作ったスキルが次のバージョンで無駄になりそうで踏み出せなかった」 — 読者の懸念(2025年8月から Claude Code ユーザー)

この懸念は理解できますが、4つの根拠から「誤解に近い」と言えます。

  1. 1

    モデル非依存

    Skills はプレーンMarkdownの宣言

    SKILL.md はモデル固有のAPIやバイナリに依存しない純粋なテキストです。Claude 4.6→5→6 とモデルが変わっても、SKILL.md の中身(禁止リスト・手順・コード例)は一切書き直す必要がありません。「モデルが更新されたらスキルが壊れる」という事態は構造上起きません。

  2. 2

    ツール移行コスト低

    Agent Skills オープン標準準拠

    agentskills.io のオープン標準に準拠しており、Claude Code / Cursor / Codex CLI / Gemini CLI / Aider 等で同じスキルフォルダが動きます。Claude Code を乗り換えても資産が引き継げます。

  3. 3

    model省略で継承

    model: 省略時はセッションのモデルを自動継承

    frontmatter の model: フィールドを省略すると、スキルはセッションで使われているモデルをそのまま継承します。特定モデルに固定したい時だけ明示すれば良く、「モデル名を埋め込んだスキルが古くなる」問題を避けられます。

  4. 4

    git管理で更新追跡

    .claude/skills/ をコミットできる

    Project スコープのスキルはリポジトリの .claude/skills/ に置いてコミットできます。変更履歴を git で追えるので「どのバージョンで何を変えたか」が明確になります。

両論併記(誠実に)

ただし「モデルが大きく変わった時に description や instruction の最適性が落ちる可能性」については、公式が明示的に否定していません(不確実な部分)。

腐るのは「指示文の微調整」だけです。スキルという仕組み自体・リファレンス資料・禁止リストは陳腐化しにくい。陳腐化対策として:①禁止リストとリファレンスを中心に書く(モデルが賢くなっても有効) ②バージョン固有情報は明記して更新しやすくするの2点を推奨します。

結論

2025年8月から使ってきたあなたが CLAUDE.md に毎回書いている定型こそスキルにすべきです。スキルは消耗品ではなく、あなたの暗黙知を資産化する仕組みです。

出典: code.claude.com/docs/en/skills / agentskills.io

→ 次の Section 5 ではあなたのスタック(Electron / Turso / SvelteKit)別のおすすめスキルを見ます。

🛠️ Section 5: あなたのスタック別おすすめスキル(Electron / Turso / SvelteKit)

このセクションの3点

① 「AIに正しい書き方を教える」より「間違った書き方をNEVERで禁止する」方が守られる。

② 各スタックで AI がよく犯す間違いのパターンがある——それをそのままスキルの禁止リストにする。

③ CLAUDE.md に書いている規約をコピペするだけでスキルの原型が完成する。

基本原則

「AIに正しい書き方を教える」より 「間違った書き方を NEVER で禁止する」 方が遵守率が高くなります。モデルが賢くなるほど、明示的な禁止リストは有効性を増します。

SvelteKit + Svelte 5 (runes)

AI がよく間違える点

項目旧 Svelte 4(出してはいけない)正 Svelte 5 runes
リアクティブ変数let count = 0let count = $state(0)
派生値$: double = count * 2const double = $derived(count * 2)
副作用$: { ... }$effect(() => { ... })
props 受け取りexport let foolet { foo } = $props()
イベント発火createEventDispatcher()コールバック props
イベントハンドラon:clickonclick
スロット<slot>{@render header()}
ローカル storewritable(0)$state(0)
⚠️ コンパイラが検出しない実害大の落とし穴: ①$derived を使うべき所で $effect を使う(副作用として状態を同期させる)、②$state をデストラクチャするとリアクティビティが失われる

description 例

「Svelte 5(runes)と SvelteKit 2 を最新の正しい書き方で書く。Svelte 4 の古い書き方(export let / $: / createEventDispatcher / slot / writable store でのローカル状態)を出さない。.svelte / .svelte.js / .svelte.ts / +page / +layout / +server ファイルを編集・作成する場合に必ず使用する。」

禁止リスト(SKILL.md body 抜粋)

NEVER use: export let, $:, createEventDispatcher, on:event, <slot>, writable() for local state
ALWAYS use: $state(), $derived(), $effect(), $props(), onclick={}, {@render}, callback props
$effect is for SIDE EFFECTS only — use $derived for computed values
Destructured $state loses reactivity: const { x } = $state(obj) — NEVER do this
$bindable() required for bind: on child props
load type: PageLoad vs PageServerLoad — never mix
fail() and redirect() import from '@sveltejs/kit'

🖥️ Electron

AI がよく間違える点

危険な設定なぜ危険か正しい既定
nodeIntegration: trueXSS が即 RCE(リモートコード実行)になるfalse を維持
contextIsolation: falsepreload と renderer が同一 context・window 汚染true を維持
sandbox: falseElectron 20以降は true が既定true を維持
ipcRenderer 丸ごと expose全 IPC チャンネルが開放される1チャンネル1関数だけ expose
send + on型安全性なし・競合リスクinvoke + handle
⚠️ CVE-2026-34780: contextBridge 経由 VideoFrame transfer で isolation bypass が報告されています。「contextIsolation 有効 = 安全」という思い込みは危険です。

description 例

「Electron デスクトップアプリのメイン/プリロード/レンダラ構成と IPC・セキュリティの定石で書く。BrowserWindow・ipcMain/ipcRenderer・contextBridge を扱う場合に必ず使用する。」

禁止リスト

NEVER nodeIntegration: true
NEVER contextIsolation: false
NEVER sandbox: false
NEVER expose ipcRenderer directly via contextBridge
NEVER ipcRenderer.send + ipcMain.on for request/response — use invoke + handle
ALWAYS one function per IPC channel
ALWAYS validate event.senderFrame.url in ipcMain.handle
CSP via session.defaultSession or <meta>

🗄️ Turso (libSQL)

AI がよく間違える点

落とし穴原因対処
手動 BEGIN/COMMITHTTP では別リクエストでトランザクション共有されないclient.batch([...],"write")
interactive txn 使用DB 書込ロック・5秒でタイムアウト高レイテンシでは batch 優先
エッジで embedded replicaCF Workers/Vercel Edge は永続 FS なし→node:fs エラー@libsql/client/http を import
drizzle-kit push 失敗DDL を通常 txn 内で実行不可drizzle-kit migrate に切替
syncUrl に file:// 使用file:// を syncUrl にすると同期しないlibsql:// or https://

description 例

「Turso(libSQL)の @libsql/client / Drizzle 連携・embedded replica を正しく扱う。HTTP トランザクション制限・エッジ対応・drizzle-kit の落とし穴を踏まない。Turso・libSQL・drizzle-orm を扱う場合に必ず使用する。」

禁止リスト

NEVER client.execute("BEGIN") / client.execute("COMMIT") — use client.batch([...],"write")
interactive txn locks DB, 5s timeout — prefer batch for high-latency scenarios
Edge runtime: import from '@libsql/client/http' (NOT default @libsql/client)
Embedded replica: local=file:./path, syncUrl=libsql:// or https:// (NEVER file://)
drizzle-kit push fails on table recreation — use migrate
Packages: @libsql/client (ORM), @tursodatabase/sync (push/pull), @tursodatabase/serverless (edge)

出典: Svelte5 移行ガイド / Electron セキュリティ / Turso TS SDK / Drizzle × Turso

→ 次の Section 6 ではスタック非依存・普遍的にエラーを減らすスキルを見ます。

🛡️ Section 6: 普遍的にエラーを減らすスキル(言語・FW非依存)

このセクションの3点

① エラーを減らす実績カテゴリは「コードレビュー」「TDD強制」「コミット前検証」の3類型。

② code-reviewer は4フェーズ+信頼スコアで低品質指摘をフィルタする構造化レビュースキル。

③ hooks(決定的検証)とスキル(知識・手順)は補完関係——役割分担が重要。

① コードレビュー

code-reviewer

4フェーズ(コンテキスト収集 → 高レベルレビュー → 行単位レビュー → サマリー)+信頼スコア(0〜1.0)で低品質指摘を自動フィルタ。19言語対応・16,000行規約を progressive load で処理。

出典: Agensi code-review

② TDD強制

test-driven-development

「テストなしで本番コードを書かない」を強制。Red-Green-Refactor サイクルを明文化。効果: Claude が「想像した動作」ではなく「観測された動作」に基づいてコードを書くようになる。

出典: AI Hero TDD skill

③ コミット前検証

commit / security 検証

allowed-tools で危険コマンドをブロック、テストなし実装の検出、カバレッジ率チェック。git-commit-writer / pr-description-writer でレビュー前段を自動化。

公式同梱スキルとして利用可

このプロジェクト読者向け補足: あなたの CLAUDE.md には既に pre-commit-check.sh 等の hooks があります。hooks(決定的検証)スキル(手順の知識) は補完関係です。「JSON構文チェック・BOM検出・秘密情報チェック」は hooks のまま。「コードレビュー観点・コーディング規約の知識」はスキルに置くと役割分担が綺麗になります。

→ 次の Section 7 では生産性がどれだけ変わるかを数値で見ます。

📊 Section 7: 生産性はどれだけ変わるか(数値)

このセクションの3点

① スキル単体の効果を分離測定した公開ベンチマークはまだ存在しない——下記は Claude Code 全体の数値。

② progressive disclosure により「大量スキルを登録しても平時トークンはほぼゼロ」は構造的に確実。

③ 生産性は「スキルの有無」でなく「description の品質」に依存する。

⚠️ 重要な注意

スキル「単体」の効果を分離測定した公開ベンチマークはまだありません。以下は Claude Code 全体の調査数値です。スキルへの帰属は不明である点を最初に明記します。

3〜5時間

週あたり節約時間(中央値)

46%

「最も愛されるツール」票

95%

初回試行正解率(※要注意)

指標数値出典備考
週あたり節約時間(中央値)3〜5時間Pragmatic Engineer Survey 15,000人Claude Code全体
「最も愛されるAIコーディングツール」46%(Cursor 19%・Copilot 9%)同上
AI生成コードの割合約50%gradually.ai
「生産性が向上した」と回答45%同上
初回試行正解率95%serpsculpt調査主体が独立第三者か不明・Anthropic公式発表ではない

スキル特有の効果(構造的に確実なもの)

  • 平時トークンゼロ: progressive disclosure により、大量スキルを登録しても description しかロードされない——コンテキスト節約は構造的に確実。
  • description 品質依存: 214スキル監査の73%故障を踏まえると、生産性向上はスキルの有無でなく description の書き方に依存する。良い description を1回書けば継続して効果が出る。

→ 次の Section 8 では入れるべき/避けるべきの判断基準と、まず3つ作るロードマップを見ます。

Section 8: 入れるべき / 避けるべき 判断ガイド

このセクションの3点

① 214スキル監査で73%がサイレント故障——壊れているのは仕組みではなく description の書き方。

② 「入れるべき」は繰り返す手順・FW規約強制・gitワークフロー・TDD。「避けるべき」は年1回以下・5語のdescription。

③ まず3つだけ作れ。code-review / スタック禁止リスト / commit前チェック。

214スキル監査の衝撃データ

73%

信頼スコア60未満(事実上故障)

68%

トリガーフレーズなしの曖昧description

41%

description 20語未満

62%

バージョンフィールド欠如

出典: dev.to — I Audited 214 Claude Code Skills

問題割合
トリガーフレーズなしの曖昧 description68%
description 20語未満41%
コード例なし55%
バージョンフィールド欠如62%

サイレント故障の仕組み

不正な SKILL.md はエラーを出しません。description が不明確だと Claude が発動判断できず「ただ呼ばれないだけ」になります。複数スキルが似た description を持つと誤発火の原因にもなります。

出典: MindStudio — Common Mistakes Guide

入れるべき / 避けるべき

カテゴリ入れるべき避けるべき
手順系繰り返しペーストしている手順・チェックリスト使用頻度が年1回以下(メンテコスト割れ)
コーディング規約FW固有の規約強制(Svelte5 runes限定・Tailwind v4等)「常に守るべき事実」(→ CLAUDE.md 直書きが確実)
Git ワークフローコミット前検証・PR説明生成の定型フロー他スキルと大きく重複する description(衝突)
テスト・セキュリティTDD強制・セキュリティ監査の定型フロー5〜20語以内の短い description しか書けないもの(発火しない)

まず3つだけ作れ(スキル0個からのロードマップ)

  1. 1

    最優先

    code-review 系

    公式同梱の /code-review をそのまま使うか、上述の code-reviewer スキルをインストール。毎回レビュー観点を書く手間がなくなる。

  2. 2

    即効性が高い

    スタック別禁止リストスキル(Svelte5 / Electron / Turso)

    Section 5 の禁止リストを .claude/skills/svelte5/SKILL.md 等にコピペするだけで完成。CLAUDE.md の該当節を切り出せばOK。

  3. 3

    品質ゲート

    commit 前チェックの手順スキル

    「コミット前に確認するチェックリスト」をスキルにする。hooks(決定的検証)と組み合わせると feature ブランチ強制・.env 混入防止の知識が常に発動する。

description は「いつ使うか」のトリガーを20語以上で具体的に書くこと。

良い SKILL.md の最小テンプレ

---
name: svelte5-runes
description: >
  Svelte 5(runes)と SvelteKit 2 を最新の正しい書き方で書く。
  Svelte 4 の古い書き方(export let / $: / createEventDispatcher / slot /
  writable store でのローカル状態)を出さない。
  .svelte / .svelte.js / .svelte.ts / +page / +layout / +server ファイルを
  編集・作成する場合に必ず使用する。バージョン: Svelte 5.x / SvelteKit 2.x
allowed-tools:
  - Read
  - Edit
  - Write
  - Bash
---

## When to use
.svelte, .svelte.ts, +page.svelte, +layout.svelte, +page.server.ts 等を
編集・作成する際に自動発動する。

## NEVER use (Svelte 4 patterns)
- export let (use $props())
- $: reactive statements (use $derived / $effect)
- createEventDispatcher (use callback props)
- on:click / on:input (use onclick / oninput)
- <slot> (use {#snippet} + {@render})
- writable() for local state (use $state())

## ALWAYS use (Svelte 5 runes)
- $state() for reactive variables
- $derived() for computed values (NOT $effect)
- $effect() for side effects only
- $props() for all props
- $bindable() for two-way bind props

スキルは消耗品ではありません。あなたが2025年8月から積み上げてきた暗黙知——「この書き方をすると AI が間違える」「この手順を毎回ペーストしている」——を資産化する仕組みです。まず1個、CLAUDE.md の一節を切り出すところから始めてください。