discover-triage-urlslisted
Install: claude install-skill osren/interview-flashcard
# 从项目里摘取核心链路 url 清单
把一个**接口散落在很多地方**的项目,转成一份 `onboard-triage-domain` 能直接吃的 url 清单:
`<team>-urls.js`(urls.js 形态:按业务链路分组的注释 + `export const NAME = '/path'`)。
**本 skill 只产出「中间物 = url 清单」,不生成 rules.js / prompts,也不碰 error-triage 引擎。**
清单必须经用户人工确认���才交给下游 `onboard-triage-domain`。切分清楚,坏味道拦在中间。
设计参照 `src/plugins/error-triage/domains/train/rules.js` 与项目根的 `urls.js`(人工维护的清单范本,注意它每条 url 都带一句中文注释——那正是我们要还原的语义)。
## 0. 先确认输入 + 判定模式(缺了就问用户)
- **团队/业务名**(kebab-case,如 `hotel`、`flight`;用于输出文件名和下游 DOMAIN)。
- **项目路径**:要分析的代码库根目录。
- (可选)**已知的自有前缀**:用户若知道(如 `/esapp/`)先记下,否则第 1 步侦察时推断。
**判定模式**:
- 若 `<team>-urls.js` **不存在** → **全量模式**(走第 1–5 步,首次接入)。
- 若 `<team>-urls.js` **已存在**(项目后续新增接口、要同步)→ **增量/sync 模式**(跳到「增量 / sync 模式」一节,只处理 delta,省 token)。
## 1. 侦察:先探技术栈,再套对应 playbook(不能跳)
**不要假设项目是 JS 前端。** 先花几分钟判断技术栈,再选匹配的抽取 playbook——不同栈里 url 的落法天差地别,套错 playbook 会大面积漏。
**第一步先判栈**(看 `package.json` / `pom.xml` / `go.mod` / `build.gradle` / `Podfile` / `pubspec.yaml` / 目录结构):
| ��术栈 | url 主要落在哪 | 首选来源 |
|---|---|---|
| **JS/TS 前端**(含 mpx/小程序/RN) | 请求调用内联 `$http/axios/fetch(...)`、集中常量 `urls.js`、`base+相对路径`拼接 | grep 字符串字面量 + Explore 补读 |
| **原生 App**(Android/iOS/Flutter) | Retrofit/OkHttp 注解、`URLSession`/Alamofire、Dart 常量;也可能从远端配置下发 | 注解/常量 grep;下发式则找配置源 |
| **后端服务**(Java/Go/Node) | 路由注册/注解 `@RequestMapping`/`router.post('/x')` | **优先读网关注册表 / OpenAPI,而非 grep 代码** |
| **有 OpenAPI/Swagger/proto** | `openapi.yaml` / `.proto` / 接口文档 | **直接解析规范文件——最权威、最全,优先于一切 grep** |
> **原则:有权威接口清单(网关注册表、OpenAPI、proto)