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 里