All skills

context-budget

Official
by Api.AirforcePrepends a system promptAI & Agent Building000 uses202,700

审核Claude Code上下文窗口在代理、技能、MCP服务器和规则中的消耗情况。识别膨胀、冗余组件,并提供优先的令牌节省建议。

open-sourceclaude-codeai-agent-buildingaffaan-m
Share

What this skill does

When applied, it prepends a system prompt before your request is sent — no extra calls and no change to how you are billed beyond the added tokens.

---
name: context-budget
description: 审核Claude Code上下文窗口在代理、技能、MCP服务器和规则中的消耗情况。识别膨胀、冗余组件,并提供优先的令牌节省建议。
origin: ECC
---

# 上下文预算

分析 Claude Code 会话中每个已加载组件的令牌开销,并提供可操作的优化建议以回收上下文空间。

## 使用时机

* 会话性能感觉迟缓或输出质量下降
* 你最近添加了许多技能、代理或 MCP 服务器
* 你想知道实际有多少上下文余量
* 计划添加更多组件,需要知道是否有空间
* 运行 `/context-budget` 命令(本技能为其提供支持)

## 工作原理

### 阶段 1:清单

扫描所有组件目录并估算令牌消耗:

**代理** (`agents/*.md`)

* 统计每个文件的行数和令牌数(单词数 × 1.3)
* 提取 `description` 前言长度
* 标记:文件 >200 行(繁重),描述 >30 词(臃肿的前言)

**技能** (`skills/*/SKILL.md`)

* 统计 SKILL.md 的令牌数
* 标记:文件 >400 行
* 检查 `.agents/skills/` 中的重复副本 — 跳过相同副本以避免重复计数

**规则** (`rules/**/*.md`)

* 统计每个文件的令牌数
* 标记:文件 >100 行
* 检测同一语言模块中规则文件之间的内容重叠

**MCP 服务器** (`.mcp.json` 或活动的 MCP 配置)

* 统计配置的服务器数量和工具总数
* 估算模式开销约为每个工具 500 令牌
* 标记:工具数 >20 的服务器,包装简单 CLI 命令的服务器 (`gh`, `git`, `npm`, `supabase`, `vercel`)

**CLAUDE.md**(项目级 + 用户级)

* 统计 CLAUDE.md 链中每个文件的令牌数
* 标记:合并总数 >300 行

### 阶段 2:分类

将每个组件归入一个类别:

| 类别 | 标准 | 操作 |
|--------|----------|--------|
| **始终需要** | 在 CLAUDE.md 中被引用,支持活动命令,或匹配当前项目类型 | 保留 |
| **有时需要** | 特定领域(例如语言模式),未在 CLAUDE.md 中引用 | 考虑按需激活 |
| **很少需要** | 无命令引用,内容重叠,或无明显的项目匹配 | 移除或延迟加载 |

### 阶段 3:检测问题

识别以下问题模式:

* **臃肿的代理描述** — 前言中描述 >30 词,会在每次任务工具调用时加载
* **繁重的代理** — 文件 >200 行,每次生成时都会增加任务工具的上下文
* **冗余组件** — 重复代理逻辑的技能,重复 CLAUDE.md 的规则
* **MCP 超额订阅** — >10 个服务器,或包装了可免费使用的 CLI 工具的服务器
* **CLAUDE.md 臃肿** — 冗长的解释、过时的部分、本应成为规则的指令

### 阶段 4:报告

生成上下文预算报告:

```
上下文预算报告
═══════════════════════════════════════

总预估开销:约 XX,XXX 个词元
上下文模型:Claude Sonnet (200K 窗口)
有效可用上下文:约 XXX,XXX 个词元 (XX%)

组件细分:
┌─────────────────┬────────┬───────────┐
│ 组件            │ 数量   │ 词元数    │
├─────────────────┼────────┼───────────┤
│ Agents          │ N      │ ~X,XXX    │
│ Skills          │ N      │ ~X,XXX    │
│ Rules           │ N      │ ~X,XXX    │
│ MCP tools       │ N      │ ~XX,XXX   │
│ CLAUDE.md       │ N      │ ~X,XXX    │
└─────────────────┴────────┴───────────┘

WARNING: 发现的问题 (N):
[按可节省词元数排序]

前 3 项优化建议:
1. [action] → 节省约 X,XXX 个词元
2. [action] → 节省约 X,XXX 个词元
3. [action] → 节省约 X,XXX 个词

Use this skill

Per request

Add a "skill" field with the skill’s ID to your chat completion request. It is applied server-side before your prompt is sent — no extra calls.

{
  "model": "gpt-4o-mini",
  "skill": "imp-b748cbc1-e428-4878-915d-5d59e9f425d6",
  "messages": [{ "role": "user", "content": "…" }]
}
Always on — no field to send

Install the skill, enable it in your dashboard and (optionally) limit it to specific models. It then applies automatically to every matching request — with no "skill" field to send each time.

Set it up in your dashboard