mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-06-03 15:24:24 +02:00
7.7 KiB
7.7 KiB
name, description
| name | description |
|---|---|
| context-budget | Claude Code セッションのコンテキスト窓消費を agents/skills/MCP/rules/CLAUDE.md ごとに見える化し、肥大化と冗長コンポーネントを検出して節約候補を提示する。"コンテキスト消費を見せて"、"context budget"、"context audit"、"トークン内訳"、"これ以上 MCP 入る?" 等の発話で起動する。 |
Context Budget
セッション内に読み込まれるコンポーネント (agents / skills / rules / MCP servers / CLAUDE.md) の token overhead を分析し、空き context を回復する具体策を提示する。
使う場面
- セッションが重い・出力品質が落ちてきた感覚がある
- 直近で skills / agents / MCP server を多数追加した
- 残りの context headroom を知りたい
- 追加コンポーネントを入れる前に空きを確認したい
- 「context-budget」「token 内訳」等のキーワードでユーザーが明示的に要請した時 (Misskey リポジトリにはこの名前のスラッシュコマンドは登録していない — 本 skill は名前 / description マッチで auto-invoke される想定。実装済の slash command 一覧は .claude/commands/ を参照)
仕組み
Phase 1: Inventory
各コンポーネントを走査して token を推定する。
Agents (.claude/agents/*.md)
- 行数とトークン数 (
words × 1.3) を計算 - frontmatter
descriptionの長さを抽出 - フラグ: 200 行超 (重い)、description 30 word 超 (frontmatter 肥大)
Skills (.claude/skills/*/SKILL.md)
- SKILL.md ごとに token を計算
- フラグ: 400 行超
.agents/skills/等の重複コピーは除外
Rules (リポジトリルートの AGENTS.md + .claude/ から @-import されるファイル)
- ファイル単位で token 計算
- フラグ: 100 行超
- 同一言語モジュール内の内容重複を検出
MCP Servers (.mcp.json または有効 MCP 設定)
- server 数と総 tool 数
- schema overhead をツールあたり ~500 token で見積もる
- フラグ: 20 tool 超のサーバー、
gh/git/npm等の CLI を単純ラップしただけのサーバー
CLAUDE.md (project + user-level)
- ファイルごとに token を計算
- フラグ: 合計 300 行超
Phase 2: Classify
| バケット | 判定基準 | 行動 |
|---|---|---|
| Always needed | CLAUDE.md から参照されている / 有効コマンドの裏 / 現プロジェクトと一致 | 維持 |
| Sometimes needed | ドメイン依存 (例: 言語パターン)、CLAUDE.md 参照なし | オンデマンド有効化を検討 |
| Rarely needed | コマンド参照なし、内容重複、明確な用途なし | 削除または lazy-load |
Phase 3: Detect Issues
- Bloated agent description — frontmatter description が 30 word 超だと、Task ツール起動のたびに毎回ロードされる
- Heavy agents — 200 行超は Task ツールの context を毎回膨らませる
- Redundant components — agent ロジックを重複する skill、CLAUDE.md と重複する rule
- MCP over-subscription — 10 server 超、または CLI 代用可能なサーバー
- CLAUDE.md bloat — 冗長説明、古いセクション、rule に移すべき指示
Phase 4: Report
Context Budget Report
═══════════════════════════════════════
Total estimated overhead: ~XX,XXX tokens
Context model: <現在モデル名> (<window>K window) ← 例: Claude Opus 4.7 (1M), Claude Sonnet (200K)
Effective available context: ~XXX,XXX tokens (XX%)
Component Breakdown:
┌─────────────────┬────────┬───────────┐
│ Component │ Count │ Tokens │
├─────────────────┼────────┼───────────┤
│ Agents │ N │ ~X,XXX │
│ Skills │ N │ ~X,XXX │
│ Rules │ N │ ~X,XXX │
│ MCP tools │ N │ ~XX,XXX │
│ CLAUDE.md │ N │ ~X,XXX │
└─────────────────┴────────┴───────────┘
WARNING: Issues Found (N):
[token 節約量の降順]
Top 3 Optimizations:
1. [action] → save ~X,XXX tokens
2. [action] → save ~X,XXX tokens
3. [action] → save ~X,XXX tokens
Potential savings: ~XX,XXX tokens (XX% of current overhead)
verbose mode ではさらにファイルごとの token 内訳、最重ファイルの行単位ブレークダウン、重複行の対比、MCP tool 一覧 + tool ごとの schema サイズ推定を出す。
例
基本監査
User: コンテキスト消費を見せて
Skill: 16 agents (12,400 tokens), 28 skills (6,200), 87 MCP tools (43,500), 2 CLAUDE.md (1,200)
Flags: 重い agent 3 個、CLI 代用可能な MCP 3 個
Top saving: MCP 3 個削除 → -27,500 tokens (overhead の 47% 削減)
Verbose
User: トークン内訳をファイル単位で
Skill: 上記レポートに加えて、planner.md (213 lines, 1,840 tokens) のような
per-file 行内訳、MCP tool ごとのサイズ、rule の重複行を side-by-side で表示
追加前チェック
User: MCP server を 5 個追加したいが、空きある?
Skill: 現状 33% → 5 server (≈ 50 tools) 追加で +25,000 tokens → 45% に到達
推奨: CLI 代用可能な server 2 個を先に外して 40% 以下を維持
ベストプラクティス
- トークン推定: prose は
words × 1.3、code 主体はchars / 4 - MCP は最大のレバー: tool あたり ~500 token、30-tool server ひとつで全 skill より大きい
- agent description は常時ロード: 呼ばれない agent でも description は毎 Task 投入
- verbose は debug 用: 普段は使わない
- 変更後は監査: agent/skill/MCP 追加直後に走らせて creep を早期発見
Misskey 固有メモ
- Misskey は MCP server をプロジェクトで明示登録していないため (
.mcp.json不在)、現状 overhead の支配項は CLAUDE.md と公式プラグイン群の skills / agents description である。 - ECC プラグインがユーザースコープで
installed_plugins.jsonに存在するため、プロジェクトでenabledPluginsに追加していなくても system reminder に 200+ skill が現れる。これらは description が短いので個別 overhead は小さいが、合計値の確認に本 skill を使う。