<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MCP &#8211; まったりエンジニア</title>
	<atom:link href="https://javeo.jp/tag/mcp/feed/" rel="self" type="application/rss+xml" />
	<link>https://javeo.jp</link>
	<description>ほどほどレベルのプログラミング</description>
	<lastBuildDate>Wed, 10 Jun 2026 23:08:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2-32x32.png</url>
	<title>MCP &#8211; まったりエンジニア</title>
	<link>https://javeo.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>security-guidance とは 使い方と運用のコツ</title>
		<link>https://javeo.jp/claude-code-security-guidance/</link>
					<comments>https://javeo.jp/claude-code-security-guidance/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Wed, 03 Jun 2026 13:27:54 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[初心者]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4391</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/claude-code-security-guidance-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>Claude Code のセキュリティ系プラグイン security-guidance を、Desktop ユーザー目線で噛み砕いて解説します、入れ方・動き方・検出される脆弱性パターン・他の安全対策との組み合わせ方まで一通り押さえる初心者〜中級者向けの実用記事です]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/06/claude-code-security-guidance-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">Claude Code を触っていて、<strong>「AIが勝手に書いたコードに、地雷が混じってないか心配」</strong>と感じたことはありませんか？</p>



<p class="wp-block-paragraph">2026年5月26日に Anthropic から公開された <strong>security-guidance</strong> は、その不安に正面から答える公式のセキュリティ系プラグインです</p>



<p class="wp-block-paragraph">この記事では、Claude Code Desktop を使い始めた方〜慣れてきた方向けに、<strong><span class="swl-marker mark_yellow">security-guidance が何をしてくれて、どう入れて、どう使えばいいのか</span></strong>を一通り解説します</p>



<p class="wp-block-paragraph">ついでに、このプラグインだけでは守りきれない部分をどう補うか(deny リスト・自動モード・MCP の注意点など)も横展開で触れます</p>



<p class="wp-block-paragraph">Claude Code のセキュリティ全体像は<a href="https://javeo.jp/claude-code-security-beginner/" target="_blank" rel="noopener noreferrer">Claude Code Desktop 初心者向けセキュリティ5選</a>、プラグインを支える土台は<a href="https://javeo.jp/claude-code-extensions-basics/" target="_blank" rel="noopener noreferrer">Claude Code 拡張機構入門</a>でも扱っているので、合わせて読むと位置づけが立体的になります</p>



<figure class="wp-block-image size-full is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h55_34-1.png"><img decoding="async" width="600" height="315" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h55_34-1.png" alt="" class="wp-image-4416" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h55_34-1.png 600w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h55_34-1-300x158.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h55_34-1-150x79.png 150w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">※ 本記事は <strong>Claude Code Desktop</strong> での導入手順をベースに書いています、ターミナル(黒い画面)で <strong>claude</strong> コマンドを使う CLI 環境では別のコマンド操作が用意されていますが、ここでは Desktop 前提で進めます</p>
</div></div>



<div class="wp-block-group is-style-big_icon_hatena"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">※ 動作には3つの前提があります、Claude Code が比較的新しめのバージョン(2.1.144以降)、パソコンに Python 3.8 以降が入っている、対象フォルダが git で管理されている、この3つが揃っていればOKです、git で管理されていない場所だと、ターン終了時とコミット時のレビュー(後述のレイヤー2と3)は静かにスキップされます(レイヤー1のパターン照合はどこでも動きます)</p>
</div></div>



<h2 class="wp-block-heading">そもそも security-guidance って何のプラグイン？</h2>



<p class="wp-block-paragraph">ざっくり言うと、<strong>Claude がコードを書いた瞬間に、その内容を別の Claude がセキュリティ目線でレビューしてくれる仕組み</strong>です</p>



<p class="wp-block-paragraph">もう少し正確に言うと、Claude Code には「プラグイン」と呼ばれる拡張パッケージの仕組みがあり、その公式マーケットプレイス <strong>claude-plugins-official</strong> に並んでいる中の1つが security-guidance です</p>



<p class="wp-block-paragraph">大事なポイントは次の3つです</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>Anthropic 公式</strong>のプラグインなので、出どころの安心感が大きい</li>



<li><strong>無料・全プラン対応</strong>、課金プランでなくても使える</li>



<li>導入後は<strong>裏で勝手に動く</strong>、毎回コマンドを打つ必要はない</li>
</ul>



<p class="wp-block-paragraph">公開直後から大きな注目を集め、<strong>Claude にコードを書かせる人ほど効きやすい</strong>性質のプラグインとして広く紹介されています</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">プラグインそのものの概念がピンとこない方は、先に拡張機構入門の記事を読んでおくと「Skills / MCP / Hooks / Subagents / Plugins」の位置関係が整理できますよ</p>
</div></div>



<h2 class="wp-block-heading">何ができる？ 3層のレビューでコードを見張る</h2>



<p class="wp-block-paragraph">security-guidance が偉いのは、<strong><span class="swl-marker mark_yellow">3つのタイミングで深さの違うレビューを走らせてくれる</span></strong>ところです</p>



<h3 class="wp-block-heading">レイヤー1:ファイルに書き込んだ瞬間のパターン照合</h3>



<p class="wp-block-paragraph">Claude がファイルを編集するたびに、<strong>「危ない書き方」が含まれていないかを高速チェック</strong>します</p>



<p class="wp-block-paragraph">ここは AI の追加呼び出しを伴わない、いわゆる文字列マッチによる照合なので、<strong>余分な利用料金は発生しません</strong></p>



<p class="wp-block-paragraph">「ファイルが書かれたら、その内容を辞書と突き合わせて怪しい言葉が出てきたら警告する」というイメージです</p>



<h3 class="wp-block-heading">レイヤー2:ターンの終わりにまとめてレビュー</h3>



<p class="wp-block-paragraph">Claude が「はい、ここまでで一区切りです」と返した瞬間、そのターンで変わったファイルをまとめて <strong>別の Claude にセキュリティレビューさせる</strong>動きが入ります</p>



<p class="wp-block-paragraph">ここで言う <strong>ターン</strong>とは、こちらが1回メッセージを送って、Claude が動いて返事して、その応答が終わるまでの1往復のことです</p>



<p class="wp-block-paragraph">このレイヤーは、文字列マッチでは見抜けない <strong>権限まわりの抜け穴・脆弱な暗号化・想定外の入力経路</strong>みたいな話を拾ってくれます</p>



<p class="wp-block-paragraph">裏で動くため、Claude の返答自体は遅くなりません、見つかった指摘は次の応答で「ここ直しておきますね」と本人(Claude)が修正してくれるイメージです</p>



<h3 class="wp-block-heading">レイヤー3:コミットの直前にじっくりレビュー</h3>



<p class="wp-block-paragraph">Claude が <strong>git commit や git push を実行しようとしたタイミング</strong>でも、もう一段深いレビューが走ります</p>



<p class="wp-block-paragraph">このレベルになると周辺コード(呼び出し元・サニタイズ処理など)まで読んだ上で「これは実際にヤバいやつ」か「文脈上は安全」かを判定してくれます</p>



