fix(check): 修国动真实投标文件暴露的 6 处(规则集 r5)
Some checks failed
ci / server (push) Has been cancelled
ci / web (push) Has been cancelled
ci / contract (push) Has been cancelled

国动真实投标文件查标一次(check-eval §14):44 个问题里有用的 9 个,
致命、重要两级都是误报。按决策 E3 全部修(§15):
- 响应错位:「完全满足,无偏离。」这类复合肯定写法整体算肯定
- 附加条件:「不以……另行收费」是承诺
- 扫描件:文字层 v5 记每页图片占比,带一行说明的扫描页也认;提示写明扫描页范围
- 不需要这家投标人回答的:无特定资格要求、总括性资格要求、中标后才做的事、
  投标文件没声称适用的联合体和价格扣除
- 「方案应明确 A、B、C……」逐项再检索
- 同一批送出的片段都可引用(引文照样核对);出处没过校验的不沿用

国动重新检查 44 → 11(全是提示,有用的 9 个都在);开发集召回 112 → 111
(模型重跑波动),致命级 25/32 不变,规矩的投标文件问题 239 → 213。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
YANG JIANKUAN
2026-11-05 13:16:12 +08:00
parent f5edc585f1
commit 808259da87
16 changed files with 373 additions and 21 deletions

View File

@@ -356,3 +356,21 @@ def test_long_response_mentioning_noncompliance_is_not_negative() -> None:
assert deviation.judge([s("部分响应")], "投标响应情况") == "negative"
assert deviation.judge([s("不满足,现有版本仅支持单机部署")], "投标响应情况") == "negative"
assert deviation.judge([s("无偏"), s("离")], "偏离") == "ok"
def test_negated_extra_charge_is_a_promise_not_a_condition() -> None:
"""「不以……另行收费」「不以……为由另行计取」是承诺(国动真实投标文件误报,check-eval §14);
真的附加了条件(「另行收取」「另行协商」)照报。"""
d = doc(
[
para(1, "数据迁移和接口改造均包含在合同价中,不以正常适配工作另行收费。"),
para(2, "质保期内不以系统升级、兼容调整为由另行计取费用,售后服务全部免费。"),
para(3, "现场驻场服务费用按天另行收取,不含在本次报价中。"),
para(4, "超出质保期的维护费用由双方另行协商确定。"),
]
)
hits, _ = rules.run(rules.Facts(), [d], [])
assert sorted((h.code, h.evidence[0][1].seq) for h in hits) == [
("FORM.CONDITION_ADDED", 3),
("FORM.CONDITION_ADDED", 4),
]