SuperAPI AI 工具集

research

编程与开发

查看项目

更新于 10-15 02:13

技能介绍

用途

该技能用于对代码库进行全面的“现状研究”,回答用户关于代码库的问题。其核心定位是:只记录和解释代码库当前实际存在的状态,不提出改进、不进行根因分析、不推荐重构或优化,除非用户明确要求。它产出的是一份关于现有系统的技术地图/文档。

主要能力

  • 读取用户直接提到的文件(工单、文档、JSON 等),要求完整读取,不使用 limit/offset 参数。
  • 将研究问题拆解为可组合的研究领域,识别需要调查的组件、模式或概念,并用 TodoWrite 创建研究计划。
  • 并行启动多个子代理执行研究任务,包括:
    • scout 代理:综合性的代码库探索(定位、分析、模式查找)。
    • thoughts-locator 代理:发现关于该主题已存在的文档。
    • thoughts-analyzer 代理:从最相关的具体文档中提取关键见解。
    • web-search-researcher 代理:仅在用户明确要求时进行外部文档与资源检索,并要求返回链接。
    • linear-ticket-reader 代理:获取特定 Linear 工单的完整细节。
    • linear-searcher 代理:查找相关工单或历史背景。
  • 等待所有子代理完成后综合结果:以实时代码库发现为主要事实来源,thoughts/ 发现作为补充历史背景,连接不同组件的发现,包含具体文件路径和行号。
  • 收集元数据:运行 hack/spec_metadata.sh 脚本生成相关元数据。
  • 生成研究文档,保存到 thoughts/shared/research/ 目录,文件名格式为 YYYY-MM-DD-ENG-XXXX-description.md(有工单号时包含 ENG-XXXX,无工单号则省略)。
  • 文档结构包含 YAML frontmatter(date、researcher、git_commit、branch、repository、topic、tags、status、last_updated、last_updated_by)以及正文:研究问题、摘要、详细发现、代码引用、架构文档、历史背景(来自 thoughts/)、相关研究、待解决问题。
  • 在适用时添加 GitHub 永久链接:检查是否在 main 分支或提交已推送,使用 gh repo view --json owner,name 获取仓库信息,生成 https://github.com/{owner}/{repo}/blob/{commit}/{file}#L{line} 形式的链接并替换本地文件引用。
  • 处理后续问题:将后续研究追加到同一文档,更新 frontmatter 的 last_updated 和 last_updated_by,添加 last_updated_note,并新增“## Follow-up Research [timestamp]”章节。

使用方式

调用该命令后,它会先回复:“I'm ready to research the codebase. Please provide your research question or area of interest, and I'll analyze it thoroughly by exploring relevant components and connections.” 然后等待用户提供研究问题。收到问题后按以下步骤执行:

  1. 先完整读取用户直接提到的文件(在主上下文中自行读取,再拆解研究)。
  2. 分析并拆解研究问题,创建研究计划。
  3. 并行启动子代理任务进行综合研究。
  4. 等待所有子代理完成并综合发现。
  5. 收集研究文档的元数据。
  6. 生成研究文档(确保目录存在:mkdir -p thoughts/shared/research)。
  7. 添加 GitHub 永久链接(如适用)。
  8. 向用户呈现简明发现摘要,包含关键文件引用,并询问是否有后续问题。
  9. 处理后续问题,追加到同一文档并同步更新。

适用场景

  • 需要理解现有代码库中某个主题、组件或架构模式的实际实现。
  • 需要梳理跨组件的连接关系与系统交互方式。
  • 需要结合 thoughts/ 目录中的历史背景来补充实时代码发现。
  • 需要为开发者提供带具体文件路径和行号的可导航技术文档。
  • 需要为后续工作建立自包含的研究文档,并可能附上 GitHub 永久链接。

限制与注意事项

  • 只描述现状,不评价、不建议改进、不进行根因分析、不推荐重构或优化,除非用户明确要求。
  • 所有代理都是记录者而非批评者。
  • 必须始终使用并行 Task 代理,始终运行全新的代码库研究,不能仅依赖已有研究文档。
  • 必须严格按编号步骤执行:先读取提到的文件,再启动子任务;等待所有子代理完成后再综合;先收集元数据再写文档;不得使用占位值写研究文档。
  • 路径处理:thoughts/searchable/ 目录包含用于搜索的硬链接,记录路径时只移除“searchable/”,保留其他所有子目录,不得把 allison/ 改成 shared/ 或反之。
  • frontmatter 需保持一致,多词字段名使用 snake_case,标签应与研究主题和组件相关。
  • 外部网页研究仅在用户明确要求时进行,并要求返回链接。
  • 关于收费、价格、平台支持等具体信息,资料中暂未提供。