<p class="wp-block-paragraph">このおかげで <strong>「形だけ見ると危なそうだけど、実は文脈的に大丈夫なコード」を誤検出しすぎないように調整</strong>されています</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">※ このレビューが走るのは <strong>「Claude が裏で git commit / git push を実行したとき」だけ</strong>です、自分でターミナルから手動で commit したものは対象外なので、 Claude に作業を任せた区間だけが見られるイメージです</p>
</div></div>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">3層とも <strong>「書き込みを止める」訳ではない</strong>のがポイントです、見つけたら Claude に指摘を返して、Claude が修正する流れになります、ガード(門番)ではなくレビュワー(同僚)に近いイメージで捉えるのが正解です</p>
</div></div>



<h2 class="wp-block-heading">どんな脆弱性パターンを見つけてくれる？</h2>



<p class="wp-block-paragraph">レイヤー1(ファイル編集時)で照合される代表的なパターンを、噛み砕いて紹介します</p>



<p class="wp-block-paragraph">専門用語が多めなので、それぞれ「要は何が問題なのか」をセットで書きます</p>



<h3 class="wp-block-heading">eval() や new Function() :「文字列を実行コードにしてしまう」系</h3>



<p class="wp-block-paragraph">JavaScript の <strong>eval()</strong> や new Function() は、文字列をそのままプログラムとして実行する関数です</p>



<p class="wp-block-paragraph">つまり、外部から渡された文字列がうっかり混ざると、<strong>悪意のあるコードがそのまま動いてしまう</strong>恐れがあります</p>



<h3 class="wp-block-heading">child_process.exec() や os.system() :「コマンドをそのまま投げる」系</h3>



<p class="wp-block-paragraph">Node.js の <strong>child_process.exec()</strong> や Python の os.system() は、シェル(=Windowsで言うコマンドプロンプト的なもの)に命令文を渡す関数です</p>



<p class="wp-block-paragraph">ユーザーが入力した値をそのまま結合してしまうと、<strong><span class="swl-marker mark_yellow">想定外のコマンドが任意に実行</span></strong>される事態になります、いわゆるコマンドインジェクションです</p>



<h3 class="wp-block-heading">dangerouslySetInnerHTML や innerHTML :「画面表示がそのまま乗っ取られる」系</h3>



<p class="wp-block-paragraph">React の <strong>dangerouslySetInnerHTML</strong> や、素の JavaScript の .innerHTML = は、HTML を直接埋め込む書き方です</p>



<p class="wp-block-paragraph">ここに <strong>ユーザーが入力した文字列をそのまま入れると、スクリプトタグごと埋め込めてしまう</strong>=いわゆる XSS(クロスサイトスクリプティング)の温床になります</p>



<h3 class="wp-block-heading">pickle :「保存したデータを読むだけのつもりが、コードまで動く」系</h3>



<p class="wp-block-paragraph">Python の pickle は、データを丸ごとファイルに保存して、後で読み戻すための仕組みです</p>



<p class="wp-block-paragraph">便利な反面、信頼できないファイルを pickle で読み込むと、<strong>読み込み処理の中で任意のコードが実行</strong>される設計になっています、外部から受け取ったファイルを pickle で開くのは原則として避けるのがおすすめです</p>



<h3 class="wp-block-heading">.github/workflows/ 配下の編集 :「GitHub Actions の権限を握る」系</h3>



<p class="wp-block-paragraph">GitHub Actions の設定ファイル(.github/workflows/ 配下の YAML)は、ビルドやデプロイの自動化を定義する場所です</p>



<p class="wp-block-paragraph">ここを書き換えられると <strong>リポジトリ単位の権限を握られる</strong>ことになるので、Claude が触ろうとしたら一律で注意喚起されます</p>



<p class="wp-block-paragraph">ほかにも document.write などの古い書き方をはじめ、いくつかの代表的な落とし穴に反応するようになっています</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">レイヤー1のパターン照合は「<strong>同じファイルで同じパターンが連発したら1回だけ警告</strong>」する設計になっているので、同じ警告が会話を埋め尽くす心配はありません、ただし<strong>パターンに無い未知の脆弱性は素通りする</strong>ので、これだけに頼り切らないのが大事です</p>
</div></div>



<h2 class="wp-block-heading">導入方法 Desktop ユーザーの最短ルート</h2>



<p class="wp-block-paragraph">Claude Code Desktop での導入は、<strong><span class="swl-marker mark_yellow">3ステップで終わる</span></strong>かんたんさです</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">公式マーケットプレイスから選ぶ</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">チャット欄の左下にある「＋」メニューを開いて <strong>「プラグイン」</strong> を選ぶと、右側にサブメニューが開きます、その中の <strong>「＋ プラグインを追加」</strong> から、<strong>security-guidance</strong>を検索→選択→インストール画面へ</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">インストールを実行する</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">クリックするとインストールが走ります、スコープを聞かれたら <strong>user スコープ</strong>を選ぶと、この PC で立ち上げる全セッションで自動的に効くようになります</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">必要なら Desktop を再起動</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">インストール直後から効きはじめます、念のため <strong>Claude Code Desktop を再起動</strong>すると確実に有効化された状態で使えます</p>
</div></div>
</div>



<p class="wp-block-paragraph">Desktop の「プラグイン」サブメニューは <strong>シンプルな作り</strong>で、上にインストール済みプラグインが並び、下に <strong>「プラグインを管理」</strong>(歯車アイコン)と <strong>「＋ プラグインを追加」</strong>のボタンがあるレイアウトです、迷う要素はあまりないので、追加のボタンから順に進めば security-guidance が一覧に並びます</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">UI の細かいボタン名や配置はバージョンで変わることがあるので、実機の画面表示を優先してくださいね、Desktop 版の「プラグイン」サブメニューは <strong>インストール済み一覧+「プラグインを管理」+「＋ プラグインを追加」</strong>というシンプルな構成、と理解しておけば大丈夫です</p>
</div></div>



<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26.png"><img decoding="async" width="1024" height="550" src="https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26-1024x550.png" alt="" class="wp-image-4417" srcset="https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26-1024x550.png 1024w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26-300x161.png 300w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26-150x81.png 150w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26-768x413.png 768w, https://javeo.jp/wp-content/uploads/2026/06/2026-06-03_08h42_26.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">使ってみるとどう動く？ 実際の見え方</h2>



<p class="wp-block-paragraph">導入直後は、基本的に <strong>普段どおりに Claude を使うだけ</strong>でかまいません</p>



<p class="wp-block-paragraph">「コードを書いて」「ここを直して」とお願いしている裏で、上で説明した3層レビューが勝手に走っている感じです</p>



<h3 class="wp-block-heading">レビューで何か見つかった時の会話の流れ</h3>



<p class="wp-block-paragraph">たとえば Claude が JavaScript で eval() を含むコードを書いたとします</p>



<p class="wp-block-paragraph">すると次のターンの冒頭で Claude が <strong>「security-guidance から指摘が来ました、eval は危ないのでこちらの書き方に直しますね」</strong>のような前置きと一緒に、安全な実装に書き換えてくれます</p>



<p class="wp-block-paragraph">こちらが「セキュリティチェックして」と頼まなくても、<strong>コードに変更があった時点でレビューが走る</strong>のがこのプラグインの一番の旨味です</p>



<h3 class="wp-block-heading">プロジェクト固有のルールも足せる</h3>



<p class="wp-block-paragraph">「うちのアプリでは admin ルートには原則として権限チェックを入れたい」みたいな <strong>プロジェクト固有のルール</strong>も、追加で食わせられます</p>



