历史遗留线上问题修复
Overview
使用这个 skill 修复历史遗留前端线上问题。目标是先还原线上事实、历史原因和影响范围,再做最小必要改动,避免因为只看到一个页面或一个接口就破坏其他旧业务路径。
修复原则
- 线上优先:先止血和控风险,不做顺手重构。
- 证据优先:关键结论尽量附文件路径、命令输出、git 线索或用户提供的线上现象。
- 旧业务基线优先:先明确哪些行为必须保持不变,再判断什么必须修。
- 同源扫描优先:没查重复逻辑、相同字段、相同配置和相似判断前,不要只改一个位置。
- 最小改动优先:优先修直接问题;需要改公共层时,先列出所有受影响调用方。
- 可回滚优先:修复方案必须说明回滚点和验证路径。
- 不确定性透明:区分已确认事实、代码推断和待确认风险。
工作流程
- 问题定界:
- 读取
references/incident-intake.md。 - 明确线上现象、影响平台、页面、环境、用户路径、接口、期望行为和紧急程度。
- 读取
- 建立旧业务基线:
- 明确“原来应该保持不变的行为”和“这次必须修复的异常行为”。
- 如果没有线上证据或用户描述不足,先列待确认项。
- 历史考古:
- 读取
references/legacy-archaeology.md。 - 查页面入口、接口调用、环境配置、业务配置、历史兼容逻辑和 git 线索。
- 读取
- 同源逻辑扫描:
- 读取
references/shared-logic-sweep.md。 - 搜索相同接口、字段、配置 key、枚举、状态码、文案、storage key、路由和相似判断。
- 读取
- 影响面分析:
- 读取
references/frontend-impact-analysis.md。 - 将潜在改动映射到页面、接口、配置、公共组件、store、路由、平台和旧业务路径。
- 读取
- 制定安全修复策略:
- 读取
references/safe-fix-strategy.md。 - 判断局部修复、公共层修复、兼容修复或配置开关修复。
- 读取
- 修改与验证:
- 只在用户要求执行修复时改代码。
- 改完读取
references/hotfix-verification.md,运行能覆盖修复的最小验证。
- 交付结论:
- 说明修了什么、为什么这样修、验证了什么、剩余风险和回滚方式。
高风险门禁
遇到以下情况,先输出风险和确认项,再进入代码修改:
- 改动请求封装、baseURL、鉴权、拦截器、全局错误处理。
- 改动环境配置、构建配置、发布配置、平台配置。
- 改动公共组件、公共 hooks、全局 store、路由守卫、权限判断。
- 涉及支付、登录、停车、充电、券、订单、追缴等关键业务链路。
- 同一业务规则在多个页面或平台重复实现。
- 只能从代码推断问题,缺少线上复现、日志、截图或用户路径。
输出格式
修复前优先输出:
**线上问题判断**
现象:
影响范围:
期望行为:
优先级:
**证据链**
- 页面入口:
- 接口调用:
- 环境/业务配置:
- 历史线索:
**旧业务基线**
- 必须保持:
- 允许改变:
**同源逻辑扫描**
- 已搜索:
- 发现位置:
- 判断:
**影响面**
- 页面:
- 接口:
- 配置:
- 平台:
- 旧业务路径:
**修复策略**
建议改动:
原因:
回滚点:
**验证清单**
-
修复后输出:
**修复结果**
改动文件:
修复逻辑:
**验证结果**
已运行:
未验证:
**风险与回滚**
剩余风险:
回滚方式:
按需读取 references
- 问题信息不足或需要规范 intake 时,读取
references/incident-intake.md。 - 需要追溯历史逻辑、页面、接口、配置或 git 线索时,读取
references/legacy-archaeology.md。 - 修改前必须读取
references/shared-logic-sweep.md。 - 需要判断影响面时,读取
references/frontend-impact-analysis.md。 - 需要选择修复方式时,读取
references/safe-fix-strategy.md。 - 修改后必须读取
references/hotfix-verification.md。