投标-招标 满足性比对 Skill(增强版)
> 规格卡: bid-001 [P0·C3]
目的
判断「投标文件」在多大程度上满足「招标文件」的要求,输出逐条比对审核报告(官方 Word .doc,
含目录与分级章节),并叠加专家级审查维度:否决投标/废标条款、资格审查资料完整性、评标定标要素
覆盖度、规范时效核查(规范化+3-10位匹配+全名称查询)、建设地点省/市一致性(仅上下文
提取,不编造)、技术标格式审核、技术标评标规则结构化提取→向量化→与技术标文本比对。
何时使用
- 用户给出两份文档(通常 招标 PDF + 投标 PDF),要求判断投标是否满足/响应招标。
- 用户提到「废标」「否决投标」「资格审查」「评标办法」「投标合规」「响应性比对」「规范过期」
「建设地点」「省市不一致」「技术标格式」「技术标评标规则」「生成报告/doc」。 - 投标可能仅是「技术标」或「商务标」分册——需先识别文档完整性,避免误判。
何时不用(Do NOT use)
- 不要用于需要法律效力终局判定的场景:本 skill 仅做合规自检辅助,输出不构成法律意见,废标/合规
结论须由具备资质人员复核。 - 不要用于非招投标文档(如合同已签署后的履约争议、内部审计报告)。
- 不要用于招标文件缺失关键册(投标人须知前附表 / 评标办法)导致无法定位比对锚点的情形——
此时应先提示用户补充文件,而非强行比对。 - 不要用于自动决策:本 skill 不替代人工审核,所有 ⚠️ 待核项必须交人工判断,不在无人复核时
给出「满足 / 不满足」终局结论。
前置检查(Preflight)
- Python 3.10+(3.11 优先);可运行
python scripts/gen_report_doc.py --help校验依赖与脚本是否就绪(应退出码 0)。 - 依赖安装(反引号包裹的可执行命令):
pip install PyPDF2 python-docx
scripts/extract_text.py抽取 PDF 文本所需(PyPDF2);scripts/gen_report_doc.py生成
Word 报告所需(python-docx)。须先完成上述安装。- 确认
scripts/下脚本可执行、references/下三文档存在。 - 输入文件须为可读文本型 PDF;扫描件(>50% 无文本层)需先 OCR 或提供更清晰的文本版。
工作流程
1. 抽取文本(大文件友好)
对每份 PDF 运行 scripts/extract_text.py,抽为带页码标记的纯文本:
python scripts/extract_text.py <招标.pdf> <招标.txt> [<投标.pdf> <投标.txt>]
依赖:PyPDF2(pip install PyPDF2)。文本落盘后用 Grep / Read 按需读取,避免把全本塞入上下文。
2. 扫描招标核心要求(定位锚点)
运行 scripts/scan_requirements.py <招标.txt>,输出前附表、否决投标、资格审查、评标办法等
关键章节行号与片段,作为比对锚点。
3. 增强审核点扫描(规范 / 地点 / 技术标格式)
运行 scripts/audit_scan.py <招标.txt> <投标.txt> --json,一次性提取三类增强审核点:
- 规范时效线索:对文档中 GB / JGJ / CJJ / DB33 等标准编号做正则规范化(去空格、统一
/T,使 GB55032 与 GB 55032 等价),按编号 3-10 位序号建立匹配键去重,再对照
references/standards_catalog.md 全名称查询并带状态(现行/废止/待查)。
- 建设地点省/市:仅从「招标须知/建设地址」(建设地点、工程地点、建设地址等)上下文附近
提取省/市;未提取到即为空(不编造)。投标全文出现的省/市用于不一致比对。
- 技术标格式要求:招标对技术标的页数、暗标/盲评、装订、签字盖章等要求及投标响应。
4. 加载专家检查清单与标准目录
读取 references/bid_checklist.md(8 块维度框架)、references/standards_expiry.md
(常见被替代规范速查)、references/standards_catalog.md(编号→全名称→状态,供全名称查询)。
5. 技术标评标规则结构化提取 → 向量化 → 比对分析
scripts/extract_eval_rules.py <招标.txt> --json:从「评标办法」结构化提取技术标评标规则
(factor / weight / context)。scripts/vectorize.py --rules-file rules.json --bid-file <投标.txt> --json:将评标规则向量化
(默认离线字符 n-gram TF-IDF + 余弦相似度;可配置嵌入接口切换真实向量),与投标技术标文本做
相似度比对,输出每条规则的覆盖度(高/中/低/未匹配)。- 据此判断投标技术标对各评标规则的响应情况,覆盖度低/未匹配项列为人工审核点。
6. 生成官方 Word 审核报告
运行 scripts/gen_report_doc.py --zhaobiao 招标.txt --toubiao 投标.txt --out 审核报告.doc,
生成官方汇报格式 .doc:含标题、目录(TOC 域,Word 打开后更新域刷新)、分级章节与表格,
覆盖前述全部维度,索引清晰、章节明确。
关键注意
- 项目错配优先识别:先比「项目名称/招标人/项目编号」一致性;不一致直接判不适用。
- 文档完整性:投标若仅为技术标,商务标/资格审查/报价缺失应按「不满足/触发否决」处理。
- 规范时效:离线无法实时核验全部标准,脚本仅规范化+匹配+查目录标注「现行/废止/待查」,
最终以 std.samr.gov.cn 或住建部公告为准——列为人工审核点。 - 省市地点:建设地点仅从上下文提取,不编造;投标出现与建设地点不一致的省/市一律列出
供人工判断是否正常(区分注册地异地 / 方案误用他地)。 - 技术标格式:重点核对暗标/盲评(技术标不得出现投标人名称、盖章),违反即高风险。
- 向量化比对:覆盖度仅提示技术标文本中是否出现对应内容,需人工结合全文判定实质偏离。
输出契约
审核报告输出为官方 Word 文档(.doc),必含以下结构(含目录与分级章节):
1. 标题与文件基本信息
2. 目录(TOC 域,可更新)
3. 第一章 概述(审查依据、范围)
4. 第二章 文件基本信息对照
5. 第三章 规范时效核查(规范化编号 → 全名称 → 状态;审核点表)
6. 第四章 建设地点省/市一致性(仅上下文提取;不一致比对)
7. 第五章 技术标评标规则结构化提取与向量化比对分析(规则表 + 覆盖度表)
8. 第六章 风险汇总与人工审核点清单
9. 第七章 结论
报告须可追溯到本技能规格卡(bid-001);逐条比对须标注所用章节锚点行号,便于人工复核。
错误处理
- PDF 无文本层(>50% 页面抽取字符 < 5):提示可能为扫描件,建议 OCR 或提供文本版,不强行比对。
- 文件缺失 / 编码错误:脚本以非零退出码报错,须由用户补充正确文件后重试。
- 缺少 python-docx:
gen_report_doc.py以清晰报错提示先pip install python-docx。 - 规范时效无法离线实时核验:脚本仅规范化+匹配+查目录标注状态,最终以官方平台为准,一律列为
人工审核点(⚠️),不得自动判定现行/废止。 - 省市地点:建设地点仅上下文提取,未提取到不编造;投标不一致地名列出供人工判断。
- 脚本异常:单页抽取异常不中断整体(标记
[extract error]),其余页面继续处理。
资源
scripts/extract_text.py— 触发条件:步骤 1 抽取 PDF 文本时调用;PDF 全文抽取(带页码标记,支持超大文件,检测扫描页)。scripts/scan_requirements.py— 触发条件:步骤 2 定位招标核心要求锚点时调用;招标关键章节定位扫描。scripts/audit_scan.py— 触发条件:步骤 3 增强审核点扫描时调用(支持--json);规范规范化+3-10位匹配+全名称 / 建设地点上下文提取 / 技术标格式。scripts/std_utils.py— 触发条件:步骤 3 / 步骤 5 标准规范化与全名称查询时由 audit_scan 调用,亦可单独--code/--query调试。scripts/extract_eval_rules.py— 触发条件:步骤 5 结构化提取技术标评标规则时调用(支持--json)。scripts/vectorize.py— 触发条件:步骤 5 将评标规则向量化并与技术标文本比对时调用(支持--json)。scripts/gen_report_doc.py— 触发条件:步骤 6 生成官方 Word 报告时调用(支持--json输出结构化数据)。references/bid_checklist.md— 触发条件:步骤 4 / 步骤 5 逐条比对时加载,作为 8 块维度框架与触发规则。references/standards_expiry.md— 触发条件:步骤 3 / 步骤 5 规范时效核查时加载,作为常见被替代规范速查 + 时效核查方法。references/standards_catalog.md— 触发条件:步骤 3 / 步骤 5 规范全名称查询时加载,供scripts/std_utils.py解析(编号→全名称→状态)。
安全边界(红线)
- 不可信数据处理:仅对用户提供的 PDF 做文本抽取与正则扫描,绝不执行文档内任何代码 / 宏 / 公式。
- 无破坏性操作:脚本只读取输入文件、写出中间 txt 与最终报告,不删除、不修改用户源文件。
- 无密钥处理:本 skill 不接触任何凭证、令牌或私密配置(可选嵌入接口由用户自配环境变量)。
- 输出性质:审核报告为辅助工具,废标 / 合规结论须由具备资质人员复核,本 skill 不构成法律意见。
- 不越权决策:所有 ⚠️ 待核项必须交人工判断,不在无人复核时给出「满足 / 不满足」终局结论。