<p class="wp-block-paragraph">プロジェクト直下に .claude/claude-security-guidance.md という Markdown を置き、普段の日本語で「これは NG」「ここは原則として通す」と書いておけば、レビュー時に追加のお作法として参照してくれます</p>



<p class="wp-block-paragraph">そのほか、決まった文字列(例:本番用 API キーの先頭文字列)を機械的に検出したいときは .claude/security-patterns.yaml に独自の正規表現を書く手もあります</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">※ チーム共有はしたくない自分だけのローカルルールを足したいときは <strong>.claude/claude-security-guidance.local.md</strong> という別ファイル名を使います、こちらは gitignore 対象なので、リポジトリには上がらず自分の手元だけで効きます</p>
</div></div>



<p class="wp-block-paragraph">ファイル形式の細かい仕様(YAML スキーマ・JSON 形式での代替・User / Project / Project local の3階層での探索順など)は Anthropic 公式ドキュメントの<a href="https://code.claude.com/docs/en/security-guidance#add-your-own-rules" target="_blank" rel="noopener noreferrer">Add your own rules</a>セクションに一次情報がまとまっているので、独自ルールを本気で書き込むときはそちらが正本になります</p>



<h2 class="wp-block-heading">他の安全対策と組み合わせる プラグイン以外の打ち手</h2>



<p class="wp-block-paragraph">security-guidance は強力ですが、これ単体で Claude Code のセキュリティが完成する訳ではありません</p>



<p class="wp-block-paragraph">あくまで「<strong>書いた瞬間に一次レビューを挟む</strong>」というレイヤーなので、それと並行して整えておきたい安全策を横並びで紹介します</p>



<h3 class="wp-block-heading">settings.json の deny リストで「触らせない」枠を作る</h3>



<p class="wp-block-paragraph">Claude Code には <strong>settings.json</strong> という設定ファイルがあり、ここに「触ったらアウトのファイル」を列挙できます</p>



<p class="wp-block-paragraph">具体的には <strong>permissions.deny</strong> セクションで、見られたくない・書き換えてほしくないパスを指定する形です</p>



<p class="wp-block-paragraph">最低限デフォルトで入れておきたいのは次のあたりです</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>.env</strong> 系(APIキー・パスワードがよく入っているファイル)</li>



<li><strong>.pem</strong> <strong>.key</strong>(SSL 証明書・秘密鍵)</li>



<li><strong>id_rsa</strong>(SSH の秘密鍵)</li>



<li><strong>credentials.json</strong>(各種クラウドサービスの認証情報)</li>
</ul>



<p class="wp-block-paragraph">イメージとしては次のような書き方になります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-json" data-lang="settings.json(抜粋)"><code>{
  &quot;permissions&quot;: {
    &quot;deny&quot;: [
      &quot;Read(./**/.env)&quot;,
      &quot;Read(./**/*.pem)&quot;,
      &quot;Read(./**/*.key)&quot;,
      &quot;Read(./**/id_rsa)&quot;,
      &quot;Read(./**/credentials.json)&quot;
    ]
  }
}</code></pre></div>



<p class="wp-block-paragraph">これにより、security-guidance が <strong>「書いた後」にレビュー</strong>するのに対し、deny リストは <strong>「そもそも触らせない」</strong>側のガードを担当します、役割が違うのでセットで使うと安心感が増します</p>



<h3 class="wp-block-heading">「自動モード」と「許可をバイパス」は別物</h3>



<p class="wp-block-paragraph">Claude Code Desktop の挙動モードでよく混同されるのが、「<strong>自動モード</strong>」と「<strong>許可をバイパス</strong>」の2つです</p>



<p class="wp-block-paragraph">名前が似ていて紛らわしいですが、中身はまるで違います</p>



<figure class="wp-block-table"><table><thead><tr><th>モード</th><th>何をするか</th><th>使いどころ</th></tr></thead><tbody><tr><td>自動モード</td><td>deny リストや事前許可を<strong>守りつつ</strong>、操作を自動で進めるモード</td><td>普段使い向け、安全寄りの自動進行</td></tr><tr><td>許可をバイパス</td><td>権限確認をすべて<strong>すっ飛ばす</strong>モード(設定画面の「バイパス権限モードを許可」トグルで有効化)</td><td>一時的な検証用、本番作業には不向き</td></tr></tbody></table></figure>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph"><strong><span class="swl-marker mark_yellow" style="color:#e8313b">「自動モード」と「許可をバイパス」を混同しない</span></strong>のは本当に大事です、自動モードは <strong>deny を守ってくれる安全な推奨モード</strong>、許可をバイパスは <strong>そのガードを外す危険寄りの設定</strong>です、名前が似ているからといって同じ気分で切り替えると、意図せず deny が無効になりかねません</p>
</div></div>



<h3 class="wp-block-heading">respectGitignore で .gitignore のファイルを除外する</h3>



<p class="wp-block-paragraph">地味に効くのが <strong>respectGitignore: true</strong> という公式オプションです</p>



<p class="wp-block-paragraph">これを settings.json に入れておくと、プロジェクトの <strong>.gitignore</strong> に書かれているファイルが、そのまま Claude のファイル選択画面からも除外されます</p>



<p class="wp-block-paragraph">.gitignore は <strong>「Git に管理してほしくない=GitHub にもアップしないでほしい」リスト</strong>で、もともと .env や ビルド成果物などが入っていることが多いので、それがそのまま Claude の対象外になるのはありがたい挙動です</p>



<div class="wp-block-group is-style-big_icon_hatena"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">余談ですが、ネットで時々見かける <strong>.claudeignore</strong> という除外ファイルは、2026年5月時点で公式機能には含まれていません、除外設定は settings.json の deny か respectGitignore に一本化するのが安全です</p>
</div></div>



<h3 class="wp-block-heading">MCP サーバーを入れる時の確認ポイント</h3>



<p class="wp-block-paragraph">もう1つ、忘れずに整えておきたいのが <strong>MCP</strong> 関連の確認です</p>



<p class="wp-block-paragraph">MCP(Model Context Protocol)は、Claude に外部ツールやデータベースを使わせるための仕組みですが、<strong><span class="swl-marker mark_yellow" style="color:#e8313b">MCP サーバーやプラグインはあなたの権限で任意のコードを実行できる高信頼コンポーネント</span></strong>です</p>



<p class="wp-block-paragraph">つまり、出どころが怪しい MCP サーバーを入れるのは、得体のしれないソフトをインストールするのと変わりません</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>公式・有名なソース(Anthropic・大手 OSS プロジェクト)からのみ入れる</li>



<li>説明文だけで判断せず、READMEやコードに目を通す</li>



<li>必要が無くなった MCP サーバーは早めに無効化する</li>
</ul>



<p class="wp-block-paragraph">security-guidance 自体は Anthropic 公式なので信頼性の面で気にする必要はありませんが、<strong>「プラグインや MCP は全部安心」と勘違いしない</strong>のが大事です</p>



<p class="wp-block-paragraph">このあたりの基本設計は<a href="https://javeo.jp/claude-code-config-files-guide/" target="_blank" rel="noopener noreferrer">Claude Code 設定ファイル早見表</a>で全体像を整理しているので、深掘りしたい方はそちらもどうぞ</p>



<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30-1024x537.png" alt="" class="wp-image-4025" srcset="https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/05/2026-05-21_21h54_30.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">期待しすぎないこと プラグインの限界</h2>



<p class="wp-block-paragraph">ここまで読むと「もう security-guidance を入れておけば安心」と思いたくなりますが、<strong>過信は禁物</strong>です</p>



