Files
claw/docs/superpowers/reports/2026-04-18-g2-second-round-remediation-report.md

160 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# G2 第二轮整改回归报告
> Date: 2026-04-18
> Scope: `docs/superpowers/plans/2026-04-18-g2-remediation-plan.md`
> Family: `G2`
## 1. 本轮整改落地内容
本轮严格围绕 `G2` 家族整改,实际落地了以下链路修复:
1. `multi_mode_request` 识别优先级前置,避免被分页噪声重新压回 `paginated_enrichment`
2. `bootstrap` 候选从“仅命名 URL”扩展为“命名 URL + endpoint 业务根路径”联合评分,并保留已有 `sourceUrl` 回归口径
3. `request_template` 支持以下真实场景写法:
- `data: JSON.stringify(datas)`
- `data: ${JSON.stringify(datas)}`
- `let/const/var datas = {...}` 变量间接引用
- 对象简写字段,如 `weekSfdate`
4. `cols1/cols2` 改为平衡括号抽取,不再依赖 `];` 结尾,修复真实线损场景中两组列被吞并的问题
5. `G2` readiness gate 继续维持 fail-close
- `g2_modes_present`
- `g2_request_contract_complete`
- `g2_response_contract_complete`
## 2. 回归测试结果
本地回归:
- `cargo test --test scene_generator_test -- --nocapture`
- 结果:`15 passed`
新增和强化的回归口径已覆盖:
1. `G2` 噪声场景不再误判为 `paginated_enrichment`
2. `localhost` 仍只作为宿主依赖保留
3. `data -> JSON.stringify(var)` 的请求模板能够恢复
4. 缺少 `G2` 合同时继续被阻断
5. 不带分号的 `cols1/cols2` 仍能正确拆出 `month/week` 列定义
## 3. 真实样本第二轮结果
### 3.1 台区线损大数据-月_周累计线损率统计分析
样本路径:
- 源场景:`D:\desk\智能体资料\全量业务场景\一平台场景\台区线损大数据-月_周累计线损率统计分析`
- 生成产物:`examples/real_scene_batch_round1/skills/real-tq-lineloss-report-r4`
结果:
1. 已成功生成,不再 fail-close
2. `workflowArchetype = multi_mode_request`
3. `bootstrap.expectedDomain = 20.76.57.61:18080`
4. `bootstrap.targetUrl = http://20.76.57.61:18080/gsllys`
5. `modes = [month, week]`
6. `month/week` 均具备非空 `requestTemplate`
7. `month/week` 均具备非空 `columnDefs`
8. `responsePath = content`
9. `g2_request_contract_complete = true`
10. `g2_response_contract_complete = true`
11. `readiness.level = A`
结论:
- 该样本已进入“候选验证名单”
### 3.2 白银线损周报
样本路径:
- 源场景:`D:\desk\智能体资料\全量业务场景\一平台场景\白银线损周报`
- 生成尝试:`real-baiyin-lineloss-weekly-r1`
结果:
1. 仍然 fail-close
2. 生成器报错:`workflow evidence is incomplete for archetype multi_mode_request`
直接证据:
1. 场景内能抓到周维接口:
- `getYearMonWeekLinelossAnalysisList`
2. 同时还能抓到台区排行接口:
- `getTqLinelossInfoListRank`
3. 但当前最小证据审计中,没有看到与 `tq` 主样本同级的显式 `cols1/cols2`
4. 也没有看到月/周双模式都完整闭合的 response-side 合同证据
结论:
- 当前仍应维持 fail-close
- 该样本说明:`G2` 家族中还存在“只有部分 week/mode 信号,但没有完整列合同”的变体
### 3.3 线损同期差异报表
样本路径:
- 源场景:`D:\desk\智能体资料\全量业务场景\一平台场景\线损同期差异报表`
- 生成尝试:`real-lineloss-period-diff-r1`
结果:
1. 仍然 fail-close
2. 生成器报错:`workflow evidence is incomplete for archetype multi_mode_request`
直接证据:
1. 主要抓到的是:
- `getTqLinelossInfoListRank`
- `getUserElectricList`
- `tqQualifyRateMonitor`
2. 同时还混入了同期系统链路:
- `10.4.39.180/xsgl/...`
3. 当前最小证据审计中,没有看到 `tq` 主样本那样稳定的 `month/week + cols1/cols2` 完整合同
结论:
- 当前仍应维持 fail-close
- 该样本更像“线损主场景 + 同期系统联动”的混合工作流,而不是已经闭合的 `tq` 主报表双模式合同
## 4. 与第一轮相比的变化
第一轮 blocker
1. 主样本会退化成 `paginated_enrichment`
2. `bootstrap` 落错
3. `request_template` 丢失
4. `cols1/cols2` 串并,导致 mode response contract 不成立
5. readiness 会给出失真的高分或错误通行
第二轮结果:
1. 主样本不再退化成 `paginated_enrichment`
2. 主样本 `bootstrap` 已落到 `http://20.76.57.61:18080/gsllys`
3. 主样本 `month/week` 请求模板已恢复
4. 主样本 `month/week` 列合同已恢复
5. 主样本已进入候选验证名单
6. 其余两份样本继续 fail-close没有被错误放行
## 5. 仍保留的 blocker
本轮没有解决、但已经被明确收敛出来的剩余问题:
1. `G2` 家族内部并不只有 `tq` 主报表一种结构,至少还存在:
- 周报偏单侧 mode 信号变体
- 同期差异联动型混合工作流
2. 当前 endpoint 候选中仍有较多业务外噪声 URL 残留,但已不再阻塞主样本进入候选验证
3. `G2` 主样本已经达到候选验证门槛,但“家族扩展到更多线损变体”仍未完成
## 6. 本轮结论
按本计划的目标口径,本轮整改已经完成以下关键结果:
1. `台区线损大数据-月_周累计线损率统计分析` 已从稳定失败推进到候选验证可用
2. 另外两份真实样本没有被错误放行,继续保持 fail-close
3. 第二轮整改已经把 `G2` 从“主样本无法成型”推进到“主样本可成型、变体样本被明确隔离”
当前最准确的状态判断是:
- `G2` 主样本整改已达标
- `G2` 家族扩展仍未完成