midea-recall-diagnoselisted
Install: claude install-skill codingSamss/all-my-ai-needs
# Recall 排查(索引路由版)
## 0. 优先级与硬规则(必须遵守)
- **规则优先级**:`SKILL.md` > `references/*.md`。冲突时只按本文件执行。
- **接口约束**:`keyword` 回放只能用终端 `curl -X POST`,禁止浏览器地址栏访问。
- **取证范围**:本技能只用 `ELK + ES`,禁止调用 `/rag-recall/api/search/trace/recordInfo`。
- **执行通道约束(强制)**:除 `keyword` 回放外,`ELK` 取证一律使用 `python3 scripts/elk_api_query.py`(Kibana API);`ES` 取证一律使用 `python3 scripts/es_proxy_query.py`。`sit/uat` 走 Kibana Dev Tools 的 `console proxy`,`prod` 走中立云控制台 `requestEs`。正常排查禁止 Playwright 页面查询 ELK/ES,禁止 `curl` 直连 ES,也禁止手写 shell 请求代理接口。
- **完整请求强制回放**:拿到 `headers + body` 后,必须先回放并获取 fresh `requestId`,再查 ELK/ES。
- **回放后 requestId-first**:第一条 ELK 查询必须包含 `requestId + TRACE_TARGET_ES + targetId`。
- **首条 KQL 精确匹配(强制)**:首条查询中 `requestId/targetId/TRACE_TARGET_ES` 必须完整精确匹配,禁止 `*` 通配(如 `replay_*`)。
- **禁止 broad search**:回放成功后,禁止先用 `targetId` 单独扫 3 天日志再逐步收敛。
- **ELK 门禁(强制)**:任何 ELK 查询执行前,必须先通过 `python3 scripts/elk_guard.py ... --kql '<KQL>'` 校验;校验失败禁止继续查 ELK。
- **ELK 网络约束(强制)**:`elk_api_query.py` 必须忽略本地代理环境变量(`HTTP_PROXY/HTTPS_PROXY/ALL_PROXY` 等)并直连 ELK;禁止走本地代理。
- **时间窗规则**:回放后先查 `回放时间点 ±15 分钟`;无结果再扩到 `now-3d~now`。
- **TRACE 触发条件(已核对)**:`TRACE_TARGET_ES` 只会在 `traceTargetIds` 非空时打印;若原始请求 `traceTargetIds=[]`,原 `requestId` 很可能查不到该类日志,必须回放并注入 `targetIds`。
- **TRACE 日志格式(已核对)**:真实生产日志中,`phase=request` 会携带 `requestDsl=...`,`phase=response` 会携带 `isError/tookMs/returnedHitCount/totalHitCount`;`targetUrl` 形如 `GET /<index或逗号分隔索引> [cluster=N] (<desc>)`。样例见 `references/trace-target-es-format.md`。
- **回放头回填规则(已核对)**:若 `headers.appId