search-first
作者 affaan-msearch-first 是一种先研究再编码的工作流:在编写自定义代码之前,先寻找现成工具、库和模式。使用 search-first 技能可以评估可选方案、比较取舍,并以更少的猜测来决定是直接采用、扩展,还是自定义开发。
该技能得分为 74/100,说明它适合收录给目录用户,作为实用的先研究再编码工作流;但它还不是高置信度的安装项,因为缺少配套的仓库资源和明确的安装说明。
- 使用场景的触发条件很清晰,包括新功能、依赖项、集成和实用工具创建等情况。
- 提供了具体的多步骤工作流,包含并行搜索、评估和决策阶段,能帮助 agent 减少猜测。
- SKILL.md 正文的操作细节比较充分,给出了对候选方案进行比较的明确标准。
- 没有提供安装命令或支持文件,因此用户只能根据 SKILL.md 自行推断采用方式和运行预期。
- 该仓库看起来是单文件且仅包含文档,这会削弱可信度信号,也让集成适配性更难判断。
搜索优先技能概览
什么是搜索优先
search-first 技能是一种先研究、后编码的工作流:在编写自定义代码之前,先去找现成的工具、库和实现模式。它适合让助手像谨慎的侦察员,而不是先猜再写的开发者。
适合谁使用
如果你正在启动新功能、评估依赖、接入集成,或者在做一个可能早已存在的辅助工具,就适合用 search-first 技能。对于 search-first for Skill Scaffolding 这类场景,它尤其合适,因为你想复用经过验证的模式,而不是从零发明一个新的。
为什么它重要
它的核心价值在于提升决策质量:在推荐代码之前,先推动助手去检索 npm、PyPI、GitHub、网页来源以及相关技能。这样可以减少重复劳动,改善依赖选择,也让“自建 vs 采用 vs 封装”的判断更有依据。
如何使用 search-first 技能
安装并触发它
进行 search-first install 时,使用 npx skills add affaan-m/everything-claude-code --skill search-first 添加该技能。当任务听起来像“加一个 X”“找一个用于 Y 的库”或“有没有更好的做法”时,就应该触发它。search-first usage 这种模式在你明确要求“先研究再实现”时效果最好。
给它一份有决策结构的需求说明
薄弱的需求会写成“做一个文件解析器”。更好的写法是:“需要一个适用于 Node 18 的 TypeScript 文件解析器,必须支持流式处理,不允许 native deps,优先 MIT license,并且我想要 3 个可采用或可自建的方案及其权衡。”这种格式能给技能足够上下文去有效搜索并比较候选项,而不是只返回泛泛的建议。
先读对的文件
先看 SKILL.md,然后再检查 README.md、AGENTS.md、metadata.json,以及存在的话 rules/、resources/、references/ 或 scripts/ 目录。在这个仓库里,SKILL.md 是主要事实来源,所以你不需要在额外的支持文件里来回翻找,就能推进得很快。
把工作流当作提示词模板来用
一个实用的 search-first guide 提示词应该要求包含:需求、约束、候选搜索、评估标准和明确决策。比如:“研究 X 的现有方案,对 3 个候选项做比较,按维护活跃度、文档、许可证和适配度打分,然后推荐采用、扩展或自定义开发。”这种结构能帮助研究代理返回可直接使用的结果,而不是松散的清单。
search-first 技能常见问题
search-first 只适合大型项目吗?
不是。它在小任务上往往更有价值,因为这些任务看起来不起眼,却很容易悄悄积累技术债,比如一个辅助函数、一个 UI 工具方法,或者一次依赖选择。跳过研究的代价,通常在“看起来很简单”的改动里最高。
它和普通提示有什么不同?
普通提示可能是在要点子;search-first skill 要求的是研究流程和决策输出。这个区别很重要,因为它的结果是为了支持采用决策,而不只是回答“我可以写什么代码”。
对新手友好吗?
友好,只要你能描述自己的目标和约束。新手尤其受益,因为这个技能会缩小搜索范围,并且帮你发现那些你可能根本不知道该去找的现成方案。若你只想立刻拿到代码,而不想看权衡分析,它就没那么合适。
什么时候不该用它?
如果任务明显需要定制、时间非常紧,或者只与你的代码库内部强相关、外部方案并不适用,就可以跳过它。若你已经明确知道要用哪个 package 或哪种模式,直接实现通常比完整搜索更快。
如何改进 search-first 技能
提前给出会改变搜索结果的约束
质量提升最大的地方,是一开始就写明硬约束:语言、运行时、框架、许可证、包体大小、安全规则、平台限制,以及是否允许 native deps。这些信息能帮助技能筛掉候选项,而不是把热门但不可用的方案都摆出来。
要求比较,不只是推荐
更好的 search-first usage 请求,会要求一个精简候选列表和带理由的推荐。比如:“比较 3 个库,解释每个为什么可能不合适,然后选一个用于生产、再给一个备用方案。”这样得到的研究结果,比只报一个名字更可执行。
警惕浅层的新鲜度偏好
常见失败模式是:只因为项目最新、最显眼,就把它选中,却没有检查维护情况、文档质量或集成成本。你可以通过要求 search-first skill 明确写出采用阻力、生态匹配度,以及什么条件会让你否掉某个候选项,来提升结果质量。
第一轮之后继续迭代
如果第一轮结果太宽泛,就在下一轮提示词里补一个缺失约束,或加一个验收条件。对于 search-first for Skill Scaffolding,这可能意味着加入目标语言、仓库结构,或者你希望复用的 scaffold 的具体类型。
