Skill Researcher 的职责是在深入实现之前,先识别出对当前项目最有用的技能。它产出的推荐应当基于真实仓库、聚焦当前任务而非仅看技术栈、对置信度保持诚实,并具体说明所选技能为何优于相近的替代方案。
用途 该技能用于在现有代码库或工作目录中研究并推荐最合适的可用技能。当用户正在已有项目内工作时使用它,帮助代理或用户快速进入正确的专门工作流。
主要能力
- 正确界定项目范围:从用户真实的工作范围出发。如果用户指向某个文件、文件夹、包或服务,优先关注该区域而非仓库根目录。如果是 monorepo,判断请求实际针对哪个包或应用。如果用户给出“改进 UI”“添加 Anthropic 支持”“写文档”等任务,则把任务与技术栈并列为一级信号。当用户明显在子项目中工作时,绝不只凭仓库根目录推荐技能。
- 先获取仓库摘要:如果 brief CLI 可用,在开始时用它快速获取仓库快照。把 brief 当作定位工具而非最终事实来源,用它发现可能的应用、包、框架和文档,再对照仓库中的实际文件核实重要判断。如果 brief 不可用或对当前范围信号弱,则跳过并直接检查仓库。
- 优先检查高信号文件:偏好快速、只读的检查,从能可靠反映情况的最小文件集开始。优先查看 package.json、pnpm-lock.yaml、yarn.lock、package-lock.json;pyproject.toml、requirements*.txt、poetry.lock、uv.lock;Cargo.toml、Cargo.lock;go.mod;Gemfile、Gemfile.lock;pom.xml、build.gradle、settings.gradle;.csproj、Directory.Build.props;Dockerfile、docker-compose.yml;Makefile、justfile、Taskfile.yml;tsconfig.json、vite.config.、next.config.、nuxt.config.、astro.config.、svelte.config.、angular.json;框架入口点如 manage.py、asgi.py、wsgi.py、main.py、app.py、src/main.;README、docs/、CI 工作流和顶层架构说明。仅当项目看起来混合或模糊时才读取更多内容。
- 推断主导技术栈:只总结主要信号,包括主要语言、主要运行时或框架、核心 SDK 或平台、明显影响工作流的测试构建或部署工具,以及前端设计、文档、PDF、AI 集成、MCP、安全审查或数据工作流等特殊领域。规则是:框架优先于工具库,定义应用的配置优先于偶然的导入,重复出现的证据优先于单次提及,锁文件证明存在,配置文件和入口点证明核心地位,忽略传递性或偶然的包,除非它们直接驱动用户任务。强信号示例包括 next、react、vite、astro;fastapi、django、flask;@anthropic-ai/sdk、anthropic;MCP SDK、MCP 服务器结构或 MCP 专用文档;文档或规范密集的仓库结构;清晰的文档或 PDF 处理工作流。弱信号通常不应单独驱动推荐,例如 lodash、chalk、requests、axios、date-fns、zod,除非当前任务专门涉及它们。
- 搜索候选技能:使用精确技术栈词和任务导向词搜索可用技能。搜索顺序为:本地已安装或用户提供的技能;当存在该工作流时由 Kasetto 管理的本地同步技能;环境中可用的官方或默认技能集合;用户期望考虑的更广泛技能来源。当涉及 Kasetto 时,检查 kasetto.yaml 或相关 Kasetto 配置路径以了解哪些技能来源已同步到本地,把 Kasetto 视为本地同步机制,在相关时使用 Kasetto 管理的副本作为本地事实来源,当环境使用 Kasetto 分发技能时优先使用本地同步副本,并在影响推荐技能应从何处加载或更新时提及 Kasetto。使用多种搜索模式:精确框架如 Next.js skill;精确 SDK 或平台如 Anthropic SDK skill、MCP skill;任务加框架如 frontend design React skill、documentation spec writing skill;生态同义词如 TypeScript UI skill、Python API skill;精确词失败时回退到类别搜索。在推荐前阅读首选候选技能的实际描述,不要仅凭技能名称推荐。不要编造技能名称。如果搜索没有找到真实技能,就说明没有找到强专门匹配。
- 对候选排序:选择同时最匹配项目是什么和用户当前想做什么的技能。排序逻辑为:强匹配指技能描述明确契合任务和技术栈;良好匹配指领域契合度高且技术栈兼容,即使不是框架专用;回退指有用的通用技能但不够紧密对齐;无强匹配指没有可用技能明显优于通用帮助。优先选择明显契合的最窄技能,不要用通用语言技能替代描述直接匹配用户任务的技能。当两个技能重叠时,选一个主技能,把第二个列为备选,并解释二者边界。
- 返回简洁推荐:始终使用以下结构:技术栈快照(范围、语言、框架/平台、主要包/SDK、当前任务、置信度);最佳技能(技能、为何契合、仓库证据、为何优于相近替代);备选技能(技能及接近但未当选的原因);缺口或不确定性(影响置信度的缺失证据或模糊之处)。保持简短且基于证据,目标是帮助代理或用户快速进入正确的专门工作流。
使用方式 该技能以技能形式提供,具体安装命令、调用方式或运行环境暂未提供。使用时,代理会按上述工作流检查仓库、搜索技能并输出结构化推荐。
适用场景 适用于在已有项目内工作、需要判断应使用哪个专门技能的场景,例如 Anthropic 集成、MCP 服务器构建、UI 密集型 Web 应用、以文档为中心的工作。示例包括:项目包含 @anthropic-ai/sdk 且任务为添加提示缓存时推荐 claude-api;存在 MCP 服务器结构或 MCP SDK 依赖且任务为构建 GitHub 工具服务器时推荐 mcp-builder;存在 next.config.*、react、tailwindcss 且任务为让仪表盘更精致时推荐 frontend-design;文档密集仓库且任务为把笔记变成技术设计文档时推荐 doc-coauthoring。
限制 不要基于单个显眼依赖推荐;不要列出每个包,只总结少数重要项;不要把包管理器与框架混淆;不要忽略 monorepo 中的子目录范围;仓库证据薄弱时不要假装置信度高;没有明确匹配时不要强行使用专门技能。特殊情况下,monorepo 应按目标包或应用推荐而非按仓库品牌推荐;多领域工作应选择第一个阻塞步骤的主技能;无强匹配时应直说,并列出最接近的一两个选项及为何只是部分契合;信任与来源质量方面,除非用户明确想要社区选项,否则优先官方或已安装技能而非松散匹配的第三方技能。