标书检查 Skill
将投标文件对照招标文件做系统性检查,输出可交付的 Excel 检查清单。检查分三大域:A 偏离表检查、B 方案正文检查、C 评分规则对照与优化建议。完整规则库见 references/check-rules.md(执行检查前必须通读)。
输入
- 招标文件(.docx):重点章节为「供货要求/技术要求」(含 *号实质性条款与参数指标表)、「评标办法/评分标准」、「投标文件格式」中的偏差表格式与填表注释。
- 投标文件(.docx):重点章节为「供货偏差表/偏离表」、「技术性能指标的详细描述(技术方案正文)」、「交付清单」、「质保与售后服务」。
环境要求(本机)
- 提取与生成使用系统 Python:
C:/Users/P24/AppData/Local/Programs/Python/Python310/python.exe(已装 python-docx 1.2.0 + openpyxl 3.1.5)。托管 Python 3.13 没有这两个库,不要用。 - Git Bash 每条命令开头先执行
export PATH="/usr/bin:/bin:/c/Windows/System32:$PATH"。 - docx 不存储真实页码。页码核对依据:①投标文件目录(TOC 行
标题\t页码)推算全文最大页码;②偏离表“偏差及索引”栏引用的页码互相之间及与目录是否自洽。真实页码级核对需转 PDF,仅在用户要求时做。
工作流程
第 1 步:提取两份文档
PY="C:/Users/P24/AppData/Local/Programs/Python/Python310/python.exe"
"$PY" <skill目录>/scripts/extract_docx.py <招标文件.docx> tender.txt
"$PY" <skill目录>/scripts/extract_docx.py <投标文件.docx> bid.txt
输出:带 [H|样式]标题、[P|样式]正文、===表格N=== 标记的纯文本(保留段落样式、表格按文档顺序展开、分页符标记)。中间文件放在工作区临时目录,检查过程中用于 Grep 定位章节与页码。
第 2 步:机器预检(确定性规则)
"$PY" <skill目录>/scripts/auto_check.py <招标文件.docx> <投标文件.docx> -o auto_findings.json
自动检出:偏离表条款覆盖缺口、投标规格/偏差说明空单元格、*号项无支撑材料页码索引、投标规格栏填“符合/满足”、页码索引超范围/指向矛盾、图表题注编号断档与格式不一、标题编号异常、叠字类错别字、中文语境半角标点、标点结尾一致性统计。输出 JSON findings(与最终 Excel 同 schema)。
机器预检不能替代语义检查——内容矛盾、负偏离、论述不充分等必须由 AI 依据第 3 步规则逐条判断。
第 3 步:AI 深度检查(通读规则库后逐域执行)
按 references/check-rules.md 的规则清单执行,重点:
- A 偏离表:用 tender.txt 的供货要求表格逐条比对 bid.txt 偏离表。每一条技术指标(含 7.1.2.12 这类“一条多参数”的复合条款)都要确认:覆盖、参数逐项给出具体值、*号项有支撑材料页码、投标参数与招标参数方向一致(不小于/不大于逐字核对——这是负偏离的命门)、投标承诺与正文方案/交付清单一致。
- B 正文:对照偏离表和供货要求核正文论证是否覆盖每项指标;扫全文错别字、半角标点、题注编号、章节编号、图表交叉引用、交付清单与招标 *10.1/*10.2 及偏离表三方一致性;识别旧项目名残留(用项目名称在 bid.txt 中 Grep 变体名,如题注/附件/清单中出现与本项目名不同的产品别名)。
- C 评分:从招标文件「评标办法前附表」提取各评分项与扣分规则(如“非*号条款每 1 项不满足扣 5 分”“偏离超 5 项否决”),对照 A/B 检查结果换算成得分风险与优化建议(含可在截标前低成本修复的加分点,如优于要求的承诺显著化)。
第 4 步:合并生成 Excel 检查清单
把机器预检 findings 与 AI 检查结论合并为统一的 JSON(去重、按严重等级与章节排序),然后:
"$PY" <skill目录>/scripts/build_xlsx.py findings.json 检查清单.xlsx
findings.json 条目 schema:
{
"category": "A-偏离表|B-方案正文|C-评分优化",
"severity": "否决风险|扣分风险|一般|建议",
"location": "偏离表 *13.2 / 正文 16 交付清单",
"page": "偏离表第10行 / 正文约392页(目录推算)",
"issue": "问题描述(一句话说清'哪里、什么错、为何有害')",
"tender_text": "招标要求摘录(≤80字,无则空)",
"bid_text": "投标内容摘录(≤80字,无则空)",
"suggestion": "具体修改建议(可直接执行的改法)"
}
第 5 步:交付
先给结论先行摘要:否决风险项数、扣分风险项数、总体响应情况、最紧迫的 3~5 项修复动作;再交付 Excel。摘要中必须点名所有“否决风险”项。
Excel 输出格式(build_xlsx.py 已实现)
- Sheet1「检查清单」:序号 | 类别 | 严重等级 | 位置(章节) | 页码 | 问题描述 | 招标要求摘录 | 投标内容摘录 | 修改建议。严重等级着色(红=否决风险、橙=扣分风险、黄=一般、灰=建议),首行冻结、自动筛选、自动换行。
- Sheet2「汇总统计」:按类别×严重等级计数 + 评分对照摘要。
- Sheet3「检查说明」:检查范围、方法、页码口径、未覆盖事项声明。
约束
- 只输出检查结论与修改建议,不直接改投标文件原文;用户确认后另行协助修改。
- 摘录招标/投标原文时保持逐字(含错字),便于用户定位。
- 对无法从文本判定的项(如图片内容、盖章签字、电子版一致性),在 Sheet3「未覆盖事项」中如实声明。