招投标评分报告生成
将「招标文件评分标准 → 投标文件响应 → 评分报告」做成一个可复用、且输出版式固定的流程。报告版式固定为:叙事与表格混排、深蓝表头、结论先行。
依赖与可移植性(安装者必读)
- 本技能完全自包含:不读取任何工作区文件,所有版式与配色已固化在
scripts/build_report.py中;拷贝本技能到别处,无需携带任何外部文件。 - 运行时依赖:一个 managed python 解释器 +
python-docx包(脚本启动时会自动pip install python-docx,需联网;离线环境请预先pip install python-docx)。 - 路径约定:两个脚本的所有输入/输出路径均通过命令行参数传入,零硬编码绝对路径,可在任意工作目录下运行。
- 安装方式:把整个
tender-bid-scoring/目录复制到目标机器的~/.workbuddy/skills/(用户级)或<项目>/.workbuddy/skills/(项目级)即可被自动识别加载。 - 输入文件:用户上传的两份 docx(第一=招标、第二=投标),文件名任意,由调用顺序识别。
输入约定(重要)
- 第一个上传的文件 = 招标文件(含评标办法 / 评分标准章节)
- 第二个上传的文件 = 投标文件(待评分的响应文件)
- 两个文件均为 .docx,文件名称不限,按用户上传 / 传入的先后顺序识别(先招标后投标)。
执行流程
- 确认输入:确认收到两份 docx,明确第一=招标、第二=投标;顺序不明时按约定处理。
- 提取文本:用本 skill 的
scripts/extract_docx.py把两份文件提取为纯文本,并统计内嵌图片数与各章节图片分布(用于判断"系统截图是否齐全")。
-python scripts/extract_docx.py <招标文件.docx> <招标.txt>
-python scripts/extract_docx.py <投标文件.docx> <投标.txt>
- 脚本路径相对本 skill 所在目录;用 available managed python 运行,不要写死绝对路径。 - 定位评分标准:在招标文件文本中检索「评标办法 / 评分标准 / 评分细则 / 分值 / 得分 / 评分因素」,提取全部评分维度、各细项满分、评分规则原文、扣分项与档位规则(如"低于某阈值得满分、卡档扣分")。评分标准完全来自本次上传的招标文件,技能不预置任何项目特定的评分规则——
references/report_schema.md里的示例仅为 JSON 格式演示,切勿套用到新项目。 - 逐项评估:通读投标文件,按每个评分细项判定响应程度,记录:
- 评分规则(直接摘招标原文,让评委/用户一眼看清判分口径)
- 得分点(材料齐备、已超过门槛的部分)
- 失分点(缺材料 / 卡档 / 表述矛盾 / 属排除类型)
- 建议(具体怎么改,落到可操作)
- 关键细项附核查表(评分项 / 分值 / 预计 / 核查结果),尤其是截图类、案例判定类、承诺函类。 - 投标文件自身质量体检(独立于评分,必做):在对照评分标准之外,对投标文件本身做一次「内部一致性 + 完整性 + 文字质量」扫描。这类问题不来自评分标准,但首版报告已发现、且在后续调用中极易被遗漏,必须作为固定环节逐项执行:
- a. 前后不一致:同一主体(人员 / 公司 / 产品 / 金额 / 期限)在不同章节出现的数字、年限、名称是否矛盾。逐项比对:简历年限 vs 团队表年限、维保费率三处口径、报价基准引用等。
- b. 错别字与事实错误:扫描明显错别字(如 0ceanBase)、重复字、技术名词拼写,以及误用被评分排除的类型词(如把"升级改造"写进业绩)。
- c. 缺章节 / 空章节:检查大纲每个标题下是否有实质内容;凡正文引用「详见 X 附录 / 见第 Y 章」的,核对目标章节是否真实存在、是否非空。
- d. 交叉引用失效:凡出现「详见 / 参见 / 见 X」等引用,逐一核对锚点是否存在,缺失即记一项。
- e. 证明材料缺失:凡评分要求「提供复印件 / 扫描件 / 盖章」的,核对投标文件是否实际包含该材料(图片 / 附件 / 页面),不只看文字说"已提供"。
- f. 常规符合性检查(通用投标合规项,不论行业 / 评分标准都该查,多属否决性或资格性硬门槛):逐项核对,命中即记一项(这类问题与评分标准无关,但漏查会直接废标或整项归零):- 投标有效期:是否满足招标文件要求(常见 ≥90 天),不足即废标。
- 签署与盖章:投标函 / 报价函是否由法定代表人或授权代表签字并加盖单位公章;如为授权,授权书及被授权人身份证复印件是否齐全、在有效期内。
- 报价一致性:投标函总价 = 分项报价表 / 开标一览表合价,大小写一致,无算术错误、无前后矛盾。
- 最高限价:投标报价是否超过最高投标限价(超限价直接否决)。
- 工期 / 服务期:承诺的工期 / 交货期 / 服务期是否满足招标要求(应优于或等于门槛)。
- 资格性条件:营业执照、相关资质证书是否在有效期内;是否被列入失信被执行人 / 重大税收违法 / 政府采购严重违法失信名单(招标常要求书面承诺)。
- 实质性条款:带 ★ 号或明示"废标 / 否决"的实质性条款逐条响应,无负偏离或已明确声明。
- 必备函件:法定代表人身份证明 / 授权委托书、廉洁承诺书、保密承诺、无行贿犯罪记录承诺等是否齐备并签署。
- 偏离表:商务 / 技术偏离表是否填写(声明无偏离或列明偏离项)。
- 日期逻辑:公司成立时间早于项目时间、证书有效期覆盖投标期、人员从业年限自合理起点起算,无时间倒置或矛盾。
- 格式规范:页码连续、目录与正文一致、无空白页、无内部修订批注 / 评论残留。
- 文档杂质清理:删除整段照抄招标文件的"注:/ 说明:"等原文(可精简为一句响应声明);清除内部备注性 / 草稿性文字、遗留的修订痕迹(如"待补充""下同""以下参考"等残留),避免评委视作不严谨或无效引用。
- g. 团队与人员材料专项检查(投标高频致命失分点,必做):招投标中"团队 / 人员"最常被否决或整项归零,必须按招标明示的材料清单与资质门槛逐项核对(这类问题常直接导致整板块 0 分,优先级等同 P0):
- 团队材料齐全性:凡招标要求"全体成员提供 ①简历 ②体现姓名的项目合同复印件 ③劳动合同复印件 ④近 N 个月社保证明"且写明"未按要求提供或提供不全不得分"的,逐一核对投标文件是否实际包含每一类材料(图片 / 扫描件 / 章节),不只看文字说"已提供";子节标题存在但正文为空的,按"提供不全"判 0 分风险。
- 人员硬性资质门槛:核心人员是否满足招标明示的硬性条件(如"N 年以上 XX 实施经验 + 主导开发至少 N 个 XX 项目""持有 XX 证书"),不满足即记一项,标注归零 / 不得分风险。
- 人员信息跨处一致性:同一人员在不同位置(团队一览表 / 简历 / 分项表 / 业绩)出现的 年龄、工作年限、学历、项目经历、参加工作时间 是否矛盾(例如:一览表写 18 年、简历写 15 年;一览表 38 岁 / 17 年、简历 36 岁 / 13 年)。
- 时间线逻辑与笔误:人员经历起止日期是否倒置(如"2024.09~2021.05");年龄与参加工作时间是否矛盾(如 24 岁却写工作 5 年 / 2021 年参加工作);学历等表述是否笔误(如"本硕士")。
- h. 厂商与竞品表述客观性检查(方案合规与舆情风险,必做):投标方案中常需提及原系统厂商 / 友商 / 竞品 / 招标方现网供应商名称,必须核对表述是否合规,避免被判定为贬损性对比或不当宣传:
- 事实陈述即可:如"现有 XX 系统由 A 厂商承建""拟由 XX 替换为 YY",仅客观陈述事实,不附加主观贬低。
- 禁止贬损性对比:不得出现"原系统落后 / 架构陈旧 / 我方优于 XX / 远超 XX"等攻击性或优劣对比表述。
- 禁止无依据绝对化:不得出现"国内领先 / 第一 / 唯一 / 最佳"等缺乏佐证宣传语。
- 出现原厂商名称(如"泛鹏天地")时,确认其表述客观、不构成贬损性对比即可;若被判为负面对比,改写为中性事实陈述。
- 输出:在
qc字段按上述 8 类分组(a~e 内部质量 + f 常规符合性 + g 团队与人员材料专项 + h 厂商与竞品表述客观性),每组一张表(位置 / 问题描述 / 严重度 / 修改建议),严重度 P0 红 / P1 橙 / P2 灰。
- 汇总分级:给出预计得分、修复后可达分;按优先级归并问题:
- P0:否决性 / 大额丢分(报价空白、整项归零风险)——定稿前必改
- P1:明显失分点——强烈建议改
- P2:格式与文字质量(错别字、编号引用、签字盖章、内部批注) - 产出 JSON:把以上结果写成一份结构化 JSON(结构见
references/report_schema.md)。务必覆盖以下版式章节:
-title_lines:项目名 + "投标文件模拟评分报告"
-meta:依据 / 评审对象 / 评审日期
-summary:一、评分结论总览(总分构成说明 + 总表 + 核心结论要点)
-sections:二、商务部分明细 / 三、技术部分明细 / 四、投标报价(每细项带 rule/points/table)
-problems:五、问题清单(P0/P1 表 + P2 清单)
-expected:六、修复后预期得分表
-qc:七、投标文件自身问题(质量体检,8 类分组表:a~e 内部质量 + f 常规符合性 + g 团队与人员材料专项 + h 厂商与竞品表述客观性) - 生成报告:
python scripts/build_report.py <评分数据.json> <输出报告.docx>。 - 呈报结论:返回报告路径,并口头给核心结论(预计总分、必改 P0、关键失分点、质量体检重点)。
输出物(固定版式)
- 评分报告.docx,版式固定为:
1. 标题(20pt 加粗,项目名 + 投标文件模拟评分报告)+ 元信息三行(依据/评审对象/评审日期)
2. 一、评分结论总览:总分构成一句话 + 总表(评分板块/满分/当前预计得分/修复后可达/主要差距)+ 「核心结论:」要点(否决风险 / 大额丢分 / 可拿回分)
3. 二、商务部分评分明细 / 三、技术部分评分明细:每个评分细项写为「标题(满分,预计X分)→ 评分规则 → 得分点/失分点/建议(【得分点】… 列表)→ 必要核查表」;技术部分可再下钻 (1)(2) 三级
4. 四、投标报价:现状 + 规则 + 报价策略
5. 五、问题清单与修改建议(按优先级):P0/P1 用「# / 问题 / 影响 / 修改建议」表,P2 用清单(错别字/编号/签字盖章)
6. 六、修复后预期得分:表(板块/当前预计/修复后预计/增量来源)
7. 七、投标文件自身问题(质量体检 + 常规符合性 + 团队人员专项 + 厂商表述):按「前后不一致 / 错别字 / 缺章节空章节 / 交叉引用失效 / 证明材料缺失 / 常规符合性检查(投标有效期、签署盖章、报价一致性、最高限价、工期服务期、资格资质、实质性条款、必备函件、偏离表、日期逻辑、格式规范、文档杂质清理)/ 团队与人员材料专项(团队材料四件套齐全性、人员硬性资质门槛、人员信息跨处一致性、时间线逻辑与笔误)/ 厂商与竞品表述客观性(名称客观陈述、禁止贬损性对比、禁止无依据绝对化)」分组列表,每条含 位置 / 问题描述 / 严重度 / 修改建议,严重度同样红/橙/灰配色。 - 文档排版元素(默认开启,可由 JSON 顶层
doc_options关闭或定制):- 自动目录:依据各章节大纲级别(一/二级章节→目录 1~2 级,三级 (1)(2)→第 3 级)生成 TOC 域,Word 打开即自动更新,无需手工编制。
- 页眉:右对齐灰色小字(默认取报告主标题)+ 深蓝
1F334E下边框线。 - 页脚页码:居中「第 X 页 / 共 Y 页」(
PAGE/NUMPAGES域,随文档自动续页)。 - 定制方式:在评分数据 JSON 顶层加
"doc_options": {"toc": false, "header": "自定义页眉文字", "footer": false}。header取true用默认文字、false关闭、字符串则自定义文字;toc/footer为布尔开关。
- 所有表格表头深蓝填充
1F334E、白字加粗;正文宋体 10.5pt。 - 结论类列按状态着色:预计/判定/核查结果/影响 等列,有效=绿、存疑=橙、无效=红、待补充=灰;标题/章节统一深蓝、元信息灰色、核心结论与得分/失分点按严重度着色。
- 报告文件名建议「<项目名>投标文件模拟评分报告.docx」,不强制固定命名。
颜色模板
报告样式由本 skill 固定,配色体系如下(build_report.py 自动完成,无需手工调色):
- 标题 / 一级章节 / 二级子标题 / 三级 (1)(2):统一深蓝
1F334E、加粗(标题 20pt、章节 15pt、子标题 12.5pt、三级 10.5pt)。 - 元信息行:灰色
666666、10.5pt。 - 核心结论要点:按严重度自动着色且加粗——否决/硬伤/大额丢分/归零/不得分/缺失/无效 → 红
C02B2B;拿回/可补/建议/优化 → 橙B56A00。 - 得分点 / 失分点 / 建议:按标签自动着色——得分点/强项 → 绿
1E7A3C;失分点/风险点 → 红C02B2B;建议/对策 → 深蓝1F334E。 - 结论列单元格(列标题为「预计 / 判定 / 核查结果 / 结论 / 影响 / 状态 / 结果 / 得分」):9.5pt 加粗,按文本自动着色:
- 绿
1E7A3C= 有效 / 通过 / 合规 / 满足 / 得分 / 齐全 - 橙
B56A00= 存疑 / 部分 / 卡档 / 待核 / 谨慎 - 红
C02B2B= 无效 / 缺失 / 否决 / 0分 / 不符 / 归零 / 不得分 - 灰
808080= 待补充 / 未填 / 不适用 - 也可在 JSON 里显式覆盖:单元格写成
{"text":"…","status":"valid|questionable|invalid|missing"}或{"text":"…","color":"1E7A3C"};points 写成{"label":"失分点","text":"…","status":"invalid"}。 - 颜色图例默认关闭(保持报告简洁);需要时 JSON 顶层设
"legend": true会在开头生成「● 有效/存疑/无效/待补充」图例辅助阅读。
> 配色是"模板级"能力:每份报告视觉一致,固定深蓝标题体系 + 全篇严重度色标,避免再次出现"后生成的文件没样式"。
脚本说明
scripts/extract_docx.py <输入docx> [输出txt]:提取段落+表格文本,统计图片总数与章节分布,输出 JSON 摘要。scripts/build_report.py <评分数据json> <输出docx>:按固定版式渲染 Word 报告(缺字段自动容错)。- 两脚本均自带
python-docx缺失自动安装,不依赖外部硬编码环境。
注意事项
- 评分是模拟评审,结论仅供内部定稿研判,不替代正式评标。
- 招标写明"未提供 / 提供不全不得分"的(承诺函、劳动合同、社保证明、合同关键页),缺失即判 0 分,不给同情分。
- 案例、团队、资质类材料,注意排除招标明示的无效类型(如"升级改造"),从严判定有效数量。
- 截图类要求("系统截图 + 说明")缺图即按缺项扣分,用 extract 出的「各章节图片分布」交叉核对。
- 不对称扣分、阈值档位规则(如某百分比卡档阈值)要精确还原,避免因口径不一致丢分。