Search First

affaan-m/ECC/docs/zh-CN/skills/search-first

作者 affaan-mef648e01899ba3e8dc6371642deaaf64b4477775无许可证275K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库4天前更新

研究优先于编码的工作流程。在编写自定义代码之前,搜索现有的工具、库和模式。调用研究员代理。

AI 生成的概览

引导智能体在编写自定义代码之前,先研究现有工具、库和 MCP 服务器。

功能
该技能定义了一套“先研究后编码”的工作流程:分析需求,并行搜索包仓库、MCP 服务器、技能和 GitHub,按功能、维护情况、社区、文档、许可证和依赖对候选方案评分,然后决定采用、扩展、组合或自行构建。它提供快速内联检查清单和委派给研究员子代理的完整模式,并附有分类快捷方式和示例。产出是结构化对比与推荐,而非代码。
适用场景
适用于开始一个很可能已有现成解决方案的新功能、添加依赖或集成,或在创建新的实用程序、助手或抽象之前。其目的是避免重复造轮子和依赖膨胀。
运行要求
仅为说明性内容,不附带脚本。完整模式假定有研究员子代理,并能访问包仓库、MCP 服务器列表和 GitHub 搜索,以及本地的技能与设置目录。

/search-first — 编码前先研究

系统化“在实现之前先寻找现有解决方案”的工作流程。

触发时机

在以下情况使用此技能:

  • 开始一项很可能已有解决方案的新功能
  • 添加依赖项或集成
  • 用户要求“添加 X 功能”而你准备开始编写代码
  • 在创建新的实用程序、助手或抽象之前

工作流程

┌─────────────────────────────────────────────┐│  1. 需求分析                               ││     确定所需功能                          ││     识别语言/框架限制                     │├─────────────────────────────────────────────┤│  2. 并行搜索(研究员代理)                ││     ┌──────────┐ ┌──────────┐ ┌──────────┐  ││     │  npm /   │ │  MCP /   │ │  GitHub / │  ││     │  PyPI    │ │  技能    │ │  网络     │  ││     └──────────┘ └──────────┘ └──────────┘  │├─────────────────────────────────────────────┤│  3. 评估                                   ││     对候选方案进行评分(功能、维护、      ││     社区、文档、许可证、依赖)            │├─────────────────────────────────────────────┤│  4. 决策                                   ││     ┌─────────┐  ┌──────────┐  ┌─────────┐  ││     │  采用   │  │  扩展    │  │  构建   │  ││     │ 原样    │  │  /包装   │  │  定制   │  ││     └─────────┘  └──────────┘  └─────────┘  │├─────────────────────────────────────────────┤│  5. 实施                                   ││     安装包 / 配置 MCP /                    ││     编写最小化自定义代码                   │└─────────────────────────────────────────────┘

决策矩阵

信号行动
完全匹配,维护良好,MIT/Apache 许可证采纳 — 直接安装并使用
部分匹配,基础良好扩展 — 安装 + 编写薄封装层
多个弱匹配组合 — 组合 2-3 个小包
未找到合适的构建 — 编写自定义代码,但需基于研究

使用方法

快速模式(内联)

在编写实用程序或添加功能之前,在脑中过一遍:

  1. 这已经在仓库中存在吗? → 首先通过相关模块/测试检查 rg
  2. 这是一个常见问题吗? → 搜索 npm/PyPI
  3. 有对应的 MCP 吗? → 检查 ~/.claude/settings.json 并进行搜索
  4. 有对应的技能吗? → 检查 ~/.claude/skills/
  5. 有 GitHub 上的实现/模板吗? → 在编写全新代码之前,先运行 GitHub 代码搜索以查找维护中的开源项目

完整模式(代理)

对于非平凡的功能,启动研究员代理:

任务(子代理类型="通用型",提示="  研究现有工具用于:[描述]  语言/框架:[语言]  约束:[任何]
  搜索:npm/PyPI、MCP 服务器、Claude Code 技能、GitHub  返回:结构化对比与推荐")

按类别搜索快捷方式

开发工具

  • Linting → eslint, ruff, textlint, markdownlint
  • Formatting → prettier, black, gofmt
  • Testing → jest, pytest, go test
  • Pre-commit → husky, lint-staged, pre-commit

AI/LLM 集成

  • Claude SDK → 使用 Context7 获取最新文档
  • 提示词管理 → 检查 MCP 服务器
  • 文档处理 → unstructured, pdfplumber, mammoth

数据与 API

  • HTTP 客户端 → httpx (Python), ky/got (Node)
  • 验证 → zod (TS), pydantic (Python)
  • 数据库 → 首先检查是否有 MCP 服务器

内容与发布

  • Markdown 处理 → remark, unified, markdown-it
  • 图片优化 → sharp, imagemin

集成点

与规划器代理

规划器应在阶段 1(架构评审)之前调用研究员:

  • 研究员识别可用的工具
  • 规划器将它们纳入实施计划
  • 避免在计划中“重新发明轮子”

与架构师代理

架构师应向研究员咨询:

  • 技术栈决策
  • 集成模式发现
  • 现有参考架构

与迭代检索技能

结合进行渐进式发现:

  • 循环 1:广泛搜索 (npm, PyPI, MCP)
  • 循环 2:详细评估顶级候选方案
  • 循环 3:测试与项目约束的兼容性

示例

示例 1:“添加死链检查”

需求:检查 Markdown 文件中的失效链接搜索:npm "markdown dead link checker"发现:textlint-rule-no-dead-link(评分:9/10)行动:采纳 — npm install textlint-rule-no-dead-link结果:无需自定义代码,经过实战检验的解决方案

示例 2:“添加 HTTP 客户端包装器”

需求:具备重试和超时处理能力的弹性 HTTP 客户端搜索:npm "http client retry"、PyPI "httpx retry"发现:got(Node)带重试插件、httpx(Python)带内置重试功能行动:采用——直接使用 got/httpx 并配置重试结果:零定制代码,生产验证的库

示例 3:“添加配置文件 linter”

需求:根据模式验证项目配置文件搜索:npm "config linter schema"、"json schema validator cli"发现:ajv-cli(评分:8/10)操作:采用 + 扩展 —— 安装 ajv-cli,编写项目特定的模式结果:1 个包 + 1 个模式文件,无需自定义验证逻辑

反模式

  • 直接跳转到编码:不检查是否存在就编写实用程序
  • 忽略 MCP:不检查 MCP 服务器是否已提供该能力
  • 过度定制:对库进行如此厚重的包装以至于失去了其优势
  • 依赖项膨胀:为了一个小功能安装一个庞大的包

来源与署名

来源:affaan-m/ECC位于docs/zh-CN/skills/search-first提交ef648e0

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架