Claude Code Skills 太多怎么办?如何减少 token 又能提高匹配率?

9 阅读1分钟

github.com/diet103/cla…

TL;DR 使用 hooks 机制读取 skills 配置,匹配 user query 的 skills name 添加到 user query 里,强化 Skills 的匹配度

通过 UserPromptSubmit hook 分析提示词和文件上下文,自动建议相关技能,注意:UserPromptSubmit/SessionStart hooks 会把 stdout 添加为 Claude 的上下文

核心逻辑如下 skill-activation-prompt.sh

#!/bin/bash
set -e

cd "$CLAUDE_PROJECT_DIR/.claude/hooks"
cat | npx tsx skill-activation-prompt.ts

skill-activation-prompt.ts

读取 .claude/skills/skill-rules.json 内容进行字符串匹配(没有用自然语言理解,而是硬匹配)

if (triggers.keywords) {
    const keywordMatch = triggers.keywords.some(kw =>
        prompt.includes(kw.toLowerCase())
    );
    if (keywordMatch) {
        matchedSkills.push({ name: skillName, matchType: 'keyword', config });
        continue;
    }
}

然后通过 stdout 流,添加到用户 Prompt 里