From 04675e814dc3201144d6b72241a2bbad134d5da0 Mon Sep 17 00:00:00 2001 From: xcs Date: Sat, 29 Aug 2026 20:15:43 +0800 Subject: [PATCH] =?UTF-8?q?test(w05):=20=E4=BB=B6=E2=91=A1=20=E8=A1=A5?= =?UTF-8?q?=E5=85=AB=E6=9D=A1=E6=98=BE=E5=BC=8F=E5=8F=AA=E8=AF=BB=E6=96=AD?= =?UTF-8?q?=E8=A8=80=20=E2=80=94=E2=80=94=20risk=5Flevel=20=E6=92=9E?= =?UTF-8?q?=E8=BD=A6=E9=AA=97=E8=BF=87=E4=BA=86=E6=B3=9B=E5=8C=96=E8=A7=84?= =?UTF-8?q?=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 评审变异实测三次逮到两个活洞:original_value 加一个 data-col 就能在验收 工单上篡改基准事实,63 条既有断言零告警;risk_level 同时是 substitution.relation 与 substitution.difference_item 两张表都声明的 字段名,「data-col 都在台账声明里」那条泛化断言按名字找归属,被这个撞车 巧合放过——它问的是「这个名字合法吗」,不是「这一格该不该可改」。 改成显式点名八个字段(明细表六列 + 收口两枚徽章),不再依赖泛化规则。 八次变异逐一验证:每个字段单独挂上 data-col 都能让新断言真红, risk_level 那次额外确认了旧的泛化断言在同一次变异下仍然全绿 (复现评审报告的根因)。模版本身未改一字——它一直是干净的。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet --- .../__tests__/activity.test.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/activities/part-substitution-assessment/__tests__/activity.test.ts b/activities/part-substitution-assessment/__tests__/activity.test.ts index 5c6dbbe..2402e2c 100644 --- a/activities/part-substitution-assessment/__tests__/activity.test.ts +++ b/activities/part-substitution-assessment/__tests__/activity.test.ts @@ -527,6 +527,26 @@ describe('件② 差异评估结论审核', () => { expect(html).toContain('data-class-of="recommendation_level"'); expect(html).not.toContain(' { + for (const col of [ + 'parameter_name', 'parameter_desc', 'constraint_type', + 'original_value', 'candidate_value', 'parameter_unit', + 'recommendation_level', 'risk_level', + ]) { + expect(html, col).not.toContain(`data-col="${col}"`); + } + }); }); /*