<p class="wp-block-paragraph">正直に言うと、このプラグインは <strong>「コードを書く瞬間によくあるパターンを止める」レイヤー</strong>であって、セキュリティ対策のすべてを引き受けてくれる訳ではありません</p>



<h3 class="wp-block-heading">設計や仕様レベルの脆弱性は別途レビューが要る</h3>



<p class="wp-block-paragraph">例えば「<strong>そもそも認証フローがおかしい</strong>」「<strong>権限の設計が甘い</strong>」みたいな話は、文字列マッチでは見つかりません</p>



<p class="wp-block-paragraph">ターン終了時やコミット時のレビューでは多少ひっかかる可能性はあるものの、<strong>設計や仕様レベルの問題は人間のコードレビューや設計レビューで拾うのが原則</strong>です</p>



<h3 class="wp-block-heading">依存ライブラリの脆弱性は対象外</h3>



<p class="wp-block-paragraph">あなたが書いたコード自体は問題なくても、<strong>使っているライブラリに脆弱性があった</strong>というケースは多々あります</p>



<p class="wp-block-paragraph">これは security-guidance のスコープ外で、別途 npm audit や Dependabot のような <strong>依存関係チェックの仕組み</strong>を並走させるのが現実的です</p>



<h3 class="wp-block-heading">レビュワーAIも見落とす</h3>



<p class="wp-block-paragraph">レイヤー2・3で動くレビュー側の Claude も、人間と同じく見落とすことがあります</p>



<p class="wp-block-paragraph">「<strong><span class="swl-marker mark_yellow">プラグインが何も言わないから安全</span></strong>」は思考停止のサインです、最終的にはコードを読む(=人間がレビューする)習慣も並行して持っておくのが望ましいです</p>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">Anthropic も公式ドキュメントで「<strong>このプラグインは多層防御の一層</strong>であって、完結したセキュリティソリューションではない」と明記しています、ガード(門番)ではなくレビュワー(同僚)、というスタンスを忘れずに付き合うのがちょうど良いです</p>
</div></div>



<h3 class="wp-block-heading">内部にある上限とモデル設定も知っておく</h3>



<p class="wp-block-paragraph">もう少し細かい話として、レビューには <strong>上限</strong>が設けられています、知っておくと「あれ動いてない?」となったときに切り分けやすいです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>ターン終了時のレビューは <strong>1ターン最大30ファイル</strong>まで、しかも連続3回までで一旦止まります</li>



<li>コミット時のレビューは <strong>1時間に20回まで</strong>、それを超えると一時的に走らなくなります</li>
</ul>



<p class="wp-block-paragraph">大量変更や連続 commit を続けると、全部はカバーしきれないというのを頭の片隅に置いておくと安全です</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">※ レビューに使われるモデルは <strong>Claude Opus 4.7</strong> が初期設定です、別のモデルに切り替えたいときは SECURITY_REVIEW_MODEL(ターン終了時のレビュー用)と SG_AGENTIC_MODEL(コミット時のレビュー用)という環境変数で指定できます、軽いモデルにしてコストを抑える、といった調整に使えます</p>
</div></div>



<h2 class="wp-block-heading">初心者向けおすすめ運用フロー</h2>



<p class="wp-block-paragraph">「結局、何からやればいいの？」という方向けに、<strong><span class="swl-marker mark_yellow">最初に押さえるステップ</span></strong>を順に並べておきます</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">まず security-guidance を入れる</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">無料・全プラン対応・追加コストもなしなので、迷う理由はほぼありません、入れた状態で普段どおり使ってみて、レビュー指摘がどんな粒度で来るかを体感します</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">settings.json の deny リストを整える</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">.env / .pem / .key / id_rsa / credentials.json あたりを deny に登録します、「そもそも触らせない」枠は強力で、プラグインの後ろ盾としても効きます</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">自動モードで使い始める</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">普段使いは <strong>自動モード</strong> で進めるのがおすすめです、deny を守りつつ自動で進んでくれるので、安全と効率のバランスが取れます、「許可をバイパス」とは別物なので混同しないように</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">プロジェクト固有ルールを足す</div><div class="swell-block-step__body">
<p class="wp-block-paragraph">慣れてきたら .claude/claude-security-guidance.md にプロジェクト固有のお作法を書き足します、「ここはこういう書き方で」「ここは触らない」というローカルルールを Claude にも共有できます</p>
</div></div>
</div>



<p class="wp-block-paragraph">このあたりまで整えると、security-guidance を含めた多層の守りがだいぶ立体的になります</p>



<h2 class="wp-block-heading">よくある質問(FAQ)</h2>



<div class="swell-block-faq" data-q="col-text" data-a="col-text">
<div class="swell-block-faq__item"><h3 class="faq_q">security-guidance を入れると毎回お金がかかる？</h3><div class="faq_a">
<p class="wp-block-paragraph">レイヤー1のパターン照合はモデル呼び出しなしなので追加コストは発生しません、レイヤー2・3のレビューはモデル呼び出しがあるので、普段の Claude 利用と同じ枠で消費します、ただし極端に増える設計ではなく、上限も設けられているので過剰な心配は不要です</p>
</div></div>



<div class="swell-block-faq__item"><h3 class="faq_q">途中で外したくなったらどうすればいい？</h3><div class="faq_a">
<p class="wp-block-paragraph">Desktop の「＋ → プラグイン」サブメニューから <strong>「プラグインを管理」</strong>(歯車アイコン)を開くと、インストール済みプラグインの一覧で <strong>security-guidance</strong> の無効化や削除ができます、具体的なボタン名は実機の表示に従ってくださいね、一時的に止めたいだけなら無効化、完全に外したい時は削除側を選ぶ、というシンプルな考え方で大丈夫です</p>
</div></div>



<div class="swell-block-faq__item"><h3 class="faq_q">Cocoon → SWELL のような WordPress テーマ移行作業でも役立つ？</h3><div class="faq_a">
<p class="wp-block-paragraph">このプラグインの主戦場は <strong>コードファイルの編集</strong>なので、テーマカスタマイズで PHP や JavaScript を触る場面でも普通に効きます、特に WordPress 系は eval や任意関数呼び出しに似た書き方が出やすいので、入れておくと地味に効く場面はあります</p>
</div></div>



<div class="swell-block-faq__item"><h3 class="faq_q">プラグインが見落とす脆弱性はある？</h3><div class="faq_a">
<p class="wp-block-paragraph">あります、というよりむしろ「見落とすこと前提」で運用する方が健全です、設計レベルの脆弱性・依存ライブラリの脆弱性・パターンに無い未知の攻撃手法などは対象外なので、コードレビューや依存関係チェックと組み合わせるのがおすすめです</p>
</div></div>



<div class="swell-block-faq__item"><h3 class="faq_q">一部のレイヤーだけ止めたいんだけど</h3><div class="faq_a">
<p class="wp-block-paragraph">環境変数で個別に止められます、レイヤー1(ファイル編集時)を止めるなら ENABLE_PATTERN_RULES=0、レイヤー2(ターン終了時)なら ENABLE_STOP_REVIEW=0、レイヤー3(コミット時)なら ENABLE_COMMIT_REVIEW=0 です、モデルベースのレビュー2つ(レイヤー2と3)を一気に止めたいときは ENABLE_CODE_SECURITY_REVIEW=0 でまとめてOFFにできます、プラグイン本体を一時停止したいだけなら SECURITY_GUIDANCE_DISABLE=1 という別の変数もあります</p>
</div></div>
</div>



