<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sesame blog</title><link>https://sesame.purplemoon.org/</link><description>開発や検証の技術メモ・備忘録</description><generator>Hugo 0.165.0 &amp; FixIt v1.0.0-alpha-mspj0oak</generator><language>ja</language><copyright>© 2026 sesame</copyright><lastBuildDate>Sun, 23 Aug 2026 05:15:00 +0000</lastBuildDate><atom:link href="https://sesame.purplemoon.org/index.xml" rel="self" type="application/rss+xml"/><item><title>「コードを書くだけ」の時代は終わった：AI コーディングエージェントの非開発応用と Antigravity Python SDK の本質</title><link>https://sesame.purplemoon.org/posts/2026/08/beyond-coding-agents-and-python-sdk/</link><pubDate>Sun, 23 Aug 2026 05:15:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/beyond-coding-agents-and-python-sdk/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;「AI コーディングエージェント（Antigravity、Claude Code、SWE-agent 等）は、エンジニアがアプリケーションのコードを書くためのツールである」──多くの人がこのように捉えています。&lt;/p&gt;&#10;&lt;p&gt;しかし、Antigravity が提供するインターフェース群を見渡したとき、ひとつの大きな疑問が浮かびます。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;「VS Code 拡張機能や CLI があるのに、なぜ公式の Python SDK（&lt;code&gt;google-antigravity&lt;/code&gt;）が提供されているのか？」&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;人間がチャット画面やエディタで対話するだけなら、Python ライブラリとしてエージェントを操作する SDK は本来必要ありません。この問いの答えこそが、&lt;strong&gt;AI コーディングエージェントという技術の本質が「単なるプログラミング支援」を遥かに超えた領域にあること&lt;/strong&gt; を物語っています。&lt;/p&gt;&#10;&lt;p&gt;本記事では、コーディングエージェントが持つ真のアーキテクチャ的本質、Python SDK が存在する必然性、そして SRE・データ分析・セキュリティ監査・リサーチといった「開発用途以外（Non-Coding Ops）」への実務応用パターンを解説します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="なぜコーディングから始まったのか閉じたループの必然性"&gt;&lt;span&gt;なぜ「コーディング」から始まったのか？──閉じたループの必然性&lt;/span&gt;&#10; &lt;a href="#%e3%81%aa%e3%81%9c%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%e3%81%8b%e3%82%89%e5%a7%8b%e3%81%be%e3%81%a3%e3%81%9f%e3%81%ae%e3%81%8b%e9%96%89%e3%81%98%e3%81%9f%e3%83%ab%e3%83%bc%e3%83%97%e3%81%ae%e5%bf%85%e7%84%b6%e6%80%a7" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI エージェント技術が、事務作業や一般的なチャットボットではなく「ソフトウェア開発（Coding）」の領域で最も早く実用レベルに達したのは偶然ではありません。&lt;/p&gt;&#10;&lt;p&gt;自律エージェントがタスクを完遂するためには、以下の 3 つの要素が不可欠です。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;決定論的なフィードバック環境&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;コードを実行した結果、構文エラーやテスト落ちがシェル標準出力・エラー（&lt;code&gt;stderr&lt;/code&gt;）として明確に返ってくる。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;自己修復可能な閉ループ（Closed Loop）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;エラーログを読み取り、原因となったファイルを修正し、再度テストを走らせて合否を機械的に判定できる。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;豊富なコンテキスト操作インターフェース&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;ripgrep&lt;/code&gt; や &lt;code&gt;git&lt;/code&gt; などの UNIX コマンドを通じて、必要な情報だけを外科手術のように探索・収集できる。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre&gt;&lt;code&gt;【エージェントにとっての「ソフトウェア開発」という領域】&#10;指示 ➔ 探索（rg, fd） ➔ 修正（edit） ➔ 検証（pytest / npm test） ➔ 合否判定 ➔ 完了&#10; ↑ │&#10; └─────────────── エラー出力で自律修正 ───────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;つまり、「コーディング」はエージェントにとって &lt;strong&gt;最も検証が容易で、自己完結したフィードバックループを回しやすい理想的な実験場（Sandbox）だった&lt;/strong&gt; に過ぎません。&lt;/p&gt;&#10;&lt;p&gt;エージェントが内部で獲得した「ファイルシステムを探索し、コマンドを実行し、出力を解析し、外部ツール（MCP）を叩き、ゴールに達するまで自律的に試行錯誤する」という能力は、本質的に &lt;strong&gt;あらゆるコンピュータ作業に応用可能な「汎用自律オペレータ」そのもの&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="antigravity-python-sdk-が存在する真の理由"&gt;&lt;span&gt;Antigravity Python SDK が存在する真の理由&lt;/span&gt;&#10; &lt;a href="#antigravity-python-sdk-%e3%81%8c%e5%ad%98%e5%9c%a8%e3%81%99%e3%82%8b%e7%9c%9f%e3%81%ae%e7%90%86%e7%94%b1" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Antigravity には、VS Code 拡張機能、デスクトップアプリ（Antigravity 2.0）、ターミナル CLI（&lt;code&gt;agy&lt;/code&gt;）のほかに、公式の &lt;strong&gt;Python SDK（&lt;code&gt;google-antigravity&lt;/code&gt;）&lt;/strong&gt; が用意されています。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; subgraph Core [&amp;#34;Antigravity Agent Runtime（推論・ツール・自律ループ）&amp;#34;]&#10; Gemini[&amp;#34;Gemini 基盤モデル&amp;#34;]&#10; Tools[&amp;#34;ツール群（ファイル編集 / シェル実行 / MCP / 検索）&amp;#34;]&#10; Loop[&amp;#34;自己検証・計画推論ループ&amp;#34;]&#10; Gemini --- Tools --- Loop&#10; end&#10;&#10; SurfaceGUI[&amp;#34;1. GUI (VS Code 拡張機能 / 2.0)&amp;lt;br&amp;gt;➔ 人間が手元で対話・レビュー&amp;#34;]&#10; SurfaceCLI[&amp;#34;2. CLI (agy)&amp;lt;br&amp;gt;➔ ターミナルから人間がタスク委譲&amp;#34;]&#10; SurfaceSDK[&amp;#34;3. Python SDK (google-antigravity)&amp;lt;br&amp;gt;➔ プログラム・バッチ・他システムへ自律コアを組み込み&amp;#34;]&#10;&#10; Core --&amp;gt; SurfaceGUI&#10; Core --&amp;gt; SurfaceCLI&#10; Core --&amp;gt; SurfaceSDK&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="人間対面chatからシステム組み込みheadless-runtimeへの飛躍"&gt;&lt;span&gt;「人間対面（Chat）」から「システム組み込み（Headless Runtime）」への飛躍&lt;/span&gt;&#10; &lt;a href="#%e4%ba%ba%e9%96%93%e5%af%be%e9%9d%a2chat%e3%81%8b%e3%82%89%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e7%b5%84%e3%81%bf%e8%be%bc%e3%81%bfheadless-runtime%e3%81%b8%e3%81%ae%e9%a3%9b%e8%ba%8d" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;GUI や CLI は、すべて「人間のオペレータ」が画面の前に座って指示を与えることを前提としています。&lt;/p&gt;&#10;&lt;p&gt;一方、Python SDK は &lt;strong&gt;「エージェントの自律頭脳を、1 つの非同期関数・モジュールとして既存のプログラムや自動化パイプラインに組み込むこと」&lt;/strong&gt; を目的としています。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Cron / Airflow などのワークフロー&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;定期的に起動し、障害の予兆検知やレポート生成を完全無人で実行。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;FastAPI / バックエンド API 連携&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ユーザーからの複雑な非構造化リクエストを受け取り、バックグラウンドでエージェントが複数ツールを駆使して調査・集計した結果をレスポンス。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;CI/CD パイプライン &amp;amp; セキュリティゲート&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;プルリクエスト作成時に、コードの文法だけでなく「アーキテクチャ整合性」や「最新 CVE 脆弱性情報」を自律調査して自動コメント。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Python SDK は、エージェントを「開発者のアシスタント」から &lt;strong&gt;「24 時間 365 日稼働する自律デジタルワーカーのエンジン」&lt;/strong&gt; へと昇華させるための窓口です。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="開発用途を超えた-5-つの実務ユースケース"&gt;&lt;span&gt;開発用途を超えた 5 つの実務ユースケース&lt;/span&gt;&#10; &lt;a href="#%e9%96%8b%e7%99%ba%e7%94%a8%e9%80%94%e3%82%92%e8%b6%85%e3%81%88%e3%81%9f-5-%e3%81%a4%e3%81%ae%e5%ae%9f%e5%8b%99%e3%83%a6%e3%83%bc%e3%82%b9%e3%82%b1%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;「ファイル操作」「シェル実行」「Web 検索」「MCP 外部連携」を組み合わせることで、開発以外の領域において以下のような高度な自動化が実現します。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;領域&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;従来の課題（静的スクリプトや人間作業）&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;AI エージェントによる自律解決（Python SDK）&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;① DataOps / レポート生成&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;データ形式が変わるたびにスクリプト修正が必要。定性的なインサイト要約は人間が手書き。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;データを読み取り、自ら可視化 Python スクリプトを生成・実行してグラフを出力し、洞察レポートを Markdown 化。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;② SRE / インシデント調査&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;アラート発報後、エンジニアが手作業で複数ログやメトリクスを横断調査し初動が遅れる。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;アラートをフックして自律起動。ログ調査、メトリクス照会、原因の特定と暫定復旧コマンドの提案までを自動完遂。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;③ SecOps / コンプライアンス&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;静的ルール（Linter）では文脈や最新のゼロデイ脆弱性（CVE）に対応できない。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;設定ファイルや IaC を読み、Web 検索で最新の脆弱性データベースと照合して影響範囲を判定・パッチ作成。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;④ Docs as Code / 品質管理&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ドキュメントのリンク切れ、表記揺れ、コード例の動作検証が手動で形骸化。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ドキュメント内のコードを実際にテスト環境で実行・検証し、壊れたサンプルコードやリンクを自律修正。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;⑤ Research &amp;amp; ファクトチェック&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Web 検索結果を人間が何時間もかけて目視確認・精査・比較表作成。&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Web 検索ツールと MCP を駆使して一次情報ソースを多角的に収集し、ファクトチェック済みの要約を作成。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="ユースケース詳細"&gt;&lt;span&gt;ユースケース詳細&lt;/span&gt;&#10; &lt;a href="#%e3%83%a6%e3%83%bc%e3%82%b9%e3%82%b1%e3%83%bc%e3%82%b9%e8%a9%b3%e7%b4%b0" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;h4 class="heading-element" id="1-dataopsアドホック分析とビジュアルレポートの完全自動化"&gt;&lt;span&gt;1. DataOps：アドホック分析とビジュアルレポートの完全自動化&lt;/span&gt;&#10; &lt;a href="#1-dataops%e3%82%a2%e3%83%89%e3%83%9b%e3%83%83%e3%82%af%e5%88%86%e6%9e%90%e3%81%a8%e3%83%93%e3%82%b8%e3%83%a5%e3%82%a2%e3%83%ab%e3%83%ac%e3%83%9d%e3%83%bc%e3%83%88%e3%81%ae%e5%ae%8c%e5%85%a8%e8%87%aa%e5%8b%95%e5%8c%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;従来のデータ分析スクリプトは、想定外のカラム変更や欠損値で即座にエラー停止します。&#10;エージェントは、エラーが発生しても「エラー出力を読み取って Pandas の処理を自己修正し、再実行する」という自律ループを持つため、未知のデータセットに対しても確実にグラフ描画とインサイト抽出を完走させます。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="2-sre--インフラ運用障害の自律トリアージ"&gt;&lt;span&gt;2. SRE / インフラ運用：障害の自律トリアージ&lt;/span&gt;&#10; &lt;a href="#2-sre--%e3%82%a4%e3%83%b3%e3%83%95%e3%83%a9%e9%81%8b%e7%94%a8%e9%9a%9c%e5%ae%b3%e3%81%ae%e8%87%aa%e5%be%8b%e3%83%88%e3%83%aa%e3%82%a2%e3%83%bc%e3%82%b8" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;PagerDuty や Datadog のアラート通知をトリガーに Python SDK 経由でエージェントを起動します。エージェントは Kubernetes クラスタやサーバーに接続し、&lt;code&gt;kubectl logs&lt;/code&gt; や &lt;code&gt;journalctl&lt;/code&gt; を叩いて直近のエラーログを特定。Prometheus のメトリクスと突合し、「どのデプロイが原因か」を突き止めて Slack に詳細なインシデント初動レポートを投稿します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="python-sdk-による実装例sre-障害調査エージェント"&gt;&lt;span&gt;Python SDK による実装例：SRE 障害調査エージェント&lt;/span&gt;&#10; &lt;a href="#python-sdk-%e3%81%ab%e3%82%88%e3%82%8b%e5%ae%9f%e8%a3%85%e4%be%8bsre-%e9%9a%9c%e5%ae%b3%e8%aa%bf%e6%9f%bb%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;以下は、Antigravity Python SDK（&lt;code&gt;google-antigravity&lt;/code&gt;）を用いて、障害ログを自律調査し、サマリーレポートを生成するスクリプトの例です。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;import asyncio&#10;import sys&#10;from google.antigravity import Agent, LocalAgentConfig, CapabilitiesConfig&#10;&#10;async def investigate_incident(log_dir: str, incident_id: str):&#10; &amp;#34;&amp;#34;&amp;#34;&#10; 障害ログディレクトリを自律調査し、原因特定と暫定復旧策をまとめたレポートを出力する&#10; &amp;#34;&amp;#34;&amp;#34;&#10; # ツール実行権限（ファイル読み取り・シェル実行）を安全に構成&#10; config = LocalAgentConfig(&#10; system_instructions=(&#10; &amp;#34;あなたは高度な SRE 診断エージェントです。&amp;#34;&#10; &amp;#34;提供されたログディレクトリ内のファイルを調査し、エラーログの抽出、&amp;#34;&#10; &amp;#34;時系列での影響分析、および根本原因の仮説を立てて Markdown レポートを作成してください。&amp;#34;&#10; ),&#10; # 安全のため、書き込み権限やコマンド実行を明示的に有効化&#10; capabilities=CapabilitiesConfig(),&#10; )&#10;&#10; prompt = f&amp;#34;&amp;#34;&amp;#34;&#10; インシデント ID: {incident_id} の調査を開始してください。&#10; 対象ログパス: {log_dir}&#10; &#10; 1. rg コマンド等を用いて、直近 1 時間の ERROR / FATAL ログを抽出してください。&#10; 2. エラー発生前後の設定変更や例外スタックトレースを特定してください。&#10; 3. 根本原因の要約と、推奨される暫定対応手順をレポートとしてまとめてください。&#10; &amp;#34;&amp;#34;&amp;#34;&#10;&#10; print(f&amp;#34;[*] インシデント {incident_id} の自律調査を開始します...\n&amp;#34;)&#10;&#10; async with Agent(config) as agent:&#10; response = await agent.chat(prompt)&#10;&#10; # エージェントの回答トークンをストリーミング表示&#10; async for token in response:&#10; sys.stdout.write(token)&#10; sys.stdout.flush()&#10; print(&amp;#34;\n\n[*] 調査が完了しました。&amp;#34;)&#10;&#10;if __name__ == &amp;#34;__main__&amp;#34;:&#10; # 実行例&#10; asyncio.run(investigate_incident(log_dir=&amp;#34;/var/log/app&amp;#34;, incident_id=&amp;#34;INC-20260823-01&amp;#34;))&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="エンタープライズ導入における安全設計safety-by-default"&gt;&lt;span&gt;エンタープライズ導入における安全設計（Safety by Default）&lt;/span&gt;&#10; &lt;a href="#%e3%82%a8%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%97%e3%83%a9%e3%82%a4%e3%82%ba%e5%b0%8e%e5%85%a5%e3%81%ab%e3%81%8a%e3%81%91%e3%82%8b%e5%ae%89%e5%85%a8%e8%a8%ad%e8%a8%88safety-by-default" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;業務システムや自動化パイプラインにエージェントを組み込む際、最大の懸念となるのは「予期しないコマンド実行やデータ破壊」です。Antigravity Python SDK は以下の多層防御アーキテクチャを備えています。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Read-only デフォルト原則&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;capabilities=CapabilitiesConfig()&lt;/code&gt; を明示的に設定しない限り、ファイル編集やシェル実行は遮断され、探索・読み取り専用で動作します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;サンドボックス隔離&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;コマンド実行は隔離されたサンドボックス環境内で行われ、ホスト OS や不要なネットワークアクセスへの影響を防止します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;可観測性（Streaming Thoughts / ToolCalls）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;response.thoughts&lt;/code&gt;（思考ログ）や &lt;code&gt;response.tool_calls&lt;/code&gt;（実行されたツール名と引数）をリアルタイムにプログラム側でフック・監査ログに記録できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="運用で-ai-エージェントを活用する-3-つのアプローチと使い分け"&gt;&lt;span&gt;運用で AI エージェントを活用する 3 つのアプローチと使い分け&lt;/span&gt;&#10; &lt;a href="#%e9%81%8b%e7%94%a8%e3%81%a7-ai-%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e6%b4%bb%e7%94%a8%e3%81%99%e3%82%8b-3-%e3%81%a4%e3%81%ae%e3%82%a2%e3%83%97%e3%83%ad%e3%83%bc%e3%83%81%e3%81%a8%e4%bd%bf%e3%81%84%e5%88%86%e3%81%91" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;実務の運用現場で AI エージェントを活用するアプローチは、大きく以下の &lt;strong&gt;3 つの方式（パターン）&lt;/strong&gt; に整理できます。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;方式&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;概要・代表例&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;メリット&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;デメリット・制約&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;最適な利用シーン&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;① コーディングエージェント流用型&lt;/strong&gt;&lt;br&gt;（Zero-code Ops）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;agy&lt;/code&gt; / Claude Code / Cursor&lt;/strong&gt; を運用サーバーや端末で直接起動し、自然言語で指示&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;・開発コスト 0（即座に使える）&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;・高いアドホック柔軟性&lt;/strong&gt;（&lt;code&gt;kubectl&lt;/code&gt;, &lt;code&gt;ssh&lt;/code&gt;, &lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;jq&lt;/code&gt; 等の全ツールを AI がその場で組み合わせる）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;・無人の定常自動化には向かない（人間が CLI を叩く必要がある）&lt;br&gt;・権限が広すぎるため破壊的コマンドの安全管理が必要&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;アドホックな障害調査、ワンオフのログ解析、環境構築、緊急トラブルシュート&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;② プロコード自作型&lt;/strong&gt;&lt;br&gt;（SDK / Pipeline 組み込み）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Antigravity Python SDK&lt;/strong&gt; や &lt;a href="https://www.langchain.com/langgraph" target="_blank" rel="external nofollow noopener noreferrer"&gt;LangGraph&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; 等で、専用の運用スクリプト・サービスを構築&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;・完全無人・イベント駆動（Webhook / Slack）&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;・厳格な権限管理 &amp;amp; 監査ログ&lt;/strong&gt;（実行可能コマンドをホワイトリスト化）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;・コードの実装・保守コストがかかる&lt;br&gt;・想定外の事態（Ad-hoc）への柔軟性はツールの設計範囲に限定される&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;定常監視バッチ、インシデント自動一次トリアージ、CI/CD セキュリティゲート&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;③ 専用エージェント型&lt;/strong&gt;&lt;br&gt;（Turnkey Agents）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;a href="https://github.com/openclaw/openclaw" target="_blank" rel="external nofollow noopener noreferrer"&gt;OpenClaw&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; / &lt;a href="https://k8sgpt.ai/" target="_blank" rel="external nofollow noopener noreferrer"&gt;K8sGPT&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; / &lt;a href="https://github.com/robusta-dev/holmesgpt" target="_blank" rel="external nofollow noopener noreferrer"&gt;HolmesGPT&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; などの特定用途完成品エージェント&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;・UI やチャット連携が完成済み&lt;/strong&gt;&lt;br&gt;・特定ドメイン（Slack 連携、K8s 診断等）に特化したチューニング&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;・製品の枠組みを超える作業ができない&lt;br&gt;・社内独自システムや特殊なログ形式への適応が難しい&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;個人・チームの日常雑務代行（Slack 経由）、標準的な K8s クラスタの診断&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 class="heading-element" id="各アプローチの背景と実例"&gt;&lt;span&gt;各アプローチの背景と実例&lt;/span&gt;&#10; &lt;a href="#%e5%90%84%e3%82%a2%e3%83%97%e3%83%ad%e3%83%bc%e3%83%81%e3%81%ae%e8%83%8c%e6%99%af%e3%81%a8%e5%ae%9f%e4%be%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;h4 class="heading-element" id="1-コーディングエージェント流用型なぜ非公式な使い方が最も柔軟なのか"&gt;&lt;span&gt;1. コーディングエージェント流用型：なぜ「非公式」な使い方が最も柔軟なのか？&lt;/span&gt;&#10; &lt;a href="#1-%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e6%b5%81%e7%94%a8%e5%9e%8b%e3%81%aa%e3%81%9c%e9%9d%9e%e5%85%ac%e5%bc%8f%e3%81%aa%e4%bd%bf%e3%81%84%e6%96%b9%e3%81%8c%e6%9c%80%e3%82%82%e6%9f%94%e8%bb%9f%e3%81%aa%e3%81%ae%e3%81%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;一見すると「開発用ツールを無理に使っている」ように思えるコーディングエージェント（&lt;code&gt;agy&lt;/code&gt; や Claude Code）の運用流用ですが、実務上は &lt;strong&gt;柔軟性が高く、立ち上げの手間が不要な即効性のあるアプローチ&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;プロコードでエージェントを自作する場合、「この API を叩く関数」「このログを取得するツール」を人間が 1 つずつ Python で定義してあげる必要があります。一方、コーディングエージェントは &lt;strong&gt;「すでに完全なシェル実行環境と自己修復ループを持っている」&lt;/strong&gt; ため、サーバー上にある &lt;code&gt;kubectl&lt;/code&gt;、&lt;code&gt;grep&lt;/code&gt;、&lt;code&gt;systemctl&lt;/code&gt;、&lt;code&gt;aws&lt;/code&gt; CLI などを、その場の状況に応じて AI 自身が勝手に組み合わせて目的を達成します。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="2-プロコード自作型antigravity-python-sdk-や-langgraph-による統制"&gt;&lt;span&gt;2. プロコード自作型：Antigravity Python SDK や LangGraph による統制&lt;/span&gt;&#10; &lt;a href="#2-%e3%83%97%e3%83%ad%e3%82%b3%e3%83%bc%e3%83%89%e8%87%aa%e4%bd%9c%e5%9e%8bantigravity-python-sdk-%e3%82%84-langgraph-%e3%81%ab%e3%82%88%e3%82%8b%e7%b5%b1%e5%88%b6" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;エンタープライズの運用では、エージェントに広範なシェル権限をそのまま渡すことはセキュリティ上許容されません。&lt;br&gt;&#10;そのため、LangChain 社が提供する &lt;a href="https://www.langchain.com/langgraph" target="_blank" rel="external nofollow noopener noreferrer"&gt;LangGraph&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; や、Google の &lt;a href="https://github.com/google-antigravity/antigravity-sdk-python" target="_blank" rel="external nofollow noopener noreferrer"&gt;Antigravity Python SDK&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; を用いて、「許可されたクエリのみを実行し、結果を整形して Slack に投稿する」といった &lt;strong&gt;権限境界（Guardrails）をプロコードで厳格に定義したパイプライン&lt;/strong&gt; が構築されます。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="3-専用エージェント型openclaw-や-cncf-プロジェクトの台頭"&gt;&lt;span&gt;3. 専用エージェント型：OpenClaw や CNCF プロジェクトの台頭&lt;/span&gt;&#10; &lt;a href="#3-%e5%b0%82%e7%94%a8%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e5%9e%8bopenclaw-%e3%82%84-cncf-%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%ae%e5%8f%b0%e9%a0%ad" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;特定業務に特化した完成品エージェント（Turnkey Agents）も急速に普及しています。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;パーソナル自動化（&lt;a href="https://github.com/openclaw/openclaw" target="_blank" rel="external nofollow noopener noreferrer"&gt;OpenClaw&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt;: Peter Steinberger 氏によって開発されたオープンソースのセルフホスト型エージェント。WhatsApp、Telegram、Slack などのチャットアプリから指示を送り、裏でブラウザ操作やファイル操作を代行させるパーソナル執事として広く活用されています。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Kubernetes 診断（&lt;a href="https://k8sgpt.ai/" target="_blank" rel="external nofollow noopener noreferrer"&gt;K8sGPT&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt;: CNCF Sandbox プロジェクトとして、クラスタ内のエラーや設定ミスを自動スキャンして平易な自然言語で解説・トリアージする診断特化ツール。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;フルスタック SRE 調査（&lt;a href="https://github.com/robusta-dev/holmesgpt" target="_blank" rel="external nofollow noopener noreferrer"&gt;HolmesGPT&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt;: K8s クラスタだけでなく、VM、クラウド API、データベースを横断してインシデント調査を行う自律型 SRE エージェント。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="実務での判断基準decision-flow"&gt;&lt;span&gt;実務での判断基準（Decision Flow）&lt;/span&gt;&#10; &lt;a href="#%e5%ae%9f%e5%8b%99%e3%81%a7%e3%81%ae%e5%88%a4%e6%96%ad%e5%9f%ba%e6%ba%96decision-flow" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; Start[&amp;#34;運用の自動化・効率化をしたい&amp;#34;] --&amp;gt; Q1{&amp;#34;定常的な無人実行が必要か？&amp;lt;br&amp;gt;（Webhook/Slack連携/定期Cron）&amp;#34;}&#10; &#10; Q1 -- &amp;#34;No（人間がその場で調査・対応）&amp;#34; --&amp;gt; UseCase1[&amp;#34;【① コーディングエージェント流用型】&amp;lt;br&amp;gt;agy / Claude Code を直接起動して丸投げ&amp;lt;br&amp;gt;➔ 最速・最も柔軟・工数ゼロ&amp;#34;]&#10; &#10; Q1 -- &amp;#34;Yes（無人自走させたい）&amp;#34; --&amp;gt; Q2{&amp;#34;標準的な特定用途か？&amp;lt;br&amp;gt;（Slack執事、K8s診断など）&amp;#34;}&#10; &#10; Q2 -- &amp;#34;Yes（既存パッケージで足りる）&amp;#34; --&amp;gt; UseCase3[&amp;#34;【③ 専用エージェント型】&amp;lt;br&amp;gt;OpenClaw や K8sGPT を導入&amp;lt;br&amp;gt;➔ 設定だけで即稼働&amp;#34;]&#10; &#10; Q2 -- &amp;#34;No（社内システム連携や厳格な安全基準）&amp;#34; --&amp;gt; UseCase2[&amp;#34;【② プロコード自作型】&amp;lt;br&amp;gt;Antigravity Python SDK でパイプライン構築&amp;lt;br&amp;gt;➔ 堅牢・セキュア・完全自動&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;「AI コーディングエージェント」という名称は、この技術の進化の出発点を表しているに過ぎません。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;エディタの中（GUI / VS Code 拡張機能）&lt;/strong&gt;: 人間の直感を研ぎ澄ます「ペアプログラマ」&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ターミナルの中（CLI / &lt;code&gt;agy&lt;/code&gt;）&lt;/strong&gt;: タスクを丸投げして並行自走させる「自律エンジニア / 運用オペレータ」&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;プログラムの中（Python SDK）&lt;/strong&gt;: 業務パイプラインを裏で駆動する「汎用自律オペレータ基盤」&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Antigravity に Python SDK が用意されている理由は、&lt;strong&gt;エージェントの推論・実行ループをあらゆる業務自動化の「部品」として解放するため&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;開発用途という枠組みを外し、手元のトラブルシュートには CLI を、定常的な無人運用には Python SDK や専用エージェントを使い分けることで、次世代の自律運用体制を構築できます。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/google-antigravity/antigravity-sdk-python" target="_blank" rel="external nofollow noopener noreferrer"&gt;Google Antigravity Python SDK (GitHub: google-antigravity/antigravity-sdk-python)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://antigravity.google/docs" target="_blank" rel="external nofollow noopener noreferrer"&gt;Google Antigravity Documentation (antigravity.google/docs)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/openclaw/openclaw" target="_blank" rel="external nofollow noopener noreferrer"&gt;OpenClaw: Open Source Autonomous Personal Agent (GitHub: openclaw/openclaw)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://k8sgpt.ai/" target="_blank" rel="external nofollow noopener noreferrer"&gt;K8sGPT: Kubernetes SRE Diagnostics (k8sgpt.ai)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/robusta-dev/holmesgpt" target="_blank" rel="external nofollow noopener noreferrer"&gt;HolmesGPT: Autonomous SRE &amp;amp; Incident Investigation (GitHub: robusta-dev/holmesgpt)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://platform.openai.com/docs/assistants/tools/code-interpreter" target="_blank" rel="external nofollow noopener noreferrer"&gt;OpenAI: Code Interpreter &amp;amp; Assistants API (platform.openai.com)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Model Context Protocol Specification (modelcontextprotocol.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://swe-agent.com/" target="_blank" rel="external nofollow noopener noreferrer"&gt;SWE-agent: Agent-Computer Interfaces to Solve Real-World GitHub Issues (Yang et al., 2024)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://docs.anthropic.com/en/docs/build-with-claude/computer-use" target="_blank" rel="external nofollow noopener noreferrer"&gt;Anthropic: Computer Use &amp;amp; Tool-Using Agents&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Antigravity エコシステムの全体像：VS Code 拡張機能・Antigravity 2.0・agy CLI・Python SDK の役割と使い分け</title><link>https://sesame.purplemoon.org/posts/2026/08/antigravity-surfaces-and-evolution/</link><pubDate>Sat, 22 Aug 2026 23:30:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/antigravity-surfaces-and-evolution/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;2026 年 8 月 19 日、Google Antigravity の &lt;strong&gt;VS Code 向け公式拡張機能（Antigravity Extension for VS Code）&lt;/strong&gt; がリリースされました。&lt;/p&gt;&#10;&lt;p&gt;これまでスタンドアロンの AI エディタ（Antigravity IDE）やデスクトップアプリ（Antigravity 2.0）、ターミナル用 CLI（&lt;code&gt;agy&lt;/code&gt;）で提供されていた自律エージェント機能が、使い慣れた通常の VS Code 環境へ直接アドオンできるようになりました。&lt;/p&gt;&#10;&lt;p&gt;「従来の Gemini Code Assist と何が違うのか？」「デスクトップアプリ（Antigravity 2.0）や CLI（&lt;code&gt;agy&lt;/code&gt;）とはどう使い分ければよいのか？」という疑問を持つ開発者も多いはずです。&lt;/p&gt;&#10;&lt;p&gt;本記事では、Gemini Code Assist から Antigravity への進化の背景、共通するエージェントコアのアーキテクチャ、そして &lt;strong&gt;4 つの提供形態（Surfaces: VS Code 拡張機能、Antigravity 2.0、&lt;code&gt;agy&lt;/code&gt; CLI、Python SDK）の特徴と実務での使い分け&lt;/strong&gt; を整理します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="開発者-ai-が直面していた形態の分断と進化の必然性"&gt;&lt;span&gt;開発者 AI が直面していた「形態の分断」と進化の必然性&lt;/span&gt;&#10; &lt;a href="#%e9%96%8b%e7%99%ba%e8%80%85-ai-%e3%81%8c%e7%9b%b4%e9%9d%a2%e3%81%97%e3%81%a6%e3%81%84%e3%81%9f%e5%bd%a2%e6%85%8b%e3%81%ae%e5%88%86%e6%96%ad%e3%81%a8%e9%80%b2%e5%8c%96%e3%81%ae%e5%bf%85%e7%84%b6%e6%80%a7" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI を活用したコーディング支援は、インラインのコード補完（Tab）やチャットウィンドウでの対話から始まりました。しかし、開発規模が大きくなるにつれて以下のような構造的課題が顕在化しました。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;「提案」止まりによる手動作業のボトルネック&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;従来の Gemini Code Assist や一般的な AI 拡張機能は、コード修正やコマンドをチャット欄で「提案」し、ユーザーが手動でエディタに貼り付け、ターミナルで実行してエラーが出たら再度チャットに貼る、という対話が中心でした。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;手動モード切り替え（Ask / Edit / Agent）の煩雑さ&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;「質問だから Ask」「特定行の修正だから Edit」「自動実行させたいから Agent」と、作業ごとに手動で UI モードを切り替える必要がありました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;作業環境によるツールの分断&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;GUI エディタ上では便利な補完が効く一方、SSH 先のリモートサーバー、コンテナ内部、あるいは CI/CD スクリプトなどのターミナル環境では同じ AI 支援を利用しにくいという断片化がありました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre&gt;&lt;code&gt;【従来の開発スタイル（受動型）】&#10;ユーザーが指示 ➔ AI がコード提案 ➔ ユーザーが手動適用 ➔ ユーザーが手動テスト ➔ エラーを目視確認&#10;&#10;【Antigravity の自律ループスタイル（エージェント型）】&#10;ユーザーがゴールを指示 ➔ AI が計画策定 ➔ ファイル自律編集 ➔ テスト・ビルドを自律実行 ➔ エラーを読み取り自己修復&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Antigravity は、これらの課題を解消し、&lt;strong&gt;「単一のエージェントコアエンジンを、エディタ・デスクトップ・ターミナル・プログラムの 4 つの窓口（Surfaces）から一貫して利用できるプラットフォーム」&lt;/strong&gt; として再設計されました。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="共通基盤アーキテクチャshared-agent-core"&gt;&lt;span&gt;共通基盤アーキテクチャ（Shared Agent Core）&lt;/span&gt;&#10; &lt;a href="#%e5%85%b1%e9%80%9a%e5%9f%ba%e7%9b%a4%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3shared-agent-core" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Antigravity のすべてのツール（拡張機能、デスクトップ、CLI、SDK）は、独立した別々の製品ではなく、&lt;strong&gt;共通のエージェント基盤&lt;/strong&gt; を共有しています。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; subgraph SharedCore [&amp;#34;共通コア基盤（Shared Agent Core）&amp;#34;]&#10; Gemini[&amp;#34;Gemini 基盤モデル&amp;lt;br&amp;gt;（超長文コンテキスト / 高速推論）&amp;#34;]&#10; MCP[&amp;#34;MCP (Model Context Protocol)&amp;lt;br&amp;gt;（GitHub, DB, クラウド等の外部ツール接続）&amp;#34;]&#10; Custom[&amp;#34;カスタマイズ層&amp;lt;br&amp;gt;（Agent Skills, Rules: AGENTS.md, Hooks）&amp;#34;]&#10; Sandbox[&amp;#34;安全サンドボックス &amp;amp; パーミッションエンジン&amp;#34;]&#10; Gemini --- MCP --- Custom --- Sandbox&#10; end&#10;&#10; SharedCore --&amp;gt; Surface1[&amp;#34;1. VS Code 拡張機能&amp;lt;br&amp;gt;（エディタ直結・インライン補完・Diff）&amp;#34;]&#10; SharedCore --&amp;gt; Surface2[&amp;#34;2. Antigravity 2.0&amp;lt;br&amp;gt;（デスクトップ司令塔・Cron 定期実行）&amp;#34;]&#10; SharedCore --&amp;gt; Surface3[&amp;#34;3. agy (CLI)&amp;lt;br&amp;gt;（ターミナル特化・SSH / コンテナ / スクリプト）&amp;#34;]&#10; SharedCore --&amp;gt; Surface4[&amp;#34;4. Python SDK&amp;lt;br&amp;gt;（プログラム組み込み・自律パイプライン）&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="共通コアが提供する-4-大要素"&gt;&lt;span&gt;共通コアが提供する 4 大要素&lt;/span&gt;&#10; &lt;a href="#%e5%85%b1%e9%80%9a%e3%82%b3%e3%82%a2%e3%81%8c%e6%8f%90%e4%be%9b%e3%81%99%e3%82%8b-4-%e5%a4%a7%e8%a6%81%e7%b4%a0" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Gemini 基盤モデル&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;巨大なコンテキストウィンドウと高速・低遅延な推論により、リポジトリ全体のコンテキストを把握しながら自律ループを駆動。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Linux Foundation（AAIF）傘下で標準化されたオープン規格に準拠し、GitHub MCP やデータベース接続、カスタムツールを共通で利用可能。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;オープンな設定・スキル規格&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;プロジェクト固有のルールは &lt;code&gt;AGENTS.md&lt;/code&gt;、定型タスク手順は &lt;code&gt;Agent Skills&lt;/code&gt;（&lt;code&gt;SKILL.md&lt;/code&gt;）、統合パッケージは &lt;code&gt;Agent Plugins&lt;/code&gt;（&lt;code&gt;plugin.json&lt;/code&gt;）として全サーフェス共通で読み込み。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;安全なサンドボックス &amp;amp; パーミッション&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ターミナルコマンドの実行ポリシー（許可・確認・サンドボックス隔離）を共通ルールで制御。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="提供形態surfacesの比較と特徴"&gt;&lt;span&gt;提供形態（Surfaces）の比較と特徴&lt;/span&gt;&#10; &lt;a href="#%e6%8f%90%e4%be%9b%e5%bd%a2%e6%85%8bsurfaces%e3%81%ae%e6%af%94%e8%bc%83%e3%81%a8%e7%89%b9%e5%be%b4" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;共通コアの上に構築された 4 つのインターフェースは、開発者の作業シーンに応じて最適化されています。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ツール / サーフェス&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;インターフェース&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;主な役割&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;代表的な利用シーン&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;VS Code 拡張機能&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;GUI エディタ統合&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;エディタ直結ペアプログラマ&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;日常のコーディング、インライン補完（Tab）、選択範囲のピンポイント修正（&lt;code&gt;Ctrl+I&lt;/code&gt;）、Visual Diff 確認&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Antigravity 2.0&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;デスクトップアプリ (Electron)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;エージェント司令塔&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;プロジェクト横断管理、定期自動化タスク（Cron）、エディタから独立したチャットキャンバス&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;agy&lt;/code&gt; (CLI)&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナル (CUI / TUI)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;ターミナル特化エージェント&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;SSH 先サーバー、コンテナ内作業、キーボード完結の高速操作、CI / スクリプト自動化（&lt;code&gt;-p&lt;/code&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Python SDK&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Python ライブラリ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;プログラム組み込み&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Python スクリプトからのエージェント呼び出し、自律評価パイプライン、カスタム CLI 開発&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="1-vs-code-拡張機能エディタ一体型"&gt;&lt;span&gt;1. VS Code 拡張機能（エディタ一体型）&lt;/span&gt;&#10; &lt;a href="#1-vs-code-%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd%e3%82%a8%e3%83%87%e3%82%a3%e3%82%bf%e4%b8%80%e4%bd%93%e5%9e%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;2026 年 8 月 19 日に正式提供が開始された拡張機能です。使い慣れた VS Code の設定、テーマ、拡張機能、Dev Containers 環境をそのまま維持しながら Antigravity を利用できます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[ VS Code エディタ画面 ]&#10;┌───────────────────────────────┬───────────────────────────────┐&#10;│ 1. エディタ領域 │ 3. サイドバーチャット │&#10;│ - Antigravity Tab (補完) │ - Agent Mode (自律実行) │&#10;│ - Supercomplete (一括差分) │ - Planning Mode (計画承認) │&#10;│ - Ctrl&amp;#43;I (インライン編集) │ - サブエージェント監視 │&#10;│ - インライン Diff 表示 │ │&#10;├───────────────────────────────┴───────────────────────────────┤&#10;│ 2. 統合ターミナル / Problems 自動修正（1 クリック修復） │&#10;└───────────────────────────────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;h4 class="heading-element" id="主な機能"&gt;&lt;span&gt;主な機能&lt;/span&gt;&#10; &lt;a href="#%e4%b8%bb%e3%81%aa%e6%a9%9f%e8%83%bd" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Antigravity Tab / Supercomplete&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;カーソル位置での単行補完だけでなく、複数行にわたる一括差分（削除・追加・import の自動挿入）を Tab キー 1 つで適用。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Inline Command (&lt;code&gt;Ctrl+I&lt;/code&gt; / &lt;code&gt;Cmd+I&lt;/code&gt;)&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;対象コードをハイライトしてショートカットを押し、「この関数に型アノテーションを追加して」とピンポイントで指示。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Visual Diff Overlays&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;エディタのコード上に直接赤緑のインライン Diff が表示され、変更内容を目視で確認しながら個別に採否を決定可能。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Problems 連携&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;コンパイラエラーや Linter の警告から「Fix with Agent」を 1 クリックして自動修正。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="2-antigravity-20デスクトップ司令塔"&gt;&lt;span&gt;2. Antigravity 2.0（デスクトップ司令塔）&lt;/span&gt;&#10; &lt;a href="#2-antigravity-20%e3%83%87%e3%82%b9%e3%82%af%e3%83%88%e3%83%83%e3%83%97%e5%8f%b8%e4%bb%a4%e5%a1%94" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;IDE（エディタ）の画面とは独立して動作する、スタンドアロンのデスクトップ Electron アプリケーションです。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="主な機能-1"&gt;&lt;span&gt;主な機能&lt;/span&gt;&#10; &lt;a href="#%e4%b8%bb%e3%81%aa%e6%a9%9f%e8%83%bd-1" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;プロジェクト横断管理&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;複数のリポジトリやワークスペースを左サイドバーで切り替え、並行してエージェントにタスクを委譲。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;定期実行タスク（Scheduled Tasks / Cron）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;「毎朝 9 時に依存関係の脆弱性をスキャンする」「1 時間ごとにビルド状況をチェックする」といった Cron スケジュールを GUI 上で設定・監視。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;独立したチャットキャンバス&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;エディタの表示領域を狭めることなく、大画面でエージェントとの設計議論や &lt;code&gt;implementation_plan.md&lt;/code&gt; のレビューに専念。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="3-antigravity-cli-agyターミナル特化"&gt;&lt;span&gt;3. Antigravity CLI (&lt;code&gt;agy&lt;/code&gt;)（ターミナル特化）&lt;/span&gt;&#10; &lt;a href="#3-antigravity-cli-agy%e3%82%bf%e3%83%bc%e3%83%9f%e3%83%8a%e3%83%ab%e7%89%b9%e5%8c%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;GUI を持たない環境や、ターミナルからキーボード操作のみで爆速で作業したい開発者向けの公式 CUI / TUI ツールです。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="主な機能-2"&gt;&lt;span&gt;主な機能&lt;/span&gt;&#10; &lt;a href="#%e4%b8%bb%e3%81%aa%e6%a9%9f%e8%83%bd-2" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ターミナル完結の対話型 TUI&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ターミナルで &lt;code&gt;agy&lt;/code&gt; を起動するだけで、スラッシュコマンド（&lt;code&gt;/help&lt;/code&gt;, &lt;code&gt;/plan&lt;/code&gt;）や &lt;code&gt;@&lt;/code&gt; メンションを使った対話が可能。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ヘッドレス / リモート環境対応&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;GUI が存在しない SSH 先のクラウド VM や、Docker コンテナ内部でもそのまま動作。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;非対話モード（&lt;code&gt;-p&lt;/code&gt; / Prompt）による自動化&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;agy -p &amp;quot;Issue #42 の内容を修正してテストを実行&amp;quot;&lt;/code&gt; のように、シェルスクリプトや CI パイプラインからエージェントを直接呼び出してタスクを完遂。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;# 対話型 TUI の起動&#10;agy&#10;&#10;# 非対話型でのワンショット実行（CI / スクリプト連携）&#10;agy -p &amp;#34;全ファイルの型チェックを行い、エラーがあれば修正してください&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="4-antigravity-python-sdkプログラム組み込み"&gt;&lt;span&gt;4. Antigravity Python SDK（プログラム組み込み）&lt;/span&gt;&#10; &lt;a href="#4-antigravity-python-sdk%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e7%b5%84%e3%81%bf%e8%be%bc%e3%81%bf" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;Python コードから直接エージェントを呼び出し、カスタムな自律ワークフローや評価スクリプトを構築するための公式 SDK です（PyPI: &lt;code&gt;google-antigravity&lt;/code&gt;）。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;import asyncio&#10;from google.antigravity import Agent, LocalAgentConfig, CapabilitiesConfig&#10;&#10;async def main():&#10; # デフォルトは安全のため読み取り専用（Read-only）。&#10; # ファイル編集やコマンド実行を許可する場合は CapabilitiesConfig() を指定する。&#10; config = LocalAgentConfig(&#10; system_instructions=&amp;#34;あなたはコード品質を検証する専門エージェントです。&amp;#34;,&#10; capabilities=CapabilitiesConfig(),&#10; )&#10;&#10; async with Agent(config) as agent:&#10; # 非同期ストリーミングでエージェントと対話&#10; response = await agent.chat(&amp;#34;tests/ 配下のユニットテストを実行して結果を要約して&amp;#34;)&#10; async for token in response:&#10; print(token, end=&amp;#34;&amp;#34;, flush=True)&#10; print()&#10;&#10;if __name__ == &amp;#34;__main__&amp;#34;:&#10; asyncio.run(main())&lt;/code&gt;&lt;/pre&gt;&lt;h4 class="heading-element" id="主な特徴と用途"&gt;&lt;span&gt;主な特徴と用途&lt;/span&gt;&#10; &lt;a href="#%e4%b8%bb%e3%81%aa%e7%89%b9%e5%be%b4%e3%81%a8%e7%94%a8%e9%80%94" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;デフォルト安全設計（Read-only デフォルト）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;CapabilitiesConfig()&lt;/code&gt; を明示しない限りツール実行（ファイル書き込みやシェル実行）がブロックされ、安全にコードベースを探索可能。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;リアルタイム可観測性（Streaming Thoughts / ToolCalls）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;トークンだけでなく、エージェントの思考ログ（&lt;code&gt;response.thoughts&lt;/code&gt;）や呼び出されたツール（&lt;code&gt;response.tool_calls&lt;/code&gt;）をプログラムからリアルタイムにフック・監視可能。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;代表的なユースケース&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;テスト・デプロイ自動化パイプラインへの組み込み&lt;/li&gt;&#10;&lt;li&gt;社内専用のカスタム AI エージェント CLI 開発&lt;/li&gt;&#10;&lt;li&gt;大規模コードベースに対するバッチリファクタリング スクリプト&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="機能差の縮小によって浮き彫りになったgui-と-cli-の真の役割分担"&gt;&lt;span&gt;機能差の縮小によって浮き彫りになった「GUI と CLI の真の役割分担」&lt;/span&gt;&#10; &lt;a href="#%e6%a9%9f%e8%83%bd%e5%b7%ae%e3%81%ae%e7%b8%ae%e5%b0%8f%e3%81%ab%e3%82%88%e3%81%a3%e3%81%a6%e6%b5%ae%e3%81%8d%e5%bd%ab%e3%82%8a%e3%81%ab%e3%81%aa%e3%81%a3%e3%81%9fgui-%e3%81%a8-cli-%e3%81%ae%e7%9c%9f%e3%81%ae%e5%bd%b9%e5%89%b2%e5%88%86%e6%8b%85" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;エージェント技術の進化初期、GUI（コード補完や対話チャット）と CLI（ファイル編集・自律ループ）の間には明確な「機能差」が存在し、住み分けは単純でした。&lt;/p&gt;&#10;&lt;p&gt;しかし現在、VS Code 拡張機能や Cursor などの GUI 側も「自律エージェント機能（ツール実行、ファイル編集、MCP 連携）」をフル装備し、カタログスペック上の機能差は大分縮まりました。&lt;/p&gt;&#10;&lt;p&gt;「GUI でもエージェントが動くなら、なぜ CLI を使うのか？」── 2025〜2026 年にかけて開発者コミュニティで白熱したこの疑問は、&lt;strong&gt;「Suggestion（提案・手元アシスト）」と「Delegation（委譲・自律自走）」という 2 つのパラダイムの違い&lt;/strong&gt; によって鮮やかに解き明かされています。&lt;/p&gt;&#10;&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;Suggestion 型（提案）と Delegation 型（委譲）の設計思想の違い&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;&lt;a href="https://dev.to" target="_blank" rel="external nofollow noopener noreferrer"&gt;Dev.to や国内外の開発者コミュニティの議論&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; でも指摘されている通り、AI コーディング環境は以下の 2 つの設計思想に分化しています。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Suggestion-based（In-the-loop / 提案型）&lt;/strong&gt;: 人間がエディタでコードを書く作業を 1 行ずつ手元で補完・アシストする（GUI エディタが最適）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Delegation-based（Out-of-the-loop / 委譲型）&lt;/strong&gt;: ゴールを指示してテスト・自己修復まで丸ごと任せて自走させる（ターミナル / CLI が最適）。&lt;br&gt;&#10;開発環境を「視覚的にコードを検分する工房（Studio）」と捉えるか、「コマンドで自律群を指揮する司令塔（Cockpit）」と捉えるかによって、最適解が異なります。&lt;/li&gt;&#10;&lt;/ol&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="なぜバイブコーディングや自律実行では-cli-が最適解なのか"&gt;&lt;span&gt;なぜバイブコーディングや自律実行では CLI が最適解なのか？&lt;/span&gt;&#10; &lt;a href="#%e3%81%aa%e3%81%9c%e3%83%90%e3%82%a4%e3%83%96%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%e3%82%84%e8%87%aa%e5%be%8b%e5%ae%9f%e8%a1%8c%e3%81%a7%e3%81%af-cli-%e3%81%8c%e6%9c%80%e9%81%a9%e8%a7%a3%e3%81%aa%e3%81%ae%e3%81%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;2025 年 2 月、AI 研究者の Andrej Karpathy 氏（元 OpenAI 共同創設者 / 元 Tesla AI ディレクター）は、AI 時代の新しい開発パラダイムとして &lt;strong&gt;「バイブコーディング（Vibe Coding）」&lt;/strong&gt; を提唱しました。&lt;/p&gt;&#10;&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;Andrej Karpathy 氏による「バイブコーディング」の提唱&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;「構文（シンタックス）の細部を書く作業から完全に離れ、大まかな意図（バイブス）だけを自然言語で伝え、コードの存在すら忘れて指数関数的な開発速度に身を委ねる新しいコーディング様式」&lt;br&gt;&#10;── &lt;a href="https://x.com/karpathy/status/1886192184808247467" target="_blank" rel="external nofollow noopener noreferrer"&gt;Andrej Karpathy 氏の X ポスト（2025 年 2 月 2 日）&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;このような「人間がコードを手書きするのではなく、AI に実装を一気に委譲して自律自走させる開発スタイル」において、なぜ GUI エディタではなく &lt;strong&gt;CLI（ターミナル環境）が決定打（最適解）&lt;/strong&gt; となるのか？ 開発者コミュニティや AI 研究所の検証から、以下の 4 つのアーキテクチャ的要因が明らかになっています。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="1-直接実行力と低レイテンシhigh-agency--native-habitat"&gt;&lt;span&gt;1. 直接実行力と低レイテンシ（High Agency &amp;amp; Native Habitat）&lt;/span&gt;&#10; &lt;a href="#1-%e7%9b%b4%e6%8e%a5%e5%ae%9f%e8%a1%8c%e5%8a%9b%e3%81%a8%e4%bd%8e%e3%83%ac%e3%82%a4%e3%83%86%e3%83%b3%e3%82%b7high-agency--native-habitat" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;GUI の制約（提案・描画のオーバーヘッド）&lt;/strong&gt;:&#10;GUI エディタ上の AI は、エディタの仮想 DOM 描画や UI 状態管理を挟むため、差分提示やダイアログ確認など「人間への提案（Suggestion）」が中心になりやすく、動作速度や自律性に制約がかかります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;CLI の優位性（OS レイヤーへの直結）&lt;/strong&gt;:&#10;Anthropic の &lt;a href="https://docs.anthropic.com/en/docs/agents-and-tools/claude-code" target="_blank" rel="external nofollow noopener noreferrer"&gt;Claude Code&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; や &lt;a href="https://aider.chat/" target="_blank" rel="external nofollow noopener noreferrer"&gt;Aider&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; の設計思想が示すように、ターミナルはエージェントにとっての「母艦（Native Habitat）」です。OS のシェル、ファイルシステム、Git、パッケージマネージャーに直接アクセスし、UI のオーバーヘッドなしに自律コマンドを高速実行できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="2-コマンド検索によるコンテキスト純度sn-比の極大化"&gt;&lt;span&gt;2. 「コマンド検索」によるコンテキスト純度（S/N 比）の極大化&lt;/span&gt;&#10; &lt;a href="#2-%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e6%a4%9c%e7%b4%a2%e3%81%ab%e3%82%88%e3%82%8b%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e7%b4%94%e5%ba%a6sn-%e6%af%94%e3%81%ae%e6%a5%b5%e5%a4%a7%e5%8c%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;GUI の課題（暗黙コンテキストによる注意の希釈 / Context Pollution）&lt;/strong&gt;:&#10;GUI エディタの AI は利便性のために「開いているタブ」や周辺ファイルを自動的にプロンプトへ詰め込みます。しかし、大規模なコードベースにおいて無関係なファイルが混入すると、&lt;strong&gt;Attention Dilution（注意の希釈 / &lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;Lost in the Middle 現象&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt; が発生し、指示の見落としやハルシネーションの原因になります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;CLI の優位性（外科手術のような高純度コンテキスト）&lt;/strong&gt;:&#10;CLI 環境のエージェントは、&lt;code&gt;rg&lt;/code&gt;（ripgrep）、&lt;code&gt;fd&lt;/code&gt;、&lt;code&gt;jq&lt;/code&gt;、&lt;code&gt;git log&lt;/code&gt; などの高速な UNIX ツールを自ら実行し、&lt;strong&gt;「該当する関数の前後 10 行だけ」「直近のエラーログのスタックトレースだけ」を外科手術のようにピンポイントで切り出してプロンプトに注入（Progressive Disclosure）&lt;/strong&gt; します。不要なノイズを完全に削ぎ落とし、コンテキストの S/N 比を極大化することで、推論とコード修正の精度が劇的に向上します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="3-作って終わりにしない自己検証修復ループexecution-feedback-loop"&gt;&lt;span&gt;3. 「作って終わり」にしない自己検証・修復ループ（Execution-Feedback Loop）&lt;/span&gt;&#10; &lt;a href="#3-%e4%bd%9c%e3%81%a3%e3%81%a6%e7%b5%82%e3%82%8f%e3%82%8a%e3%81%ab%e3%81%97%e3%81%aa%e3%81%84%e8%87%aa%e5%b7%b1%e6%a4%9c%e8%a8%bc%e4%bf%ae%e5%be%a9%e3%83%ab%e3%83%bc%e3%83%97execution-feedback-loop" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;バイブコーディングの本質は、コードを一括生成した後の &lt;strong&gt;「テストが通るまでの自走・自己修復（Test-Driven Self-Correction）」&lt;/strong&gt; にあります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;実行環境直結の強み&lt;/strong&gt;:&#10;Princeton 大学の &lt;a href="https://swe-agent.com/" target="_blank" rel="external nofollow noopener noreferrer"&gt;SWE-agent&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; / SWE-bench 等の研究でも実証されている通り、自律エージェントの成功率は「コードを生成した直後にシェル環境で即座にビルド・テストを実行し、その標準出力・エラーメッセージをフィードバックとして受け取れるか」に大きく依存します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;CLI の完走力&lt;/strong&gt;:&#10;CLI 環境のエージェントは、コード修正直後に自ら &lt;code&gt;npm test&lt;/code&gt; や &lt;code&gt;pytest&lt;/code&gt;、&lt;code&gt;go test&lt;/code&gt; を叩き、型エラーやテスト落ちを検知して自律修正するループを何ターンでも完走させます。人間が画面に戻ってきた時には、すでにテストをパスした検証済みの完成品が出来上がっています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="4-マルチプレキシング510-台以上の並列同時自走"&gt;&lt;span&gt;4. マルチプレキシング（5〜10 台以上の並列同時自走）&lt;/span&gt;&#10; &lt;a href="#4-%e3%83%9e%e3%83%ab%e3%83%81%e3%83%97%e3%83%ac%e3%82%ad%e3%82%b7%e3%83%b3%e3%82%b0510-%e5%8f%b0%e4%bb%a5%e4%b8%8a%e3%81%ae%e4%b8%a6%e5%88%97%e5%90%8c%e6%99%82%e8%87%aa%e8%b5%b0" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;Anthropic の Claude Code 開発リードである &lt;a href="https://docs.anthropic.com/en/docs/agents-and-tools/claude-code" target="_blank" rel="external nofollow noopener noreferrer"&gt;Boris Cherny 氏ら&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; が実践し提唱している最大の生産性ハックが &lt;strong&gt;「マルチプレキシング（Agent Multiplexing / 並列自走）」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;git worktree&lt;/code&gt; による作業の完全隔離&lt;/strong&gt;:&#10;&lt;code&gt;git worktree&lt;/code&gt; を使って作業ツリーとブランチを分離し、ターミナル上で &lt;strong&gt;5〜10 台以上のエージェント（&lt;code&gt;agy&lt;/code&gt; や Claude Code）を同時に並行自走&lt;/strong&gt; させます（Issue 調査、API 実装、テスト追加、ドキュメント更新を同時進行）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;オーケストレーターへの進化&lt;/strong&gt;:&#10;GUI エディタで 5 つ以上のウィンドウを開いてエージェントを動かすと、タブが氾濫して画面が崩壊し、メモリ消費で開発マシンが悲鳴を上げます。&lt;strong&gt;「エージェントの群れ（Swarm）を指揮するオーケストレーター」として動く場合、軽量で画面を奪わず、バックグラウンド実行や通知と親和性の高いターミナル / CLI こそが唯一の現実解&lt;/strong&gt; となります。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="提供形態ごとの最終的な役割分担"&gt;&lt;span&gt;提供形態ごとの最終的な役割分担&lt;/span&gt;&#10; &lt;a href="#%e6%8f%90%e4%be%9b%e5%bd%a2%e6%85%8b%e3%81%94%e3%81%a8%e3%81%ae%e6%9c%80%e7%b5%82%e7%9a%84%e3%81%aa%e5%bd%b9%e5%89%b2%e5%88%86%e6%8b%85" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;開発のフェーズ・目的&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;要求されるコア技術&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: center"&gt;最適なツール&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;① 大規模自律実行 &amp;amp; バイブコーディング&lt;/strong&gt;&lt;br&gt;（機能一括構築、重いリファクタ、無人CI）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;・高密度なコンテキスト収集（&lt;code&gt;rg&lt;/code&gt;/&lt;code&gt;jq&lt;/code&gt;）&lt;br&gt;・制限のないシェル実行（Tool Space）&lt;br&gt;・&lt;code&gt;git worktree&lt;/code&gt; による並列分散自走&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;&lt;strong&gt;CLI 版 (&lt;code&gt;agy&lt;/code&gt;)&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;② 人間主導の手元アシスト&lt;/strong&gt;&lt;br&gt;（Tab補完、1行修正、型エラー即時修正）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;・エディタ未保存メモリ/LSP への同期&lt;br&gt;・カーソル座標のリアルタイム把握&lt;br&gt;・インライン赤緑 Diff レビュー&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;&lt;strong&gt;VS Code 拡張機能&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart LR&#10; Dev[&amp;#34;開発者&amp;#34;]&#10; &#10; Dev --&amp;gt;|&amp;#34;① 人間が主導権を握る作業（タイピング・即時修正）&amp;#34;| VSCode[&amp;#34;VS Code 拡張機能&amp;lt;br&amp;gt;（Tab 補完 / Ctrl&amp;#43;I / インライン Diff）&amp;#34;]&#10; Dev --&amp;gt;|&amp;#34;② AI に主導権を渡す作業（タスク丸投げ・並列自走）&amp;#34;| CLI[&amp;#34;agy (CLI)&amp;lt;br&amp;gt;（tmux 並列自走 / CI 自動化）&amp;#34;]&#10; Dev --&amp;gt;|&amp;#34;③ 定常監視・プロジェクト横断&amp;#34;| App[&amp;#34;Antigravity 2.0&amp;lt;br&amp;gt;（Cron スケジュール / 司令塔）&amp;#34;]&#10; Dev --&amp;gt;|&amp;#34;④ スクリプト・評価パイプライン&amp;#34;| SDK[&amp;#34;Python SDK&amp;lt;br&amp;gt;（プログラム組み込み）&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;機能差が縮まった現在、それぞれのツールの存在価値は以下のように美しく整理されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;エージェントの「頭脳・自律能力・調査力・完走力」を最大化したいとき（バイブコーディング、重いタスク、自動化）&lt;/strong&gt;&#10;➔ &lt;strong&gt;CLI 版（&lt;code&gt;agy&lt;/code&gt;）が機能的・アーキテクチャ的に絶対の最適解&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;「人間がエディタでコードを書く作業を、手元で気持ちよくアシストさせたいとき（補完・即時修正）」&lt;/strong&gt;&#10;➔ &lt;strong&gt;GUI 版（VS Code 拡張機能）が UI として最適&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;状況に応じて最適なインターフェースを選択・併用することで、AI エージェントの自律性を最大限に引き出した開発環境を構築できます。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://antigravity.google/docs" target="_blank" rel="external nofollow noopener noreferrer"&gt;Google Antigravity Documentation (antigravity.google/docs)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://antigravity.google/docs/cli/reference" target="_blank" rel="external nofollow noopener noreferrer"&gt;Antigravity CLI Reference (antigravity.google/docs/cli/reference)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/google-antigravity/antigravity-sdk-python" target="_blank" rel="external nofollow noopener noreferrer"&gt;Antigravity Python SDK (GitHub: google-antigravity/antigravity-sdk-python)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Model Context Protocol Specification (modelcontextprotocol.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Skills Runbook Specification (agentskills.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://agent-plugins.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Plugins: Open Specification (agent-plugins.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://x.com/karpathy/status/1886192184808247467" target="_blank" rel="external nofollow noopener noreferrer"&gt;Andrej Karpathy: &amp;ldquo;There&amp;rsquo;s a new kind of coding I call &amp;lsquo;vibe coding&amp;rsquo;&amp;hellip;&amp;rdquo; (X Post, Feb 2025)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://docs.anthropic.com/en/docs/agents-and-tools/claude-code" target="_blank" rel="external nofollow noopener noreferrer"&gt;Boris Cherny / Anthropic: Claude Code &amp;amp; Agent Multiplexing Workflow&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://aider.chat/" target="_blank" rel="external nofollow noopener noreferrer"&gt;Aider: AI Pair Programming in your Terminal (aider.chat)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://swe-agent.com/" target="_blank" rel="external nofollow noopener noreferrer"&gt;SWE-agent: Agent-Computer Interfaces to Solve Real-World GitHub Issues (Yang et al., 2024, Princeton University)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;Lost in the Middle: How Language Models Use Long Contexts (Liu et al., 2023, arXiv:2307.03172)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Python 開発を効率化するモダンターミナル環境設計：Ghostty・fish・peco・ghq・tmux・Jujutsu・VS Code・Herdr・Hunk 連携</title><link>https://sesame.purplemoon.org/posts/2026/08/python-terminal-environment/</link><pubDate>Sat, 22 Aug 2026 08:50:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/python-terminal-environment/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/development-environment/">Development Environment</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;複数の Python プロジェクト（FastAPI アプリ、CLI ツール、データ処理バッチ、ライブラリ等）を並行して開発する際、以下のような操作摩擦が積み重なり、作業の中断やコンテキストスイッチのコストを生み出します。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;ディレクトリ移動の手間&lt;/strong&gt;: 階層の深いプロジェクトパスを &lt;code&gt;cd&lt;/code&gt; コマンドで手動入力する。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;バックグラウンドプロセスの消失&lt;/strong&gt;: ローカルサーバーやテスト監視、ワーカープロセスを起動したターミナルを閉じるとプロセスが終了してしまう。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;仮想環境（venv / uv）の切り替え忘れ&lt;/strong&gt;: プロジェクトを移動するたびに手動で activate する必要がある。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Git のコミット・ブランチ操作の煩雑さ&lt;/strong&gt;: AI や人間による頻繁な試行錯誤（スクラップ＆ビルド）で、コミットログが汚れたりコンフリクト解消に工数がかかる。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;GUI エディタや差分レビューへの切り替えコスト&lt;/strong&gt;: ターミナルからエディタ（VS Code）や Git 差分確認画面への行き来に手間がかかる。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;これらの課題を解消し、&lt;strong&gt;「端末起動 ➔ リポジトリ選択 ➔ 仮想環境アクティベート ➔ セッション復元 ➔ 安全なバージョン管理・差分レビュー」までを一気通貫で高速化するターミナル駆動開発環境（Terminal-Driven Development Stack）&lt;/strong&gt; を構築します。&lt;/p&gt;&#10;&lt;p&gt;本記事では、&lt;strong&gt;Ghostty&lt;/strong&gt;、&lt;strong&gt;fish&lt;/strong&gt;、&lt;strong&gt;peco&lt;/strong&gt;、&lt;strong&gt;ghq&lt;/strong&gt;、&lt;strong&gt;tmux / herdr&lt;/strong&gt;、&lt;strong&gt;Jujutsu (jj)&lt;/strong&gt;、&lt;strong&gt;hunk&lt;/strong&gt;、および &lt;strong&gt;VS Code&lt;/strong&gt; を組み合わせた実践的な設計と設定方法を整理します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="ツールスタックとそれぞれの役割レイヤー構造"&gt;&lt;span&gt;ツールスタックとそれぞれの役割（レイヤー構造）&lt;/span&gt;&#10; &lt;a href="#%e3%83%84%e3%83%bc%e3%83%ab%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e3%81%a8%e3%81%9d%e3%82%8c%e3%81%9e%e3%82%8c%e3%81%ae%e5%bd%b9%e5%89%b2%e3%83%ac%e3%82%a4%e3%83%a4%e3%83%bc%e6%a7%8b%e9%80%a0" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;開発環境を構成するツール群を、インフラ（端末）からアプリケーション（エディタ・VCS）までの階層で整理します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;&amp;#43;------------------------------------------------------------------------&amp;#43;&#10;| [Application Layer] |&#10;| - VS Code : GUI エディタ / デバッグ / Dev Containers |&#10;| - Jujutsu (jj) : 次世代 Git 互換 VCS（自動コミット / 完全 Undo） |&#10;| - hunk : Review-First TUI 差分レビュー / 部分ステージング |&#10;&amp;#43;------------------------------------------------------------------------&amp;#43;&#10;| [Session &amp;amp; Agent Layer] |&#10;| - tmux / herdr : セッション永続化 / Agent-Aware 状態管理 |&#10;&amp;#43;------------------------------------------------------------------------&amp;#43;&#10;| [Shell &amp;amp; Navigation Layer] |&#10;| - fish : オートサジェスト / 構文ハイライト / 関数フック |&#10;| - ghq &amp;#43; peco : リポジトリ一元配置 ＋ あいまい検索ジャンプ |&#10;| - uv : 高速 Python パッケージ管理 / 仮想環境自動連携 |&#10;&amp;#43;------------------------------------------------------------------------&amp;#43;&#10;| [Terminal Emulator Layer] |&#10;| - Ghostty : Zig 製・GPU 高速描画 / 低遅延 / ネイティブ UI |&#10;&amp;#43;------------------------------------------------------------------------&amp;#43;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="各ツールの役割と導入メリット"&gt;&lt;span&gt;各ツールの役割と導入メリット&lt;/span&gt;&#10; &lt;a href="#%e5%90%84%e3%83%84%e3%83%bc%e3%83%ab%e3%81%ae%e5%bd%b9%e5%89%b2%e3%81%a8%e5%b0%8e%e5%85%a5%e3%83%a1%e3%83%aa%e3%83%83%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ツール&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;レイヤー&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;単体での役割&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;導入後のメリット&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;Ghostty&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナル&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;GPU 描画ターミナルエミュレータ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;低遅延・高速レンダリング、ネイティブなタブ/画面分割、Kitty グラフィックス対応&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;fish&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;シェル&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;設定不要で賢いシェル&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;過去履歴の予測補完（オートサジェスト）や構文エラー検知がプラグインなしで動作&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;ghq&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ナビゲーション&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;リポジトリ配置の自動統一&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;ghq get &amp;lt;URL&amp;gt;&lt;/code&gt; で &lt;code&gt;~/ghq/github.com/...&lt;/code&gt; に自動整理。置き場所の迷いを排除&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;peco&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ナビゲーション&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;対話型インクリメンタルフィルタ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;キーワード入力だけで大量の候補から瞬時に選択・決定&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;tmux&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;セッション&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナルマルチプレクサ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナルを閉じても裏でサーバーやテストが維持され、作業空間を丸ごと復元&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;herdr&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;セッション&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Agent-Aware マルチプレクサ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;各ペインで稼働する AI エージェントの状態（working / blocked / done）を自動検知&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;Jujutsu (jj)&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;VCS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;次世代 Git 互換バージョン管理&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;作業コピーの自動コミット、全操作の &lt;code&gt;jj undo&lt;/code&gt;、コンフリクトを恐れないスタック開発&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;hunk&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;レビュー&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Review-First TUI 差分ビューア&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;AI や自身が変更したコード差分をインラインで高速レビューし、行単位で安全にステージング&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;VS Code&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;エディタ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;GUI エディタ / デバッグ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;code &amp;lt;path&amp;gt;&lt;/code&gt; で CLI から瞬時に開き、GUI デバッガや Dev Containers と連携&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="ghostty高速低遅延な-gpu-ターミナル基盤"&gt;&lt;span&gt;Ghostty：高速・低遅延な GPU ターミナル基盤&lt;/span&gt;&#10; &lt;a href="#ghostty%e9%ab%98%e9%80%9f%e4%bd%8e%e9%81%85%e5%bb%b6%e3%81%aa-gpu-%e3%82%bf%e3%83%bc%e3%83%9f%e3%83%8a%e3%83%ab%e5%9f%ba%e7%9b%a4" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Ghostty (&lt;a href="https://ghostty.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;ghostty.org&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/strong&gt; は、Mitchell Hashimoto 氏が開発した Zig 製の GPU アクセラレーテッド ターミナルエミュレータです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;GPU レンダリングによる高速描画&lt;/strong&gt;: GPU アクセラレーションにより、大容量のログ出力や高速スクロールでもカクつかず低遅延で動作。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ネイティブ UI 統合&lt;/strong&gt;: macOS や Linux のネイティブ UI を採用し、タブやスプリットペインを軽快に操作可能。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;モダンプロトコル対応&lt;/strong&gt;: Kitty グラフィックスプロトコルや TrueColor、アンダーライン装飾に対応し、TUI ツール（hunk, peco 等）が美しく描画されます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="ghq-によるリポジトリ管理の統一"&gt;&lt;span&gt;ghq によるリポジトリ管理の統一&lt;/span&gt;&#10; &lt;a href="#ghq-%e3%81%ab%e3%82%88%e3%82%8b%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e7%ae%a1%e7%90%86%e3%81%ae%e7%b5%b1%e4%b8%80" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ghq&lt;/code&gt; は、Git リポジトリのクローン先を決められたディレクトリ構造（デフォルトは &lt;code&gt;~/ghq/github.com/owner/repo&lt;/code&gt;）に自動で整理・配置するツールです。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;# リポジトリのクローン&#10;ghq get https://github.com/fastapi/fastapi.git&#10;ghq get owner/my-python-project&#10;&#10;# パス一覧の確認&#10;ghq list -p&#10;# /home/user/ghq/github.com/fastapi/fastapi&#10;# /home/user/ghq/github.com/owner/my-python-project&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="fish--peco-による-1-キープロジェクト移動"&gt;&lt;span&gt;fish ＋ peco による 1 キープロジェクト移動&lt;/span&gt;&#10; &lt;a href="#fish--peco-%e3%81%ab%e3%82%88%e3%82%8b-1-%e3%82%ad%e3%83%bc%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e7%a7%bb%e5%8b%95" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;fish&lt;/code&gt; のキーバインドに &lt;code&gt;ghq list -p | peco&lt;/code&gt; を組み込むことで、&lt;code&gt;Ctrl + ]&lt;/code&gt; を押すだけで全リポジトリを検索してジャンプする環境を構築します。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="関数の実装-configfishfunctionsfish_user_key_bindingsfish"&gt;&lt;span&gt;関数の実装 (&lt;code&gt;~/.config/fish/functions/fish_user_key_bindings.fish&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#%e9%96%a2%e6%95%b0%e3%81%ae%e5%ae%9f%e8%a3%85-configfishfunctionsfish_user_key_bindingsfish" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;function peco_select_ghq_repository&#10; set -l repo_path (ghq list -p | peco --query (commandline))&#10; if test -n &amp;#34;$repo_path&amp;#34;&#10; cd $repo_path&#10; commandline -f repaint&#10; end&#10;end&#10;&#10;function fish_user_key_bindings&#10; bind \c\] peco_select_ghq_repository&#10;end&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="tmux--herdr-によるセッション永続化と-ai-状態管理"&gt;&lt;span&gt;tmux / herdr によるセッション永続化と AI 状態管理&lt;/span&gt;&#10; &lt;a href="#tmux--herdr-%e3%81%ab%e3%82%88%e3%82%8b%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e6%b0%b8%e7%b6%9a%e5%8c%96%e3%81%a8-ai-%e7%8a%b6%e6%85%8b%e7%ae%a1%e7%90%86" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="tmuxプロジェクト単位の作業部屋自動作成"&gt;&lt;span&gt;tmux：プロジェクト単位の作業部屋自動作成&lt;/span&gt;&#10; &lt;a href="#tmux%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e5%8d%98%e4%bd%8d%e3%81%ae%e4%bd%9c%e6%a5%ad%e9%83%a8%e5%b1%8b%e8%87%aa%e5%8b%95%e4%bd%9c%e6%88%90" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;ディレクトリ移動と同時に、プロジェクト専用の tmux セッションを作成またはアタッチします。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;function peco_open_ghq_tmux&#10; set -l repo_path (ghq list -p | peco --query (commandline))&#10; if test -z &amp;#34;$repo_path&amp;#34;&#10; return&#10; end&#10;&#10; set -l session_name (basename $repo_path | tr &amp;#39;.&amp;#39; &amp;#39;_&amp;#39;)&#10;&#10; if test -z &amp;#34;$TMUX&amp;#34;&#10; if tmux has-session -t $session_name 2&amp;gt;/dev/null&#10; tmux attach-session -t $session_name&#10; else&#10; tmux new-session -s $session_name -c $repo_path&#10; end&#10; else&#10; if not tmux has-session -t $session_name 2&amp;gt;/dev/null&#10; tmux new-session -d -s $session_name -c $repo_path&#10; end&#10; tmux switch-client -t $session_name&#10; end&#10; commandline -f repaint&#10;end&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="herdrai-エージェント協働時代のマルチプレクサ"&gt;&lt;span&gt;herdr：AI エージェント協働時代のマルチプレクサ&lt;/span&gt;&#10; &lt;a href="#herdrai-%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e5%8d%94%e5%83%8d%e6%99%82%e4%bb%a3%e3%81%ae%e3%83%9e%e3%83%ab%e3%83%81%e3%83%97%e3%83%ac%e3%82%af%e3%82%b5" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;AI コーディングエージェント（Claude Code、Codex、Antigravity 等）をバックグラウンドで並行稼働させる場合、&lt;strong&gt;&lt;code&gt;herdr&lt;/code&gt; (&lt;a href="https://github.com/ogulcancelik/herdr" target="_blank" rel="external nofollow noopener noreferrer"&gt;github.com/ogulcancelik/herdr&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/strong&gt; が力を発揮します。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;エージェント状態の自動認識&lt;/strong&gt;: 各ペインの AI が作業中（&lt;code&gt;working&lt;/code&gt;）、入力待ち（&lt;code&gt;blocked&lt;/code&gt;）、完了（&lt;code&gt;done&lt;/code&gt;）かを自動検知。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;tmux 互換のセッション永続化&lt;/strong&gt;: バックグラウンドでのプロセス維持とエージェント監視ダッシュボードを両立。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="python-仮想環境uv--venvの自動アクティベーション"&gt;&lt;span&gt;Python 仮想環境（uv / venv）の自動アクティベーション&lt;/span&gt;&#10; &lt;a href="#python-%e4%bb%ae%e6%83%b3%e7%92%b0%e5%a2%83uv--venv%e3%81%ae%e8%87%aa%e5%8b%95%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%99%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ディレクトリ移動時に、カレント配下の &lt;code&gt;.venv&lt;/code&gt; を自動で有効化します。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;~/.config/fish/functions/auto_activate_venv.fish&lt;/code&gt;:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;function auto_activate_venv --on-variable PWD --description &amp;#34;ディレクトリ移動時に .venv を自動アクティベート&amp;#34;&#10; if test -n &amp;#34;$VIRTUAL_ENV&amp;#34;&#10; set -l venv_parent (dirname $VIRTUAL_ENV)&#10; if not string match -q &amp;#34;$venv_parent*&amp;#34; &amp;#34;$PWD&amp;#34;&#10; deactivate&#10; end&#10; end&#10;&#10; if test -f &amp;#34;$PWD/.venv/bin/activate.fish&amp;#34;&#10; if test &amp;#34;$VIRTUAL_ENV&amp;#34; != &amp;#34;$PWD/.venv&amp;#34;&#10; source &amp;#34;$PWD/.venv/bin/activate.fish&amp;#34;&#10; end&#10; end&#10;end&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Rust 製の高速パッケージマネージャー &lt;strong&gt;&lt;code&gt;uv&lt;/code&gt;&lt;/strong&gt;（&lt;code&gt;uv venv&lt;/code&gt; ➔ &lt;code&gt;uv pip install ...&lt;/code&gt;）と組み合わせることで、ミリ秒単位で環境構築が完了します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="jujutsujjgit-互換の次世代バージョン管理"&gt;&lt;span&gt;Jujutsu（jj）：Git 互換の次世代バージョン管理&lt;/span&gt;&#10; &lt;a href="#jujutsujjgit-%e4%ba%92%e6%8f%9b%e3%81%ae%e6%ac%a1%e4%b8%96%e4%bb%a3%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e7%ae%a1%e7%90%86" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Jujutsu (&lt;code&gt;jj&lt;/code&gt;) (&lt;a href="https://github.com/martinvonz/jj" target="_blank" rel="external nofollow noopener noreferrer"&gt;github.com/martinvonz/jj&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/strong&gt; は、Google 発の Rust 製次世代分散バージョン管理システムです。既存の Git リポジトリ（&lt;code&gt;.git&lt;/code&gt;）上でそのまま透過的に動作します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;&amp;#43;-------------------------------------------------------------&amp;#43;&#10;| Jujutsu (jj) CLI |&#10;| - 作業コピーの自動追跡（Working-copy Commit） |&#10;| - 全操作の履歴管理と完全な巻き戻し（jj undo / op log） |&#10;| - コンフリクトの第一級オブジェクト化（作業をブロックしない）|&#10;&amp;#43;-------------------------------------------------------------&amp;#43;&#10; │ (バックエンドとして共存)&#10; ▼&#10;&amp;#43;-------------------------------------------------------------&amp;#43;&#10;| Standard Git Repository (.git) |&#10;| - GitHub リモートリポジトリとの通信・Push/Pull |&#10;&amp;#43;-------------------------------------------------------------&amp;#43;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="なぜ-python-開発--ai-協働で-jj-が強力なのか"&gt;&lt;span&gt;なぜ Python 開発 / AI 協働で &lt;code&gt;jj&lt;/code&gt; が強力なのか？&lt;/span&gt;&#10; &lt;a href="#%e3%81%aa%e3%81%9c-python-%e9%96%8b%e7%99%ba--ai-%e5%8d%94%e5%83%8d%e3%81%a7-jj-%e3%81%8c%e5%bc%b7%e5%8a%9b%e3%81%aa%e3%81%ae%e3%81%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;git commit&lt;/code&gt; を手動で打つ必要がない（Working-copy Commit）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ファイルを保存した瞬間、自動で背後にコミット（Change ID）が作成されます。「コミットし忘れて作業ツリーを汚す」心配がありません。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;どんな破壊的変更も一発で巻き戻せる (&lt;code&gt;jj undo&lt;/code&gt;)&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;jj&lt;/code&gt; はすべての操作をオペレーションログ（&lt;code&gt;jj op log&lt;/code&gt;）に記録しているため、AI がコードを壊したりリベースを誤っても、&lt;code&gt;jj undo&lt;/code&gt; コマンド 1 つで完全に直前の状態へ戻せます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ブランチを切らずに複数の作業をスタックできる（Stacked Changes）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;変更（Change）を積み重ねて管理でき、作業ごとのブランチ作成・切り替えの手間を大幅に削減します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre&gt;&lt;code&gt;# 既存の Git リポジトリで jj を初期化&#10;jj git init --colocate&#10;&#10;# 現在の状態確認（コミットツリーと変更内容が即座に表示される）&#10;jj status&#10;jj log&#10;&#10;# 失敗した変更を直ちに巻き戻す&#10;jj undo&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="差分レビューと部分コミットの高速化hunk"&gt;&lt;span&gt;差分レビューと部分コミットの高速化「hunk」&lt;/span&gt;&#10; &lt;a href="#%e5%b7%ae%e5%88%86%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%a8%e9%83%a8%e5%88%86%e3%82%b3%e3%83%9f%e3%83%83%e3%83%88%e3%81%ae%e9%ab%98%e9%80%9f%e5%8c%96hunk" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;hunk&lt;/code&gt; (&lt;a href="https://github.com/modem-dev/hunk" target="_blank" rel="external nofollow noopener noreferrer"&gt;modem-dev/hunk&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/strong&gt; は、ターミナル上でリッチなコードレビュー体験を提供する Review-First TUI ツールです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ファイルツリー付きの差分レビュー&lt;/strong&gt;: 変更された全ファイルをツリー形式で確認し、キーボードで素早く移動。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;インラインレビュー&lt;/strong&gt;: AI が生成したコードの修正理由やアノテーションを差分上で直接確認。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;部分ステージング&lt;/strong&gt;: &lt;code&gt;git add -p&lt;/code&gt; のように対話的に質問されず、TUI 上で必要な行を選択して直感的にコミット対象に含めることが可能。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="vs-code-連携cli-からのワンショット起動"&gt;&lt;span&gt;VS Code 連携：CLI からのワンショット起動&lt;/span&gt;&#10; &lt;a href="#vs-code-%e9%80%a3%e6%90%bacli-%e3%81%8b%e3%82%89%e3%81%ae%e3%83%af%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88%e8%b5%b7%e5%8b%95" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ターミナルの高速ナビゲーションと、VS Code のデバッガ・GUI 機能を繋ぎます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;function peco_open_ghq_vscode&#10; set -l repo_path (ghq list -p | peco --query (commandline))&#10; if test -n &amp;#34;$repo_path&amp;#34;&#10; code $repo_path&#10; end&#10; commandline -f repaint&#10;end&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="推奨設定ファイル一覧"&gt;&lt;span&gt;推奨設定ファイル一覧&lt;/span&gt;&#10; &lt;a href="#%e6%8e%a8%e5%a5%a8%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e4%b8%80%e8%a6%a7" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="configfishconfigfish"&gt;&lt;span&gt;&lt;code&gt;~/.config/fish/config.fish&lt;/code&gt;&lt;/span&gt;&#10; &lt;a href="#configfishconfigfish" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# PATH の設定&#10;fish_add_path ~/.local/bin&#10;fish_add_path /opt/homebrew/bin&#10;&#10;# 仮想環境のプロンプト装飾を無効化&#10;set -gx VIRTUAL_ENV_DISABLE_PROMPT 1&#10;&#10;# コマンド履歴検索（Ctrl &amp;#43; R）で peco を使用&#10;function peco_select_history&#10; history | peco | read -l selected&#10; if test -n &amp;#34;$selected&amp;#34;&#10; commandline $selected&#10; end&#10;end&#10;&#10;function fish_user_key_bindings&#10; bind \c\] peco_select_ghq_repository # プロジェクト移動 (cd)&#10; bind \co peco_open_ghq_tmux # tmux セッション起動/アタッチ&#10; bind \cv peco_open_ghq_vscode # VS Code で開く&#10; bind \cr peco_select_history # 履歴検索&#10;end&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="tmuxconf抜粋"&gt;&lt;span&gt;&lt;code&gt;~/.tmux.conf&lt;/code&gt;（抜粋）&lt;/span&gt;&#10; &lt;a href="#tmuxconf%e6%8a%9c%e7%b2%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# プレフィックスキーを Ctrl &amp;#43; q に変更&#10;set -g prefix C-q&#10;unbind C-b&#10;bind C-q send-prefix&#10;&#10;# TrueColor の有効化&#10;set -g default-terminal &amp;#34;screen-256color&amp;#34;&#10;set -ga terminal-overrides &amp;#34;,xterm-256color:Tc&amp;#34;&#10;&#10;# マウス操作の有効化&#10;set -g mouse on&#10;&#10;# Vim ライクなペイン移動&#10;bind h select-pane -L&#10;bind j select-pane -D&#10;bind k select-pane -U&#10;bind l select-pane -R&#10;&#10;# 新規ウィンドウ・ペインをカレントディレクトリで開く&#10;bind c new-window -c &amp;#34;#{pane_current_path}&amp;#34;&#10;bind % split-window -h -c &amp;#34;#{pane_current_path}&amp;#34;&#10;bind &amp;#39;&amp;#34;&amp;#39; split-window -v -c &amp;#34;#{pane_current_path}&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;基盤（Ghostty ＋ fish）&lt;/strong&gt;: GPU レンダリングの高速端末と設定不要の賢いシェルで操作の遅延を排除。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ナビゲーション（ghq ＋ peco ＋ uv）&lt;/strong&gt;: リポジトリ配置を標準化し、1 キー移動 ＋ 仮想環境の自動アクティベートを実現。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;セッション（tmux / herdr）&lt;/strong&gt;: 作業状態を永続化し、AI エージェントの並行タスクをダッシュボード管理。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;バージョン管理・レビュー（Jujutsu ＋ hunk ＋ VS Code）&lt;/strong&gt;: 自動コミットと完全 Undo（&lt;code&gt;jj&lt;/code&gt;）で試行錯誤を安全化し、TUI（&lt;code&gt;hunk&lt;/code&gt;）と GUI（&lt;code&gt;VS Code&lt;/code&gt;）で差分確認とデバッグを最適化。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://ghostty.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Ghostty: Fast, feature-rich, and cross-platform terminal emulator (ghostty.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/martinvonz/jj" target="_blank" rel="external nofollow noopener noreferrer"&gt;Jujutsu (jj): A Git-compatible VCS that is both simple and powerful (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/ogulcancelik/herdr" target="_blank" rel="external nofollow noopener noreferrer"&gt;herdr: Agent-aware terminal multiplexer (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/modem-dev/hunk" target="_blank" rel="external nofollow noopener noreferrer"&gt;hunk: Review-first diff viewer for terminal (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/x-motemen/ghq" target="_blank" rel="external nofollow noopener noreferrer"&gt;ghq: Remote repository management made easy (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/peco/peco" target="_blank" rel="external nofollow noopener noreferrer"&gt;peco: Simplistic interactive filtering tool (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://fishshell.com" target="_blank" rel="external nofollow noopener noreferrer"&gt;fish shell: Friendly Interactive Shell 公式ドキュメント&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/tmux/tmux" target="_blank" rel="external nofollow noopener noreferrer"&gt;tmux: Terminal Multiplexer (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/astral-sh/uv" target="_blank" rel="external nofollow noopener noreferrer"&gt;uv: Extremely fast Python package installer and resolver (Astral)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Model Context Protocol（MCP）の仕様と設計：AI と外部ツールを繋ぐオープン標準</title><link>https://sesame.purplemoon.org/posts/2026/08/mcp-introduction/</link><pubDate>Sat, 22 Aug 2026 08:40:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/mcp-introduction/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI コーディングエージェントにデータベースのスキーマを取得させたり、GitHub の Issue や PR を操作させたり、社内 API と連携させる際、以前はエージェント製品ごとに個別の連携コードや独自拡張を書く必要がありました。&lt;/p&gt;&#10;&lt;p&gt;この「エージェントと外部ツールの個別結合（1 対 N の断片化）」を解消するために策定されたオープン標準規格が &lt;strong&gt;Model Context Protocol（&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;MCP&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;かつて開発環境において IDE とプログラミング言語の解析エンジンを分離した &lt;strong&gt;Language Server Protocol（LSP）&lt;/strong&gt; と同様に、MCP は &lt;strong&gt;「LLM（クライアント）」と「外部データ・ツール（サーバー）」を疎結合な共通プロトコルで接続&lt;/strong&gt; します。&lt;/p&gt;&#10;&lt;p&gt;本記事では、MCP の誕生背景とオープン標準化（Linux Foundation 移管）の経緯、3 大基本機能（Tools / Resources / Prompts）、通信トランスポート（Stdio / SSE）、安全な設定方法、および TypeScript / Python による自作サーバーの実装設計をまとめます。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="mcp-の誕生とオープン標準化aaif-移管"&gt;&lt;span&gt;MCP の誕生とオープン標準化（AAIF 移管）&lt;/span&gt;&#10; &lt;a href="#mcp-%e3%81%ae%e8%aa%95%e7%94%9f%e3%81%a8%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e6%a8%99%e6%ba%96%e5%8c%96aaif-%e7%a7%bb%e7%ae%a1" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;MCP は、2024 年 11 月に &lt;strong&gt;Anthropic&lt;/strong&gt; によって提唱・オープンソース化されました。&lt;/p&gt;&#10;&lt;p&gt;当初から特定ベンダーに縛られないオープン規格として設計されていましたが、2025 年 12 月 9 日、中立なガバナンスのもとで業界標準として普及させるため、Linux Foundation 傘下の &lt;strong&gt;Agentic AI Foundation (AAIF)&lt;/strong&gt; へ正式に寄贈・移管されました。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;【LSP のアプローチ】&#10;エディタ（VS Code, Neovim 等） &amp;lt;── [ LSP ] ──&amp;gt; 言語サーバー（TypeScript, Go, Rust 等）&#10;&#10;【MCP のアプローチ】&#10;エージェント（Antigravity, Claude, Cursor 等） &amp;lt;── [ MCP ] ──&amp;gt; ツール・データサーバー（GitHub, DB, Slack 等）&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;現在では Anthropic 製品に限らず、Google Antigravity、Cursor、Microsoft、OpenAI Codex などの主要なエージェント基盤や、統合パッケージ規格 &lt;strong&gt;Agent Plugins 1.0.0&lt;/strong&gt; におけるツール接続のコア仕様として採用されています。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="アーキテクチャと通信モデル"&gt;&lt;span&gt;アーキテクチャと通信モデル&lt;/span&gt;&#10; &lt;a href="#%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3%e3%81%a8%e9%80%9a%e4%bf%a1%e3%83%a2%e3%83%87%e3%83%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;MCP は、&lt;strong&gt;Host（親アプリケーション）&lt;/strong&gt;、&lt;strong&gt;Client（プロトコル仲介）&lt;/strong&gt;、&lt;strong&gt;Server（ツール提供元）&lt;/strong&gt; の 3 層アーキテクチャで構成されます。&lt;/p&gt;&#10;&lt;p&gt;通信には &lt;strong&gt;JSON-RPC 2.0&lt;/strong&gt; を採用しており、標準化されたリクエスト / レスポンスおよび通知メッセージによってやり取りされます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; subgraph Host [&amp;#34;Host（Antigravity, Cursor, Claude Code 等）&amp;#34;]&#10; Agent[&amp;#34;LLM / エージェント推論ループ&amp;#34;]&#10; Client[&amp;#34;MCP Client（プロトコル中継・接続管理）&amp;#34;]&#10; Agent &amp;lt;--&amp;gt;|&amp;#34;ツール呼び出し要求 / 結果返却&amp;#34;| Client&#10; end&#10;&#10; subgraph Server1 [&amp;#34;MCP Server A（ローカル実行）&amp;#34;]&#10; T1[&amp;#34;Tools（SQL 実行・ファイル操作）&amp;#34;]&#10; R1[&amp;#34;Resources（スキーマ・ログ）&amp;#34;]&#10; end&#10;&#10; subgraph Server2 [&amp;#34;MCP Server B（リモート / クラウド）&amp;#34;]&#10; T2[&amp;#34;Tools（GitHub PR 作成・Issue 取得）&amp;#34;]&#10; P2[&amp;#34;Prompts（レビューテンプレート）&amp;#34;]&#10; end&#10;&#10; Client &amp;lt;--&amp;gt;|&amp;#34;Stdio（stdin / stdout パイプ）&amp;#34;| Server1&#10; Client &amp;lt;--&amp;gt;|&amp;#34;SSE / HTTP（ネットワーク通信）&amp;#34;| Server2&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="3-つのコンポーネント"&gt;&lt;span&gt;3 つのコンポーネント&lt;/span&gt;&#10; &lt;a href="#3-%e3%81%a4%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%8d%e3%83%b3%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Host&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;エージェントの実行環境（Antigravity CLI、Cursor、Claude Desktop 等）。ユーザーの指示を受け取り、LLM による推論ループを駆動します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Client&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Host 内部で動作し、各 MCP サーバーとの 1 対 1 のセッションを管理するモジュール。サーバーの機能一覧（Capabilities）を取得し、LLM からの呼び出し要求を JSON-RPC メッセージに変換して中継します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Server&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;外部ツールやデータソースを公開する独立した軽量プロセス（またはリモートサービス）。Host から要求されたツール実行やデータ読み込みを行い、結果を返却します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="通信トランスポートstdio-と-sse"&gt;&lt;span&gt;通信トランスポート（Stdio と SSE）&lt;/span&gt;&#10; &lt;a href="#%e9%80%9a%e4%bf%a1%e3%83%88%e3%83%a9%e3%83%b3%e3%82%b9%e3%83%9d%e3%83%bc%e3%83%88stdio-%e3%81%a8-sse" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;MCP クライアントとサーバー間の通信レイヤー（Transport）には、主に 2 つの方式が定義されています。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;トランスポート方式&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;通信経路&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;主なユースケース&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;特徴&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Stdio Transport&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;標準入出力（stdin / stdout）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ローカル開発環境、CLI、ローカル DB 操作&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ホストからサブプロセスとして直接起動。ネットワーク不要で高速かつセキュア&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;SSE Transport&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Server-Sent Events ＋ HTTP POST&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;クラウドサービス、社内共有 API サーバー&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;リモートサーバーとの通信に対応。インフラとして常駐稼働させる場合に利用&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;ローカル開発環境（DevContainer やローカル端末）では、設定ファイルにコマンドを記述するだけでオンデマンドに起動・破棄できる &lt;strong&gt;Stdio Transport&lt;/strong&gt; が最も一般的に利用されます。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="中核機能primitivesの構成"&gt;&lt;span&gt;中核機能（Primitives）の構成&lt;/span&gt;&#10; &lt;a href="#%e4%b8%ad%e6%a0%b8%e6%a9%9f%e8%83%bdprimitives%e3%81%ae%e6%a7%8b%e6%88%90" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;MCP サーバーは、エージェントに対して以下の 3 種類のプリミティブを公開できます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;MCP Server&#10;├── 1. Tools # エージェントが実行する関数（副作用あり・JSON Schema 検証）&#10;├── 2. Resources # エージェントが参照するデータ（読み取り専用・URI 形式）&#10;└── 3. Prompts # 定型プロンプトのテンプレート（スラッシュコマンド・ワークフロー）&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="1-toolsツール実行"&gt;&lt;span&gt;1. Tools（ツール実行）&lt;/span&gt;&#10; &lt;a href="#1-tools%e3%83%84%e3%83%bc%e3%83%ab%e5%ae%9f%e8%a1%8c" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;エージェントが自律的に呼び出す関数（Function Calling）を定義します。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;特徴&lt;/strong&gt;: 引数のバリデーションに &lt;strong&gt;JSON Schema&lt;/strong&gt; を使用し、決められた形式でのみ安全に呼び出されます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;副作用&lt;/strong&gt;: ファイルの書き込み、PR の作成、SQL の実行など、状態変更を伴う操作が含まれます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;例&lt;/strong&gt;: &lt;code&gt;create_pull_request&lt;/code&gt;, &lt;code&gt;query_database&lt;/code&gt;, &lt;code&gt;execute_search&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="2-resourcesコンテキストデータ供給"&gt;&lt;span&gt;2. Resources（コンテキストデータ供給）&lt;/span&gt;&#10; &lt;a href="#2-resources%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e3%83%87%e3%83%bc%e3%82%bf%e4%be%9b%e7%b5%a6" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;エージェントがオンデマンドで読み込むための、URI 形式で識別されるデータソースです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;特徴&lt;/strong&gt;: 読み取り専用（Read-only）。テキストまたはバイナリデータを返します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;例&lt;/strong&gt;: &lt;code&gt;file:///var/log/app.log&lt;/code&gt;, &lt;code&gt;postgres://schema/users&lt;/code&gt;, &lt;code&gt;docs://api/v1&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="3-prompts対話テンプレート"&gt;&lt;span&gt;3. Prompts（対話テンプレート）&lt;/span&gt;&#10; &lt;a href="#3-prompts%e5%af%be%e8%a9%b1%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;サーバー側で事前定義されたプロンプトやコンテキスト注入用テンプレートです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;特徴&lt;/strong&gt;: エージェントのユーザーインターフェース上でスラッシュコマンド等として提示され、定型的な指示（コードレビュー指示、障害調査テンプレート等）を標準化します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="rulesskillsagent-plugins-との役割分担"&gt;&lt;span&gt;Rules・Skills・Agent Plugins との役割分担&lt;/span&gt;&#10; &lt;a href="#rulesskillsagent-plugins-%e3%81%a8%e3%81%ae%e5%bd%b9%e5%89%b2%e5%88%86%e6%8b%85" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI エージェントの拡張アーキテクチャ全体における MCP の位置づけです。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;規格 / 要素&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;管理ファイル&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;役割・定義&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;読み込みタイミング&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Rules&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;プロジェクト全体の共通規約・制約・Guardrails&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;毎ターン常時ロード&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Skills&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;SKILL.md&lt;/code&gt;（&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;agentskills.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;特定タスクの専門手順書・実行スクリプト&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;タスク発生時にオンデマンド展開&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;mcp_config.json&lt;/code&gt;（&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;modelcontextprotocol.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;外部データ・API 連携の型安全な接続インターフェース&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;プラグイン起動時に常駐接続&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Plugins&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;plugin.json&lt;/code&gt;（&lt;a href="https://agentplugins.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;agentplugins.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;上記の Rules / Skills / MCP を 1 つに束ねた統合パッケージ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;インストール・有効化時に一括管理&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="agent-skills-と比較した-mcp-の-5-つの固有メリット"&gt;&lt;span&gt;Agent Skills と比較した MCP の 5 つの固有メリット&lt;/span&gt;&#10; &lt;a href="#agent-skills-%e3%81%a8%e6%af%94%e8%bc%83%e3%81%97%e3%81%9f-mcp-%e3%81%ae-5-%e3%81%a4%e3%81%ae%e5%9b%ba%e6%9c%89%e3%83%a1%e3%83%aa%e3%83%83%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;「特定タスクの手順を実行する」という目的において、&lt;strong&gt;Agent Skills（&lt;code&gt;SKILL.md&lt;/code&gt; ＋ &lt;code&gt;scripts/&lt;/code&gt;）&lt;/strong&gt; と &lt;strong&gt;MCP&lt;/strong&gt; は一見似ているように見えますが、設計思想と技術的アプローチが根本的に異なります。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;比較項目&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Agent Skills (&lt;code&gt;SKILL.md&lt;/code&gt; ＋ スクリプト)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Model Context Protocol (MCP)&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;実行モデル&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;エージェントによる &lt;strong&gt;任意のシェルコマンド実行&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Host 仲介による &lt;strong&gt;型定義された RPC 関数呼び出し&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;引数・型検証&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;プロンプト（自然言語）頼み。構文エラーやインジェクションのリスクあり&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;JSON Schema による事前バリデーション&lt;/strong&gt;。不正な型・引数を物理遮断&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;セキュリティ境界&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナル実行権限が必要（ホスト破壊のリスク）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;ホワイトリストされた API のみ許可&lt;/strong&gt;（ターミナル権限不要）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;通信・配置&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ローカルファイルシステム上のスクリプトに依存&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Stdio（ローカル）＋ SSE / HTTP（リモート）&lt;/strong&gt; に対応&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;接続・状態管理&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;コマンド実行ごとにプロセスが起動・終了（ステートレス）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;サーバーが常駐し、&lt;strong&gt;DB コネクションプールや認証状態を維持&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;データ連携&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;静的なドキュメント読み込み&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Resources による動的データ供給・リアルタイム購読&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="1-json-schema-による厳格な型安全性と引数のバリデーション"&gt;&lt;span&gt;1. JSON Schema による厳格な型安全性と引数のバリデーション&lt;/span&gt;&#10; &lt;a href="#1-json-schema-%e3%81%ab%e3%82%88%e3%82%8b%e5%8e%b3%e6%a0%bc%e3%81%aa%e5%9e%8b%e5%ae%89%e5%85%a8%e6%80%a7%e3%81%a8%e5%bc%95%e6%95%b0%e3%81%ae%e3%83%90%e3%83%aa%e3%83%87%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Skills の課題&lt;/strong&gt;:&#10;Skills のスクリプト（Bash/Python）を呼ぶ際、LLM は自然言語の指示からコマンドライン引数を組み立てます。文字列のクォート忘れ、エスケープ漏れ、型の解釈ブレによる実行時エラーや、意図しないコマンドインジェクションが発生するリスクがあります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP の優位性&lt;/strong&gt;:&#10;MCP はすべての Tool に &lt;strong&gt;JSON Schema&lt;/strong&gt; の定義を強制します。Host（クライアント）が LLM の生成した JSON 引数をスキーマと照合し、&lt;strong&gt;型や必須項目が不正な場合は実行前に自動でエラーを検知・再生成を促す&lt;/strong&gt; ため、極めて決定論的で堅牢なツール呼び出しが保証されます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="2-ターミナル権限を開放しない最小権限のセキュリティ"&gt;&lt;span&gt;2. ターミナル権限を開放しない「最小権限のセキュリティ」&lt;/span&gt;&#10; &lt;a href="#2-%e3%82%bf%e3%83%bc%e3%83%9f%e3%83%8a%e3%83%ab%e6%a8%a9%e9%99%90%e3%82%92%e9%96%8b%e6%94%be%e3%81%97%e3%81%aa%e3%81%84%e6%9c%80%e5%b0%8f%e6%a8%a9%e9%99%90%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Skills の課題&lt;/strong&gt;:&#10;スクリプトを実行させるには、エージェントに「Bash / ターミナルツールの実行権限」を渡す必要があります。これは、エージェントが誤って他の重要ファイルを操作・削除してしまうリスクを常に内包します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP の優位性&lt;/strong&gt;:&#10;エージェントに &lt;strong&gt;ターミナル実行権限を一切与えることなく&lt;/strong&gt;、MCP サーバーが公開した「特定の関数（例: &lt;code&gt;get_issue&lt;/code&gt;, &lt;code&gt;query_readonly_db&lt;/code&gt;）」のみを選択的に実行させることができます。これにより、最小権限の原則（Principle of Least Privilege）を厳格に適用できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="3-リモートクラウド接続性と環境非依存のポータビリティ"&gt;&lt;span&gt;3. リモート・クラウド接続性と環境非依存のポータビリティ&lt;/span&gt;&#10; &lt;a href="#3-%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%8e%a5%e7%b6%9a%e6%80%a7%e3%81%a8%e7%92%b0%e5%a2%83%e9%9d%9e%e4%be%9d%e5%ad%98%e3%81%ae%e3%83%9d%e3%83%bc%e3%82%bf%e3%83%93%e3%83%aa%e3%83%86%e3%82%a3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Skills の課題&lt;/strong&gt;:&#10;Skills はローカル環境にスクリプトファイルが存在し、そのスクリプトを実行できるランタイム（Python, Node.js, 各種 CLI ツール等）がホスト OS にインストールされている必要があります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP の優位性&lt;/strong&gt;:&#10;MCP は &lt;strong&gt;SSE（Server-Sent Events）や HTTP によるネットワーク越しの通信&lt;/strong&gt; を標準サポートしています。ホスト環境にランタイムを追加することなく、クラウド上の SaaS、社内共有のマイクロサービス、コンテナ外の API サーバーと直接接続して操作を委託できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="4-常駐プロセスによるコネクションプールセッションの維持"&gt;&lt;span&gt;4. 常駐プロセスによる「コネクションプール・セッションの維持」&lt;/span&gt;&#10; &lt;a href="#4-%e5%b8%b8%e9%a7%90%e3%83%97%e3%83%ad%e3%82%bb%e3%82%b9%e3%81%ab%e3%82%88%e3%82%8b%e3%82%b3%e3%83%8d%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e3%83%97%e3%83%bc%e3%83%ab%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%ae%e7%b6%ad%e6%8c%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Skills の課題&lt;/strong&gt;:&#10;スクリプト呼び出しはコマンド実行ごとに新規プロセスが起動して終了するため、データベース接続の確立や OAuth ハンドシェイクを毎回ゼロからやり直す必要があります（オーバーヘッド大）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP の優位性&lt;/strong&gt;:&#10;MCP サーバーはセッション中ずっと常駐する独立プロセスとして稼働するため、&lt;strong&gt;DB コネクションプール、メモリキャッシュ、認証セッションを保持&lt;/strong&gt; したまま連続したクエリを低レイテンシで高速処理できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="5-動的なデータ購読resources-と-live-notifications"&gt;&lt;span&gt;5. 動的なデータ購読（Resources と Live Notifications）&lt;/span&gt;&#10; &lt;a href="#5-%e5%8b%95%e7%9a%84%e3%81%aa%e3%83%87%e3%83%bc%e3%82%bf%e8%b3%bc%e8%aa%adresources-%e3%81%a8-live-notifications" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Skills の課題&lt;/strong&gt;:&#10;エージェントが &lt;code&gt;references/&lt;/code&gt; 配下の静的 Markdown をオンデマンドで読むだけの「一方向・受動的」な情報取得に留まります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP の優位性&lt;/strong&gt;:&#10;&lt;code&gt;Resources&lt;/code&gt; プリミティブを通じて、URI ベースで動的にデータを供給できるだけでなく、サーバー側でログやデータが更新された際に &lt;strong&gt;更新通知（&lt;code&gt;notifications/resources/updated&lt;/code&gt;）をクライアントへリアルタイムにプッシュ&lt;/strong&gt; できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="各クライアントでの設定とシークレット管理"&gt;&lt;span&gt;各クライアントでの設定とシークレット管理&lt;/span&gt;&#10; &lt;a href="#%e5%90%84%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%81%a7%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%81%a8%e3%82%b7%e3%83%bc%e3%82%af%e3%83%ac%e3%83%83%e3%83%88%e7%ae%a1%e7%90%86" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="設定ファイルの構造mcp_configjson--mcpjson"&gt;&lt;span&gt;設定ファイルの構造（&lt;code&gt;mcp_config.json&lt;/code&gt; / &lt;code&gt;mcp.json&lt;/code&gt;）&lt;/span&gt;&#10; &lt;a href="#%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e6%a7%8b%e9%80%a0mcp_configjson--mcpjson" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;MCP サーバーの設定は、JSON 形式で起動コマンドと引数、環境変数を指定します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;mcpServers&amp;#34;: {&#10; &amp;#34;github&amp;#34;: {&#10; &amp;#34;command&amp;#34;: &amp;#34;npx&amp;#34;,&#10; &amp;#34;args&amp;#34;: [&amp;#34;-y&amp;#34;, &amp;#34;@modelcontextprotocol/server-github&amp;#34;],&#10; &amp;#34;env&amp;#34;: {&#10; &amp;#34;GITHUB_PERSONAL_ACCESS_TOKEN&amp;#34;: &amp;#34;${env:GITHUB_TOKEN}&amp;#34;&#10; }&#10; },&#10; &amp;#34;sqlite-db&amp;#34;: {&#10; &amp;#34;command&amp;#34;: &amp;#34;uvx&amp;#34;,&#10; &amp;#34;args&amp;#34;: [&amp;#34;mcp-server-sqlite&amp;#34;, &amp;#34;--db-path&amp;#34;, &amp;#34;./data/app.db&amp;#34;]&#10; }&#10; }&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;npx -y&lt;/code&gt; / &lt;code&gt;uvx&lt;/code&gt; によるゼロインストール実行&lt;/strong&gt;:&#10;Node.js 製サーバーは &lt;code&gt;npx -y &amp;lt;pkg&amp;gt;&lt;/code&gt;、Python 製サーバーは &lt;code&gt;uvx &amp;lt;pkg&amp;gt;&lt;/code&gt; を指定することで、事前にグローバルインストールすることなくオンデマンドで最新の隔離環境から実行できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="alert alert-warning"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-alert-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;WARNING&lt;/p&gt;&lt;p&gt;&lt;strong&gt;環境変数注入によるシークレット漏洩の防止&lt;/strong&gt;&#10;設定ファイルを Git でチーム共有したり外部配布する際、API キーやアクセストークンを生の文字列で記述してはなりません。&lt;code&gt;${env:VAR_NAME}&lt;/code&gt; 形式を用いて、実行環境の環境変数から動的に注入します。&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="自作-mcp-サーバーの実装例"&gt;&lt;span&gt;自作 MCP サーバーの実装例&lt;/span&gt;&#10; &lt;a href="#%e8%87%aa%e4%bd%9c-mcp-%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%ae%e5%ae%9f%e8%a3%85%e4%be%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="1-typescript-による実装公式-sdk"&gt;&lt;span&gt;1. TypeScript による実装（公式 SDK）&lt;/span&gt;&#10; &lt;a href="#1-typescript-%e3%81%ab%e3%82%88%e3%82%8b%e5%ae%9f%e8%a3%85%e5%85%ac%e5%bc%8f-sdk" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;公式の &lt;code&gt;@modelcontextprotocol/sdk&lt;/code&gt; を使用した、最小限のツール提供サーバーの実装例です。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;import { Server } from &amp;#34;@modelcontextprotocol/sdk/server/index.js&amp;#34;;&#10;import { StdioServerTransport } from &amp;#34;@modelcontextprotocol/sdk/server/stdio.js&amp;#34;;&#10;import {&#10; CallToolRequestSchema,&#10; ListToolsRequestSchema,&#10;} from &amp;#34;@modelcontextprotocol/sdk/types.js&amp;#34;;&#10;&#10;// 1. サーバーインスタンスの生成&#10;const server = new Server(&#10; {&#10; name: &amp;#34;metrics-server&amp;#34;,&#10; version: &amp;#34;1.0.0&amp;#34;,&#10; },&#10; {&#10; capabilities: {&#10; tools: {},&#10; },&#10; }&#10;);&#10;&#10;// 2. 公開するツールの定義（一覧の返却）&#10;server.setRequestHandler(ListToolsRequestSchema, async () =&amp;gt; {&#10; return {&#10; tools: [&#10; {&#10; name: &amp;#34;get_service_metrics&amp;#34;,&#10; description: &amp;#34;指定したサービスのエラー率とレイテンシ（P95）を取得する&amp;#34;,&#10; inputSchema: {&#10; type: &amp;#34;object&amp;#34;,&#10; properties: {&#10; serviceName: {&#10; type: &amp;#34;string&amp;#34;,&#10; description: &amp;#34;対象サービス名（例: auth, payment, api-gateway）&amp;#34;,&#10; },&#10; },&#10; required: [&amp;#34;serviceName&amp;#34;],&#10; },&#10; },&#10; ],&#10; };&#10;});&#10;&#10;// 3. ツール実行ハンドラの実装&#10;server.setRequestHandler(CallToolRequestSchema, async (request) =&amp;gt; {&#10; if (request.params.name === &amp;#34;get_service_metrics&amp;#34;) {&#10; const serviceName = String(request.params.arguments?.serviceName);&#10;&#10; // 実際のメトリクス取得処理（例）&#10; const metricsData = {&#10; service: serviceName,&#10; errorRate: &amp;#34;0.02%&amp;#34;,&#10; p95LatencyMs: 124,&#10; status: &amp;#34;healthy&amp;#34;,&#10; };&#10;&#10; return {&#10; content: [&#10; {&#10; type: &amp;#34;text&amp;#34;,&#10; text: JSON.stringify(metricsData, null, 2),&#10; },&#10; ],&#10; };&#10; }&#10;&#10; throw new Error(`未定義のツールです: ${request.params.name}`);&#10;});&#10;&#10;// 4. Stdio トランスポートで接続待機&#10;const transport = new StdioServerTransport();&#10;await server.connect(transport);&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="2-python-による実装fastmcp"&gt;&lt;span&gt;2. Python による実装（FastMCP）&lt;/span&gt;&#10; &lt;a href="#2-python-%e3%81%ab%e3%82%88%e3%82%8b%e5%ae%9f%e8%a3%85fastmcp" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;Python 環境では、公式 SDK 内の &lt;code&gt;FastMCP&lt;/code&gt; を使用することで、デコレータを用いて極めて簡潔に記述できます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;from mcp.server.fastmcp import FastMCP&#10;&#10;# サーバーの初期化&#10;mcp = FastMCP(&amp;#34;SystemMetricsServer&amp;#34;)&#10;&#10;# ツールの定義（型ヒントと docstring が自動的に JSON Schema に変換される）&#10;@mcp.tool()&#10;def get_disk_usage(path: str = &amp;#34;/&amp;#34;) -&amp;gt; str:&#10; &amp;#34;&amp;#34;&amp;#34;指定されたパスのディスク使用量と空き容量を取得する。&#10; &#10; Args:&#10; path: チェック対象のディレクトリパス&#10; &amp;#34;&amp;#34;&amp;#34;&#10; import shutil&#10; total, used, free = shutil.disk_usage(path)&#10; return (&#10; f&amp;#34;Path: {path}\n&amp;#34;&#10; f&amp;#34;Total: {total // (2**30)} GB\n&amp;#34;&#10; f&amp;#34;Used: {used // (2**30)} GB\n&amp;#34;&#10; f&amp;#34;Free: {free // (2**30)} GB&amp;#34;&#10; )&#10;&#10;if __name__ == &amp;#34;__main__&amp;#34;:&#10; mcp.run()&lt;/code&gt;&lt;/pre&gt;&lt;div class="alert alert-important"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-report-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;IMPORTANT&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;description&lt;/code&gt; と型アノテーションの重要性&lt;/strong&gt;&#10;LLM はツールの &lt;code&gt;description&lt;/code&gt; と引数のスキーマ定義を読んで「どのツールを呼ぶべきか」「どんな引数を渡すべきか」を判断します。関数の目的、引数の具体例、戻り値のフォーマットを明確に記述することが、ツールの誤発動や引数エラーを防ぐ鍵となります。&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="セキュリティ設計と運用のベストプラクティス"&gt;&lt;span&gt;セキュリティ設計と運用のベストプラクティス&lt;/span&gt;&#10; &lt;a href="#%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e8%a8%ad%e8%a8%88%e3%81%a8%e9%81%8b%e7%94%a8%e3%81%ae%e3%83%99%e3%82%b9%e3%83%88%e3%83%97%e3%83%a9%e3%82%af%e3%83%86%e3%82%a3%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;最小権限の原則（Principle of Least Privilege）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;データベース連携サーバーでは、更新・削除権限（INSERT/UPDATE/DELETE/DROP）を持たない &lt;strong&gt;Read-Only 専用ユーザー&lt;/strong&gt; の認証情報を設定する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;物理サンドボックス（ハーネス）との多重防御&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;MCP 自体は「安全な API 呼び出し形式」を提供するプロトコルですが、サーバープロセスが動作する環境自体の安全性は Docker コンテナなどの物理サンドボックス（ハーネス）で隔離して担保する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;エラーメッセージの具体化&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ツール実行が失敗した際は、単に例外を握りつぶすのではなく、「なぜ失敗したか（認証切れ、引数不正、対象レコード不在）」をテキストとして明瞭に返却し、エージェントが自己修復ループ内で次の手を判断できるように設計する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;オープン標準化&lt;/strong&gt;: Model Context Protocol（MCP）は Anthropic が提唱後、Linux Foundation 傘下の Agentic AI Foundation（AAIF）に移管された、ベンダーニュートラルなツール接続プロトコル。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;3 大プリミティブ&lt;/strong&gt;: 副作用を伴う &lt;strong&gt;Tools&lt;/strong&gt;、コンテキスト供給の &lt;strong&gt;Resources&lt;/strong&gt;、対話テンプレートの &lt;strong&gt;Prompts&lt;/strong&gt; を JSON-RPC 2.0 で抽象化。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;エコシステム統合&lt;/strong&gt;: 常時ルールの &lt;code&gt;AGENTS.md&lt;/code&gt;、手順書の &lt;code&gt;Agent Skills&lt;/code&gt;、統合パッケージの &lt;code&gt;Agent Plugins&lt;/code&gt; と組み合わせることで、ポータブルで安全なエージェント運用基盤を確立できる。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Model Context Protocol 公式サイト (modelcontextprotocol.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/modelcontextprotocol/typescript-sdk" target="_blank" rel="external nofollow noopener noreferrer"&gt;MCP TypeScript SDK (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/modelcontextprotocol/python-sdk" target="_blank" rel="external nofollow noopener noreferrer"&gt;MCP Python SDK (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.linuxfoundation.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agentic AI Foundation (Linux Foundation)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://agent-plugins.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Plugins: The Open Packaging Standard (agent-plugins.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Agent Skills（agentskills.io）の仕様と設計：手順書の段階的開示とディレクトリ標準</title><link>https://sesame.purplemoon.org/posts/2026/08/agent-skills-introduction/</link><pubDate>Wed, 19 Aug 2026 23:30:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/agent-skills-introduction/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI コーディングエージェントにデプロイ手順、データベースマイグレーション、障害調査などの定型タスクを実行させる際、すべての詳細手順を &lt;code&gt;AGENTS.md&lt;/code&gt; などのルールファイルに記述すると、プロンプトが肥大化して &lt;strong&gt;Context Bloat（トークン消費の増大）&lt;/strong&gt; が発生します。&lt;/p&gt;&#10;&lt;p&gt;さらに、スタンフォード大学などの研究 &lt;strong&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;『Lost in the Middle』(Liu et al., 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt; が実証した通り、プロンプトが長大化するほど中盤に書かれた指示への注意（Attention）が著しく低下する &lt;strong&gt;Attention Dilution（重要指示の埋没・見落とし）&lt;/strong&gt; が発生します。&lt;/p&gt;&#10;&lt;p&gt;この問題を解決し、専門手順や実行コードをオンデマンドで読み込むオープン標準規格が &lt;strong&gt;Agent Skills（&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;agentskills.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;本記事では、&lt;code&gt;agentskills.io&lt;/code&gt; の公式仕様、中核となる &lt;strong&gt;段階的開示（Progressive Disclosure）&lt;/strong&gt; のアーキテクチャ、標準ディレクトリ構造、およびトークン効率と決定論的実行を両立する設計原則をまとめます。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="段階的開示progressive-disclosureのアーキテクチャ"&gt;&lt;span&gt;段階的開示（Progressive Disclosure）のアーキテクチャ&lt;/span&gt;&#10; &lt;a href="#%e6%ae%b5%e9%9a%8e%e7%9a%84%e9%96%8b%e7%a4%baprogressive-disclosure%e3%81%ae%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Agent Skills の最大の特徴は、&lt;strong&gt;「必要な情報だけを、必要なタイミングで読み込む」&lt;/strong&gt; という 3 段階のライフサイクル設計にあります。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; Phase1[&amp;#34;1. 探索フェーズ（Discovery）&amp;lt;br&amp;gt;起動時：name と description のみ読み込み&amp;lt;br&amp;gt;（30〜100 トークン / スキル）&amp;#34;]&#10; --&amp;gt;|&amp;#34;ユーザーの指示が合致&amp;#34;| Phase2[&amp;#34;2. 発動フェーズ（Triggering）&amp;lt;br&amp;gt;タスク発生時：SKILL.md 本文（手順書）を展開&amp;#34;]&#10; --&amp;gt;|&amp;#34;詳細仕様や自動化が必要&amp;#34;| Phase3[&amp;#34;3. 実行フェーズ（Execution）&amp;lt;br&amp;gt;オンデマンド：scripts/ 実行、references/ 参照&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="1-探索フェーズdiscovery-phase"&gt;&lt;span&gt;1. 探索フェーズ（Discovery Phase）&lt;/span&gt;&#10; &lt;a href="#1-%e6%8e%a2%e7%b4%a2%e3%83%95%e3%82%a7%e3%83%bc%e3%82%badiscovery-phase" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;エージェント起動時、インストールされている全スキルの &lt;code&gt;SKILL.md&lt;/code&gt; から &lt;strong&gt;YAML フロントマター（&lt;code&gt;name&lt;/code&gt; と &lt;code&gt;description&lt;/code&gt;）のみ&lt;/strong&gt; をインデックスとしてメモリに読み込みます。&#10;1 スキルあたりわずか 30〜100 トークン程度しか消費しないため、数十〜数百個のスキルが存在してもコンテキスト上限を圧迫しません。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="2-発動フェーズtriggering-phase"&gt;&lt;span&gt;2. 発動フェーズ（Triggering Phase）&lt;/span&gt;&#10; &lt;a href="#2-%e7%99%ba%e5%8b%95%e3%83%95%e3%82%a7%e3%83%bc%e3%82%batriggering-phase" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;ユーザーのプロンプトを評価し、「このタスクにはあのスキルが必要だ」とエージェントが判断した瞬間に、該当する &lt;code&gt;SKILL.md&lt;/code&gt; の &lt;strong&gt;本文（Markdown 手順書）&lt;/strong&gt; をコンテキストに展開します。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="3-実行フェーズexecution-phase"&gt;&lt;span&gt;3. 実行フェーズ（Execution Phase）&lt;/span&gt;&#10; &lt;a href="#3-%e5%ae%9f%e8%a1%8c%e3%83%95%e3%82%a7%e3%83%bc%e3%82%baexecution-phase" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;スキルの手順書に従って作業を進める中で、追加のドキュメントが必要になった場合は &lt;code&gt;references/&lt;/code&gt; をピンポイントで参照し、自動化スクリプトが必要な場合は &lt;code&gt;scripts/&lt;/code&gt; を実行します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="agent-skills-の標準ディレクトリ構造"&gt;&lt;span&gt;Agent Skills の標準ディレクトリ構造&lt;/span&gt;&#10; &lt;a href="#agent-skills-%e3%81%ae%e6%a8%99%e6%ba%96%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a7%8b%e9%80%a0" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;agentskills.io&lt;/code&gt; 仕様では、1 つのスキルを独立したフォルダとして構成します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;my-specialized-skill/&#10;├── SKILL.md # 【必須 (Required)】メタデータ ＋ メイン手順書&#10;├── scripts/ # 【任意 (Optional)】実行スクリプト（Python, Bash 等）&#10;├── references/ # 【任意 (Optional)】詳細仕様書・スキーマ・参照資料&#10;├── assets/ # 【任意 (Optional)】テンプレート・画像等の静的ファイル&#10;└── evals/ # 【任意 (Optional)】スキルの動作検証用テストシナリオ&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="各サブディレクトリの役割"&gt;&lt;span&gt;各サブディレクトリの役割&lt;/span&gt;&#10; &lt;a href="#%e5%90%84%e3%82%b5%e3%83%96%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%81%ae%e5%bd%b9%e5%89%b2" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;h4 class="heading-element" id="skillmd必須"&gt;&lt;span&gt;&lt;code&gt;SKILL.md&lt;/code&gt;（必須）&lt;/span&gt;&#10; &lt;a href="#skillmd%e5%bf%85%e9%a0%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;スキルのエントリポイントです。YAML フロントマターと Markdown 本文で構成され、作業の大まかな流れや判断基準を記述します。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="references任意参照ドキュメント"&gt;&lt;span&gt;&lt;code&gt;references/&lt;/code&gt;（任意：参照ドキュメント）&lt;/span&gt;&#10; &lt;a href="#references%e4%bb%bb%e6%84%8f%e5%8f%82%e7%85%a7%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; にすべて書ききれない &lt;strong&gt;詳細な API 仕様書、エラーコード対応表、データスキーマ定義&lt;/strong&gt; などを格納します。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;メリット&lt;/strong&gt;: &lt;code&gt;SKILL.md&lt;/code&gt; 自体をスリムに保ち、エージェントが「特定のエラーが発生したとき」「特定パラメータを調べるとき」だけ該当ファイルを読めるようにします。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;記述例&lt;/strong&gt;: &lt;code&gt;SKILL.md&lt;/code&gt; 内に &lt;code&gt;[エラー一覧](references/error_codes.md)&lt;/code&gt; のように相対パスでリンクを記載します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 class="heading-element" id="scripts任意実行コード"&gt;&lt;span&gt;&lt;code&gt;scripts/&lt;/code&gt;（任意：実行コード）&lt;/span&gt;&#10; &lt;a href="#scripts%e4%bb%bb%e6%84%8f%e5%ae%9f%e8%a1%8c%e3%82%b3%e3%83%bc%e3%83%89" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;エージェントがシェルから直接実行できるスクリプト（Bash, Python, Node.js 等）を配置します。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;メリット&lt;/strong&gt;: AI に複雑なワンライナーをアドホックに生成させるのではなく、テスト済みの決定論的なコードを実行させることで作業の再現性と安全性を担保します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 class="heading-element" id="assets任意静的アセット"&gt;&lt;span&gt;&lt;code&gt;assets/&lt;/code&gt;（任意：静的アセット）&lt;/span&gt;&#10; &lt;a href="#assets%e4%bb%bb%e6%84%8f%e9%9d%99%e7%9a%84%e3%82%a2%e3%82%bb%e3%83%83%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;テンプレートファイル、設定の雛形、画像データなどを配置します。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="evals任意評価テスト"&gt;&lt;span&gt;&lt;code&gt;evals/&lt;/code&gt;（任意：評価テスト）&lt;/span&gt;&#10; &lt;a href="#evals%e4%bb%bb%e6%84%8f%e8%a9%95%e4%be%a1%e3%83%86%e3%82%b9%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;p&gt;スキルが想定通りに動作するかを検証するためのプロンプト例やテストケースを定義します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="skillmd-の仕様と記述例"&gt;&lt;span&gt;&lt;code&gt;SKILL.md&lt;/code&gt; の仕様と記述例&lt;/span&gt;&#10; &lt;a href="#skillmd-%e3%81%ae%e4%bb%95%e6%a7%98%e3%81%a8%e8%a8%98%e8%bf%b0%e4%be%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="1-yaml-フロントマターの仕様"&gt;&lt;span&gt;1. YAML フロントマターの仕様&lt;/span&gt;&#10; &lt;a href="#1-yaml-%e3%83%95%e3%83%ad%e3%83%b3%e3%83%88%e3%83%9e%e3%82%bf%e3%83%bc%e3%81%ae%e4%bb%95%e6%a7%98" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; の先頭には、探索フェーズで使われるメタデータを YAML 形式で定義します。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;フィールド&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;必須 / 任意&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;型&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;説明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;name&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;必須&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;スキルの一意な識別子（1〜64文字、小文字英数字・ハイフン）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;description&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;必須&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;スキルの役割と &lt;strong&gt;発動条件（トリガー）&lt;/strong&gt; を自然言語で記載（最大 1024 文字）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;license&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;任意&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ライセンス情報（MIT, Apache-2.0 等）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;compatibility&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;任意&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;動作要件や前提環境（例: &lt;code&gt;Linux/macOS with Docker&lt;/code&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;任意&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;object&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;任意のカスタムキーバリューストア&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="alert alert-important"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-report-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;IMPORTANT&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;description&lt;/code&gt; はトリガーの精度を左右する&lt;/strong&gt;&#10;エージェントは &lt;code&gt;description&lt;/code&gt; を読んでスキルの使用可否を判断します。「何をするか」だけでなく、「どんな状況・指示のときに使うべきか（Use this skill when&amp;hellip;）」を明確に記述することが極めて重要です。&lt;/p&gt;&lt;/div&gt;&lt;h3 class="heading-element" id="2-skillmd-の実践例"&gt;&lt;span&gt;2. &lt;code&gt;SKILL.md&lt;/code&gt; の実践例&lt;/span&gt;&#10; &lt;a href="#2-skillmd-%e3%81%ae%e5%ae%9f%e8%b7%b5%e4%be%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;---&#10;name: db-migration&#10;description: データベースのマイグレーション作成、適用、ロールバック、整合性確認を行う際に使用する。&#10;compatibility: Linux / macOS, Docker 環境必須&#10;---&#10;&#10;# Database Migration Procedure&#10;&#10;## 前提条件&#10;- ローカルの PostgreSQL コンテナが起動していること。&#10;- 詳細なテーブル定義は [スキーマ仕様](references/schema.md) を参照。&#10;&#10;## 実行手順&#10;&#10;1. **接続と状態確認**:&#10; ```bash&#10; ./scripts/check_connection.sh&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;&lt;strong&gt;マイグレーションの適用&lt;/strong&gt;:&#10;&lt;pre&gt;&lt;code&gt;npm run migrate:up&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;整合性検証&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;適用後、以下のテストを実行してエラーが出ないことを確認する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;npm run test:db&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ロールバック手順（エラー発生時）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;テストが失敗した場合は直ちにロールバックを実行する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;npm run migrate:down&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;失敗時のエラーコード詳細は &lt;a href="references/troubleshooting.md"&gt;トラブルシューティング&lt;/a&gt; を参照。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre&gt;&lt;code&gt;&#10;---&#10;&#10;## Rules（`AGENTS.md`）と Skills の使い分け&#10; &#10;エージェントのコンテキスト効率と動作精度を最大化するための役割分担です。&#10;&#10;| 項目 | Rules (`AGENTS.md`) | Skills (`SKILL.md`) |&#10;| :--- | :--- | :--- |&#10;| **定義・役割** | プロジェクト全体の共通規約・制約・Guardrails | 特定タスクの手順定義・実行スクリプト・参照ドキュメント群 |&#10;| **読み込みタイミング** | 毎ターンのプロンプトに常時注入 | タスク発生時（`description` が一致した際）のみオンデマンド展開 |&#10;| **主な記述内容** | コーディング規約、禁止コマンド、全体アーキテクチャ | 実行コマンド手順、検証・ロールバックフロー、個別 API 仕様 |&#10;| **トークン消費** | 常時消費（Context Bloat を防ぐため最小限に抑制） | 使用時のみ一時消費（タスク完了後は破棄可能） |&#10;&#10;---&#10;&#10;## Agent Plugins との関係性&#10;&#10;**Agent Skills** と **Agent Plugins（1.0.0 共通規格）** は競合するものではなく、**包含関係** にあります。&#10;&#10;- **Agent Skills（[agentskills.io](https://agentskills.io)）**:&#10; - 「1 つの手順書フォルダ」の単位規格（`SKILL.md`、`scripts/`、`references/`）。&#10;- **Agent Plugins（[agentplugins.io](https://agentplugins.io)）**:&#10; - 複数の Agent Skills、MCP（外部ツール接続）、Rules（規約）を束ねて配布・インストール可能にする「統合パッケージ規格」。&#10;&#10;Agent Plugins の仕様においても、スキルフォルダの内部構造は `agentskills.io` 規格がそのまま標準仕様として採用されています。&#10;&#10;---&#10;&#10;## スキル作成のベストプラクティス&#10;&#10;1. **`SKILL.md` を短く保ち、詳細は `references/` へ逃がす**&#10; - `SKILL.md` に長文の API リファレンスを直書きせず、`references/` に個別ファイルとして分割する。&#10;2. **決定論的なスクリプトは `scripts/` に置く**&#10; - 複雑な bash コマンドやデータ変換処理は、スクリプト化して同梱することで LLM の出力ブレを防ぐ。&#10;3. **成功判定・ロールバック手順を必ず明記する**&#10; - コマンド実行後の成否判定基準（期待される出力文字列や終了コード）を記載し、自律的に完了判定を行えるようにする。&#10;4. **テストケース（`evals/`）を整備してリグレッションを防ぐ**&#10; - スキルの発動条件（プロンプト例）と期待される出力シナリオを定義し、プロンプト変更やモデルアップデート時の精度劣化を防ぐ。&#10;&#10;---&#10;&#10;## まとめ&#10;&#10;- **段階的開示（Progressive Disclosure）**: 探索時（メタデータのみ）➔ 発動時（本文展開）➔ 実行時（スクリプト・詳細仕様の参照）の 3 段階でトークン消費を最小化。&#10;- **標準ディレクトリ構造**: `SKILL.md` を起点に `scripts/`、`references/`、`assets/`、`evals/` を整理し、ポータブルな運用手順書を構築。&#10;- **エコシステムとの調和**: 常時規約（`AGENTS.md`）とタスク別手順（`Agent Skills`）を明確に分離し、統合パッケージ規格（`Agent Plugins`）とシームレスに連携。&#10;&#10;&amp;gt; ※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&#10;&#10;---&#10;&#10;## 参考リンク・情報ソース&#10;&#10;- [Agent Skills 公式仕様 (agentskills.io)](https://agentskills.io)&#10;- [Agent Plugins: The Open Packaging Standard (agent-plugins.org)](https://agent-plugins.org)&#10;- [Lost in the Middle: How Language Models Use Long Contexts (Liu et al., 2023)](https://arxiv.org/abs/2307.03172)&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>AI指示ファイルの標準化と書き方：AGENTS.md の誕生・Linux Foundation 移管から各ツール比較まで</title><link>https://sesame.purplemoon.org/posts/2026/08/ai-coding-rules-comparison/</link><pubDate>Wed, 19 Aug 2026 23:00:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/ai-coding-rules-comparison/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI コーディングエージェント（Google Antigravity、Cursor、GitHub Copilot、Claude Code 等）を実務で活用する際、プロジェクト固有のアーキテクチャ、ビルド・テスト手順、コーディング規約をいかに正確にエージェントへ伝えるかが重要になります。&lt;/p&gt;&#10;&lt;p&gt;当初はツールごとに独自の設定ファイルが乱立していましたが、現在はオープン標準仕様としての &lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/strong&gt; を中心に共通化が進んでいます。&lt;/p&gt;&#10;&lt;p&gt;本記事では、&lt;code&gt;AGENTS.md&lt;/code&gt; が生まれた背景と Linux Foundation 傘下の標準化団体への移管の経緯、各ツール固有の指示ファイルとの仕様比較、そして実用的な書き方の設計原則を整理します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="agentsmd-の誕生とオープン標準化の経緯"&gt;&lt;span&gt;AGENTS.md の誕生とオープン標準化の経緯&lt;/span&gt;&#10; &lt;a href="#agentsmd-%e3%81%ae%e8%aa%95%e7%94%9f%e3%81%a8%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e6%a8%99%e6%ba%96%e5%8c%96%e3%81%ae%e7%b5%8c%e7%b7%af" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; は、AI エージェントがリポジトリを自律的に理解して作業するための &lt;strong&gt;「エージェントのための README（README for AI agents）」&lt;/strong&gt; として策定されたオープンな仕様です。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;プロジェクトのルート / サブディレクトリ&#10;├── README.md # 人間（開発者）向けのオンボーディング・概要説明&#10;└── AGENTS.md # AI エージェント向けの機械可読な制約・実行コマンド・規約&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="1-発祥openai-による提唱2025年8月"&gt;&lt;span&gt;1. 発祥：OpenAI による提唱（2025年8月）&lt;/span&gt;&#10; &lt;a href="#1-%e7%99%ba%e7%a5%a5openai-%e3%81%ab%e3%82%88%e3%82%8b%e6%8f%90%e5%94%b12025%e5%b9%b48%e6%9c%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;2025 年 8 月、OpenAI が自社の Codex CLI 等に向けて提唱・導入したのが始まりです。&lt;/p&gt;&#10;&lt;p&gt;当時、AI ツールごとに設定ファイルが断片化しており、同じリポジトリであってもエディタやツールを切り替えるたびに別々の設定ファイルを保守する必要がありました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Cursor&lt;/strong&gt;: &lt;code&gt;.cursorrules&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;: &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;: &lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;この乱立を解消し、「ベンダーニュートラルで、どの AI ツールでも共通して読める単一の指示フォーマット」として考案されたのが &lt;code&gt;AGENTS.md&lt;/code&gt; です。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="2-linux-foundationaaifへの移管2025年12月"&gt;&lt;span&gt;2. Linux Foundation（AAIF）への移管（2025年12月）&lt;/span&gt;&#10; &lt;a href="#2-linux-foundationaaif%e3%81%b8%e3%81%ae%e7%a7%bb%e7%ae%a12025%e5%b9%b412%e6%9c%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;2025 年 12 月 9 日、中立なオープンスタンダードとして普及させるため、OpenAI、Anthropic、Block、Google、Microsoft、AWS、Cloudflare 等が参画して &lt;strong&gt;Linux Foundation&lt;/strong&gt; 傘下に &lt;strong&gt;Agentic AI Foundation (AAIF)&lt;/strong&gt; が設立されました。&lt;/p&gt;&#10;&lt;p&gt;この設立に伴い、主要各社から中核プロジェクトが寄贈されました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;（OpenAI より寄贈）&lt;/strong&gt;: エージェント向け共通指示フォーマット&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Model Context Protocol (MCP)&lt;/code&gt;（Anthropic より寄贈）&lt;/strong&gt;: ツール・外部データ連携プロトコル&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;goose&lt;/code&gt;（Block より寄贈）&lt;/strong&gt;: ローカルファーストなオープンソース自律エージェント基盤&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;現在、&lt;code&gt;AGENTS.md&lt;/code&gt; の仕様策定とガバナンスは特定の一企業ではなく、AAIF のコミュニティ主導で維持・管理されています（公式サイト：&lt;a href="https://agents.md" target="_blank" rel="external nofollow noopener noreferrer"&gt;agents.md&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="指示ファイル仕様の比較"&gt;&lt;span&gt;指示ファイル仕様の比較&lt;/span&gt;&#10; &lt;a href="#%e6%8c%87%e7%a4%ba%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e4%bb%95%e6%a7%98%e3%81%ae%e6%af%94%e8%bc%83" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;主要な AI コーディングツールにおける指示ファイルの配置と読み込み仕様の比較です。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ツール / 規格&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;設定ファイル&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;配置場所&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;主な特徴とスコープ&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;AGENTS.md&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(オープン標準)&lt;/em&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ルート / 任意ディレクトリ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;階層遡り（Walk-up）走査に対応。プレーン GFM で記述し、複数ツールで共通利用可能&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;copilot-instructions.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;.github/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;リポジトリ全体に適用。Chat、インライン提案、PR 要約等で参照&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Cursor&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;br&gt;&lt;code&gt;*.mdc&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ルート&lt;br&gt;&lt;code&gt;.cursor/rules/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;フロントマターで &lt;code&gt;globs&lt;/code&gt; を指定し、対象ファイル拡張子やパスごとにルールを動的適用可能&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ルート / サブディレクトリ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;プロジェクトのビルド・テストコマンドやコード規約を自然言語で指定&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Google Antigravity&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;br&gt;&lt;code&gt;GEMINI.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ルート / サブディレクトリ / &lt;code&gt;.agents/rules/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; を標準サポート。Skills（手順書）や MCP（ツール接続）と分離して階層ロード&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="alert alert-note"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-info-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;NOTE&lt;/p&gt;&lt;p&gt;現在の多くのツール（Antigravity、Cursor、Codex 等）は &lt;code&gt;AGENTS.md&lt;/code&gt; をネイティブに解釈します。一部ツール（Claude Code 等）で専用ファイルを要求される環境では、&lt;code&gt;AGENTS.md&lt;/code&gt; へのシンボリックリンクを作成して二重管理を防ぐ運用も一般的です。&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="各ツールの設定フォーマット"&gt;&lt;span&gt;各ツールの設定フォーマット&lt;/span&gt;&#10; &lt;a href="#%e5%90%84%e3%83%84%e3%83%bc%e3%83%ab%e3%81%ae%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%83%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="1-agentsmdオープン標準"&gt;&lt;span&gt;1. AGENTS.md（オープン標準）&lt;/span&gt;&#10; &lt;a href="#1-agentsmd%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e6%a8%99%e6%ba%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;GitHub Flavored Markdown (GFM) を用いたシンプルなテキストファイルです。複雑な YAML スキーマなどを強制せず、見出しやリスト構造で指示を記述します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;# Agent Guidelines&#10;&#10;## プロジェクト構成&#10;- フロントエンド: Next.js (App Router), Tailwind CSS&#10;- バックエンド: Go (Echo), PostgreSQL&#10;&#10;## コマンド&#10;- ビルド: `npm run build`&#10;- テスト: `npm test`&#10;- リント: `npm run lint`&#10;&#10;## コーディング規約&#10;- コンポーネントは named export で定義する。&#10;- 破壊的変更を伴うマイグレーション時は事前に確認を求める。&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="2-github-copilot-githubcopilot-instructionsmd"&gt;&lt;span&gt;2. GitHub Copilot (&lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#2-github-copilot-githubcopilot-instructionsmd" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;リポジトリ全体に 1 枚で効かせる構成です。&lt;code&gt;.github/&lt;/code&gt; ディレクトリ配下に配置します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;# GitHub Copilot Instructions&#10;&#10;## 技術スタック&#10;- Node.js (v20&amp;#43;), TypeScript (v5&amp;#43;)&#10;&#10;## コーディング規約&#10;- `any` 型は使わず、型ガードと `unknown` を使う。&#10;- 非同期処理は `try-catch` でエラーハンドリングする。&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="3-cursor-cursorrules--cursorrulesmdc"&gt;&lt;span&gt;3. Cursor (&lt;code&gt;.cursorrules&lt;/code&gt; / &lt;code&gt;.cursor/rules/*.mdc&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#3-cursor-cursorrules--cursorrulesmdc" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;.cursorrules&lt;/code&gt; はプロジェクト全体に適用されます。より細かい制御を行う場合、&lt;code&gt;.cursor/rules/&lt;/code&gt; 配下にフロントマター付きの &lt;code&gt;.mdc&lt;/code&gt; ファイルを配置し、&lt;code&gt;globs&lt;/code&gt; で対象ファイルを絞り込みます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;---&#10;description: フロントエンド開発規約&#10;globs: src/components/**/*.{ts,tsx}, src/app/**/*.{ts,tsx}&#10;---&#10;&#10;# Frontend Guidelines&#10;- Server Components をデフォルトとし、必要な場合のみ `&amp;#39;use client&amp;#39;` を宣言する。&#10;- アイコンは `lucide-react` を使う。&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="agentsmd-を設計するときの原則"&gt;&lt;span&gt;AGENTS.md を設計するときの原則&lt;/span&gt;&#10; &lt;a href="#agentsmd-%e3%82%92%e8%a8%ad%e8%a8%88%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e5%8e%9f%e5%89%87" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; は毎回のプロンプト（システムコンテキスト）に読み込まれるため、肥大化させると &lt;strong&gt;Context Bloat（トークン消費の増大）&lt;/strong&gt; や、スタンフォード大等の研究 &lt;strong&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;『Lost in the Middle』(Liu et al., 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt; で示された &lt;strong&gt;Attention Dilution（中盤に置かれた重要指示の希釈・見落とし）&lt;/strong&gt; の原因になります。&lt;/p&gt;&#10;&lt;div class="alert alert-tip"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-light-bulb-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;TIP&lt;/p&gt;&lt;p&gt;&lt;strong&gt;常時ロード（AGENTS.md）とオンデマンド（Skills / ドキュメント）の分離&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; に書くもの&lt;/strong&gt;: 常時守るべきコーディング規約、必須ビルドコマンド、禁止事項（Guardrails）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; に書かないもの&lt;/strong&gt;: 長大なデプロイ手順、特定のライブラリの詳細 API 仕様、一時的なトラブルシューティング手順（これらは &lt;code&gt;SKILL.md&lt;/code&gt; や個別ドキュメントに逃がし、必要な時だけ呼び出す）。&lt;/li&gt;&#10;&lt;/ul&gt;&lt;/div&gt;&lt;h3 class="heading-element" id="1-禁止だけでなく代替案を明記する"&gt;&lt;span&gt;1. 「禁止」だけでなく「代替案」を明記する&lt;/span&gt;&#10; &lt;a href="#1-%e7%a6%81%e6%ad%a2%e3%81%a0%e3%81%91%e3%81%a7%e3%81%aa%e3%81%8f%e4%bb%a3%e6%9b%bf%e6%a1%88%e3%82%92%e6%98%8e%e8%a8%98%e3%81%99%e3%82%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;AI は「〜〜するな」という否定形のみの指示だと、意図しない別の不適切なコードを生成することがあります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;❌ &lt;strong&gt;悪い例&lt;/strong&gt;: 「&lt;code&gt;any&lt;/code&gt; 型を使うな」&lt;/li&gt;&#10;&lt;li&gt;⭕ &lt;strong&gt;良い例&lt;/strong&gt;: 「&lt;code&gt;any&lt;/code&gt; 型は使わず、&lt;code&gt;unknown&lt;/code&gt; 型と型ガード関数（Type Predicate）を使う」&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="2-モデルが既知の一般論は書かない"&gt;&lt;span&gt;2. モデルが既知の一般論は書かない&lt;/span&gt;&#10; &lt;a href="#2-%e3%83%a2%e3%83%87%e3%83%ab%e3%81%8c%e6%97%a2%e7%9f%a5%e3%81%ae%e4%b8%80%e8%88%ac%e8%ab%96%e3%81%af%e6%9b%b8%e3%81%8b%e3%81%aa%e3%81%84" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;「読みやすいコードを書く」「保守性の高い設計にする」といった一般的な常識は LLM に元から備わっているため不要です。プロジェクト固有の命名規則やアーキテクチャの境界定義に絞り込みます。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="3-実行コマンドを正確に記載する"&gt;&lt;span&gt;3. 実行コマンドを正確に記載する&lt;/span&gt;&#10; &lt;a href="#3-%e5%ae%9f%e8%a1%8c%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%82%92%e6%ad%a3%e7%a2%ba%e3%81%ab%e8%a8%98%e8%bc%89%e3%81%99%e3%82%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;エージェントが自律的にテストやリントを実行できるよう、プロジェクトで実際に使用しているコマンド（引数や環境変数を含む）を明記します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;## コマンド&#10;- 単体テスト: `npm run test:unit`&#10;- E2Eテスト: `npx playwright test`&#10;- 静的検証: `npm run type-check`&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="階層スコープ設計walk-up-継承とサブプロジェクトへの分散配置"&gt;&lt;span&gt;階層スコープ設計（Walk-up 継承とサブプロジェクトへの分散配置）&lt;/span&gt;&#10; &lt;a href="#%e9%9a%8e%e5%b1%a4%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%97%e8%a8%ad%e8%a8%88walk-up-%e7%b6%99%e6%89%bf%e3%81%a8%e3%82%b5%e3%83%96%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%b8%e3%81%ae%e5%88%86%e6%95%a3%e9%85%8d%e7%bd%ae" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;モノレポ構成や複数のパッケージ・マイクロサービスが同居するプロジェクトでは、各パッケージやディレクトリ内に個別の &lt;code&gt;AGENTS.md&lt;/code&gt; ファイルを配置します。&lt;/p&gt;&#10;&lt;p&gt;エージェントはディレクトリツリー内で &lt;strong&gt;最も近いファイルを自動的に読み込む&lt;/strong&gt; ため、最も近いファイルが優先（オーバーライド・マージ）され、各サブプロジェクトはそれぞれに最適化された指示やビルドコマンドを配布できます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;my-project/&#10;├── AGENTS.md # リポジトリ全体の共通規約（コミット規約、PR 作成ルール等）&#10;├── packages/&#10;│ ├── frontend/&#10;│ │ └── AGENTS.md # React / Next.js 固有の規約とビルド・テストコマンド&#10;│ └── backend/&#10;│ └── AGENTS.md # Go / DB 固有の規約とマイグレーション手順&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;エージェントが &lt;code&gt;packages/frontend/src/&lt;/code&gt; 配下のファイルを編集する際、自身の階層から親階層へ向かって（Walk-up）順に探索し、直近の指示を優先しながらルートの共通ルールとマージして適用します。&lt;/p&gt;&#10;&lt;div class="alert alert-note"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-info-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;NOTE&lt;/p&gt;&lt;p&gt;&lt;strong&gt;大規模リポジトリでの実例&lt;/strong&gt;&#10;ディレクトリごとに指示を分割するアプローチは、大規模なコードベースで標準的に実践されています。例えば、OpenAI のメインリポジトリには執筆時点で &lt;strong&gt;88 個の &lt;code&gt;AGENTS.md&lt;/code&gt; ファイル&lt;/strong&gt; が配置されており、各モジュールやパッケージ単位でエージェントへの指示が細かく最適化されています。&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="rulesskillsmcphooks-の進化と標準化状況の違い"&gt;&lt;span&gt;Rules・Skills・MCP・Hooks の進化と標準化状況の違い&lt;/span&gt;&#10; &lt;a href="#rulesskillsmcphooks-%e3%81%ae%e9%80%b2%e5%8c%96%e3%81%a8%e6%a8%99%e6%ba%96%e5%8c%96%e7%8a%b6%e6%b3%81%e3%81%ae%e9%81%95%e3%81%84" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI エージェントのカスタマイズ手法は、自然言語による指示（Rules）から、ツール連携（MCP）、手順書の段階的開示（Skills）、そしてプログラムによる強制介入（Hooks）へと段階的に進化してきました。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; G0[&amp;#34;【前史】チャット手動コピペ&amp;lt;br&amp;gt;（会話要約で指示が消える）&amp;#34;]&#10; --&amp;gt;|&amp;#34;リポジトリ内に常時配置&amp;#34;| G1[&amp;#34;【第1世代】Rules / AGENTS.md&amp;lt;br&amp;gt;（全部盛りによるプロンプト肥大化）&amp;#34;]&#10; --&amp;gt;|&amp;#34;ツール接続と手順の分離・標準化&amp;#34;| G2[&amp;#34;【第2世代】MCP &amp;amp; Skills&amp;lt;br&amp;gt;・MCP：ツール接続のAPI標準&amp;lt;br&amp;gt;・Skills：手順書のオンデマンド開示&amp;#34;]&#10; --&amp;gt;|&amp;#34;自然言語の確率的ブレを突破&amp;#34;| G3[&amp;#34;【第3世代】Hooks（ライフサイクル介入）&amp;lt;br&amp;gt;プログラムで物理的に強制ブロック・後処理&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="1-進化の歴史とhooksが必要とされた理由"&gt;&lt;span&gt;1. 進化の歴史と「Hooks」が必要とされた理由&lt;/span&gt;&#10; &lt;a href="#1-%e9%80%b2%e5%8c%96%e3%81%ae%e6%ad%b4%e5%8f%b2%e3%81%a8hooks%e3%81%8c%e5%bf%85%e8%a6%81%e3%81%a8%e3%81%95%e3%82%8c%e3%81%9f%e7%90%86%e7%94%b1" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Rules（&lt;code&gt;AGENTS.md&lt;/code&gt;）と Skills の限界&lt;/strong&gt;:&#10;Rules や Skills は &lt;strong&gt;自然言語による指示&lt;/strong&gt; であり、「危険なコマンドを実行するな」「直接 push するな」と指示しても、LLM の確率的な挙動（非決定性）により 100% 確実に防ぐことは困難でした。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Hooks のアプローチ（決定論的制御）&lt;/strong&gt;:&#10;LLM の出力のブレに依存せず、エージェントの動作ループに &lt;strong&gt;スクリプトを割り込ませて実行を制御する仕組み（Git hooks と同様のアーキテクチャ）&lt;/strong&gt; です。&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;実行前ゲート（&lt;code&gt;PreToolUse&lt;/code&gt;）&lt;/strong&gt;: コマンド実行直前にスクリプトが引数を検査し、危険な操作を物理的に遮断（&lt;code&gt;deny&lt;/code&gt;）または強制確認（&lt;code&gt;force_ask&lt;/code&gt;）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;実行後自動化（&lt;code&gt;PostToolUse&lt;/code&gt;）&lt;/strong&gt;: ファイル変更後に自動で &lt;code&gt;prettier&lt;/code&gt; や &lt;code&gt;eslint --fix&lt;/code&gt; を実行。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;終了阻止（&lt;code&gt;Stop&lt;/code&gt;）&lt;/strong&gt;: テストが未完了または失敗している場合、エージェントの終了を差し止めてループを継続。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="2-なぜ-hooks-は標準化されていないのか"&gt;&lt;span&gt;2. なぜ Hooks は標準化されていないのか？&lt;/span&gt;&#10; &lt;a href="#2-%e3%81%aa%e3%81%9c-hooks-%e3%81%af%e6%a8%99%e6%ba%96%e5%8c%96%e3%81%95%e3%82%8c%e3%81%a6%e3%81%84%e3%81%aa%e3%81%84%e3%81%ae%e3%81%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;MCP&lt;/code&gt;、&lt;code&gt;Agent Skills&lt;/code&gt; が業界横断のオープン標準規格として共通化されているのに対し、&lt;strong&gt;Hooks は各 AI エージェントごとの独自実装（または未対応）&lt;/strong&gt; に留まっています。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;要素&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;標準化の状況&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;管理団体 / 共通仕様&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;役割と特徴&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Rules (&lt;code&gt;AGENTS.md&lt;/code&gt;)&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;標準化済み&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Linux Foundation (AAIF)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;どのエージェントでも読める行動規約（自然言語）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;標準化済み&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Linux Foundation (AAIF)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ツール・外部データ連携の標準プロトコル（API）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Skills (&lt;code&gt;SKILL.md&lt;/code&gt;)&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;標準化済み&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;agentskills.io&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;特定タスクの手順定義・実行スクリプトのオンデマンド規格&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Hooks (&lt;code&gt;hooks.json&lt;/code&gt; 等)&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;⚠️ &lt;strong&gt;非標準（各社独自）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;なし（ツール固有機能）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;プログラムによる強制実行・ゲート（決定論的制御）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Hooks の標準化が困難な主な理由は以下の 3 点です：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;内部ループ設計の相違&lt;/strong&gt;: 各エージェント（Antigravity、Cursor、Claude Code 等）で内部の処理ループ（プロンプト生成 → モデル呼出 → ツール実行 → 終了判定）の構造やイベント発火タイミングが異なる。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;実行環境とセキュリティ境界の格差&lt;/strong&gt;: ローカル OS のフルシェル権限で動く CLI と、閉じたクラウド・ブラウザ環境で動くエージェントでは、外部スクリプトを実行できるセキュリティモデルが根本的に異なる。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Interoperability Floor（相互運用の最低基準）の優先順位&lt;/strong&gt;: Agent Plugins 1.0.0 等の統合パッケージ規格でも、まずは環境非依存で安全に共有できる Rules・Skills・MCP が中核となり、ホスト環境依存の強い Hooks はクライアント拡張領域として切り離されている。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="alert alert-tip"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-light-bulb-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;TIP&lt;/p&gt;&lt;p&gt;&lt;strong&gt;実践における使い分けの方針&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ポータブルに共有したい資産&lt;/strong&gt;（規約、手順書、ツール連携）: オープン規格である &lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; / Skills / MCP&lt;/strong&gt; で記述する。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;物理的な安全ガードや強制自動化&lt;/strong&gt;（コマンド実行前の危険性チェック、保存後の自動 Lint 等）: Antigravity の &lt;code&gt;hooks.json&lt;/code&gt; など、&lt;strong&gt;特定ツールの独自 Hooks 機能&lt;/strong&gt; で決定論的に制御する。&lt;/li&gt;&#10;&lt;/ul&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;発祥と標準化&lt;/strong&gt;: &lt;code&gt;AGENTS.md&lt;/code&gt; は 2025 年 8 月に OpenAI が提唱し、同年 12 月に Linux Foundation 傘下の &lt;strong&gt;Agentic AI Foundation (AAIF)&lt;/strong&gt; へ移管されたオープン標準規格。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;: ツール固有設定（&lt;code&gt;.cursorrules&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt; 等）の乱立を防ぎ、マルチエージェント環境で「エージェントのための README」として機能する。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;設計の要点&lt;/strong&gt;: 常時読み込みファイルであることを意識し、規約・制約・実行コマンドに絞り込んで記述する。詳細手順は Skills 等のオンデマンド機構に分離してコンテキストを軽量に保つ。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Hooks との住み分け&lt;/strong&gt;: 自然言語による指示（Rules/Skills）と、プログラムによる決定論的制御（Hooks）の役割を理解し、ポータビリティと安全性を両立させる。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://agents.md" target="_blank" rel="external nofollow noopener noreferrer"&gt;AGENTS.md: The Standard for AI Agent Guidelines (agents.md)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.linuxfoundation.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agentic AI Foundation (Linux Foundation)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot" target="_blank" rel="external nofollow noopener noreferrer"&gt;GitHub Copilot Custom Instructions (GitHub Docs)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://docs.cursor.com/context/rules-for-ai" target="_blank" rel="external nofollow noopener noreferrer"&gt;Cursor Rules: MDC format and globs specification (Cursor Docs)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;Lost in the Middle: How Language Models Use Long Contexts (Liu et al., 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Agent Plugins の歴史とオープン標準化：Skills・MCP を統合する共通プラグイン規格</title><link>https://sesame.purplemoon.org/posts/2026/08/agent-plugins-introduction/</link><pubDate>Wed, 19 Aug 2026 22:45:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/agent-plugins-introduction/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;AI コーディングエージェント（Antigravity、Cursor、GitHub Copilot、Claude Code 等）が急速に普及する中で、開発者が直面していた最大の課題は &lt;strong&gt;「エージェント拡張機能の分断（Fragmentation）」&lt;/strong&gt; でした。&lt;/p&gt;&#10;&lt;div class="details admonition info open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;エージェント拡張機能（Agent Extensions）とは？&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;AI コーディングエージェントに対して、&lt;strong&gt;「新しい機能（外部ツール連携）」や「専門知識・実行能力（スキル）」を後から追加・カスタマイズする仕組み全般&lt;/strong&gt;を指します。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;エージェント拡張機能は、主に以下の 3 つの要素で構成されています。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" src='https://sesame.purplemoon.org/posts/2026/08/agent-plugins-introduction/agent-extension-components.jpg' alt="AIエージェント拡張機能の3大構成要素" height="768" width="1376"&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Rules（行動指針・規約）&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;役割&lt;/strong&gt;: 「このプロジェクトではこの方針・コーディング規約に従って」という指示。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;代表例&lt;/strong&gt;: &lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;.cursorrules&lt;/code&gt;、&lt;code&gt;CLAUDE.md&lt;/code&gt; など。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP（Model Context Protocol / 外部ツール接続）&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;役割&lt;/strong&gt;: AI が外部のデータベース、GitHub、API、クラウド環境等と安全にデータ送受信を行うための &lt;strong&gt;「外部ツール・API 接続」&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;代表例&lt;/strong&gt;: GitHub MCP サーバー、PostgreSQL MCP サーバーなど。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Agent Skills（スキル / タスク実行ノウハウ）&lt;/strong&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;役割&lt;/strong&gt;: 特定のタスク（ビルド検証、テスト実行、マイグレーション等）を確実に実行するための &lt;strong&gt;「手順書（&lt;code&gt;SKILL.md&lt;/code&gt;）と実行スクリプト（&lt;code&gt;scripts/&lt;/code&gt;）」&lt;/strong&gt;。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;代表例&lt;/strong&gt;: &lt;code&gt;SKILL.md&lt;/code&gt;（&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;agentskills.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; 規格）。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="details admonition info open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;Agent Skills（スキル）とは？&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;AI エージェントに特定のタスク（ビルド検証、テスト実行、マイグレーション等）を確実に実行させるための &lt;strong&gt;「手順書（&lt;code&gt;SKILL.md&lt;/code&gt;）と実行用スクリプト（&lt;code&gt;scripts/&lt;/code&gt;）をまとめた専用フォルダ」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;AI は手順書に従い、同梱されたスクリプトを自律的に呼び出して作業を行います。また、&lt;strong&gt;必要な時だけオンデマンドで読み込む（段階的開示）&lt;/strong&gt; 仕組みのため、無駄なトークン消費を防ぎながら安全・確実にタスクを遂行できます。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;従来はエージェント製品（クライアント）ごとに設定ファイルの配置場所や記述形式が異なるため、同じスキルや外部ツール連携を、Cursor 用、Copilot 用、Claude Code 用…と個別に書き直す必要がありました。&lt;/p&gt;&#10;&lt;p&gt;この問題を解決するため、&lt;strong&gt;2026 年 8 月 6 日、Vercel、OpenAI、Google、Microsoft、Anysphere（Cursor）、Amazon（AWS）らが共同で策定したオープン標準規格が「Agent Plugins 1.0.0」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;div class="details admonition info open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;Agent Plugins とは？&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;Rules（規約）、MCP（ツール接続）、Skills（スキル）を &lt;strong&gt;1 つのディレクトリにまとめて配布・利用できるようにした「エージェント向けプラグイン（拡張機能）」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;2026 年 8 月に策定された共通規格（1.0.0）に準拠することで、「Write once, run in any agent（一度作れば、どの AI エージェントでもそのまま動く）」という高いポータビリティを実現します。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;本記事では、単一プロンプトから始まったエージェント拡張の歴史、Agent Plugins がオープン規格として標準化された背景、そして Skills（スキル）と MCP（外部ツール接続）を統合するプラグインの仕組みとディレクトリ構造を解説します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="エージェント拡張の歴史とオープン標準への進化"&gt;&lt;span&gt;エージェント拡張の歴史と「オープン標準」への進化&lt;/span&gt;&#10; &lt;a href="#%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e6%8b%a1%e5%bc%b5%e3%81%ae%e6%ad%b4%e5%8f%b2%e3%81%a8%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e6%a8%99%e6%ba%96%e3%81%b8%e3%81%ae%e9%80%b2%e5%8c%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;エージェントのカスタマイズ手法は、チャットプロンプトによる手動指示（前史）から単一ファイルのルール、そして業界横断のオープン標準規格へと進化してきました。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" src='https://sesame.purplemoon.org/posts/2026/08/agent-plugins-introduction/agent-plugins-evolution.jpg' alt="エージェント拡張の3世代の進化：単一ルールファイルからオープン標準 Agent Plugins 1.0.0 へ" height="768" width="1376"&gt;&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="前史チャットプロンプト時代prompt-in-chat"&gt;&lt;span&gt;前史：チャットプロンプト時代（Prompt in Chat）&lt;/span&gt;&#10; &lt;a href="#%e5%89%8d%e5%8f%b2%e3%83%81%e3%83%a3%e3%83%83%e3%83%88%e3%83%97%e3%83%ad%e3%83%b3%e3%83%97%e3%83%88%e6%99%82%e4%bb%a3prompt-in-chat" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;特徴&lt;/strong&gt;: リポジトリに設定ファイルを置く仕組みがなく、毎回チャット欄の冒頭にコーディング規約や手順を手動でペーストしていた時代。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;課題（会話履歴要約による指示の消滅）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;会話が 10〜20 ターンと進むと、コンテキスト上限に達したエージェントが過去の会話履歴を自動要約・圧縮（Compact）します。&lt;/li&gt;&#10;&lt;li&gt;その際、&lt;strong&gt;「最初にプロンプトで伝えたはずの規約や前提条件」が要約によって削ぎ落とされ（Lossy Compression）、指示が効かなくなる&lt;/strong&gt; という問題が生じていました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="第-1-世代単一指示ファイル時代と-agentsmd-の登場prompt-in-repo"&gt;&lt;span&gt;第 1 世代：単一指示ファイル時代と AGENTS.md の登場（Prompt in Repo）&lt;/span&gt;&#10; &lt;a href="#%e7%ac%ac-1-%e4%b8%96%e4%bb%a3%e5%8d%98%e4%b8%80%e6%8c%87%e7%a4%ba%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e6%99%82%e4%bb%a3%e3%81%a8-agentsmd-%e3%81%ae%e7%99%bb%e5%a0%b4prompt-in-repo" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;誕生の背景&lt;/strong&gt;: 前史の「要約で指示が消える」問題を回避するため、「リポジトリ内に指示ファイルを置き、毎ターンのプロンプト（システムコンテキスト）に自動で丸ごと結合して LLM へ送信する」仕組みが生まれました。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;初期の混乱と共通化（AGENTS.md）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;当初はエージェントごとに &lt;code&gt;.cursorrules&lt;/code&gt;、&lt;code&gt;copilot-instructions.md&lt;/code&gt;、&lt;code&gt;CLAUDE.md&lt;/code&gt; と設定ファイルが乱立していました。&lt;/li&gt;&#10;&lt;li&gt;この分断を解消するため、業界横断の共通仕様としてリポジトリ直下の &lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; への標準化&lt;/strong&gt; が進み、多くのクライアント（Antigravity、Cursor、Copilot 等）がこれを共通ルールとして読み込むようになりました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;直面した「単一ファイル方式」の実用上の課題&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ファイル名の統一には成功したものの、&lt;strong&gt;「1 つのファイルに規約・手順・API 仕様をすべて列挙するアーキテクチャ」そのものが持つ構造的な課題&lt;/strong&gt; が浮き彫りになりました。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Context Bloat（プロンプト肥大化とコスト増）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;常時ロードされる指示ファイル（固定費）に加えて、作業が進むにつれて会話履歴や読み込んだコード（変動費）が蓄積され、プロンプト全体が膨らんでコンテキスト上限を圧迫し、レイテンシが悪化する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Attention Dilution（注意の希釈と「中央ゾーンの指示無視」）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;em&gt;Dilution&lt;/em&gt;（希釈・薄まり）。プロンプトは「① 文頭のシステム指示」「② 中盤の指示ファイルと会話履歴」「③ 文末の最新ユーザー入力」というサンドイッチ構造で LLM に送られます。&lt;/li&gt;&#10;&lt;li&gt;スタンフォード大等の研究 &lt;strong&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;『Lost in the Middle』(Liu et al., 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt; が実証した通り、LLM は文頭と文末には強い注意（Attention）を払いますが、&lt;strong&gt;中央付近に位置するテキストへの Attention は著しく低下（U 字型カーブの谷底）&lt;/strong&gt; します。&lt;/li&gt;&#10;&lt;li&gt;指示ファイルが長大化したり会話履歴が伸びるほど、ファイル中盤に書かれた重要ルール（「テストを必ず書く」「特定記法を避ける」等）が中央のブラックホールゾーンに沈み込み、AI が指示を見落とす原因になっていました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="第-2-世代機能パーツごとの標準化mcp-と-skillsとパッケージの分断"&gt;&lt;span&gt;第 2 世代：機能パーツごとの標準化（MCP と Skills）とパッケージの分断&lt;/span&gt;&#10; &lt;a href="#%e7%ac%ac-2-%e4%b8%96%e4%bb%a3%e6%a9%9f%e8%83%bd%e3%83%91%e3%83%bc%e3%83%84%e3%81%94%e3%81%a8%e3%81%ae%e6%a8%99%e6%ba%96%e5%8c%96mcp-%e3%81%a8-skills%e3%81%a8%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%81%ae%e5%88%86%e6%96%ad" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP（Model Context Protocol）による外部ツール接続の厳格な制御&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;スキルのような「自由なシェル・ターミナル実行」は自由度が高すぎる反面、AI が勝手なコマンドを叩くなど制御が難しいリスクがありました。&lt;/li&gt;&#10;&lt;li&gt;2024 年秋に Anthropic がオープンソース化した &lt;strong&gt;MCP&lt;/strong&gt; は、&lt;strong&gt;「API で提供される、あらかじめ決められた正しい形式の安全な機能のみを呼び出す」&lt;/strong&gt; 仕組みに制限することで、確実で安全なツール制御を標準化しました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Agent Skills による手順定義の標準化（指示ファイルのスリム化 ＋ 段階的開示）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;指示ファイルのスリム化&lt;/strong&gt;: 常時ロードする指示ファイル（&lt;code&gt;AGENTS.md&lt;/code&gt; 等）には最小限の方針・規約と「どんなスキルがあるか」という目次（インデックス）のみを置き、プロンプトを常に軽量・高アテンションに保つ。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;段階的開示（Progressive Disclosure）&lt;/strong&gt;: 各作業の詳細手順や実行スクリプトは &lt;code&gt;skills/&amp;lt;name&amp;gt;/&lt;/code&gt; フォルダに独立させ、&lt;strong&gt;AI が「この作業が必要だ」と判断した瞬間だけノーカットの原本をオンデマンドで読み込む&lt;/strong&gt;。要約（情報の欠落）に頼らず、完全な手順をロスレスで実行できる仕組みを確立（&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;agentskills.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; 規格）。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;直面した新たな壁（パッケージ形式の分断）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ツール接続（MCP）と手順書（Skills）という個別パーツは揃ったものの、&lt;strong&gt;それらを 1 つに束ねて配布・インストールするための「共通パッケージ規格」が存在せず、各エージェント（Cursor、Copilot、Antigravity 等）で設定やフォルダ構造がバラバラ&lt;/strong&gt; でした。&lt;/li&gt;&#10;&lt;li&gt;同じ拡張機能であってもツールごとに別々のフォーマットで設定・保守する必要があり、チーム内での共有や運用の摩擦となっていました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="第-3-世代agent-plugins-100-オープン標準の成立2026-年-8-月"&gt;&lt;span&gt;第 3 世代：Agent Plugins 1.0.0 オープン標準の成立（2026 年 8 月）&lt;/span&gt;&#10; &lt;a href="#%e7%ac%ac-3-%e4%b8%96%e4%bb%a3agent-plugins-100-%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e6%a8%99%e6%ba%96%e3%81%ae%e6%88%90%e7%ab%8b2026-%e5%b9%b4-8-%e6%9c%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;発起・共同策定&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Vercel&lt;/strong&gt; が主導し、&lt;strong&gt;OpenAI&lt;/strong&gt;、&lt;strong&gt;Google&lt;/strong&gt;（Core Maintainer）、&lt;strong&gt;Microsoft&lt;/strong&gt;、&lt;strong&gt;Anysphere（Cursor）&lt;/strong&gt;、&lt;strong&gt;Amazon（AWS）&lt;/strong&gt; が技術運営委員会（TSC: Technical Steering Committee）を結成。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;目的&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;「Write once, run in any agent（一度書けば、どの AI エージェントでもそのまま動く）」&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;プラットフォーム固有の独自仕様を排し、Rules（規約）、MCP（ツール接続）、Skills（スキル）を 1 つの統一ディレクトリ構造（&lt;code&gt;plugin.json&lt;/code&gt;）で管理・配布できるように標準化。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;対応状況とエコシステム&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;統合パッケージ直接対応&lt;/strong&gt;: Cursor、VS Code（GitHub Copilot / 各種 Agent 拡張）、Google Antigravity、ChatGPT / Codex、Kiro など TSC 参加企業や賛同クライアントを中心に共通化が進展。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;個別パーツでの互換性&lt;/strong&gt;: Claude Code や Aider などの独自 CLI は、統合プラグイン（&lt;code&gt;plugin.json&lt;/code&gt;）の直接ロードではなく、自社のディレクトリ構造（&lt;code&gt;CLAUDE.md&lt;/code&gt; や &lt;code&gt;.claude/mcp.json&lt;/code&gt;）を通じて MCP やルールを個別に配置・利用する設計を維持しています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="標準規格の関係性rulesskillsmcp"&gt;&lt;span&gt;標準規格の関係性（Rules・Skills・MCP）&lt;/span&gt;&#10; &lt;a href="#%e6%a8%99%e6%ba%96%e8%a6%8f%e6%a0%bc%e3%81%ae%e9%96%a2%e4%bf%82%e6%80%a7rulesskillsmcp" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Agent Plugins はゼロから作られたものではなく、&lt;strong&gt;先行して普及していた 2 つのオープン標準「MCP」と「Agent Skills」を包括する「共通プラグイン規格」&lt;/strong&gt; として位置づけられています。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" src='https://sesame.purplemoon.org/posts/2026/08/agent-plugins-introduction/agent-plugins-architecture.jpg' alt="3つのオープン標準規格の関係性と統合アーキテクチャ" height="768" width="1376"&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;MCP (Model Context Protocol)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Anthropic が 2024 年秋に策定したオープン規格。エージェントが外部世界（DB、GitHub、クラウド）と安全にやり取りするための &lt;strong&gt;「外部ツール・API 接続」&lt;/strong&gt; を提供します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Skills (agentskills.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;2025 年から広まった手順書規格。エージェントが特定タスクを確実に遂行するための &lt;strong&gt;「手順書（&lt;code&gt;SKILL.md&lt;/code&gt;）と実行スクリプト（&lt;code&gt;scripts/&lt;/code&gt;）」&lt;/strong&gt; を提供します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://agent-plugins.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Plugins (agent-plugins.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;2026 年 8 月に策定された統合規格。上記 2 つの先行規格（MCP と Skills）および Rules を 1 つのディレクトリに束ね、どのエージェントでもそのまま動くようにする &lt;strong&gt;「共通プラグイン（配布・利用単位）」&lt;/strong&gt; です。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="agent-plugins-のディレクトリ構造とマニフェスト仕様"&gt;&lt;span&gt;Agent Plugins のディレクトリ構造とマニフェスト仕様&lt;/span&gt;&#10; &lt;a href="#agent-plugins-%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a7%8b%e9%80%a0%e3%81%a8%e3%83%9e%e3%83%8b%e3%83%95%e3%82%a7%e3%82%b9%e3%83%88%e4%bb%95%e6%a7%98" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Agent Plugins 1.0.0 では、相互運用性を保証するために明確なディレクトリレイアウトとマニフェスト（&lt;code&gt;plugin.json&lt;/code&gt;）が定義されています。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;plugins/&amp;lt;plugin_name&amp;gt;/&#10;├── plugin.json # 【必須】プラグインの定義・名札（必須マニフェスト）&#10;├── skills/ # 【任意】手順書を含める場合に配置（Agent Skills 規格）&#10;│ └── &amp;lt;skill_name&amp;gt;/&#10;│ ├── SKILL.md # 【必須】スキルの手順書（フロントマター ＋ 本文）&#10;│ └── scripts/ # 【任意】自動化スクリプトを含める場合に配置&#10;└── mcp.json # 【任意】外部ツール・API 連携を含める場合に配置&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="pluginjson-の仕様"&gt;&lt;span&gt;&lt;code&gt;plugin.json&lt;/code&gt; の仕様&lt;/span&gt;&#10; &lt;a href="#pluginjson-%e3%81%ae%e4%bb%95%e6%a7%98" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;div class="details admonition info open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;マニフェスト（Manifest / plugin.json）とは？&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;ソフトウェアやプラグインの &lt;strong&gt;「名札・基本プロフィール（メタデータ）を記した定義ファイル」&lt;/strong&gt; のことです。&lt;/p&gt;&#10;&lt;p&gt;Node.js における &lt;code&gt;package.json&lt;/code&gt; や、Chrome 拡張機能の &lt;code&gt;manifest.json&lt;/code&gt; と同じ役割を果たします。エージェントはまずこのファイルを読むことで、「このプラグインの名前は何か」「どんな目的で作られたのか」「どのバージョンか」を一目で認識し、安全にロードします。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;プラグインのルートに配置するマニフェストファイルです。エージェント間の互換性を保つため、スキーマ定義に基づいた厳格なメタデータが記述されます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;$schema&amp;#34;: &amp;#34;https://agentplugins.io/schemas/v1/plugin.json&amp;#34;,&#10; &amp;#34;name&amp;#34;: &amp;#34;devops-toolkit&amp;#34;,&#10; &amp;#34;description&amp;#34;: &amp;#34;インフラデプロイ手順、DBマイグレーション、および Cloud MCP 連携を提供するプラグイン&amp;#34;,&#10; &amp;#34;version&amp;#34;: &amp;#34;1.0.0&amp;#34;,&#10; &amp;#34;disabled&amp;#34;: false&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;div class="details admonition info open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-circle-info" aria-hidden="true"&gt;&lt;/i&gt;JSON スキーマ（&lt;code&gt;$schema&lt;/code&gt;）とは？&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;JSON ファイルに &lt;strong&gt;「必須項目やデータ型のルールブック（設計図）」を適用するための仕組み&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;VS Code や Cursor 等のモダンなエディタにはスキーマエンジンが標準内蔵されているため、&lt;strong&gt;特別なプラグインの追加や事前設定は一切不要&lt;/strong&gt; です。冒頭に &lt;code&gt;&amp;quot;$schema&amp;quot;: &amp;quot;https://...&amp;quot;&lt;/code&gt; と 1 行記述しておくだけで、エディタが自動でネットからルールブックを読み込み、誰の PC 環境でも即座に以下の支援が有効になります。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;エディタの入力補完&lt;/strong&gt;: &lt;code&gt;Ctrl + Space&lt;/code&gt; で、次に書くべきキー（&lt;code&gt;description&lt;/code&gt; や &lt;code&gt;version&lt;/code&gt; 等）が自動でサジェストされます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;タイポ（スペルミス）の即時検知&lt;/strong&gt;: キー名を打ち間違えたり、必須項目を書き忘れた場合にエディタが赤波線で警告してくれます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;エージェントによる整合性検証&lt;/strong&gt;: AI エージェントがプラグインを読み込む際、壊れた不正な設定ファイルを自動で検知・除外できます。&lt;/li&gt;&#10;&lt;/ol&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;$schema&lt;/code&gt;&lt;/strong&gt;: 公式の Agent Plugins JSON スキーマ URI（エディタでの入力補完やバリデーションを有効化）&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;name&lt;/code&gt;&lt;/strong&gt;: プラグインの一意な識別名&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;description&lt;/code&gt;&lt;/strong&gt;: エージェントがプラグインの目的を理解するための自然言語テキスト&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;version&lt;/code&gt;&lt;/strong&gt;: セマンティックバージョニング（SemVer）に準拠したバージョン表記&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="コア構成要素-agent-skills手順書と実行スクリプト"&gt;&lt;span&gt;コア構成要素 ①：Agent Skills（手順書と実行スクリプト）&lt;/span&gt;&#10; &lt;a href="#%e3%82%b3%e3%82%a2%e6%a7%8b%e6%88%90%e8%a6%81%e7%b4%a0-agent-skills%e6%89%8b%e9%a0%86%e6%9b%b8%e3%81%a8%e5%ae%9f%e8%a1%8c%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Agent Skills 規格（&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;agentskills.io&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;）&lt;/strong&gt; に準拠した手順書（Runbook）です。&lt;/p&gt;&#10;&lt;p&gt;エージェント起動時は &lt;code&gt;SKILL.md&lt;/code&gt; のフロントマター（&lt;code&gt;name&lt;/code&gt; と &lt;code&gt;description&lt;/code&gt;）のみを読み込み、ユーザーの指示が合致した瞬間だけ本文がコンテキストへ注入される &lt;strong&gt;「Progressive Disclosure（段階的開示）」&lt;/strong&gt; により、トークン消費を抑えながら確実な手順実行を実現します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;---&#10;name: db-migration&#10;description: データベースの新規マイグレーション作成、適用、および整合性チェックを行う際に使用する。&#10;---&#10;&#10;# Database Migration Procedure&#10;&#10;## 前提条件&#10;- Docker コンテナでローカル DB が起動していること。&#10;&#10;## 実行手順&#10;1. `./scripts/validate.sh` を実行して接続を確認する。&#10;2. `npm run migrate:up` を実行する。&#10;3. `npm run test:db` で整合性を確認する。&#10;4. エラーが発生した場合は `npm run migrate:down` でロールバックする。&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="コア構成要素-mcp外部ツールapi-接続"&gt;&lt;span&gt;コア構成要素 ②：MCP（外部ツール・API 接続）&lt;/span&gt;&#10; &lt;a href="#%e3%82%b3%e3%82%a2%e6%a7%8b%e6%88%90%e8%a6%81%e7%b4%a0-mcp%e5%a4%96%e9%83%a8%e3%83%84%e3%83%bc%e3%83%abapi-%e6%8e%a5%e7%b6%9a" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;MCP は、自由すぎるシェル実行による暴走やミスを防ぎ、&lt;strong&gt;「API で提供される、あらかじめ許可された特定の機能のみ」を決められた正しい形式で安全に呼び出せるようにした&lt;/strong&gt; ツール接続規格です。&lt;/p&gt;&#10;&lt;p&gt;プラグイン内の &lt;code&gt;mcp.json&lt;/code&gt;（または &lt;code&gt;mcp_config.json&lt;/code&gt;）で宣言された MCP サーバーは、プラグインが有効化された際にクライアントによって自動起動・接続されます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;mcpServers&amp;#34;: {&#10; &amp;#34;github&amp;#34;: {&#10; &amp;#34;command&amp;#34;: &amp;#34;npx&amp;#34;,&#10; &amp;#34;args&amp;#34;: [&amp;#34;-y&amp;#34;, &amp;#34;@modelcontextprotocol/server-github&amp;#34;],&#10; &amp;#34;env&amp;#34;: {&#10; &amp;#34;GITHUB_PERSONAL_ACCESS_TOKEN&amp;#34;: &amp;#34;${env:GITHUB_TOKEN}&amp;#34;&#10; }&#10; },&#10; &amp;#34;db-inspect&amp;#34;: {&#10; &amp;#34;command&amp;#34;: &amp;#34;uvx&amp;#34;,&#10; &amp;#34;args&amp;#34;: [&amp;#34;mcp-server-sqlite&amp;#34;, &amp;#34;--db-path&amp;#34;, &amp;#34;./data/dev.db&amp;#34;]&#10; }&#10; }&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;div class="details admonition warning open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-exclamation-triangle" aria-hidden="true"&gt;&lt;/i&gt;環境変数によるシークレット管理&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;プラグインを Git でチーム共有したり外部配布した際に &lt;strong&gt;API キーや機密情報の漏洩を防ぐため&lt;/strong&gt;、トークンやパスワードは設定ファイルに直接記述せず、必ず &lt;code&gt;${env:VAR_NAME}&lt;/code&gt; 形式で各ユーザーの実行環境から動的に注入します。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="プラグインの配置と共有モデル"&gt;&lt;span&gt;プラグインの配置と共有モデル&lt;/span&gt;&#10; &lt;a href="#%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%ae%e9%85%8d%e7%bd%ae%e3%81%a8%e5%85%b1%e6%9c%89%e3%83%a2%e3%83%87%e3%83%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Agent Plugins 1.0.0 は「プラグイン内部のフォーマット」を統一する&lt;strong&gt;相互運用性の最低基準（Interoperability Floor：互換性を保つための共通の土台）&lt;/strong&gt; であり、&lt;strong&gt;配置場所やインストール・管理方法は各エージェント（クライアント）の仕様&lt;/strong&gt; に委ねられています。&lt;/p&gt;&#10;&lt;p&gt;主な配置・共有の形態：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;リポジトリ内共有&lt;/strong&gt;: 各エージェントがサポートするプロジェクト内ディレクトリに配置し、Git でチームメンバーと共有。&#10;&lt;ul&gt;&#10;&lt;li&gt;例: &lt;strong&gt;&lt;code&gt;.agents/plugins/&amp;lt;name&amp;gt;/&lt;/code&gt;&lt;/strong&gt;（Antigravity、Cursor、Copilot 等で共通してサポートされるデファクト配置）&lt;/li&gt;&#10;&lt;li&gt;例: &lt;strong&gt;&lt;code&gt;.gemini/plugins/&amp;lt;name&amp;gt;/&lt;/code&gt;&lt;/strong&gt;（Antigravity 固有）、&lt;strong&gt;&lt;code&gt;.vscode/plugins/&amp;lt;name&amp;gt;/&lt;/code&gt;&lt;/strong&gt;（VS Code / Copilot 固有）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;個人環境でのグローバル利用&lt;/strong&gt;: 各ツールのグローバル設定ディレクトリ（例: &lt;code&gt;~/.gemini/antigravity-cli/plugins/&lt;/code&gt; など）に配置し、全プロジェクトで共通して利用。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;外部配布&lt;/strong&gt;: Git リポジトリや将来的なパッケージレジストリを通じた OSS プラグインの共有。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="実践例チーム共通のリリース自動化プラグイン"&gt;&lt;span&gt;実践例：チーム共通の「リリース自動化プラグイン」&lt;/span&gt;&#10; &lt;a href="#%e5%ae%9f%e8%b7%b5%e4%be%8b%e3%83%81%e3%83%bc%e3%83%a0%e5%85%b1%e9%80%9a%e3%81%ae%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e8%87%aa%e5%8b%95%e5%8c%96%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;オープン標準の Agent Plugins を使えば、Skills（手順・スクリプト）と MCP（外部ツール接続）が 1 まとまりになった再利用可能な拡張機能をシンプルに構築できます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;plugins/release-toolkit/&#10;├── plugin.json # プラグイン定義（バージョン・説明）&#10;├── skills/&#10;│ └── prepare-release/&#10;│ ├── SKILL.md # リリース前テスト・CHANGELOG 生成手順&#10;│ └── scripts/&#10;│ └── check-diff.sh&#10;└── mcp.json # GitHub MCP（PR 作成・タグ打ちツール）&lt;/code&gt;&lt;/pre&gt;&lt;h4 class="heading-element" id="1-プラグイン定義-pluginjson"&gt;&lt;span&gt;1. プラグイン定義 (&lt;code&gt;plugin.json&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#1-%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e5%ae%9a%e7%be%a9-pluginjson" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;$schema&amp;#34;: &amp;#34;https://agentplugins.io/schemas/v1/plugin.json&amp;#34;,&#10; &amp;#34;name&amp;#34;: &amp;#34;release-toolkit&amp;#34;,&#10; &amp;#34;description&amp;#34;: &amp;#34;バージョン検証、CHANGELOG 生成、および GitHub リリース PR 発行を自動化するプラグイン&amp;#34;,&#10; &amp;#34;version&amp;#34;: &amp;#34;1.0.0&amp;#34;&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;h4 class="heading-element" id="2-リリース手順書-skillsprepare-releaseskillmd"&gt;&lt;span&gt;2. リリース手順書 (&lt;code&gt;skills/prepare-release/SKILL.md&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#2-%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e6%89%8b%e9%a0%86%e6%9b%b8-skillsprepare-releaseskillmd" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;---&#10;name: prepare-release&#10;description: リリース前の差分検証、テスト実行、CHANGELOG 更新を行い、リリース PR を準備する際に使用する。&#10;---&#10;&#10;# Release Preparation Procedure&#10;&#10;## 実行手順&#10;1. `./scripts/check-diff.sh` を実行し、未コミットの差分や型エラーがないか検証する。&#10;2. `npm test` を実行して全テストが通過することを確認する。&#10;3. 前回タグからのコミットログを抽出し、`CHANGELOG.md` を更新する。&#10;4. GitHub MCP の `create_pull_request` ツールを呼び出し、「Release vX.Y.Z」の PR を作成する。&lt;/code&gt;&lt;/pre&gt;&lt;h4 class="heading-element" id="3-実行スクリプト-skillsprepare-releasescriptscheck-diffsh"&gt;&lt;span&gt;3. 実行スクリプト (&lt;code&gt;skills/prepare-release/scripts/check-diff.sh&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#3-%e5%ae%9f%e8%a1%8c%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88-skillsprepare-releasescriptscheck-diffsh" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash&#10;set -euo pipefail&#10;&#10;echo &amp;#34;=== リリース前検証を開始 ===&amp;#34;&#10;&#10;# 1. 未コミット差分の確認&#10;if [ -n &amp;#34;$(git status --porcelain)&amp;#34; ]; then&#10; echo &amp;#34;Error: 作業ツリーに未コミットの変更が存在します。&amp;#34; &amp;gt;&amp;amp;2&#10; exit 1&#10;fi&#10;&#10;# 2. 型チェックの実行&#10;echo &amp;#34;TypeScript 型チェック中...&amp;#34;&#10;npm run typecheck&#10;&#10;echo &amp;#34;✓ 検証完了: リリース準備が可能です。&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;h4 class="heading-element" id="4-外部ツール接続-mcpjson"&gt;&lt;span&gt;4. 外部ツール接続 (&lt;code&gt;mcp.json&lt;/code&gt;)&lt;/span&gt;&#10; &lt;a href="#4-%e5%a4%96%e9%83%a8%e3%83%84%e3%83%bc%e3%83%ab%e6%8e%a5%e7%b6%9a-mcpjson" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;mcpServers&amp;#34;: {&#10; &amp;#34;github&amp;#34;: {&#10; &amp;#34;command&amp;#34;: &amp;#34;npx&amp;#34;,&#10; &amp;#34;args&amp;#34;: [&amp;#34;-y&amp;#34;, &amp;#34;@modelcontextprotocol/server-github&amp;#34;],&#10; &amp;#34;env&amp;#34;: {&#10; &amp;#34;GITHUB_PERSONAL_ACCESS_TOKEN&amp;#34;: &amp;#34;${env:GITHUB_TOKEN}&amp;#34;&#10; }&#10; }&#10; }&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Skills&lt;/strong&gt;: リリース前チェック手順書をオンデマンドで展開し、差分確認スクリプトを実行。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MCP&lt;/strong&gt;: GitHub MCP ツールを安全に呼び出してリリース PR を発行。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="agent-plugins-の今後の展望"&gt;&lt;span&gt;Agent Plugins の今後の展望&lt;/span&gt;&#10; &lt;a href="#agent-plugins-%e3%81%ae%e4%bb%8a%e5%be%8c%e3%81%ae%e5%b1%95%e6%9c%9b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;バージョン 1.0.0 の策定によって「共通のディレクトリ構造」という最低限の土台（Interoperability Floor）が確立されました。今後は以下のような領域でのエコシステムの発展が期待されています。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;パッケージレジストリと導入の自動化&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;現在は Git リポジトリやローカルディレクトリでの配置が中心ですが、今後は npm や Homebrew のように &lt;code&gt;agent install &amp;lt;plugin-name&amp;gt;&lt;/code&gt; といったコマンドで即座にプラグインを導入・更新できる公式レジストリの整備が進む見込みです。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;セキュリティと実行パーミッションの標準化&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;プラグインに同梱されたスクリプトや MCP ツールがホスト環境を安全に操作できるよう、サンドボックス実行やアクセス権限（パーミッション承認）の共通モデル策定が議論されています。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;エコシステム全体の相互運用性の深化&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;現在は独自ディレクトリ構成をとっている CLI ツールやチャットプラットフォームも含め、業界全体でのプラグイン互換性のさらなる拡大が見込まれます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Agent Plugins 1.0.0 は、独自機能の乱立から、&lt;strong&gt;業界横断のオープン標準（Open Specification）への進化&lt;/strong&gt; を象徴する規格です。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;誕生の必然&lt;/strong&gt;: チャットプロンプト（前史）➔ 単一指示ファイル（第1世代）➔ MCP/Skills による機能分離（第2世代）➔ &lt;strong&gt;共通プラグイン規格（第3世代）&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;主要各社による共同策定&lt;/strong&gt;: Vercel、OpenAI、Google、Microsoft、Cursor、AWS らが手を組み、ベンダー中立なオープン仕様として標準化&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;2 大オープン標準の統合&lt;/strong&gt;: 「MCP（安全なツール接続）」＋「Skills（オンデマンド手順書）」を 1 つの統一ディレクトリに集約&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;これにより、一度プラグインを作成すれば、Cursor、VS Code、Google Antigravity、ChatGPT など対応クライアントを選ばずに同一の高度なエージェントワークフローを展開できるようになりました。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="公式仕様規格ハブ"&gt;&lt;span&gt;公式仕様・規格ハブ&lt;/span&gt;&#10; &lt;a href="#%e5%85%ac%e5%bc%8f%e4%bb%95%e6%a7%98%e8%a6%8f%e6%a0%bc%e3%83%8f%e3%83%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://agent-plugins.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Plugins: The Open Packaging Standard (agent-plugins.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://modelcontextprotocol.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Model Context Protocol: Open Standard for AI Tools (modelcontextprotocol.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://agentskills.io" target="_blank" rel="external nofollow noopener noreferrer"&gt;Agent Skills: Open Runbook Specification (agentskills.io)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="学術論文コンテキスト特性attention-希釈"&gt;&lt;span&gt;学術論文（コンテキスト特性・Attention 希釈）&lt;/span&gt;&#10; &lt;a href="#%e5%ad%a6%e8%a1%93%e8%ab%96%e6%96%87%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e7%89%b9%e6%80%a7attention-%e5%b8%8c%e9%87%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;Lost in the Middle: How Language Models Use Long Contexts (Liu et al., 2023 / Stanford University, UC Berkeley)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Antigravity CLI で実践する自律実行ループ設計（ループエンジニアリング）</title><link>https://sesame.purplemoon.org/posts/2026/08/antigravity-cli-loop-engineering/</link><pubDate>Mon, 17 Aug 2026 02:40:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/antigravity-cli-loop-engineering/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/ai-development/">AI Development</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="ループエンジニアリングとは"&gt;&lt;span&gt;ループエンジニアリングとは&lt;/span&gt;&#10; &lt;a href="#%e3%83%ab%e3%83%bc%e3%83%97%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0%e3%81%a8%e3%81%af" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Google の Addy Osmani 氏は、エッセイ &lt;a href="https://addyosmani.com/blog/loop-engineering/" target="_blank" rel="external nofollow noopener noreferrer"&gt;『Loop Engineering』(2026-06-07)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt; の中で、ループエンジニアリングを&#10;次のように定義しています。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;エージェントに指示を与える役割を自分自身から切り離し、代わりにその指示を行うシステムを設計すること&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://addyosmani.com/blog/loop-engineering/" target="_blank" rel="external nofollow noopener noreferrer"&gt;Loop Engineering(2026-06-07)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Claude Code の開発を率いるボリス・チェルニー（Boris Cherny）氏も、次のように語っています。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;「私はもう、Claude に直接指示を与えていません。Claude に指示を与え、何をすべきかを判断させるループを実行しています。私の仕事は &lt;strong&gt;『ループ（仕組み）』&lt;/strong&gt; を書くことです。」&#10;— Boris Cherny (Head of Claude Code, Anthropic)&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;div class="alert alert-note"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-info-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;NOTE&lt;/p&gt;&lt;p&gt;&lt;strong&gt;プロンプトエンジニアリングから「ループエンジニアリング」への転換&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;旧来のプロンプトエンジニアリング&lt;/strong&gt;:&#10;人間が AI と対話しながら 1 問 1 答で手動調整するアプローチ。人間がプロンプトを打ち、出力を目視確認するため、人間の思考速度と確認作業が最大のボトルネックになっていました。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ループエンジニアリング&lt;/strong&gt;:&#10;AI 自身がツールを実行し、テスト結果から合否を自己判定して自走する**「自動フィードバックの仕組み（自律ループ）」** を設計・構築するアプローチ。人間の役割は「指示係」から「ループの設計者」へとシフトします。&lt;/li&gt;&#10;&lt;/ul&gt;&lt;/div&gt;&lt;h2 class="heading-element" id="自律ループを支える基本要素"&gt;&lt;span&gt;自律ループを支える基本要素&lt;/span&gt;&#10; &lt;a href="#%e8%87%aa%e5%be%8b%e3%83%ab%e3%83%bc%e3%83%97%e3%82%92%e6%94%af%e3%81%88%e3%82%8b%e5%9f%ba%e6%9c%ac%e8%a6%81%e7%b4%a0" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;Addy Osmani 氏は自律ループを成立させるための &lt;strong&gt;5つの基本要素（Primitives）&lt;/strong&gt; と &lt;strong&gt;1つの外部メモリ（Memory）&lt;/strong&gt; を整理しています。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;構成要素&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ループ内での役割&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;具体的な実装例&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;1. Automations（自動化）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;定期実行・タスクの探索とトリガー&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;定期監視（&lt;code&gt;/schedule&lt;/code&gt;）、ゴール駆動実行（&lt;code&gt;/plan&lt;/code&gt;）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;2. Worktrees（並行隔離）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;エージェント作業の衝突を防ぐ環境分離&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;git worktree&lt;/code&gt;、独立ブランチでの作業&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;3. Skills（スキル）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;特定タスクに必要な手順書・知識のオンデマンド提供&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Agent Skills（&lt;code&gt;SKILL.md&lt;/code&gt; / Runbook）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;4. Plugins / Connectors&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;外部ツールや API との接続&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;MCP（GitHub MCP、各種外部ツール連携）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;5. Sub-agents（サブエージェント）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;実装担当（Maker）と検査担当（Checker）の分離&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;調査用・レビュー用のサブエージェント分割&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;+ Memory（外部記憶）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;セッションを跨いだ知見・進捗の永続化&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;&lt;code&gt;Learnings.md&lt;/code&gt;&lt;/strong&gt; や &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;特に重要なのが &lt;strong&gt;「Memory（外部記憶）」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;Addy 氏が &lt;em&gt;「The agent forgets, the repo doesn&amp;rsquo;t（エージェントは忘れるが、リポジトリは忘れない）」&lt;/em&gt; と述べている通り、&#10;LLM のコンテキストウィンドウの外側（リポジトリ内の Markdown 等）に状態やルールを逃がして引き継ぐことで、初めてセッションが途切れても継続する自律ループが完成します。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="51-の部品が組み合わさることで生まれる3-つの核心要件"&gt;&lt;span&gt;5+1 の部品が組み合わさることで生まれる「3 つの核心要件」&lt;/span&gt;&#10; &lt;a href="#51-%e3%81%ae%e9%83%a8%e5%93%81%e3%81%8c%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%95%e3%82%8b%e3%81%93%e3%81%a8%e3%81%a7%e7%94%9f%e3%81%be%e3%82%8c%e3%82%8b3-%e3%81%a4%e3%81%ae%e6%a0%b8%e5%bf%83%e8%a6%81%e4%bb%b6" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;上記の「5+1 の要素」は、ループを組み立てるための &lt;strong&gt;「構成部品（Primitives）」&lt;/strong&gt; です。&#10;これらが単体で存在するだけでは自律ループは回らず、適切に組み合わさることで初めて後述する &lt;strong&gt;「3 つの核心要件（メカニズム）」&lt;/strong&gt; が満たされます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;① フィードバックの永続化と自己進化&lt;/strong&gt; ◀ &lt;code&gt;Memory&lt;/code&gt; ＋ &lt;code&gt;Skills&lt;/code&gt;（知見の蓄積と定型手順のライブラリ化）&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;② 人間の介入待ちを排除した自律走行&lt;/strong&gt; ◀ &lt;code&gt;Automations&lt;/code&gt; ＋ &lt;code&gt;Worktrees&lt;/code&gt;（環境隔離というハーネスがあるからこそ安全に自走できる）&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;③ AI 自身に合否を判定させる客観的ロジック&lt;/strong&gt; ◀ &lt;code&gt;Plugins (MCP)&lt;/code&gt; ＋ &lt;code&gt;Sub-agents&lt;/code&gt;（検証ツールの自動実行とレビュー分掌）&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 class="heading-element" id="ループエンジニアリングを成立させる-3-つの核心要件"&gt;&lt;span&gt;ループエンジニアリングを成立させる 3 つの核心要件&lt;/span&gt;&#10; &lt;a href="#%e3%83%ab%e3%83%bc%e3%83%97%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0%e3%82%92%e6%88%90%e7%ab%8b%e3%81%95%e3%81%9b%e3%82%8b-3-%e3%81%a4%e3%81%ae%e6%a0%b8%e5%bf%83%e8%a6%81%e4%bb%b6" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ループエンジニアリングの真髄は、これまで人間が頭を使い、目視で行っていた &lt;strong&gt;「確認・合否判定・やり直し指示（フィードバック）」を、可能な限り AI と判定ロジックの仕組みに委ねること&lt;/strong&gt; にあります。&lt;/p&gt;&#10;&lt;p&gt;ただし、AI に自律的な行動を委ねるには、大前提として &lt;strong&gt;「ハーネス（Harness）」&lt;/strong&gt; ── すなわち Docker コンテナや Git ブランチ分離等による &lt;strong&gt;影響の隔離（Sandboxing）と可逆性（Reversibility）を保証する安全な実行環境&lt;/strong&gt; ── が整備されている必要があります。このハーネスという土台の上で、以下の 3 つの本質的な足場が不可欠です。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" src='https://sesame.purplemoon.org/posts/2026/08/antigravity-cli-loop-engineering/three-core-pillars.jpg' alt="ループエンジニアリングの 3 大核心要件" height="768" width="1376"&gt;&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="1-フィードバックの永続化と自己進化外部記憶"&gt;&lt;span&gt;1. フィードバックの永続化と自己進化（外部記憶）&lt;/span&gt;&#10; &lt;a href="#1-%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%83%90%e3%83%83%e3%82%af%e3%81%ae%e6%b0%b8%e7%b6%9a%e5%8c%96%e3%81%a8%e8%87%aa%e5%b7%b1%e9%80%b2%e5%8c%96%e5%a4%96%e9%83%a8%e8%a8%98%e6%86%b6" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;エージェントのコンテキスト肥大化を防ぎつつ、過去の失敗やプロジェクト固有ノウハウを引き継ぐため、外部記憶を &lt;strong&gt;「常時ロード層」&lt;/strong&gt; と &lt;strong&gt;「オンデマンド参照・自己進化層」&lt;/strong&gt; の 2 つに分離します。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" src='https://sesame.purplemoon.org/posts/2026/08/antigravity-cli-loop-engineering/two-tier-memory-architecture.jpg' alt="2層構造の外部記憶アーキテクチャ（AGENTS.md と Learnings.md）" height="768" width="1376"&gt;&lt;/p&gt;&#10;&lt;div class="alert alert-tip"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-light-bulb-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;TIP&lt;/p&gt;&lt;p&gt;&lt;strong&gt;単一指示ファイルの肥大化が引き起こす 2 つの技術的ボトルネック&lt;/strong&gt;&#10;&lt;code&gt;AGENTS.md&lt;/code&gt; や &lt;code&gt;CLAUDE.md&lt;/code&gt; に過去のエラー対策をすべて書き足していくアプローチには、以下の欠陥があります。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Context Bloat（トークン消費の爆発）&lt;/strong&gt;:&#10;大量の知見が毎ターン送信され、何もしなくても会話開始時点で大量の入力トークンを消費し、レイテンシと API コストが急増します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Attention Dilution / &amp;ldquo;Lost in the Middle&amp;rdquo; 現象（指示の希釈）&lt;/strong&gt;:&#10;スタンフォード大等の研究 &lt;strong&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;『Lost in the Middle』(Liu et al., 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt; の通り、プロンプトが長大化・ノイズ化するほど重要指示に対する注意が希釈され、最重要ルールの遵守率が低下します。&lt;/li&gt;&#10;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2 層分離設計の動作メカニズム&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;この課題を解決するのが、&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;（常時ロード層）&lt;/strong&gt; と &lt;strong&gt;&lt;code&gt;Learnings.md&lt;/code&gt;（オンデマンド参照・自己進化層）&lt;/strong&gt; の 2 層構造です。&lt;/p&gt;&#10;&lt;div class="alert alert-tip"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-light-bulb-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;TIP&lt;/p&gt;&lt;p&gt;&lt;strong&gt;常時ロード層 vs オンデマンド参照層の仕組み&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;（常時強制ロード）&lt;/strong&gt;:&#10;エージェントツールの基盤仕様として、毎ターンのプロンプトに無条件で自動注入されます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;Learnings.md&lt;/code&gt;（オンデマンド参照）&lt;/strong&gt;:&#10;システムが全行を自動注入することはありません。&lt;code&gt;AGENTS.md&lt;/code&gt; のポインタ指示に従い、エージェントが必要な時だけツール（&lt;code&gt;view_file&lt;/code&gt; や &lt;code&gt;grep_search&lt;/code&gt;）で&lt;strong&gt;能動的に検索・読み込みを行う通常ファイル&lt;/strong&gt;として扱われます。&lt;/li&gt;&#10;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;「ポインタ（参照）」としての &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/strong&gt;&#10;単に &lt;code&gt;Learnings.md&lt;/code&gt; をリポジトリに置いただけでは、エージェントはそのファイルの存在に気づかない可能性があります。そこで、常時ロードされる &lt;code&gt;AGENTS.md&lt;/code&gt; に以下のような &lt;strong&gt;ポインタ（索引指示）&lt;/strong&gt; を 1 行だけ記述します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;- **知見の参照**: 詳細な技術仕様や過去のトラブルシューティングは Learnings.md を参照する。&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これにより、プログラミングにおける「ポインタ・参照渡し」と同じ構造が作られます。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;エージェント起動時&lt;/strong&gt;:&#10;コンテキストには軽量な &lt;code&gt;AGENTS.md&lt;/code&gt;（数十行）のみが注入され、トークン消費を最小限に抑えます。エージェントは「困ったときは &lt;code&gt;Learnings.md&lt;/code&gt; という外部ナレッジがある」というポインタ情報のみを把握しています。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;タスク実行時（オンデマンド参照）&lt;/strong&gt;:&#10;ビルドエラーや環境固有の仕様に直面した際、エージェントは &lt;code&gt;AGENTS.md&lt;/code&gt; のポインタ指示に従い、ツール経由で &lt;code&gt;Learnings.md&lt;/code&gt; をピンポイントで検索・読み込みます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;タスク完了時（自己進化）&lt;/strong&gt;:&#10;新しいバグ修正や仕様の発見があった場合、エージェント自身が &lt;code&gt;Learnings.md&lt;/code&gt; の末尾に知見を自律的に追記・更新します。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="alert alert-tip"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-light-bulb-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;TIP&lt;/p&gt;&lt;p&gt;&lt;strong&gt;知見のライブラリ化（Skills への昇格）&lt;/strong&gt;&#10;&lt;code&gt;Learnings.md&lt;/code&gt; に蓄積された断片的な教訓のうち、定型化・複雑化したワークフローは &lt;strong&gt;&lt;code&gt;Skills&lt;/code&gt;（&lt;code&gt;.agents/skills/*/SKILL.md&lt;/code&gt;）&lt;/strong&gt; へ昇格させます。&#10;スキルは「名前と概要（メタデータ）」のみを軽量保持し、&lt;strong&gt;該当タスク実行時のみ全文がオンデマンド注入される&lt;/strong&gt;ため、トークンを浪費することなく高度な専門手順をライブラリ化できます。&lt;/p&gt;&lt;/div&gt;&lt;div class="alert alert-note"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-info-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;NOTE&lt;/p&gt;&lt;p&gt;&lt;strong&gt;外部記憶アーキテクチャの学術的ルーツと実務背景&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://arxiv.org/abs/2303.11366" target="_blank" rel="external nofollow noopener noreferrer"&gt;Reflexion (Shinn et al., 2023 / NeurIPS 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;:&#10;タスク失敗時に自然言語で自己反省（Self-reflection）を行い、言語的メモリ（Verbal Memory）に蓄積して次回試行時に参照させることで、同一エラーの再発を防ぐ手法を実証。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://arxiv.org/abs/2305.16291" target="_blank" rel="external nofollow noopener noreferrer"&gt;Voyager (Wang et al., 2023 / スタンフォード大・NVIDIA 等)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;:&#10;Minecraft 自律エージェントにおいて、獲得したスキルや手順をディスク上の Skill Library に保存し、必要に応じて動的に検索・再利用する自律学習モデルを確立。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;実務への定着&lt;/strong&gt;:&#10;障害対応の事後検証（Post-mortem）から得られる「Key Learnings」文化と、Addy Osmani 氏の「Memory Primitive（&lt;em&gt;The agent forgets, the repo doesn&amp;rsquo;t&lt;/em&gt;）」が接続し、2 層構造が自律ループの基本設計として定着。&lt;/li&gt;&#10;&lt;/ul&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="2-人間の介入待ちを排除した自律走行ノンブロッキング権限"&gt;&lt;span&gt;2. 人間の介入待ちを排除した自律走行（ノンブロッキング権限）&lt;/span&gt;&#10; &lt;a href="#2-%e4%ba%ba%e9%96%93%e3%81%ae%e4%bb%8b%e5%85%a5%e5%be%85%e3%81%a1%e3%82%92%e6%8e%92%e9%99%a4%e3%81%97%e3%81%9f%e8%87%aa%e5%be%8b%e8%b5%b0%e8%a1%8c%e3%83%8e%e3%83%b3%e3%83%96%e3%83%ad%e3%83%83%e3%82%ad%e3%83%b3%e3%82%b0%e6%a8%a9%e9%99%90" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Automations（ゴール駆動実行や定期監視）&lt;/strong&gt; によってエージェントを自走させる際、コマンドを実行するたびに対話型の承認プロンプト（Confirmation）を挟むと、自律ループがブロックされて人間が再び作業のボトルネックになります。&lt;/p&gt;&#10;&lt;p&gt;たとえば、AI がコードを修正した後に &lt;code&gt;hugo --cleanDestinationDir&lt;/code&gt; で検証しようとするたびに「このコマンドを実行してよいですか？ [y/N]」と聞かれる状況を想像してみてください。人間が承認ボタンを押すまで AI は完全に停止し、自己修復ループは事実上崩壊します。&lt;/p&gt;&#10;&lt;p&gt;日常的に使用するテスト・ビルド・Git コマンドを事前許可（Allowlist 化）し、&lt;strong&gt;「人間の確認待ちによるループ停止」を排除&lt;/strong&gt; して AI を止まらずに自走させます。&lt;/p&gt;&#10;&lt;div class="alert alert-warning"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-alert-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;WARNING&lt;/p&gt;&lt;p&gt;&lt;strong&gt;「言葉による確認スキップ」と「物理サンドボックス」の決定的な違い&lt;/strong&gt;&#10;単にプロンプトで「確認してこないで勝手に進めて」と指示したり、全権限を無制限に解放（&lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;）するのは、&lt;strong&gt;セーフティネットのない危険なノールック運転（YOLO）&lt;/strong&gt; に過ぎません。&lt;/p&gt;&#10;&lt;p&gt;また、「Git があればコードを壊されても戻せる」「テストコマンドだけ許可（Allowlist）すれば安全」という考えにも落とし穴があります。&#10;たとえば &lt;code&gt;npm test&lt;/code&gt; や &lt;code&gt;pytest&lt;/code&gt; を許可していたとしても、&lt;strong&gt;サンドボックスがないホスト環境ではテストプロセス自体がホスト OS の権限で動くため、テストスクリプト内でホスト側の重要ファイルを削除・破壊されるリスク&lt;/strong&gt; を防げません。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Git&lt;/strong&gt;: 「リポジトリ内のコードの可逆性」しか保証しない&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;CLI の Allowlist&lt;/strong&gt;: アプリケーション層の制約に過ぎず、プロセス内部の挙動は防げない&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;サンドボックス（Docker / WSL2 等）&lt;/strong&gt;: &lt;strong&gt;OS カーネルレベルでホストからプロセスを物理隔離する&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;だからこそ、自律ループの権限を解放するには、&lt;strong&gt;「最悪壊れてもホストに影響せず、即座に捨てて再構築できる物理サンドボックス（ハーネス）」&lt;/strong&gt; が絶対の大前提となります。&lt;/p&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 class="heading-element" id="3-ai-自身に合否を判定させる客観的ロジック自動検証"&gt;&lt;span&gt;3. AI 自身に合否を判定させる客観的ロジック（自動検証）&lt;/span&gt;&#10; &lt;a href="#3-ai-%e8%87%aa%e8%ba%ab%e3%81%ab%e5%90%88%e5%90%a6%e3%82%92%e5%88%a4%e5%ae%9a%e3%81%95%e3%81%9b%e3%82%8b%e5%ae%a2%e8%a6%b3%e7%9a%84%e3%83%ad%e3%82%b8%e3%83%83%e3%82%af%e8%87%aa%e5%8b%95%e6%a4%9c%e8%a8%bc" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;人間が画面に張り付いて良し悪しを目視チェックするのをやめ、&lt;strong&gt;Plugins / MCP（ツール実行）&lt;/strong&gt; を通じて「自動テストやビルドスクリプト」を AI 自身に実行させ、合否を自己判断・自己修復させます。&lt;/p&gt;&#10;&lt;p&gt;また、複雑なタスクにおいては &lt;strong&gt;Sub-agents（サブエージェント）&lt;/strong&gt; を活用し、実装担当（Maker）と検査・レビュー担当（Checker）を分掌させることで、人間の代わりに機械的で客観的な二重判定ループを自律的に回すことが可能になります。&lt;/p&gt;&#10;&lt;div class="alert alert-tip"&gt;&lt;p class="alert-title"&gt;&lt;i class="octicon-light-bulb-16 me-2" aria-hidden="true"&gt;&lt;/i&gt;TIP&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Fast Observability（高速な自動検証）を成立させる 4 要件&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;5 秒以内の高速実行&lt;/strong&gt;: 検証が遅いと自己修復ループ全体の回転が鈍化します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;厳格な終了コード（Exit Code 0/1）&lt;/strong&gt;: 成功/失敗を AI が機械的に判定できるようにします。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;明瞭な標準エラー出力（stderr）&lt;/strong&gt;: エラー行・スタックトレースから AI が自力で原因特定できるようにします。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;知見の正確性フィルター&lt;/strong&gt;: 自動テストをパスして再現性が証明された解決策だけを &lt;code&gt;Learnings.md&lt;/code&gt; に蓄積します。&lt;/li&gt;&#10;&lt;/ol&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="antigravity-cliにおけるループエンジニアリングの実践"&gt;&lt;span&gt;Antigravity CLIにおけるループエンジニアリングの実践&lt;/span&gt;&#10; &lt;a href="#antigravity-cli%e3%81%ab%e3%81%8a%e3%81%91%e3%82%8b%e3%83%ab%e3%83%bc%e3%83%97%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0%e3%81%ae%e5%ae%9f%e8%b7%b5" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;これまで解説した &lt;strong&gt;「3 つの核心要件」&lt;/strong&gt; を、Antigravity CLI（&lt;code&gt;agy&lt;/code&gt;）の各機能（5+1 の構成要素）を使って具体的にどう設定・実装するかを解説します。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="3-つの核心要件と-antigravity-cli-機能の実装対応"&gt;&lt;span&gt;3 つの核心要件と Antigravity CLI 機能の実装対応&lt;/span&gt;&#10; &lt;a href="#3-%e3%81%a4%e3%81%ae%e6%a0%b8%e5%bf%83%e8%a6%81%e4%bb%b6%e3%81%a8-antigravity-cli-%e6%a9%9f%e8%83%bd%e3%81%ae%e5%ae%9f%e8%a3%85%e5%af%be%e5%bf%9c" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;核心要件&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Antigravity CLI での実装要素（5+1）&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;具体的なツールと設定ファイル&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;1. フィードバックの永続化と自己進化&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Memory&lt;/strong&gt; ＋ &lt;strong&gt;Skills&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;Learnings.md&lt;/code&gt;、&lt;code&gt;.agents/skills/*/SKILL.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;2. 人間の介入待ちを排除した自律走行&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Permissions&lt;/strong&gt; ＋ &lt;strong&gt;Worktrees&lt;/strong&gt; ＋ &lt;strong&gt;Automations&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;settings.json&lt;/code&gt;（権限設定）、&lt;code&gt;Workspace: &amp;quot;branch&amp;quot;&lt;/code&gt;、&lt;code&gt;/plan&lt;/code&gt;、&lt;code&gt;/schedule&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;3. AI 自身に合否を判定させる客観的ロジック&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Fast Observability&lt;/strong&gt; ＋ &lt;strong&gt;Plugins&lt;/strong&gt; ＋ &lt;strong&gt;Sub-agents&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;自動検証コマンド、GitHub MCP、Checker サブエージェント&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 class="heading-element" id="具体的な環境設定"&gt;&lt;span&gt;具体的な環境設定&lt;/span&gt;&#10; &lt;a href="#%e5%85%b7%e4%bd%93%e7%9a%84%e3%81%aa%e7%92%b0%e5%a2%83%e8%a8%ad%e5%ae%9a" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;当ブログ環境における、3 つの核心要件の具体的なセットアップ手順です。&lt;/p&gt;&#10;&lt;h4 class="heading-element" id="1-フィードバックの永続化外部記憶とスキルmemory--skills"&gt;&lt;span&gt;1. フィードバックの永続化：外部記憶とスキル（Memory ＋ Skills）&lt;/span&gt;&#10; &lt;a href="#1-%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%83%90%e3%83%83%e3%82%af%e3%81%ae%e6%b0%b8%e7%b6%9a%e5%8c%96%e5%a4%96%e9%83%a8%e8%a8%98%e6%86%b6%e3%81%a8%e3%82%b9%e3%82%ad%e3%83%abmemory--skills" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;外部記憶（&lt;code&gt;AGENTS.md&lt;/code&gt; / &lt;code&gt;Learnings.md&lt;/code&gt;）&lt;/strong&gt;:&#10;プロジェクト直下の &lt;code&gt;AGENTS.md&lt;/code&gt; に、基本方針と &lt;code&gt;Learnings.md&lt;/code&gt; に対する参照・自己進化（追記・週次整理）ルールを記述します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;# 自律動作ポリシー&#10;- **自律完遂**: 軽微な判断やエラー自己修復は質問を挟まず自律的に進める。破壊的変更（ファイル破棄や強制プッシュ等）のみ確認を行う。&#10;- **知見の参照**: 詳細な技術仕様や過去のトラブルシューティングは `Learnings.md` を参照する。&#10;- **自己進化**:&#10; - 新たなトラブル解決や環境固有の仕様・ノウハウを発見した際は、自発的に `Learnings.md`（および必要に応じて本 `AGENTS.md`）へ要約追記してタスクを完了する。&#10; - `Learnings.md` の最終整理日から1週間以上経過している場合、内容を棚卸し・整理して日付を当日の日付に更新する。&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;スキルのライブラリ化（&lt;code&gt;.agents/skills/*/SKILL.md&lt;/code&gt;）&lt;/strong&gt;:&#10;定型化された複雑なワークフロー（例：記事の新規作成手順、画像生成ルール等）は、ディレクトリごとに &lt;code&gt;SKILL.md&lt;/code&gt; として切り出し、必要な時だけオンデマンドでエージェントに読み込ませます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 class="heading-element" id="2-自律走行の解放権限環境隔離自動化permissions--worktrees--automations"&gt;&lt;span&gt;2. 自律走行の解放：権限・環境隔離・自動化（Permissions ＋ Worktrees ＋ Automations）&lt;/span&gt;&#10; &lt;a href="#2-%e8%87%aa%e5%be%8b%e8%b5%b0%e8%a1%8c%e3%81%ae%e8%a7%a3%e6%94%be%e6%a8%a9%e9%99%90%e7%92%b0%e5%a2%83%e9%9a%94%e9%9b%a2%e8%87%aa%e5%8b%95%e5%8c%96permissions--worktrees--automations" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ノンブロッキング権限（&lt;code&gt;settings.json&lt;/code&gt;）&lt;/strong&gt;:&#10;日常的に使用する検証コマンドや Git コマンドを &lt;code&gt;~/.gemini/antigravity-cli/settings.json&lt;/code&gt; の &lt;code&gt;permissions.allow&lt;/code&gt; に登録し、確認プロンプトによるループ停止を排除します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;permissions&amp;#34;: {&#10; &amp;#34;allow&amp;#34;: [&#10; &amp;#34;command(hugo*)&amp;#34;,&#10; &amp;#34;command(npm test*)&amp;#34;,&#10; &amp;#34;command(git status)&amp;#34;,&#10; &amp;#34;command(git diff)&amp;#34;,&#10; &amp;#34;command(git log)&amp;#34;,&#10; &amp;#34;command(git commit*)&amp;#34;&#10; ]&#10; }&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;作業環境の隔離（Worktrees / &lt;code&gt;Workspace: &amp;quot;branch&amp;quot;&lt;/code&gt;）&lt;/strong&gt;:&#10;サブエージェント呼び出し時に &lt;code&gt;Workspace: &amp;quot;branch&amp;quot;&lt;/code&gt; を指定し、Git のブランチ・作業ツリーを完全に分離。メイン環境を破壊するリスクを排除します。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;自走トリガー（&lt;code&gt;/plan&lt;/code&gt; や &lt;code&gt;/schedule&lt;/code&gt;、非対話モード &lt;code&gt;-p&lt;/code&gt;）&lt;/strong&gt;:&#10;ゴール駆動実行（&lt;code&gt;/plan&lt;/code&gt;）や定期監視（&lt;code&gt;/schedule&lt;/code&gt;）、CI連携（&lt;code&gt;agy -p&lt;/code&gt;）により、人間の手動入力を介さずに自走ループを回します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 class="heading-element" id="3-客観的判定ロジック自動検証ツール分掌fast-observability--plugins--sub-agents"&gt;&lt;span&gt;3. 客観的判定ロジック：自動検証・ツール・分掌（Fast Observability ＋ Plugins ＋ Sub-agents）&lt;/span&gt;&#10; &lt;a href="#3-%e5%ae%a2%e8%a6%b3%e7%9a%84%e5%88%a4%e5%ae%9a%e3%83%ad%e3%82%b8%e3%83%83%e3%82%af%e8%87%aa%e5%8b%95%e6%a4%9c%e8%a8%bc%e3%83%84%e3%83%bc%e3%83%ab%e5%88%86%e6%8e%8cfast-observability--plugins--sub-agents" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;高速な自動検証（Fast Observability）&lt;/strong&gt;:&#10;エージェントが自己修復ループを回すための「客観的な合否判定コマンド」を用意します。&#10;当ブログでは、出力先（&lt;code&gt;public/&lt;/code&gt;）の過去キャッシュを完全消去した上で、全ページのメタデータ・Markdown 構文・テンプレート（Sass/i18n）の整合性をゼロから 1 秒台で検証するコマンドを定義しています。1 箇所でも不整合があれば Exit Code 1 と明確なエラー行（stderr）が出力されるため、AI が自力で即座に自己修正できます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;# 出力先をクリーンにして全ページの構文・アセット整合性を1秒で機械判定（Exit Code 0/1）&#10;hugo --cleanDestinationDir&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;外部ツール連携（MCP サーバー / Plugins）&lt;/strong&gt;:&#10;GitHub MCP などの &lt;strong&gt;MCP サーバー（Model Context Protocol）&lt;/strong&gt; を連携させ、リモートリポジトリの Issue 取得、PR 作成、ファイル操作をエージェントに直接実行させます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;レビュー分掌（Sub-agents による Maker / Checker 分離）&lt;/strong&gt;:&#10;コードを実装する「Maker エージェント」と、テスト・レビューを担当する「Checker サブエージェント」を &lt;code&gt;invoke_subagent&lt;/code&gt; で分担させ、客観的な二重判定ループを自律実行させます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 class="heading-element" id="他のエージェントツールへの普遍的応用"&gt;&lt;span&gt;他のエージェントツールへの普遍的応用&lt;/span&gt;&#10; &lt;a href="#%e4%bb%96%e3%81%ae%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%83%84%e3%83%bc%e3%83%ab%e3%81%b8%e3%81%ae%e6%99%ae%e9%81%8d%e7%9a%84%e5%bf%9c%e7%94%a8" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;本記事で解説した 3 大核心要件（2 層外部記憶・ノンブロッキング自走・客観的自動検証）は、Antigravity CLI に限らず、Claude Code や Cursor などの主要なコーディングエージェント環境にもそのまま応用できる普遍的な設計パターンです。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;核心要件・設計要素&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Antigravity CLI&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Claude Code&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;Cursor&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;常時ロード層&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;.cursor/rules/*.mdc&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;オンデマンド外部記憶&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;Learnings.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;Learnings.md&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;Learnings.md&lt;/code&gt; / Notepads&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;自走コマンド&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;/plan&lt;/code&gt;, &lt;code&gt;/schedule&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;claude -p&lt;/code&gt; / &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Agent Mode（Yolo モード）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;高速自動検証&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナルコマンド&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;ターミナルコマンド&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Terminal Tool / Task Runner&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="ループエンジニアリングにおける現在の課題"&gt;&lt;span&gt;ループエンジニアリングにおける現在の課題&lt;/span&gt;&#10; &lt;a href="#%e3%83%ab%e3%83%bc%e3%83%97%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%8a%e3%81%91%e3%82%8b%e7%8f%be%e5%9c%a8%e3%81%ae%e8%aa%b2%e9%a1%8c" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ループエンジニアリングは現在進行形で発展しているアプローチであり、実務で運用する上では以下のような課題や限界も存在します。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="1-ハーネス物理サンドボックスの必須性と非隔離環境でのトレードオフ"&gt;&lt;span&gt;1. ハーネス（物理サンドボックス）の必須性と非隔離環境でのトレードオフ&lt;/span&gt;&#10; &lt;a href="#1-%e3%83%8f%e3%83%bc%e3%83%8d%e3%82%b9%e7%89%a9%e7%90%86%e3%82%b5%e3%83%b3%e3%83%89%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9%e3%81%ae%e5%bf%85%e9%a0%88%e6%80%a7%e3%81%a8%e9%9d%9e%e9%9a%94%e9%9b%a2%e7%92%b0%e5%a2%83%e3%81%a7%e3%81%ae%e3%83%88%e3%83%ac%e3%83%bc%e3%83%89%e3%82%aa%e3%83%95" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;AI は確率的・非決定的に動作するため、プロンプトや CLI ツールの設定（ソフトウェア制御）だけで予期せぬ挙動を 100% 防ぐことは原理的に不可能です。そのため、自律ループの構築には OS カーネルレベルでプロセスを封じ込める &lt;strong&gt;「物理サンドボックス（Docker、WSL2、使い捨て VM 等）」が不可欠な前提&lt;/strong&gt; となります。&lt;/p&gt;&#10;&lt;p&gt;しかし、実務環境（特にコンテナ導入に制約がある Windows ホスト等）において物理サンドボックスを用意できない場合、&lt;strong&gt;「安全性と自律性の厳しいトレードオフ」&lt;/strong&gt; に直面します。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;自律性を追求する場合（サンドボックスが必須）&lt;/strong&gt;:&#10;ホスト OS を破壊するリスクを排除するため、最低限の隔離環境（WSL2 や Windows Sandbox、独立 VM）を用意してその中でエージェントを動かす必要があります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;物理隔離がない場合（安全のために自律性を制限）&lt;/strong&gt;:&#10;Allowlist による自動実行はホスト破壊のリスクを伴うため、コマンド実行のたびに人間が目視確認する &lt;strong&gt;「Human in the loop の多発（自律性の犠牲）」を受け入れるのがセキュリティ上極めて正当な判断&lt;/strong&gt; となります。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;また、Docker 等でサンドボックスを構築した場合でも、ホストマウントされたファイルの誤削除、API トークンの漏洩、リモート Git の誤プッシュなど「絶対的な安全」の保証は困難です。安全性を過信せず、破壊的変更への人間確認を残すなどの多重防御（Defense in Depth）が求められます。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="2-良質な自動検証テストの整備保守コスト"&gt;&lt;span&gt;2. 良質な自動検証（テスト）の整備・保守コスト&lt;/span&gt;&#10; &lt;a href="#2-%e8%89%af%e8%b3%aa%e3%81%aa%e8%87%aa%e5%8b%95%e6%a4%9c%e8%a8%bc%e3%83%86%e3%82%b9%e3%83%88%e3%81%ae%e6%95%b4%e5%82%99%e4%bf%9d%e5%ae%88%e3%82%b3%e3%82%b9%e3%83%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;AI が自力で合否を判定するためには、「5 秒以内で Exit Code 0/1 を厳格に返す自動テストやビルドスクリプト」が必要です。このテスト環境自体の作成やメンテナンスに人間の工数がかかり、テストが甘いとバグの見逃し（偽陽性）が発生します。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="3-トークン消費と-api-コストの増大"&gt;&lt;span&gt;3. トークン消費と API コストの増大&lt;/span&gt;&#10; &lt;a href="#3-%e3%83%88%e3%83%bc%e3%82%af%e3%83%b3%e6%b6%88%e8%b2%bb%e3%81%a8-api-%e3%82%b3%e3%82%b9%e3%83%88%e3%81%ae%e5%a2%97%e5%a4%a7" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;AI が自律ループの中で試行錯誤（エラー検知 ⇄ コード修正 ⇄ 再検証）を何度も繰り返すと、1 つのタスクで数十万トークンを短時間で消費し、API コストやレート制限（Quota）を圧迫するリスクがあります。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="4-誤学習間違った知見の固定化toxic-learning"&gt;&lt;span&gt;4. 誤学習・間違った知見の固定化（Toxic Learning）&lt;/span&gt;&#10; &lt;a href="#4-%e8%aa%a4%e5%ad%a6%e7%bf%92%e9%96%93%e9%81%95%e3%81%a3%e3%81%9f%e7%9f%a5%e8%a6%8b%e3%81%ae%e5%9b%ba%e5%ae%9a%e5%8c%96toxic-learning" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;たまたま動いただけの一時的な回避策や誤った解釈を &lt;code&gt;Learnings.md&lt;/code&gt; に蓄積してしまうと、次回以降の全セッションで AI がその誤ったノウハウに縛られ続ける危険性があります。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="5-テストハック局所最適化のリスク"&gt;&lt;span&gt;5. テストハック（局所最適化）のリスク&lt;/span&gt;&#10; &lt;a href="#5-%e3%83%86%e3%82%b9%e3%83%88%e3%83%8f%e3%83%83%e3%82%af%e5%b1%80%e6%89%80%e6%9c%80%e9%81%a9%e5%8c%96%e3%81%ae%e3%83%aa%e3%82%b9%e3%82%af" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;AI が「目の前のテストを通すこと」だけに集中するあまり、全体の可読性やアーキテクチャ設計を犠牲にしたトリッキーなコード（テストハック）を書いてしまう場合があります。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="それでもループエンジニアリングに進まざるを得ない理由"&gt;&lt;span&gt;それでもループエンジニアリングに進まざるを得ない理由&lt;/span&gt;&#10; &lt;a href="#%e3%81%9d%e3%82%8c%e3%81%a7%e3%82%82%e3%83%ab%e3%83%bc%e3%83%97%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0%e3%81%ab%e9%80%b2%e3%81%be%e3%81%96%e3%82%8b%e3%82%92%e5%be%97%e3%81%aa%e3%81%84%e7%90%86%e7%94%b1" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;これほど多くの課題や初期投資（ハーネス・テストの整備）が必要であるにもかかわらず、なぜ開発の最前線がループエンジニアリングへと向かっているのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;その理由は、&lt;strong&gt;「人間が間に入ってプロンプトを入力し、目視確認する 1 問 1 答の運用では、スループットに構造的な限界があるため」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;人間のタイピングと目視速度が「開発速度のボトルネック」になる&lt;/strong&gt;:&#10;AI のモデル知能が向上しても、人間が指示を入力し、出力を確認して修正を指示している限り、全体の生産性は「人間の手動介入速度」で頭打ちになります。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;手動確認による認知負荷の蓄積&lt;/strong&gt;:&#10;AI の出力コードを人間が毎回目で追い、不備を見つけてプロンプトで修正させる作業は認知負荷が高く、スケールしません。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;初期投資の先にあるスループットの向上&lt;/strong&gt;:&#10;ハーネスやテストの整備にはコストがかかりますが、一度「自律ループ」を構築すれば、人間が他の作業を進めている間に AI が自走してタスクを完走する高いスループットが得られます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;これは、かつて &lt;strong&gt;CI/CD（継続的インテグレーション・自動テスト）&lt;/strong&gt; が登場した際、「テストを書くのが面倒」「CI の構築コストがかかる」と言われながらも、手動ビルドの時代には二度と戻れなくなった歴史の必然と同じ構造です。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ安全なハーネスの上で自律ループを回す設計"&gt;&lt;span&gt;まとめ：安全なハーネスの上で自律ループを回す設計&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81%e5%ae%89%e5%85%a8%e3%81%aa%e3%83%8f%e3%83%bc%e3%83%8d%e3%82%b9%e3%81%ae%e4%b8%8a%e3%81%a7%e8%87%aa%e5%be%8b%e3%83%ab%e3%83%bc%e3%83%97%e3%82%92%e5%9b%9e%e3%81%99%e8%a8%ad%e8%a8%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ループエンジニアリングは、人間が手作業で行っていた「確認・合否判定・やり直し指示」を、AI と自動検証の仕組みに委ねるアプローチです。&lt;/p&gt;&#10;&lt;p&gt;安全なハーネス（隔離と可逆性の保証）を大前提として、&lt;strong&gt;外部記憶・自走権限・客観的判定ロジック&lt;/strong&gt; という 3 つの足場を整え、AI 自身に検証と自己進化のサイクルを実行させます。&#10;課題や運用コストも伴うアプローチですが、人間による手動介入のボトルネックを解消し、プロンプトの工夫から「自走する仕組みの設計」へと移行するための実践的なアプローチとして紹介しました。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="ループ工学エージェント設計"&gt;&lt;span&gt;ループ工学・エージェント設計&lt;/span&gt;&#10; &lt;a href="#%e3%83%ab%e3%83%bc%e3%83%97%e5%b7%a5%e5%ad%a6%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e8%a8%ad%e8%a8%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://addyosmani.com/blog/loop-engineering/" target="_blank" rel="external nofollow noopener noreferrer"&gt;Addy Osmani: Loop Engineering (2026-06-07)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=RkQQ7WEor7w" target="_blank" rel="external nofollow noopener noreferrer"&gt;WorkOS (Acquired Unplugged): Boris Cherny on Claude Code and Agent Loops (2026-06-02)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="学術論文外部記憶コンテキスト特性"&gt;&lt;span&gt;学術論文（外部記憶・コンテキスト特性）&lt;/span&gt;&#10; &lt;a href="#%e5%ad%a6%e8%a1%93%e8%ab%96%e6%96%87%e5%a4%96%e9%83%a8%e8%a8%98%e6%86%b6%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e7%89%b9%e6%80%a7" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2307.03172" target="_blank" rel="external nofollow noopener noreferrer"&gt;Lost in the Middle: How Language Models Use Long Contexts (Liu et al., 2023 / TACL 2024)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2303.11366" target="_blank" rel="external nofollow noopener noreferrer"&gt;Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023 / NeurIPS 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2305.16291" target="_blank" rel="external nofollow noopener noreferrer"&gt;Voyager: An Open-Ended Embodied Agent with Large Language Models (Wang et al., 2023)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>なぜ境界防御は敗北したのか？：痛みのピラミッドから読み解く MITRE ATT&amp;CK 誕生の歴史と防御のパラダイムシフト</title><link>https://sesame.purplemoon.org/posts/2026/08/mitre-attck-introduction/</link><pubDate>Sun, 16 Aug 2026 11:46:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/mitre-attck-introduction/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/security/">Security</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;今日のサイバーセキュリティ業界において、脅威分析、EDR の検知ルール作成、レッドチーム演習の共通基盤として使われているのが &lt;strong&gt;MITRE ATT&amp;amp;CK（マイター・アタック）&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;p&gt;しかし、なぜ世界中のセキュリティ機関や企業がこの巨大なマトリクスを参照するようになったのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;その背景には、かつてセキュリティ業界が信じていた &lt;strong&gt;「境界防御とブラックリストの完全な敗北」&lt;/strong&gt; と、そこから生まれた &lt;strong&gt;「発想のコペルニクス的転回」&lt;/strong&gt; という歴史的なパラダイムシフトがありました。&lt;/p&gt;&#10;&lt;p&gt;本記事では、MITRE ATT&amp;amp;CK が誕生した歴史的背景、David Bianco 氏の「痛みのピラミッド」、TTPs（戦術・手法・手順）の構造、そして防御技術の体系化（D3FEND）に至る進化の軌跡を整理します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="境界防御の限界と痛みのピラミッド"&gt;&lt;span&gt;境界防御の限界と「痛みのピラミッド」&lt;/span&gt;&#10; &lt;a href="#%e5%a2%83%e7%95%8c%e9%98%b2%e5%be%a1%e3%81%ae%e9%99%90%e7%95%8c%e3%81%a8%e7%97%9b%e3%81%bf%e3%81%ae%e3%83%94%e3%83%a9%e3%83%9f%e3%83%83%e3%83%89" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;2000 年代から 2010 年代初頭にかけて、企業のサイバーセキュリティは &lt;strong&gt;「境界防御（Perimeter Defense）」&lt;/strong&gt; と &lt;strong&gt;「シグネチャ・ブラックリスト」&lt;/strong&gt; が中心でした。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;社内ネットワークの出入り口にファイアウォールや IDS/IPS を設置し、侵入を水際でブロックする。&lt;/li&gt;&#10;&lt;li&gt;既知のマルウェアのハッシュ値（MD5, SHA-256）や悪意ある IP アドレス・ドメイン名（IOC: Indicators of Compromise）を登録し、合致した通信を遮断する。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre&gt;&lt;code&gt;[ インターネット ] ──(攻撃)──&amp;gt; [ ファイアウォール (境界) ] ──(遮断)──&amp;gt; [ 社内ネットワーク ]&#10; │&#10; 【すり抜けた場合、内部は無防備】&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="なぜブラックリスト方式は破綻したのか"&gt;&lt;span&gt;なぜブラックリスト方式は破綻したのか？&lt;/span&gt;&#10; &lt;a href="#%e3%81%aa%e3%81%9c%e3%83%96%e3%83%a9%e3%83%83%e3%82%af%e3%83%aa%e3%82%b9%e3%83%88%e6%96%b9%e5%bc%8f%e3%81%af%e7%a0%b4%e7%b6%bb%e3%81%97%e3%81%9f%e3%81%ae%e3%81%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;攻撃者（APT 攻撃グループ等）の技術が進化するにつれ、このアプローチは構造的な限界に直面しました。&lt;/p&gt;&#10;&lt;p&gt;攻撃者はマルウェアのコードを 1 バイト書き換えるだけでハッシュ値を無効化でき、クラウドや動的 DNS を使って 1 秒で新しい IP アドレスやドメインを取得できたためです。防御側がどれほど多額の投資をしてブラックリストを更新しても、攻撃者はノーコストですり抜けていきました。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="痛みのピラミッドthe-pyramid-of-pain"&gt;&lt;span&gt;痛みのピラミッド（The Pyramid of Pain）&lt;/span&gt;&#10; &lt;a href="#%e7%97%9b%e3%81%bf%e3%81%ae%e3%83%94%e3%83%a9%e3%83%9f%e3%83%83%e3%83%89the-pyramid-of-pain" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;この絶望的な非対称性を 2013 年に見事に言語化したのが、セキュリティ研究者の &lt;strong&gt;David J. Bianco 氏&lt;/strong&gt; による &lt;strong&gt;『Pyramid of Pain（痛みのピラミッド）』&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt; ▲&#10; / \&#10; / \ TTPs（攻撃者の行動パターン・戦術） 【極めて痛い (Tough!)】&#10; / TTP \&#10; /-------\&#10; / Tools \ Tools（攻撃ツール・Mimikatz, Cobalt Strike 等）&#10; /-----------\&#10; / Network \ Network / Host Artifacts（C2通信の痕跡、URI パターン）&#10; /---------------\&#10; / Domain Names \ Domain Names（悪意あるドメイン名）&#10; /-------------------\&#10; / IP Addresses \ IP Addresses（攻撃元 IP アドレス）&#10; /-----------------------\&#10; / Hash Values \ Hash Values（SHA-256, MD5 ハッシュ） 【全く痛くない (Trivial)】&#10; /---------------------------\&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ピラミッドの下層にある要素ほど、防御側がブロックしても攻撃者は簡単に変更できます（Trivial / Easy）。&#10;逆に、ピラミッドの頂点にある &lt;strong&gt;「TTPs（Tactics, Techniques, and Procedures：攻撃者の行動パターン）」&lt;/strong&gt; を封じられると、攻撃者は攻撃手順やツールの再設計、工作員の再訓練を強いられ、&lt;strong&gt;最も大きな打撃（Tough!）&lt;/strong&gt; を受けます。&lt;/p&gt;&#10;&lt;p&gt;ここから、&lt;strong&gt;「侵入を 100% 防ぐことは不可能である（Assume Breach: 侵入前提）」&lt;/strong&gt; という新たな共通認識が生まれました。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="mitre-attck-の誕生道具ではなく行動を追え"&gt;&lt;span&gt;MITRE ATT&amp;amp;CK の誕生：道具ではなく「行動」を追え&lt;/span&gt;&#10; &lt;a href="#mitre-attck-%e3%81%ae%e8%aa%95%e7%94%9f%e9%81%93%e5%85%b7%e3%81%a7%e3%81%af%e3%81%aa%e3%81%8f%e8%a1%8c%e5%8b%95%e3%82%92%e8%bf%bd%e3%81%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;2013 年、米国の非営利研究機関 &lt;strong&gt;MITRE（マイター）&lt;/strong&gt; は、自組織の研究プロジェクト（FMX: Fort Meade Experiment）の中で、実世界の標的型攻撃データを分析していました。&lt;/p&gt;&#10;&lt;p&gt;研究者たちは、従来の IOC（IP やハッシュ）追跡から脱却し、次のような根本的な問いを立てました。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;em&gt;「攻撃者はマルウェアや IP をいくらでも変えられる。しかし、侵入した後に『管理者パスワードを抜き取る』『社内ネットワークを探索する』『別の重要サーバーへ横展開する』という &lt;strong&gt;“目的達成のための行動パターン（手口）”&lt;/strong&gt; だけは、OS の仕組みや人間の習性上、そう簡単には変えられないのではないか？」&lt;/em&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;こうして、実世界の攻撃者が侵入後に実行するすべての手口を網羅・体系化したカタログ、&lt;strong&gt;&lt;code&gt;MITRE ATT&amp;amp;CK&lt;/code&gt;（Adversarial Tactics, Techniques, and Common Knowledge）&lt;/strong&gt; が誕生しました。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;【従来の着眼点】&#10;「どんなマルウェアファイル（道具）が使われたか？」（ハッシュ値、ファイル名）&#10;&#10;【MITRE ATT&amp;amp;CK の着眼点】&#10;「攻撃者は何を目的として、OS のどの機能をどう悪用したか（行動）？」（プロセスインジェクション、LSASS メモリダンプ等）&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="attck-の基本構造とマトリクス設計"&gt;&lt;span&gt;ATT&amp;amp;CK の基本構造とマトリクス設計&lt;/span&gt;&#10; &lt;a href="#attck-%e3%81%ae%e5%9f%ba%e6%9c%ac%e6%a7%8b%e9%80%a0%e3%81%a8%e3%83%9e%e3%83%88%e3%83%aa%e3%82%af%e3%82%b9%e8%a8%ad%e8%a8%88" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ATT&amp;amp;CK は、攻撃者の行動を &lt;strong&gt;「Tactics（戦術：目的）」&lt;/strong&gt; と &lt;strong&gt;「Techniques（手法：手段）」&lt;/strong&gt; の 2 軸マトリクスで表現します。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;flowchart TD&#10; Tactic[&amp;#34;Tactics（戦術：Why）&amp;lt;br&amp;gt;例: Credential Access（認証情報の窃取）&amp;#34;]&#10; --&amp;gt; Technique[&amp;#34;Techniques（手法：How）&amp;lt;br&amp;gt;例: OS Credential Dumping (T1003)&amp;#34;]&#10; --&amp;gt; SubTech[&amp;#34;Sub-techniques（詳細手法）&amp;lt;br&amp;gt;例: LSASS Memory (T1003.001)&amp;#34;]&#10; --&amp;gt; Procedure[&amp;#34;Procedures（実行例・手順）&amp;lt;br&amp;gt;例: APT29 が Mimikatz を用いて LSASS プロセスから平文パスワードをダンプ&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="ttps-の-4-階層モデル"&gt;&lt;span&gt;TTPs の 4 階層モデル&lt;/span&gt;&#10; &lt;a href="#ttps-%e3%81%ae-4-%e9%9a%8e%e5%b1%a4%e3%83%a2%e3%83%87%e3%83%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;階層&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;意味&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;問い&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;具体例&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Tactics（戦術）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;攻撃者の目的&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;何を達成したいのか？&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;初期侵入（Initial Access）、権限昇格（Privilege Escalation）、横展開（Lateral Movement）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Techniques（手法）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;目的達成の手段&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;どのように実行するのか？&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;OS Credential Dumping（T1003）、Process Injection（T1055）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Sub-techniques&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;手法のより詳細な分類&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;具体的にどの機能を使うのか？&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;LSASS Memory（T1003.001）、NTDS（T1003.003）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Procedures（手順・実例）&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;実際の攻撃グループの記録&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;誰が実際にどう悪用したのか？&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;APT28 が特定のコマンドライン引数で &lt;code&gt;rundll32.exe&lt;/code&gt; を実行&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="対象ドメインの分類enterprisemobileics"&gt;&lt;span&gt;対象ドメインの分類（Enterprise・Mobile・ICS）&lt;/span&gt;&#10; &lt;a href="#%e5%af%be%e8%b1%a1%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e3%81%ae%e5%88%86%e9%a1%9eenterprisemobileics" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ATT&amp;amp;CK は、IT インフラの多様化に合わせて 3 つのドメインに拡張されています。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;ドメイン&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;対象環境&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;主な特徴&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Windows, Linux, macOS, AWS, Azure, GCP, Active Directory, Office 365&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;企業システム全般。クラウド環境や SaaS に対するアイデンティティ攻撃も網羅&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Mobile&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Android, iOS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;モバイル端末特有のサンドボックス回避、不正プロファイル、通信傍受&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;ICS&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;SCADA, PLC, 産業制御システム, 発電所・工場&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;物理機器の制御停止、セーフティシステムの無効化などプラント特有の破壊手口&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="防御側のマッピング情報と活用モデル"&gt;&lt;span&gt;防御側のマッピング情報と活用モデル&lt;/span&gt;&#10; &lt;a href="#%e9%98%b2%e5%be%a1%e5%81%b4%e3%81%ae%e3%83%9e%e3%83%83%e3%83%94%e3%83%b3%e3%82%b0%e6%83%85%e5%a0%b1%e3%81%a8%e6%b4%bb%e7%94%a8%e3%83%a2%e3%83%87%e3%83%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ATT&amp;amp;CK が真に画期的だったのは、&lt;strong&gt;「攻撃のカタログ」でありながら、すべてのマス目に「防御情報」が 1 対 1 で紐づいている点&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;Technique: OS Credential Dumping (T1003.001 - LSASS Memory)&#10;├── Data Sources: Process Access (Sysmon Event ID 10), Command Execution&#10;├── Detection: lsass.exe に対する PROCESS_VM_READ 権限のオープンを監視&#10;└── Mitigations: LSA Protection (RunAsPPL) の有効化、Credential Guard の導入&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Data Sources（データソース）&lt;/strong&gt;: その手口を検知するために、どのログ（プロセス生成、レジストリ変更、ネットワーク接続等）を収集すべきか。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Detection（検知ロジック）&lt;/strong&gt;: SIEM や EDR でどのような相関ルールやシグネチャを組むべきか。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Mitigations（予防策）&lt;/strong&gt;: 設定変更やアーキテクチャ見直しによって、その手法を根本的に無効化できるか。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="防御側の逆転死角の可視化から-d3fend-へ"&gt;&lt;span&gt;防御側の逆転：死角の可視化から D3FEND へ&lt;/span&gt;&#10; &lt;a href="#%e9%98%b2%e5%be%a1%e5%81%b4%e3%81%ae%e9%80%86%e8%bb%a2%e6%ad%bb%e8%a7%92%e3%81%ae%e5%8f%af%e8%a6%96%e5%8c%96%e3%81%8b%e3%82%89-d3fend-%e3%81%b8" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ATT&amp;amp;CK という「共通言語（共通の物差し）」を手に入れたことで、防御側の運用は劇的に進化しました。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="1-カバレッジの可視化とスコアリングdettct"&gt;&lt;span&gt;1. カバレッジの可視化とスコアリング（DeTT&amp;amp;CT）&lt;/span&gt;&#10; &lt;a href="#1-%e3%82%ab%e3%83%90%e3%83%ac%e3%83%83%e3%82%b8%e3%81%ae%e5%8f%af%e8%a6%96%e5%8c%96%e3%81%a8%e3%82%b9%e3%82%b3%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0dettct" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ATT&amp;amp;CK Navigator&lt;/strong&gt;: ブラウザ上でマトリクスを表示し、自社が検知できるマス（緑）と検知できないマス（赤）をヒートマップで可視化。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;DeTT&amp;amp;CT (&lt;a href="https://github.com/rabobank-cdc/DeTT&amp;CT" target="_blank" rel="external nofollow noopener noreferrer"&gt;github.com/rabobank-cdc/DeTT&amp;amp;CT&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/strong&gt;: 収集ログの品質と検知ルールの有効性を評価し、&lt;strong&gt;「自社の防御体制における死角（ブラインドスポット）」&lt;/strong&gt; を客観的データとしてスコアリング。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 class="heading-element" id="2-防御技術のオントロジーmitre-d3fend"&gt;&lt;span&gt;2. 防御技術のオントロジー「MITRE D3FEND」&lt;/span&gt;&#10; &lt;a href="#2-%e9%98%b2%e5%be%a1%e6%8a%80%e8%a1%93%e3%81%ae%e3%82%aa%e3%83%b3%e3%83%88%e3%83%ad%e3%82%b8%e3%83%bcmitre-d3fend" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;攻撃者の手口（ATT&amp;amp;CK）が体系化されたのを受け、MITRE は 2021 年、米国 NSA の支援のもと &lt;strong&gt;&lt;code&gt;MITRE D3FEND&lt;/code&gt; (&lt;a href="https://d3fend.mitre.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;d3fend.mitre.org&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;)&lt;/strong&gt; を公開しました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;ATT&amp;amp;CK が「攻撃側の手口」&lt;/strong&gt; であるのに対し、&lt;strong&gt;D3FEND は「防御側の対抗技術」&lt;/strong&gt;（ファイル整合性監視、プロセスメモリ暗号化、セッション無効化等）を精密に定義・マッピングしたオントロジーです。&lt;/li&gt;&#10;&lt;li&gt;これにより、「どの攻撃手法（ATT&amp;amp;CK）に対して、どの防御技術（D3FEND）を配置すれば最も効率的に防御網を築けるか」を論理的に設計できるようになりました。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;境界防御の破綻&lt;/strong&gt;: ハッシュ値や IP を追う IOC 追跡は、攻撃者にとって痛くない（痛みのピラミッド）。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;行動（TTPs）への着眼&lt;/strong&gt;: 攻撃者が簡単に変更できない「侵入後の行動パターン」を捉えることで、防御側の優位性を確立。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;共通言語としての ATT&amp;amp;CK&lt;/strong&gt;: 「Tactics（目的）× Techniques（手口）」のマトリクスにより、セキュリティの死角を定量的に可視化。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;D3FEND への発展&lt;/strong&gt;: 攻撃の周期表から防御技術のオントロジーへと進化し、論理的な防御アーキテクチャ設計が可能に。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://attack.mitre.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;MITRE ATT&amp;amp;CK 公式サイト (attack.mitre.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://d3fend.mitre.org" target="_blank" rel="external nofollow noopener noreferrer"&gt;MITRE D3FEND: A Knowledge Graph of Cybersecurity Countermeasures (d3fend.mitre.org)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://detect-respond.blogspot.com/2013/03/the-pyramid-of-pain.html" target="_blank" rel="external nofollow noopener noreferrer"&gt;The Pyramid of Pain (David J. Bianco, 2013)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/rabobank-cdc/DeTT&amp;CT" target="_blank" rel="external nofollow noopener noreferrer"&gt;DeTT&amp;amp;CT: Detect Tactics, Techniques &amp;amp; Combat Threats (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/mitre-attack/attack-navigator" target="_blank" rel="external nofollow noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Navigator (GitHub)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>なぜ「ローカル環境構築」は破綻したのか？：秘伝のタレの終焉と Dev Containers による開発環境のコード化</title><link>https://sesame.purplemoon.org/posts/2026/08/why-container-development/</link><pubDate>Sun, 16 Aug 2026 11:45:00 +0000</pubDate><guid>https://sesame.purplemoon.org/posts/2026/08/why-container-development/</guid><category domain="https://sesame.purplemoon.org/categories/tech/">Tech</category><category domain="https://sesame.purplemoon.org/categories/devops/">DevOps</category><description>&lt;div class="details admonition note open disabled"&gt;&#10; &lt;div class="details-summary admonition-title"&gt;&lt;i class="icon fa-solid fa-pencil-alt" aria-hidden="true"&gt;&lt;/i&gt;個人用メモ・備忘録&lt;/div&gt;&lt;div class="details-content"&gt;&#10; &lt;div class="admonition-content"&gt;&lt;p&gt;日々の開発・インフラ検証の備忘録として残している個人ノートです。手元環境での動作ログをもとにまとめています。環境差異等もあるため、参考にされる場合はご自身の環境で検証の上ご活用ください。&lt;/p&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 class="heading-element" id="はじめに"&gt;&lt;span&gt;はじめに&lt;/span&gt;&#10; &lt;a href="#%e3%81%af%e3%81%98%e3%82%81%e3%81%ab" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;ソフトウェアエンジニアなら誰もが一度は経験したことのある「儀式」があります。&lt;/p&gt;&#10;&lt;p&gt;新しい PC を手に入れた日、あるいは新しいプロジェクトに参画した初日、README に書かれた長大なセットアップ手順と格闘し、ターミナルでエラーが出るたびに検索し、気づけば休日や参画初日が丸ごと潰れていた──という苦い記憶です。&lt;/p&gt;&#10;&lt;p&gt;なぜ、言語やツールのバージョン管理ツールが充実した現代においても、ローカルマシンの環境構築はこれほどまでに壊れやすく、再現性が失われてしまうのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;本記事では、「ローカル環境構築の暗黒時代」から「Dev Containers による開発環境のコード化」に至るパラダイムシフトの歴史、そして AI エージェント時代においてコンテナが &lt;strong&gt;「不可欠な安全装置（ハーネス）」&lt;/strong&gt; となった必然性を整理します。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="秘伝のタレと環境構築の暗黒時代"&gt;&lt;span&gt;秘伝のタレと環境構築の暗黒時代&lt;/span&gt;&#10; &lt;a href="#%e7%a7%98%e4%bc%9d%e3%81%ae%e3%82%bf%e3%83%ac%e3%81%a8%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%81%ae%e6%9a%97%e9%bb%92%e6%99%82%e4%bb%a3" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;かつて開発環境の構築といえば、ホスト OS（macOS や Linux、Windows）の上に各種言語ランタイムを直接インストールするのが当たり前でした。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[ ホスト OS ]&#10;├── Node.js (nvm で管理)&#10;├── Python (pyenv で管理)&#10;├── Ruby (rbenv で管理)&#10;├── Go (asdf で管理)&#10;├── PostgreSQL, Redis (Homebrew でローカル起動)&#10;└── ~/.zshrc (数百行におよぶ秘伝のタレ設定)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;しかし、このアプローチはプロジェクトが増えるにつれて構造的な破綻を迎えました。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="1-バージョンマネージャーの乱立とシェルの遅延"&gt;&lt;span&gt;1. バージョンマネージャーの乱立とシェルの遅延&lt;/span&gt;&#10; &lt;a href="#1-%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%83%9e%e3%83%8d%e3%83%bc%e3%82%b8%e3%83%a3%e3%83%bc%e3%81%ae%e4%b9%b1%e7%ab%8b%e3%81%a8%e3%82%b7%e3%82%a7%e3%83%ab%e3%81%ae%e9%81%85%e5%bb%b6" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;プロジェクトごとに異なる言語バージョンを切り替えるため、&lt;code&gt;nvm&lt;/code&gt;、&lt;code&gt;pyenv&lt;/code&gt;、&lt;code&gt;rbenv&lt;/code&gt;、&lt;code&gt;asdf&lt;/code&gt;、&lt;code&gt;mise&lt;/code&gt; などのバージョンマネージャーが導入されました。&lt;/p&gt;&#10;&lt;p&gt;しかし、これらのツールはシェルの起動時に環境変数をフックし、&lt;code&gt;shims&lt;/code&gt; ディレクトリを経由してコマンドを実行するため、&lt;strong&gt;ターミナルを開くたびに 1〜2 秒の起動遅延が発生する&lt;/strong&gt; ようになりました。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="2-私のマシンでは動くit-works-on-my-machineの呪い"&gt;&lt;span&gt;2. 「私のマシンでは動く（It works on my machine）」の呪い&lt;/span&gt;&#10; &lt;a href="#2-%e7%a7%81%e3%81%ae%e3%83%9e%e3%82%b7%e3%83%b3%e3%81%a7%e3%81%af%e5%8b%95%e3%81%8fit-works-on-my-machine%e3%81%ae%e5%91%aa%e3%81%84" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;OS のマイナーアップデート、Homebrew で入れた共有ライブラリ（OpenSSL や libxml2）のバージョン差異、グローバルにインストールされたツールの微妙な違いにより、「A さんの Mac では動くが、B さんの Mac ではビルドがコケる」という不毛なデバッグ時間がチーム内で頻発しました。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="3-pc-移行時の恐怖"&gt;&lt;span&gt;3. PC 移行時の恐怖&lt;/span&gt;&#10; &lt;a href="#3-pc-%e7%a7%bb%e8%a1%8c%e6%99%82%e3%81%ae%e6%81%90%e6%80%96" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;一度構築した環境は、手作業で継ぎ足された設定やキャッシュの塊（いわゆる「秘伝のタレ」）と化します。そのため、PC の故障や買い替えのたびに同じ環境を再現できず、環境構築手順書（README）は書かれた翌週には陳腐化していきました。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="パラダイムシフト環境は育てるものではなく使い捨てるもの"&gt;&lt;span&gt;パラダイムシフト：「環境は育てるものではなく、使い捨てるもの」&lt;/span&gt;&#10; &lt;a href="#%e3%83%91%e3%83%a9%e3%83%80%e3%82%a4%e3%83%a0%e3%82%b7%e3%83%95%e3%83%88%e7%92%b0%e5%a2%83%e3%81%af%e8%82%b2%e3%81%a6%e3%82%8b%e3%82%82%e3%81%ae%e3%81%a7%e3%81%af%e3%81%aa%e3%81%8f%e4%bd%bf%e3%81%84%e6%8d%a8%e3%81%a6%e3%82%8b%e3%82%82%e3%81%ae" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;インフラの世界では、かつてサーバーを手作業で丹精込めて管理する &lt;strong&gt;「ペット（Pet）」&lt;/strong&gt; から、設定ファイルからいつでも同一のものを自動生成・破棄できる &lt;strong&gt;「家畜（Cattle / Disposable Infrastructure）」&lt;/strong&gt; への転換が起きました。&lt;/p&gt;&#10;&lt;p&gt;これと全く同じ思想的転換が、開発環境にももたらされました。それが、オープン標準規格として標準化された &lt;strong&gt;「&lt;a href="https://containers.dev" target="_blank" rel="external nofollow noopener noreferrer"&gt;Dev Containers（Development Containers）&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;」&lt;/strong&gt; です。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;【従来の思想（ペット）】&#10;ホスト OS を何年もかけてカスタマイズし、壊れないように慎重に保守する。&#10;&#10;【Dev Containers の思想（使い捨て）】&#10;開発環境は Dockerfile と devcontainer.json の定義から数分で生成し、&#10;用が済んだり汚れたらいつでも気軽に破棄して再生成する。&lt;/code&gt;&lt;/pre&gt;&lt;h3 class="heading-element" id="なぜ-dev-containers-は画期的なのか"&gt;&lt;span&gt;なぜ Dev Containers は画期的なのか？&lt;/span&gt;&#10; &lt;a href="#%e3%81%aa%e3%81%9c-dev-containers-%e3%81%af%e7%94%bb%e6%9c%9f%e7%9a%84%e3%81%aa%e3%81%ae%e3%81%8b" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;単に「Docker コンテナの中でコードを書く」だけであれば、以前から可能でした。しかし、従来の Docker 開発には大きな不便がありました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;コンテナ内で Vim や Nano などの CUI エディタを使うか、ホスト側エディタとコンテナ内の言語サーバー（LSP）を手動で繋ぐ必要があり、設定が極めて難解だった。&lt;/li&gt;&#10;&lt;li&gt;ポートフォワーディング、SSH 鍵や Git 認証の引き継ぎを手動で設定しなければならなかった。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;VS Code の &lt;strong&gt;&lt;a href="https://code.visualstudio.com/docs/devcontainers/containers" target="_blank" rel="external nofollow noopener noreferrer"&gt;Dev Containers 拡張&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt; は、&lt;strong&gt;「エディタの UI だけをホストで動かし、拡張機能・言語サーバー・デバッガ・ターミナルなどの開発エンジンを丸ごとコンテナ内で動かす」&lt;/strong&gt; というクライアント/サーバー分離アーキテクチャを採用することで、ホスト上で直接開発しているのと全く変わらない快適性を実現しました。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;[ ホスト OS ]&#10; VS Code UI（画面描画、キー入力）&#10; │&#10; │ (IPC / VS Code Server 接続)&#10; ▼&#10;[ Docker コンテナ (DevContainer) ]&#10; ├── 言語ランタイム (Go, Python, Node 等)&#10; ├── 言語サーバー (gopls, pyright 等)&#10; ├── デバッガ・CLI ツール&#10; └── ソースコード・作業ツリー&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="開発環境をコンテナ化して得られた-3-つの決定打"&gt;&lt;span&gt;開発環境をコンテナ化して得られた 3 つの決定打&lt;/span&gt;&#10; &lt;a href="#%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e5%8c%96%e3%81%97%e3%81%a6%e5%be%97%e3%82%89%e3%82%8c%e3%81%9f-3-%e3%81%a4%e3%81%ae%e6%b1%ba%e5%ae%9a%e6%89%93" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="1-ホストマシンの完全な環境保全"&gt;&lt;span&gt;1. ホストマシンの完全な環境保全&lt;/span&gt;&#10; &lt;a href="#1-%e3%83%9b%e3%82%b9%e3%83%88%e3%83%9e%e3%82%b7%e3%83%b3%e3%81%ae%e5%ae%8c%e5%85%a8%e3%81%aa%e7%92%b0%e5%a2%83%e4%bf%9d%e5%85%a8" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;ホスト OS にインストールするソフトウェアは &lt;strong&gt;「Docker Desktop（または OrbStack 等）」&lt;/strong&gt; と &lt;strong&gt;「VS Code」&lt;/strong&gt; の 2 つだけで完結します。&lt;/p&gt;&#10;&lt;p&gt;Go や Ruby、特定のバージョンの Node.js などをホストに一切インストールしないため、ホストの &lt;code&gt;.zshrc&lt;/code&gt; は数行で済み、ターミナルは一瞬で起動します。プロジェクトが終わればコンテナとイメージを削除するだけで、ホストに 1 バイトのゴミも残りません。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="2-環境のコード化infrastructure-as-codeと完全な再現性"&gt;&lt;span&gt;2. 環境のコード化（Infrastructure as Code）と完全な再現性&lt;/span&gt;&#10; &lt;a href="#2-%e7%92%b0%e5%a2%83%e3%81%ae%e3%82%b3%e3%83%bc%e3%83%89%e5%8c%96infrastructure-as-code%e3%81%a8%e5%ae%8c%e5%85%a8%e3%81%aa%e5%86%8d%e7%8f%be%e6%80%a7" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;環境の定義はすべてリポジトリ内の &lt;code&gt;.devcontainer/devcontainer.json&lt;/code&gt; と &lt;code&gt;Dockerfile&lt;/code&gt; に記録されます。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;{&#10; &amp;#34;name&amp;#34;: &amp;#34;My Project Environment&amp;#34;,&#10; &amp;#34;build&amp;#34;: { &amp;#34;dockerfile&amp;#34;: &amp;#34;Dockerfile&amp;#34; },&#10; &amp;#34;features&amp;#34;: {&#10; &amp;#34;ghcr.io/devcontainers/features/node:1&amp;#34;: { &amp;#34;version&amp;#34;: &amp;#34;22&amp;#34; }&#10; },&#10; &amp;#34;customizations&amp;#34;: {&#10; &amp;#34;vscode&amp;#34;: {&#10; &amp;#34;extensions&amp;#34;: [&amp;#34;golang.go&amp;#34;, &amp;#34;esbenp.prettier-vscode&amp;#34;]&#10; }&#10; }&#10;}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;チームメンバーはリポジトリをクローンして「Reopen in Container」ボタンを 1 クリックするだけで、全員が寸分違わぬ同一のツールチェーン、LSP、VS Code 拡張機能が揃った状態で即座に開発を始められます。&lt;/p&gt;&#10;&lt;h3 class="heading-element" id="3-ai-エージェントを野に放つ物理ハーネス安全な檻"&gt;&lt;span&gt;3. AI エージェントを野に放つ「物理ハーネス（安全な檻）」&lt;/span&gt;&#10; &lt;a href="#3-ai-%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e9%87%8e%e3%81%ab%e6%94%be%e3%81%a4%e7%89%a9%e7%90%86%e3%83%8f%e3%83%bc%e3%83%8d%e3%82%b9%e5%ae%89%e5%85%a8%e3%81%aa%e6%aa%bb" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;近年の自律型 AI コーディングエージェント（Antigravity、Claude Code 等）の台頭により、コンテナ開発の重要性はさらに跳ね上がりました。&lt;/p&gt;&#10;&lt;p&gt;AI エージェントに「自律的にコマンドを実行してテスト・ビルド・修正を繰り返すループ」を任せる際、ホスト OS 上で直接シェル権限を渡すのは極めて危険です。AI が誤って重要ファイルを一括削除したり、意図しないシステム設定を書き換えるリスクがあるためです。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;【ホストで直接動かすリスク】&#10;AI エージェント ──(rm -rf や危険コマンド)──&amp;gt; [ ホスト OS の重要データが破壊される ]&#10;&#10;【DevContainer 内で動かす安全性】&#10;AI エージェント ──(自律実行ループ)──&amp;gt; [ コンテナ内部のみで完結 ]&#10; （最悪壊れてもコンテナを再構築するだけ）&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;コンテナという &lt;strong&gt;OS カーネルレベルの物理隔離（ハーネス）&lt;/strong&gt; があるからこそ、人間は恐怖を感じることなく AI エージェントにフル権限を委ね、自走ループを回すことが可能になります。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="運用上の留意点とトレードオフ"&gt;&lt;span&gt;運用上の留意点とトレードオフ&lt;/span&gt;&#10; &lt;a href="#%e9%81%8b%e7%94%a8%e4%b8%8a%e3%81%ae%e7%95%99%e6%84%8f%e7%82%b9%e3%81%a8%e3%83%88%e3%83%ac%e3%83%bc%e3%83%89%e3%82%aa%e3%83%95" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;万能に見える Dev Containers ですが、実務で導入する際には以下のトレードオフを理解しておく必要があります。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;ディスク容量の消費&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;複数のプロジェクトで異なるコンテナイメージを保持すると、数十 GB のディスクを消費します。定期的に &lt;code&gt;docker system prune&lt;/code&gt; を実行する運用が必要です。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;初期ビルドのオーバーヘッド&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;初回起動時やイメージ再構築時にコンテナビルドの待ち時間（数分）が発生します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ファイルシステムの I/O 性能（特に macOS / Windows）&lt;/strong&gt;:&#10;&lt;ul&gt;&#10;&lt;li&gt;ホストとコンテナ間のファイルマウント（bind mount）において、I/O 負荷の高い処理（大量の &lt;code&gt;node_modules&lt;/code&gt; の読み書き等）でパフォーマンスが低下する場合があります（Named Volume の活用や VirtioFS の利用で大幅に改善可能）。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="まとめ"&gt;&lt;span&gt;まとめ&lt;/span&gt;&#10; &lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;秘伝のタレの終焉&lt;/strong&gt;: ホスト OS に言語バージョンマネージャーを積み重ねるローカル環境構築は、再現性と保守性の面で限界を迎えた。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;使い捨ての思想&lt;/strong&gt;: 開発環境をコード化し、いつでも同一の環境を生成・破棄できる Dev Containers により、「私のマシンでは動く」問題を根本解決。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;AI 時代の必須基盤&lt;/strong&gt;: 自律 AI エージェントに安全な自走ループを委ねるための「物理ハーネス」として、コンテナ開発は不可欠な土台となった。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;※ 本記事の構成検討・技術仕様の検証・Hugo による静的ビルド検証・推敲は、AI コーディングエージェントとの自律協働ループによって執筆・検証されています。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="参考リンク情報ソース"&gt;&lt;span&gt;参考リンク・情報ソース&lt;/span&gt;&#10; &lt;a href="#%e5%8f%82%e8%80%83%e3%83%aa%e3%83%b3%e3%82%af%e6%83%85%e5%a0%b1%e3%82%bd%e3%83%bc%e3%82%b9" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://containers.dev" target="_blank" rel="external nofollow noopener noreferrer"&gt;Development Containers: Open Specification (containers.dev)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://code.visualstudio.com/docs/devcontainers/containers" target="_blank" rel="external nofollow noopener noreferrer"&gt;Developing inside a Container using Visual Studio Code (VS Code Docs)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://containers.dev/features" target="_blank" rel="external nofollow noopener noreferrer"&gt;Dev Container Features Registry (containers.dev)&lt;i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item></channel></rss>