Claude Code Skills 不会自动激活?这有个解决方案
Claude Code 的 Skills 功能号称是"自主激活"的——只要你的请求匹配技能描述,Claude 就会自动使用。但现实很骨感:它根本不会。
作者创建了一个
问题根源
Claude 太过专注于完成任务,会直接跳过检查可用工具的步骤。即使 Hook 提醒"检查一下 skills",Claude 也当成背景噪音忽略。
解决方案:用 Hook 强制激活
核心思路:不要依赖"自主激活",而是通过
区别在于:一个是"请考虑一下",另一个是"闭嘴听令"!
更简洁的通用方案
后来作者发现了更简单的方式——一条通用 Hook 指令适用于所有技能:
无需维护关键词脚本,无需处理冲突。
实测结果
20 次测试,成功率约 50%——基本靠运气。但比维护复杂脚本省心多了。
结论:官方说 Skills 会自动激活,实际不会。用简单 Hook 碰碰运气,重要任务还是显式调用
🔗 原文链接
#ClaudeCode #AI工具 #开发技巧 #Hooks #编程
Claude Code 的 Skills 功能号称是"自主激活"的——只要你的请求匹配技能描述,Claude 就会自动使用。但现实很骨感:它根本不会。
作者创建了一个
research 技能,用于验证信息来源。每当说"research this",Claude 应该自动调用该技能。结果呢?Claude 每次都无视技能,直接蛮干。问题根源
Claude 太过专注于完成任务,会直接跳过检查可用工具的步骤。即使 Hook 提醒"检查一下 skills",Claude 也当成背景噪音忽略。
解决方案:用 Hook 强制激活
核心思路:不要依赖"自主激活",而是通过
UserPromptSubmit Hook 检测触发词,显式命令 Claude 使用技能。# 温柔提醒(无效)
echo '💡 Check skills for relevant skills'
# 强制指令(有效)
echo "🔍 INSTRUCTION: Use Skill(research) to handle this"
区别在于:一个是"请考虑一下",另一个是"闭嘴听令"!
更简洁的通用方案
后来作者发现了更简单的方式——一条通用 Hook 指令适用于所有技能:
"command": "echo 'INSTRUCTION: If prompt matches any skill keywords, use Skill(skill-name) to activate it.'"
无需维护关键词脚本,无需处理冲突。
实测结果
20 次测试,成功率约 50%——基本靠运气。但比维护复杂脚本省心多了。
结论:官方说 Skills 会自动激活,实际不会。用简单 Hook 碰碰运气,重要任务还是显式调用
Skill(skill-name) 最靠谱。🔗 原文链接
#ClaudeCode #AI工具 #开发技巧 #Hooks #编程