<h2 class="wp-block-heading">まとめ プラグイン1つで完結はしないけど、入れる価値は十分</h2>



<p class="wp-block-paragraph">security-guidance は、<strong>Claude にコードを書かせるなら入れない理由がほぼ無い</strong>くらいに気軽に導入できる公式プラグインです</p>



<p class="wp-block-paragraph">大事なポイントをおさらいします</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>Anthropic 公式・無料・全プラン対応、入れない理由はほぼ無い</li>



<li>3層レビュー(編集時・ターン終了時・コミット時)で多角的にチェック</li>



<li>eval / 外部コマンド / XSS / pickle / GitHub Actions など典型的な落とし穴を拾う</li>



<li>書き込みを止める訳ではない、Claude にレビュー結果を渡して直してもらう設計</li>



<li>deny リスト・自動モード・respectGitignore と組み合わせて多層防御に</li>



<li>設計・依存ライブラリ・未知の脆弱性は対象外なので過信しない</li>
</ul>



<p class="wp-block-paragraph">個人的には、<strong>「ちゃんと整えれば、Claude にコードを任せても怖くないラインまで来た」</strong>と感じます</p>



<p class="wp-block-paragraph">Claude Code の安全策を一通り整理したい方は<a href="https://javeo.jp/claude-code-security-beginner/" target="_blank" rel="noopener noreferrer">Claude Code Desktop 初心者向けセキュリティ5選</a>、プラグインまわりの土台が気になる方は<a href="https://javeo.jp/claude-code-extensions-basics/" target="_blank" rel="noopener noreferrer">Claude Code 拡張機構入門</a>、設定ファイルの全体像は<a href="https://javeo.jp/claude-code-config-files-guide/" target="_blank" rel="noopener noreferrer">Claude Code 設定ファイル早見表</a>もどうぞ</p>



<p class="wp-block-paragraph">security-guidance を入れたうえで、deny を整えて、自動モードで使う、この3点を押さえておくと、Claude Code との付き合い方がぐっと安心側に寄ります</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/claude-code-security-guidance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【中級者向け】Claude Codeの拡張機構入門</title>
		<link>https://javeo.jp/claude-code-extensions-basics/</link>
					<comments>https://javeo.jp/claude-code-extensions-basics/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Sun, 24 May 2026 00:02:39 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[MCP]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4044</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/05/claude-thumbnail-1024x538.png" class="webfeedsFeaturedVisual" /></p>Claude Codeに慣れてきた中級者向けに、拡張機構の4本柱(Skills・MCP・Hooks・Subagents)と「ハーネス」の概念を体系的に解説します。Claude Code Desktopをより使いこなすためのベースになる基礎編です]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/05/claude-thumbnail-1024x538.png" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">Claude Code Desktopを使い始めて何記事か触っているうちに、「もっと自動化したい」「設定を整理したい」「ファイル操作を任せる範囲を絞りたい」みたいなことを考え始めますよね</p>



<p class="wp-block-paragraph">そこから先に進むには <strong><span class="marker-under">「拡張機構」</span></strong>と呼ばれる仕組みを理解しておくと、できることの幅が一気に広がります</p>



<p class="wp-block-paragraph">この記事では、Claude Codeに慣れてきた中級者向けに <strong><span class="marker-under">拡張機構の4本柱(Skills・MCP・Hooks・Subagents)</span></strong>と、その土台になる「ハーネス」という概念を体系的に解説します</p>



<p class="wp-block-paragraph">応用編では各機能の具体的なテクニックや、CLAUDE.md・Permissions・Worktreesといった日常運用で効いてくる設定を扱う予定なので、まずはこの基礎編で全体像を押さえてもらえると嬉しいです</p>



<p class="wp-block-paragraph">Claudeの基本的な使い方は<a href="https://javeo.jp/claude-howto-beginner/">Claudeの使い方を初心者向けに解説した記事</a>、AI周辺の用語は<a href="https://javeo.jp/claude-glossary-beginner/">Claudeを始める前に知っておきたい用語集</a>でまとめているので、初学者の方はそちらから入るのがスムーズです</p>



<h2 class="wp-block-heading">そもそも「ハーネス」って何</h2>



<p class="wp-block-paragraph">Claude Code関連の記事を読んでいると、最近 <strong><span class="bold-red"><span class="marker-under">「ハーネス」(harness)</span></span></strong>という言葉をよく見るようになりました、聞き慣れない単語ですよね</p>



<h3 class="wp-block-heading">LLM(脳)とハーネス(体・道具・記憶)</h3>



<p class="wp-block-paragraph">Claude本体は厳密にいうと <strong>LLM(大規模言語モデル)というテキストを生成するだけのモデル</strong>です、ファイルを読んだり、コマンドを実行したり、記憶を保持したりする機能は本体にはありません</p>



<p class="wp-block-paragraph">それなのにClaude Codeが「ファイルを操作する」「コマンドを実行する」「設定を覚える」みたいな振る舞いができるのは、<strong>本体の周りに『体・道具・記憶』に相当するソフトウェア層が組まれている</strong>からです、これが「ハーネス」と呼ばれているものになります</p>



<p class="wp-block-paragraph">例えるなら次のような関係性です</p>



<figure class="wp-block-table"><table><thead><tr><th>役割</th><th>担当しているもの</th></tr></thead><tbody><tr><td>脳(考える部分)</td><td>Claudeの本体(LLM)</td></tr><tr><td>体(動く部分)</td><td>ツール実行・ファイル操作・コマンド実行</td></tr><tr><td>道具(連携部分)</td><td>MCP・コネクタ・拡張機構</td></tr><tr><td>記憶(覚える部分)</td><td>CLAUDE.md・Memory・コンテキスト管理</td></tr><tr><td>ルール(縛る部分)</td><td>Permissions・Hooks</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このうち <strong>「脳」以外のすべてがハーネス</strong>です、つまり実は <strong>Claude Codeのコードの大半はLLMの中身ではなく、このハーネス側にある</strong>ことになります</p>



<h3 class="wp-block-heading">だからカスタマイズの自由度が高い</h3>



<p class="wp-block-paragraph">ここが中級者にとって重要な視点で、<strong>ハーネス側はユーザーが書き換えられる部分が多い</strong>です</p>



<p class="wp-block-paragraph">LLM本体(Claudeの賢さ)はAnthropicが訓練したものをそのまま使うしかありませんが、周辺のハーネスは <code>settings.json</code> や Skills・Hooks・MCPサーバーなどで <strong>自分の使い方に合わせて自由に拡張できる</strong>設計になっています</p>



<p class="wp-block-paragraph">つまり「Claude Codeをもっと使いこなしたい」というのは <strong>ハーネス側をどう構築するかの話</strong>とほぼ同義です、ここから先で扱う4本柱はすべてこのハーネス層の構成要素になります</p>



<h3 class="wp-block-heading">ハーネスエンジニアリングって何</h3>



<p class="wp-block-paragraph">ハーネスを <strong>「設計・構築・最適化する取り組み全般」</strong>を <strong><span class="bold-red"><span class="marker-under">ハーネスエンジニアリング</span></span></strong>と呼びます</p>



