Skills: コンテキスト管理と注入
最終更新:2026-08-31
コンテキストのない AI は地図のない旅人のようなもの——どんなに能力があっても、道を間違えてしまいます。
1. コンテキストのタイプ
(1) プロジェクトコンテキスト
プロジェクトレベルの情報で、通常は設定ファイルから自動的に抽出されます:
TEXT
📖 参照専用
プロジェクトコンテキストの取得元
├── package.json / pyproject.toml → 技術スタック、依存バージョン
├── .eslintrc / ruff.toml → コードスタイルルール
├── tsconfig.json → TypeScript 設定
├── Dockerfile / docker-compose.yml → デプロイ環境
├── README.md → プロジェクトの説明
└── .gitignore → 除外ルール
(2) チームコンテキスト
チームレベルの規約と合意事項:
YAML
# .claude/team-context.yaml
team:
name: "プラットフォームチーム"
conventions:
- "関数は30行以内"
- "type hints の記述が必須"
- "API には Swagger ドキュメントが必須"
stack: "Python + FastAPI + PostgreSQL"
code_owner: "alice"
(3) 会話コンテキスト
現在の会話内で蓄積された情報:
TEXT
📖 参照専用
会話コンテキストに含まれるもの:
- ユーザーが既に述べた内容
- AI が既に行った操作
- 既に読み込まれたファイル
- 現在のタスクの進捗状態
2. コンテキスト注入の方法
(1) 自動注入
プラットフォームが自動的にプロジェクト情報を検出して注入:
YAML
---
name: smart-review
context:
auto_inject:
- project_config
- git_diff
- test_results
---
(2) 手動参照
プロンプト内でコンテキスト変数を明示的に参照:
MARKDOWN
## レビュールール
現在のプロジェクトは {{project.language}} を使用しており、以下のルールに従ってください:
- コードスタイル:{{project.linter}} 設定
- 対象 Python バージョン:{{project.python_version}}
(3) ファイルマウント
特定のファイルをコンテキストとして読み込む:
YAML
context:
files:
- path: ".claude/review-rules.md"
description: "チームレビュールール"
- path: "docs/api-spec.yaml"
description: "API 仕様書"
3. コンテキストウィンドウの管理
(1) 容量計画
TEXT
📖 参照専用
コンテキストウィンドウの割り当て戦略:
総容量:200K トークン
├── システムプロンプト:約 2K
├── Skill プロンプト:約 5K
├── プロジェクトコンテキスト:約 10K
├── 会話履歴:約 50K
├── ツール出力:約 80K
└── 予約スペース:約 53K
(2) 優先度に基づくトリミング
コンテキストが上限を超えた場合、優先度に従ってトリミング:
| 優先度 | 内容 | トリミング戦略 |
|---|---|---|
| 🔴 トリム不可 | Skill プロンプト、現在のタスク | 保持 |
| 🟡 圧縮可能 | 会話履歴 | 直近の N ターンを保持 |
| 🟢 トリム可能 | 早期のツール出力、プロジェクトコンテキスト | 切り詰めまたは要約 |
(3) 要約戦略
MARKDOWN
# コンテキスト圧縮のコツ
1. ファイル内容 → 関数シグネチャとキー行のみ保持
2. 長い出力 → 要約+キーデータのみ保持
3. 検索結果 → マッチした行とパスのみ保持
4. 会話履歴 → 決定事項は保持、試行錯誤は破棄
4. コンテキストの実践
▶ 例:コンテキスト認識型コードレビュー
Alice はプロジェクト環境を自動的に認識するレビュー Skill を設計しました:
YAML
---
name: context-aware-review
context:
auto_inject:
- project_config
- git_diff
files:
- path: ".claude/team-rules.md"
---
MARKDOWN
## 適応型レビュー
プロジェクトの技術スタックに基づいて自動的に調整:
- pyproject.toml を検出 → Python 規約でレビュー
- tsconfig.json を検出 → TypeScript 規約でレビュー
- チームルールファイルを検出 → チーム規約を優先
Bob は言います:「優れた Skill はワンパターンのチェックリストではなく、環境に応じて自動的に戦略を調整するスマートアシスタントだ。」
❓ よくある質問
Q コンテキストが多すぎるとパフォーマンスに影響しますか?
A はい。コンテキストが長いほど応答が遅く、コストも高くなります。必要な情報のみを注入し、全文の代わりに要約を使用することをお勧めします。
Q Skill はプロジェクトの技術スタックをどのように認識しますか?
A 自動注入
project_config を使用するか、プロンプト内で AI にまず設定ファイルを検出させ、その後レビュー戦略を決定させます。Q チーム規約ファイルはどこに置くべきですか?
A
.claude/team-rules.md またはプロジェクトルートの CONVENTIONS.md に配置することをお勧めします。AI が自動的に発見しやすくなります。📖 まとめ
- 3つのコンテキストタイプ:プロジェクト、チーム、会話
- 3つの注入方法:自動注入、手動参照、ファイルマウント
- ウィンドウ管理:容量計画、優先度に基づくトリミング、要約圧縮
- コア原則:必要な情報のみを注入し、コンテキストの肥大化を防ぐ
📝 練習問題
- 基礎問題(難易度⭐):Skill にプロジェクトコンテキストの自動注入を追加し、AI の動作の変化を観察してください。
- 応用問題(難易度⭐⭐):チーム規約ファイルを作成し、それをコンテキストとして参照する Skill を設計してください。
- チャレンジ問題(難易度⭐⭐⭐):128K トークン制限下で完全なプロジェクトレビューを行うためのコンテキストウィンドウ管理戦略を設計してください。