2026. 05. 08. / TECH · 5 min read
跑了Claude Code /doctor,出现了警告
48个技能描述被截断的警告——是什么意思,怎么修复

想做个诊断,跑了/doctor。
结果出来这个:
Skill listing will be truncated
48 descriptions dropped (full descriptions kept for
most-used skills) (3.1%/1% of context): plan-tune,
design-html, qa, +45 more
run /skills to disable some, or raise
skillListingBudgetFraction (currently 1%) in
settings.json
本来想忽略,但——48个被截断了?
这是什么意思
Claude Code每次开始对话时都会把已安装的技能列表加载到上下文中。
但上下文有预算限制,技能多了的话,描述文字就会超出这个预算。
超出的部分会被直接截掉。
我当前的设置只允许全部上下文的1%用于技能列表,技能太多导致48个描述被丢掉了。
修复方案A:提高预算比例
在settings.json中提高skillListingBudgetFraction的值。
{
"skillListingBudgetFraction": 0.03
}
把默认值0.01(1%)调到0.03(3%)左右,被截断的技能描述就能重新加载了。
文件位置:~/.claude/settings.json或项目的.claude/settings.json。
注意:这会增加每个会话在技能描述上消耗的token——大约6k token,如/doctor输出所示。如果你经常用很多技能,这个方案更适合。
修复方案B:禁用不用的技能
/skills
运行这个命令会列出已安装的技能,把实际不用的关掉就好。
装了23个gstack技能和若干superpowers,但每天真正用到的可能不到5个。
把不用的关掉更干净——节省上下文,/doctor也不会再报警。
该选哪个?
经常用很多技能 → A(提高预算比例)
装了很多技能但实际只用几个 → B(禁用不用的)
两个都做也没问题。
"most-used skills"是怎么决定的
Claude Code会追踪你实际调用过的技能。
经常使用的技能会在上下文中保留完整描述,很少使用的技能描述会被截掉。
也就是说,截断不是完全随机的——有一定的智能在里面。
但有个陷阱。
新安装的技能,或者很久没用过的技能,描述可能已经被截掉了。
输入/skillname但Claude不认识它——返回类似"没有这个技能"的回复——很可能就是这种情况。
所以在/skills里禁用不用的技能之后,一定要再跑一次/doctor,确认警告已经消失。
实际上怎么确认
按顺序来就行。
- 运行
/doctor→ 查看当前截断状态,确认哪些技能被丢掉了 - 运行
/skills→ 查看全部已安装技能和当前启用/禁用状态 - 搞清楚自己实际经常用哪些技能
- 用开关禁用不用的技能
- 再次运行
/doctor→ 验证警告是否消失
settings.json可以存在两个位置:
- 用户级别:
~/.claude/settings.json— 适用于所有项目 - 项目级别:
.claude/settings.json— 只适用于当前项目
两个文件同时存在时,项目设置会覆盖用户设置。修改skillListingBudgetFraction之前,先决定在哪个级别应用——想全局生效就改~/.claude/settings.json,想按项目单独配置就改.claude/settings.json。
一句话总结
/doctor的警告不影响运行,但被截断的技能Claude认识不到。
值得确认一下自己实际用到的技能有没有正常加载。