<p class="wp-block-paragraph">Anthropic公式や業界でもよく出てくる用語で、最近は <strong>prompt engineering(プロンプトエンジニアリング)から harness engineering へ</strong>と重心が移ってきている流れがあります</p>



<p class="wp-block-paragraph">両者の違いをざっくり整理すると次のようになります</p>



<figure class="wp-block-table"><table><thead><tr><th>軸</th><th>prompt engineering</th><th>harness engineering</th></tr></thead><tbody><tr><td>焦点</td><td>プロンプトの書き方</td><td>周辺ソフトウェア層の設計</td></tr><tr><td>主体</td><td>エンドユーザー寄り</td><td>開発者・運用者</td></tr><tr><td>効果範囲</td><td>1回の会話で完結</td><td>継続的なエージェント動作</td></tr><tr><td>具体例</td><td>「順を追って考えて」と頼む</td><td>Hookでツール権限を制限する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ハーネスエンジニアリングが扱う主な範囲はこんな感じです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>権限ポリシー設計</strong>(permissions.deny / allow / askの構造、4階層の使い分け)</li>



<li><strong>コンテキスト管理戦略</strong>(CLAUDE.mdの階層化、auto-compactタイミング設計、Memory運用)</li>



<li><strong>ツール選定と制限</strong>(allow-tools、Subagentごとの権限分離、危険コマンドのdeny)</li>



<li><strong>拡張機構の設計</strong>(Skills / Hooks / MCP / Subagents の組み合わせ)</li>



<li><strong>エラー復旧・隔離</strong>(worktreeでの隔離戦略、失敗時の挙動設計)</li>



<li><strong>ロングランニング設計</strong>(複数セッションをまたぐタスクのcontext reset、引き継ぎファイル設計)</li>



<li><strong>観測・ロギング</strong>(エージェントが何をしたかの記録、PostToolUseでのログ出力)</li>
</ul>



<p class="wp-block-paragraph">つまりこの記事で紹介している <strong>4本柱の話もすべてハーネスエンジニアリングの構成要素</strong>になります</p>



<p class="wp-block-paragraph">参考までに、Claude Codeのコードベース分析(2026年)では <strong><span class="bold-red"><span class="marker-under">「AI判定ロジック1.6% / ハーネス層98.4%」</span></span></strong>というデータもあって、Claude Code自体がハーネスエンジニアリングの結晶みたいな存在になっています</p>



<p class="wp-block-paragraph">「もっと使いこなしたい」と感じたら、この記事で扱う拡張機構を組み合わせて自分用のハーネスを設計していくフェーズに入ったということになります</p>



<h2 class="wp-block-heading">拡張機構の4本柱</h2>



<p class="wp-block-paragraph">Claude Codeのハーネスを拡張する仕組みは、現時点で大きく4つあります</p>



<ol style="background-color:#f3fafe80" class="wp-block-list has-background">
<li><strong>Skills</strong>:再利用可能な指示パターンをまとめる</li>



<li><strong>MCP</strong>:外部サービスと連携するための共通規格</li>



<li><strong>Hooks</strong>:イベント発生時に自動でスクリプトを走らせる</li>



<li><strong>Subagents</strong>:タスクを隔離した別エージェントに委譲する</li>
</ol>



<p class="wp-block-paragraph">それぞれが <strong>「困りごと」の解決手段として性格が違う</strong>ので、ここから1つずつ役割を整理していきます</p>



<h3 class="wp-block-heading">Skills:再利用可能な指示パターン</h3>



<p class="wp-block-paragraph"><strong><span class="marker-under">Skillsは「よく使うプロンプト指示をテンプレート化して、Claudeに覚えさせる」仕組み</span></strong>です</p>



<p class="wp-block-paragraph">毎回「コミットメッセージを書くときは○○のフォーマットで、こういう観点で…」と説明するのは面倒、でも一度Skillとして登録しておけば、Claudeがその場面を察知して自動で呼び出してくれたり、こちらから <code>/コマンド名</code> で呼び出せたりします</p>



<p class="wp-block-paragraph">ファイルの置き場所は次の2か所</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><code>~/.claude/skills/&lt;skill-name&gt;/SKILL.md</code>(全プロジェクト共通の個人スキル)</li>



<li><code>.claude/skills/&lt;skill-name&gt;/SKILL.md</code>(プロジェクト固有、Gitで共有可)</li>
</ul>



<p class="wp-block-paragraph">SKILL.mdの基本構造はこんな感じです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-markdown" data-lang="SKILL.md"><code>---
name: commit-message
description: Gitのコミットメッセージを書くときに呼び出すスキル。conventional commits形式で、件名と本文を生成
when_to_use: Gitコミット、コミットメッセージ作成、commit
allow-tools: Bash(git diff *) Bash(git status)
user-invocable: true
---

# コミットメッセージ生成スキル

差分を確認した上で、次のルールでコミットメッセージを書いてください

- 件名は50字以内、英語または日本語
- conventional commits形式(feat / fix / docs / chore など)
- 本文は「なぜこの変更が必要だったか」を1〜2文で
- 文末に署名を入れない</code></pre></div>



<h4 class="wp-block-heading">トリガー方法の3パターン</h4>



<p class="wp-block-paragraph">Skillsは <strong>どうやって発動するか</strong>で3つのパターンがあります</p>



<figure class="wp-block-table"><table><thead><tr><th>パターン</th><th>発動条件</th><th>主な用途</th></tr></thead><tbody><tr><td>自動トリガー</td><td>Claudeがdescriptionを読んで「これだ」と判断したとき</td><td>常用するタスク全般</td></tr><tr><td>手動呼び出し</td><td>ユーザーが <code>/skill-name</code> と入力</td><td>明示的に呼びたいワークフロー</td></tr><tr><td>パストリガー</td><td>frontmatterの <code>paths</code> にマッチするファイルを開いたとき</td><td>ファイル種別ごとの自動ロード</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">自動トリガーを効かせるには <code>description</code> フィールドの書き方が重要で、<strong>「いつ使うべきか」を具体的なキーワード付きで書いておく</strong>とClaudeの判断精度が上がります</p>



<h4 class="wp-block-heading">Skillsを使うメリット</h4>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li>同じ指示を毎回書かなくて済む(プロンプトの肥大化を防げる)</li>



<li>チームで共有できる(プロジェクトのSkillsをGit管理)</li>



<li>スキル単位でツール権限を絞れる(<code>allow-tools</code>で限定)</li>



<li>引数を取れるので汎用的なテンプレートが作れる</li>
</ul>



<p class="wp-block-paragraph">個人的にはClaude Codeの4本柱のうち <strong>一番気軽に作り始められるのがSkills</strong>で、Markdownを書くだけで作れるので習作に最適です</p>



<h3 class="wp-block-heading">MCP:外部サービス連携の共通規格</h3>



<p class="wp-block-paragraph"><strong>MCP(Model Context Protocol)</strong>は、Claudeが外部のサービスやデータベースとやり取りするための <strong><span class="marker-under">共通言語</span></strong>です</p>



<p class="wp-block-paragraph">これがなかった頃は、AIに「WordPressを操作させる」「GitHubのissueを読ませる」みたいなことをやろうとすると、それぞれのサービスごとに <strong>個別のつなぎ込みコード</strong>を書く必要がありました</p>



<p class="wp-block-paragraph">MCPは <strong>そのつなぎ込みのインターフェース部分を標準化</strong>したものです、MCPに対応した「MCPサーバー」を1個用意すれば、Claudeから自由にその外部サービスを呼び出せるようになります</p>



