SuperAPI AI 工具集

prior-art

编程与开发

查看项目

更新于 10-16 04:16

技能介绍

用途

prior-art 是一个面向 Rails 代码库的调研技能,用于回答“这个应用是怎么处理 X 的?”这类问题。它研究代码库中某个特定关注点(concern)的现有处理方式,并报告发现。

主要能力

该技能按以下步骤工作:

第一步:广泛搜索

在代码库中撒开大网,使用多种搜索策略:

  • 用关键词进行 Grep 搜索——搜索与关注点相关的术语(例如错误上报可搜索 error、exception、rescue、Sentry、Bugsnag、notify、report)
  • 检查常见的 Rails 位置——initializer、middleware、concern、基类、配置文件、lib/
  • 检查 Gemfile——是否有与该关注点相关的 gem?它们能说明采用了什么方案?
  • 检查应用级基类——ApplicationController、ApplicationRecord、ApplicationJob——它们通常设定所有子类继承的模式
  • 检查专用目录或文件——处理该关注点的 service object、concern、lib/ 模块

不满足于第一个结果。目标是找出该关注点被处理的每一个位置——一致的模式和例外情况。

第二步:检查 Git 历史

针对该关注点涉及的关键文件:

  • git log --oneline -10 <file> 查看最近改动
  • git log --all --oneline --grep="<keyword>" 查找与该关注点相关的提交
  • 关注:模式何时建立、是否演进过、是否有从一种方案迁移到另一种方案的近期改动

Git 历史能揭示一个模式是已定型还是仍在变动——这是在它之上继续构建之前的关键背景。

第三步:梳理发现

按以下顺序报告发现:

  1. 模式——用平实语言描述主要方案,一段话。“这个代码库通过做 Y 来处理 X。”如果有明确约定,指出它;如果有多种方案,逐一命名。
  2. 位置——按逻辑分组列出关键文件和位置:配置(initializer、middleware、config)、基类层设置(ApplicationController、ApplicationRecord 等)、实现文件(service、concern、model、特定 controller)、测试(该关注点如何被测试?)。每个文件包含路径和一行角色说明。
  3. 约定——该代码库对此关注点遵循什么规则?要具体:是否有一致模式还是多种方案?是否有抽象(基类、模块、共享 concern)还是临时处理?使用什么命名约定?该关注点是否有测试覆盖?
  4. 不一致之处——模式被打破或采用不同方案的地方。这不是评判,只是“这里不同,不同在哪”。这些是扩展模式前需要先理解原因的位置。
  5. Git 上下文——该模式是稳定、演进还是最近刚改动?是否有正在进行的迁移或近期重构值得了解?
  6. 如何扩展——基于现有情况,添加或构建在该模式之上的正确方式是什么?除非有充分理由,否则遵循现有约定。指出新代码应放在哪个具体文件或目录,以及应遵循的模式。

使用方式

该技能以 $ARGUMENTS 作为输入,即要调研的关注点。它探索代码库并报告发现。输出格式为带清晰标题的纯文本,每个引用都包含文件路径。这是一份研究产物,应能作为任何在该代码库此领域工作的人的参考文档。

适用场景

  • 在 Rails 代码库中新增功能前,先了解现有相关模式
  • 接手不熟悉的代码库,需要快速掌握某个关注点的处理方式
  • 评估某个模式是否一致,找出例外和需要先理解原因的位置
  • 为团队产出可复用的调研参考文档

限制

资料未提供该技能的具体安装方式、运行环境要求、支持的平台或收费信息。其搜索策略和报告结构针对 Rails 代码库设计,对其他技术栈的适用性暂未提供。