<h4 class="wp-block-heading">公式コネクタ vs 自作MCPサーバー</h4>



<p class="wp-block-paragraph">MCPの活用には大きく2つのアプローチがあります</p>



<figure class="wp-block-table"><table><thead><tr><th>アプローチ</th><th>概要</th><th>難易度</th></tr></thead><tbody><tr><td><strong>公式コネクタを使う</strong></td><td>Anthropicが用意したGoogle Drive・Slack・GitHubなどとの連携を有効化するだけ</td><td>低(設定のみ)</td></tr><tr><td><strong>自作MCPサーバーを書く</strong></td><td>Python/TypeScriptで自前のサーバーを立てて、独自API・社内システムと連携</td><td>中〜高</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">中級者がまず触るなら <strong>公式コネクタから</strong>がおすすめ、設定画面からON/OFFするだけで使えます</p>



<p class="wp-block-paragraph">そこから先「自分のWordPressと連携したい」「社内システムと繋ぎたい」となったら自作MCPサーバーの出番です</p>



<h4 class="wp-block-heading">MCPが解決する課題</h4>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li>「ChatGPT版」「Claude版」みたいに <strong>AIごとに連携コードを書き直さなくていい</strong>(MCP対応サーバーは複数AIで共通利用可)</li>



<li>認証(APIキー・OAuth)の扱いが標準化されている</li>



<li>ツールの一覧表示・呼び出しも自動で処理される</li>
</ul>



<p class="wp-block-paragraph">2026年現在、AIエージェント業界の標準規格として急速に広がっていて、これからますます重要になる仕組みです</p>



<h3 class="wp-block-heading">Hooks:イベント駆動の自動化</h3>



<p class="wp-block-paragraph"><strong>Hooks</strong>は、Claudeが何かをするタイミング(イベント)に合わせて <strong>自動でスクリプトを実行する仕組み</strong>です</p>



<p class="wp-block-paragraph">SkillsやCLAUDE.mdが「Claudeにお願いする」性格の機構なのに対して、Hooksは <strong><span class="marker-under">機械的に発動する</span></strong>のが大きな違いになります、「Claudeの判断に任せず、確実に毎回走らせたい処理」がある場合に効きます</p>



<h4 class="wp-block-heading">主要なHookイベント</h4>



<figure class="wp-block-table"><table><thead><tr><th>イベント名</th><th>発火タイミング</th><th>典型的な用途</th></tr></thead><tbody><tr><td><code>SessionStart</code></td><td>Claude Code起動時</td><td>環境変数読み込み、初期化スクリプト</td></tr><tr><td><code>UserPromptSubmit</code></td><td>ユーザーがプロンプト送信時</td><td>入力検証、コンテキスト自動追加</td></tr><tr><td><code>PreToolUse</code></td><td>Claudeがツール実行する直前</td><td>危険コマンドのブロック、ログ出力</td></tr><tr><td><code>PostToolUse</code></td><td>ツール実行直後</td><td>自動lint・format、結果ロギング</td></tr><tr><td><code>Stop</code></td><td>セッション終了時</td><td>クリーンアップ、後片付け</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">とくに <code>PreToolUse</code> は <strong>危険コマンドの最終防衛線</strong>として使えるので、中級者なら覚えておきたいイベントです</p>



<h4 class="wp-block-heading">設定例:rm -rf を見つけたら強制ブロック</h4>



<p class="wp-block-paragraph">例えば <code>settings.json</code> のdenyリストだけでは不安なので「実行直前に二重チェックして、危ない場合は通知も出したい」みたいなケースで使います</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-json" data-lang="settings.json"><code>{
  &quot;hooks&quot;: {
    &quot;PreToolUse&quot;: [
      {
        &quot;matcher&quot;: &quot;Bash&quot;,
        &quot;hooks&quot;: [
          {
            &quot;type&quot;: &quot;command&quot;,
            &quot;command&quot;: &quot;~/.claude/hooks/block-dangerous.sh&quot;
          }
        ]
      }
    ]
  }
}</code></pre></div>



<p class="wp-block-paragraph">呼び出されるシェルスクリプトの最小例はこんな感じ</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="block-dangerous.sh"><code>#!/bin/bash
INPUT=$(cat)
CMD=$(echo &quot;$INPUT&quot; | jq -r &#39;.tool_input.command&#39;)

if echo &quot;$CMD&quot; | grep -qE &#39;rm -rf|DROP TABLE&#39;; then
  jq -n &#39;{
    hookSpecificOutput: {
      hookEventName: &quot;PreToolUse&quot;,
      permissionDecision: &quot;deny&quot;,
      permissionDecisionReason: &quot;危険コマンドをHookでブロックしました&quot;
    }
  }&#39;
fi
exit 0</code></pre></div>



<p class="wp-block-paragraph">Hookは exit code とJSON出力の組み合わせで「許可/拒否/警告だけ」を制御できる仕組みになっていて、ここの設計が地味に奥深いです</p>



<h4 class="wp-block-heading">SkillsとHooksの違い</h4>



<p class="wp-block-paragraph">初心者が混乱しがちなのが「SkillsとHooksってどう違うの?」という点なので整理しておきます</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Skills</th><th>Hooks</th></tr></thead><tbody><tr><td>性質</td><td>Claudeへの「お願い」</td><td>機械的な強制実行</td></tr><tr><td>判断主体</td><td>Claude(描写を読んで判断)</td><td>システム(条件マッチで自動発火)</td></tr><tr><td>書き方</td><td>Markdown(プロンプト的)</td><td>シェルスクリプトや任意の実行可能ファイル</td></tr><tr><td>主な用途</td><td>定型タスクのテンプレート化</td><td>セキュリティ防御・自動lint等</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Subagents:隔離コンテキストでの委譲</h3>



<p class="wp-block-paragraph"><strong>Subagents(サブエージェント)</strong>は、メインのClaudeセッションから <strong>別のコンテキストを持つClaudeにタスクを委譲する</strong>仕組みです</p>



<p class="wp-block-paragraph">たとえば「ファイルを50個調査して、関連箇所をまとめて」みたいな重いタスクを、メインの会話に直接やらせると <strong>コンテキストウィンドウが調査ログで埋まってしまう</strong>問題があります</p>



<p class="wp-block-paragraph">これをSubagentに任せれば、<strong><span class="marker-under">メインのコンテキストはきれいなまま、結果サマリーだけを受け取れます</span></strong></p>



<h4 class="wp-block-heading">AGENT.mdの基本構造</h4>



<p class="wp-block-paragraph">Subagentの定義ファイルは <code>.claude/agents/&lt;agent-name&gt;/AGENT.md</code> に置きます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-markdown" data-lang="AGENT.md"><code>---
name: code-researcher
description: 大規模リポジトリの調査用エージェント、関連ファイル特定と概要把握を担当
tools: Read Grep Glob Bash(rg *)
model: claude-sonnet
maxTurns: 30
permissionMode: ask
isolation: worktree
---

あなたはコード調査の専門エージェントです

ユーザーから渡されたテーマに沿って、リポジトリ内の関連ファイル・関数・モジュールを特定し
最後に「どこに何があるか」のサマリーをMarkdownで返してください

ファイル変更や書き込みは行わず、読み取り専用で動作してください</code></pre></div>



<h4 class="wp-block-heading">主要なフィールド</h4>



<figure class="wp-block-table"><table><thead><tr><th>フィールド</th><th>役割</th></tr></thead><tbody><tr><td><code>tools</code></td><td>このエージェントが使えるツールを限定(セキュリティの肝)</td></tr><tr><td><code>model</code></td><td>使用モデル指定(軽い作業はHaikuに任せる等)</td></tr><tr><td><code>maxTurns</code></td><td>最大ターン数、暴走を防ぐ</td></tr><tr><td><code>permissionMode</code></td><td>権限チェックの強さ(ask / allow / deny)</td></tr><tr><td><code>isolation</code></td><td>worktree隔離するか</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Subagentsの典型ユースケース</h4>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>リサーチタスク</strong>:大量ファイルから関連箇所を抽出</li>



<li><strong>コードレビュー</strong>:セキュリティ・パフォーマンスを別の視点で並行チェック</li>



<li><strong>テスト実行</strong>:長時間かかるテストを別エージェントに任せて、メインは設計を続行</li>



<li><strong>並列実装</strong>:複数モジュールを別エージェントで同時実装</li>
</ul>



<p class="wp-block-paragraph">注意点として、<strong>Subagentは親のSkillsを継承しない</strong>仕様です、必要なSkillはAGENT.mdの中で明示的にプリロードする必要があります</p>



<h2 class="wp-block-heading">4本柱の使い分けマップ</h2>



<p class="wp-block-paragraph">ここまで4つの拡張機構を見てきましたが、 <strong>どの場面でどれを使うか</strong>を整理するとこんな感じになります</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使うべき機構</th></tr></thead><tbody><tr><td>定型タスクのテンプレート化(コミットメッセージ、レビュー観点など)</td><td>Skills</td></tr><tr><td>外部サービスとの連携(WordPress、Slack、GitHubなど)</td><td>MCP</td></tr><tr><td>機械的な強制処理(危険コマンドブロック、自動lint)</td><td>Hooks</td></tr><tr><td>長いリサーチ・並列処理・隔離したい作業</td><td>Subagents</td></tr><tr><td>判断基準・方針の周知(常時参照される指針)</td><td>CLAUDE.md(応用編で扱う)</td></tr><tr><td>機械的に止めたい操作のブロック</td><td>Permissions deny(応用編で扱う)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">同じ「自動化したい」というニーズでも、<strong>「Claudeの判断を信頼する」のがSkills、「機械的に処理させる」のがHooks</strong>、という対称関係を覚えておくと選びやすくなります</p>



<p class="wp-block-paragraph">同様に <strong>「メイン会話内で完結させる」のが標準、「コンテキストを分けたい」のがSubagents</strong>、<strong>「Claude内で完結」のが標準、「外部とつなぐ」のがMCP</strong>、と対比で覚えると整理しやすいです</p>



<h2 class="wp-block-heading">最初の一歩|まず作ってみるなら</h2>



<p class="wp-block-paragraph">4本柱を一気に覚えるのは大変なので、それぞれ <strong>「習作として最初に作るならこれ」</strong>というお題を1つずつ紹介します</p>



<h3 class="wp-block-heading">Skills:コミットメッセージ生成スキル</h3>



<p class="wp-block-paragraph">上で例示したような <code>commit-message</code> スキルが <strong>Skills入門に最適</strong>です</p>



<p class="wp-block-paragraph">毎回作業しているうちに「commitメッセージこんな感じで書きたい」という個人の好みが見えてくるので、それをそのままMarkdownに書き出すだけで形になります、5分くらいで完成します</p>



<h3 class="wp-block-heading">MCP:公式コネクタを1つ試す</h3>



<p class="wp-block-paragraph">自作MCPはハードルが高めなので、まずは <strong>公式コネクタを1つ有効化してみる</strong>のがおすすめ</p>



<p class="wp-block-paragraph">Google Drive・GitHub・Notion など、自分が日常的に使っているサービスのコネクタを設定画面から有効にして、Claude経由でファイル一覧を取ったり検索したりする体験から始めるとMCPの便利さが実感できます</p>



<h3 class="wp-block-heading">Hooks:危険コマンド通知だけのHook</h3>



<p class="wp-block-paragraph">いきなり複雑なHookを書くより、<strong>「危険コマンドを実行しようとしたらデスクトップ通知を出すだけ」</strong>みたいな最小Hookから入るのが分かりやすいです</p>



<p class="wp-block-paragraph">Windowsなら <code>msg</code>、Macなら <code>osascript</code>、シェルスクリプトの記述方法もコピペできるものが多いので、最初の壁は高くありません</p>



<h3 class="wp-block-heading">Subagents:リサーチ専用エージェント</h3>



<p class="wp-block-paragraph">「リサーチタスク用に <code>tools</code> を <code>Read Grep Glob</code> だけに絞った専用エージェント」を作るのが、Subagentsの威力を体感する最短ルートです</p>



<p class="wp-block-paragraph">大きめリポジトリで「○○の実装どこにある?」みたいな調査をするとき、メインで進めるのとSubagentに任せるのとで、コンテキスト消費量の違いに驚くと思います</p>



<h2 class="wp-block-heading">まとめ|拡張機構を押さえると見える世界</h2>



<p class="wp-block-paragraph">長くなりましたが、ポイントをぎゅっと整理するとこんな感じです</p>



<ol style="background-color:#f3fafe80" class="wp-block-list has-background">
<li>Claude Codeの大半は <strong>「ハーネス」</strong>と呼ばれる周辺ソフトウェア層、ここをいじれるのがカスタマイズの幅</li>



<li>拡張機構は4本柱:<strong>Skills(再利用指示)・MCP(外部連携)・Hooks(機械的自動化)・Subagents(隔離委譲)</strong></li>



<li>同じ「自動化」でも <strong><span class="marker-under">Claudeに判断させるのがSkills、機械的に発動させるのがHooks</span></strong>という対称関係</li>



<li>同じ「処理委譲」でも <strong><span class="marker-under">外部と繋ぐのがMCP、コンテキスト分離するのがSubagents</span></strong>という対称関係</li>



<li>慣れるまでは <strong>Skillsから入るのが最も気軽</strong>、Markdown1ファイルで始められる</li>
</ol>



<p class="wp-block-paragraph">この基礎編で4本柱の見取り図ができたので、応用編では <strong>CLAUDE.mdの深掘り・Memory管理・Permissions応用・Worktreesでの並列開発</strong>など、日常運用で効いてくる中級者向けテクニックを掘り下げる予定です</p>



<p class="wp-block-paragraph">各拡張機構の個別深掘り(Skillsだけで1記事、MCPだけで1記事、というレベル)も今後 順次まとめていく予定なので、興味のある分野があれば追っかけてもらえると嬉しいです</p>



<p class="wp-block-paragraph">初心者向けの周辺記事として、<a href="https://javeo.jp/claude-howto-beginner/">Claudeの使い方を初心者向けに解説した記事</a>、<a href="https://javeo.jp/claude-glossary-beginner/">Claudeを始める前に知っておきたい用語集</a>、<a href="https://javeo.jp/claude-code-security-beginner/">Claude Code Desktop初心者向けセキュリティ5選</a>も合わせてどうぞ</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" id="jv-books-ai" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var root=document.getElementById('jv-books-'+SHELF);
if(!root||root.dataset.init)return;
root.dataset.init='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/claude-code-extensions-basics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
