投标暗标格式合规扫描Bid Blind Bid Format Scanner

本技能用于投标人在封装或上传投标文件前,对"暗标"部分(技术标/施工组织设计/技术方案)执行盲审格式化条款的机械合规扫描。当用户说"暗标格式检查""盲标排版""暗标废标风险""检查技术标格式是否符合暗标要求""扫描标书里有没有泄露公司名/Logo/项目负责人""页边距字体页码页眉页脚是否合规",或上传 Word/PDF 技术暗标要求做封标前体检时触发。技能逐…

一线评标专家

@chesaram

What This Skill Does

Scans Word or PDF technical bid documents against the tender's blind-bid formatting requirements (margins, fonts, line spacing, page numbers, headers/footers, metadata, and any residual bidder identity info). Outputs a side-by-side 'requirement vs. actual' discrepancy list with risk levels (disqualification-grade vs. deduction-grade) and one-click fix instructions.

Replaces manual spot-checking of dozens of formatting rules and metadata fields, reducing the risk of disqualification due to mechanical non-compliance.

When to Use It

  • Check a technical bid document for hidden company name, logo, or project manager references before sealing
  • Verify that margins, fonts, line spacing, and page numbers match the tender's blind-bid requirements
  • Compare the tender's blind-bid formatting rules against the current document and generate a discrepancy report
  • Scan document metadata (author, company, last saved by) for any residual bidder identity information
  • Identify whether the document exceeds the page limit specified in the blind-bid requirements
  • Extract the blind-bid formatting requirements section from a full tender document for automated comparison

Install

$ openclaw skills install @chesaram/bid-blind-bid-format-scanner

暗标格式"防盲"合规扫描仪

Overview

面向投标人侧的封标前"防盲"体检工具。暗标评审普遍实行"一票否决"或"扣分/零分制",而判定依据纯机械:页边距偏 1 毫米、标题用了微软雅黑而非宋体、页码位置不对、文档属性残留作者名——都可能直接废标或零分,毫无商榷余地。本技能用确定性脚本提取 Word/PDF 的格式属性与元数据,结合招标文件"暗标编制要求",逐项比对并输出差异清单、风险等级与修订指令;同时扫描全文与文档属性,揪出任何残留的投标人身份信息。

When to Use

触发场景(任一项即触发):

  • 用户要求"暗标格式检查 / 盲标排版 / 暗标废标风险 / 封标前体检 / 复检"。
  • 用户上传技术暗标 Word/PDF,要求核对页边距、字体、字号、行距、页码、页眉页脚、标题编号。
  • 用户担心标书里"有没有泄露公司名 / Logo / 项目负责人 / 既往项目"。
  • 用户问"技术暗标超页数了怎么办""怎么精简暗标篇幅"。
  • 用户需要"招标文件暗标要求 vs 我文件现状"的对照表与修订建议。
  • 用户说"帮我从招标文件里找暗标要求 / 提取暗标编制要求"——可接收完整招标文件,在 Step 1 自动定位暗标编制要求所在章节并提取(可能在"投标人须知""评标办法"或单独附件中)。
  • 用户要"暗标格式自检清单"——输出 references/self_check_list.md 的可打印清单供手动核对。

不触发:技术方案内容优劣评价、报价评分预测、商务标明标检查——这些超出本技能边界,应引导至对应专家技能。

护栏铁律(不可逾越)

  1. 只做机械格式检查,不评价内容优劣:不预测技术方案得分,不对施工工艺、工期合理性、人员配置做主观评价。发现内容问题只可提示"建议核对",不得打分或建议改写技术内容。
  2. 不保留用户文件副本,扫描后立即清理:运行脚本提取的中间文件、临时副本、解压内容,在输出报告后必须删除;不在任何持久位置留存用户标书。仅交付"报告"(及用户显式请求的修订后副本,该副本生成在用户工作区、由用户自行保管)。
  3. 以招标文件条款为最高准绳:通用标尺(见 references/blind_bid_specs.md)仅在招标条款完全缺失某维度时作回退默认值,且须在报告中显式标注"依据通用标尺假设",不得冒充招标要求。若招标写了但模糊(如"字体美观大方"),不得用标尺补全,须标"待确认"并反问用户向其招标方澄清(见 references/blind_bid_specs.md 顶部失效场景说明)。
  4. 风险分级必须明确:每条差异标注 🔴 废标级 / 🟡 扣分零分级,让投标人一眼分清"会废标"与"会扣分",不得含糊。身份类(含文档元数据残留)按 🔴,纯格式类按 🟡(见后果矩阵)。
  5. 不教唆规避暗标规则:只帮用户"去除标识、合规格式",绝不协助"做暗记""藏标识""用谐音/变体替代公司名""故意混淆以逃避盲评"。任何此类请求一律拒绝并说明理由。
  6. 不替代人工终审:报告末尾必须声明"本检查为辅助性工具,最终合规性以评标委员会认定为准;图片 EXIF、隐藏图层、扫描件、图签栏等项需人工复核"。

输入槽位

  1. 招标文件"暗标编制要求"章节:用户粘贴文本或上传文件;也可直接上传完整招标文件,Step 1 自动定位暗标编制要求所在章节并提取。须从中解析出"要求画像"(Requirement Profile)。
  2. 投标人暗标正文:上传 Word(.docx,首选,检测最可靠)或 PDF(最佳努力,见局限)。
  3. 暗标篇幅限制(可选):如"不超过 300 页",用于篇幅裁剪建议。
  4. 评分标准(可选):若提供,Step 5 篇幅裁剪按章节权重给出"建议删/保留"建议。
  5. 白名单/允许自称(可选):如本项目允许"我公司"自称,提供后加 --allow 避免误报。

若槽位 1 缺失,主动询问用户提供招标文件的暗标编制要求;若槽位 2 缺失,提示上传文件。槽位 3/4/5 可留空,仅影响对应建议的精细度。

工作流程

Step 1 · 解析"要求画像"(Requirement Profile)

从用户提供的"暗标编制要求"中提取结构化画像,逐项记录;若用户给的是完整招标文件,先自动定位暗标编制要求所在章节(常在"投标人须知""评标办法"或单独附件)再提取。

回退与降级规则(关键)

  • 招标完全未涉及某维度 → 按 references/blind_bid_specs.md 通用标尺填入,标注 (假设)
  • 招标写了但模糊(如"字体美观大方""排版整洁")→ 不得用标尺补全,标 待确认,并在下方确认环节反问用户向招标方澄清。
  • 低置信度预警:若解析出 ≥3 项标注 (假设)待确认,主动提示"⚠️ 当前解析可能有偏差,建议重新粘贴原文或上传清晰截图;以下比对基准可能不准确"。

解析维度:

  • 纸张与方向(A4 纵向?)
  • 页边距:上 / 下 / 左 / 右(cm)
  • 颜色:是否全黑、禁底纹水印
  • 字体字号:正文、标题、图表内(如"宋体四号常规")
  • 字形:禁加粗/加色/倾斜/下划线/删除线
  • 行距:固定值 X 磅 / 倍数
  • 对齐与缩进:左对齐或两端对齐、首行缩进 2 字符、禁空格空行
  • 页码 / 页眉 / 页脚:是否禁止
  • 标题编号方案:中文层级 或 阿拉伯分级
  • 篇幅上限:N 页
  • 身份禁止:名称/Logo/人员/业绩/企业特征/暗示措辞

🔒 阻塞式确认(必须):Step 1 解析完成后,先向用户展示"要求画像"并请求确认,用户未确认不得进入 Step 2。若用户直接上传了文件且画像清晰,可一并展示画像与"确认后我即开始扫描"的提示,但仍须等用户明确确认(如"对,开始")再运行脚本。

⚠️ 常见踩坑提醒(解析后主动推送):结合 references/blind_bid_failure_cases.md,向用户提示本项目高频雷区,例如:

  • "本项目要求'不得设置页码'——注意 Word 默认模板可能自带页码,请检查'插入→页码→删除页码'。"
  • "本项目要求'标题编号采用一、(一)、1、(1)'——注意 Word 自动编号可能生成'1.1.1',需手动调整。"
  • "本项目要求'全篇黑色'——注意超链接默认蓝色,需改黑或取消超链接。"
  • "本项目要求'不得出现加粗'——注意从他处复制粘贴的内容可能自带加粗格式。"

Step 2 · 运行检测脚本

优先用 .docx 路径。使用受管 Python 运行 scripts/scan_docx.py;PDF 用 scripts/scan_pdf.py

# Word(最可靠):
C:/Users/Meng/.workbuddy/binaries/python/envs/default/bin/python \
  <skill>/scripts/scan_docx.py "<暗标文件.docx>" \
  --identifiers "公司全称,公司简称,项目负责人姓名,既往项目名称" \
  --allow "我公司,我单位" \
  > scan_result.json

# PDF(最佳努力,字体/页边距不可靠):
C:/Users/Meng/.workbuddy/binaries/python/envs/default/bin/python \
  <skill>/scripts/scan_pdf.py "<暗标文件.pdf>" \
  --identifiers "公司全称,公司简称,项目负责人姓名" \
  --allow "我公司,我单位"
  • --identifiers:请用户列出可识别身份信息(公司全称/简称/英文缩写/Logo文字/项目负责人/既往项目名),这是精确扫描的关键。
  • --allow:白名单(逗号分隔)。若本项目允许使用某些自称/术语(如允许"我公司"),填入后命中不报,避免误报。仅精确匹配。
  • 若受管 venv 缺 python-docx / pypdf,先安装再运行:.../envs/default/bin/pip install python-docx pypdf
  • 脚本输出 JSON:不输出全文,仅输出格式画像 + 泄漏命中片段(含前后各约 50 字 context),避免上下文爆炸。
  • 扫描结束后,删除 scan_result.json 等中间产物(护栏铁律 2)。

脚本输出 Schema(解析契约)

AI 按以下字段解析脚本返回值(以 scan_docx.py 为例;scan_pdf.py 字段略少,见其 unreliable_fields):

{
  "file": "技术暗标.docx",
  "format": "docx",
  "sections": [                // 每个分节(首页边距/页眉页脚)
    {"index":0,"page_width_cm":21.0,"page_height_cm":29.7,"orientation":"portrait",
     "margin_top_cm":2.5,"margin_bottom_cm":2.0,"margin_left_cm":2.0,"margin_right_cm":2.0,
     "has_header":false,"has_footer":false,
     "header_has_page_number":false,"footer_has_page_number":false}
  ],
  "font_stats": {              // 字体/字号/字形画像
    "eastasia_fonts":["宋体"],"ascii_fonts":["Times New Roman"],"sizes_pt":[14.0],
    "any_bold":false,"any_italic":false,"any_underline":false,"any_colored_text":false
  },
  "alignment_dist": {"LEFT":120,"JUSTIFY":3},          // 对齐分布
  "line_spacing_dist": {"EXACTLY:30.0pt":118},          // 行距分布
  "indent_dist": {"0.74cm":118},                        // 首行缩进分布
  "title_number_samples":["一、工程概况","二、施工方案"], // 标题编号采样(判断采用哪套方案)
  "doc_properties": {                                   // 元数据(身份显形)
    "author":"张三","last_modified_by":"李四","company":"XX建设集团","title":"施工组织设计"
  },
  "leakage_hits": [                                     // 身份命中(含上下文)
    {"type":"identifier","match":"XX建设集团","pos":123,
     "context":"……我公司承建的XX建设集团高速公路项目……"}
  ],
  "text_length":15230,
  "errors":[]
}

注:脚本不输出"页码/页数"逐页信息,pos 为全文字符偏移(非页码)。PDF 路径见 scan_pdf.pyunreliable_fields——字体/行距/页边距等标不可靠,比对时按 references/blind_bid_specs.md 的"PDF 可靠性矩阵"处理。

Step 3 · 逐项比对,生成差异

将脚本输出与 Step 1 画像逐条对照,对每条格式项给出:要求值 / 当前值 / 是否相符 / 风险等级 / 修订指令。比对容差严格按 references/blind_bid_specs.md 的「容差与判定规则表」(字体、对齐、页码、字形、颜色为零容差;页边距 ±0.2cm、行距 ±2 磅、字号 ±0.5 磅、缩进 ±0.5 字符为默认容差)。重点检查:

  • 版面:A4 纵向、无封面目录(或合规封面)。
  • 页边距:四边数值与偏差(按容差表判定相符性)。
  • 字体字号:是否全为宋体(或招标指定)、四号;图表内是否合规;是否混入微软雅黑/等线/仿宋等(零容差,必须精确匹配,含中英文别名)。
  • 字形:是否存在加粗/倾斜/下划线/彩色(脚本 any_* 标记,零容差)。
  • 行距:固定值是否等于招标值(±2 磅容差);倍数制按 ±0.1 倍。
  • 对齐/缩进:首行缩进是否 2 字符、是否混入空格/空行(按容差表)。
  • 页码/页眉/页脚:脚本 has_header/footer*_has_page_number 任一为 true 即 🔴(若招标禁止,零容差)。
  • 标题编号:用脚本 title_number_samples 判断当前采用哪套方案,与画像对照。
  • 文档元数据doc_properties 中 author/company/last_modified_by 非空即 🔴,给出清零指令。
  • PDF 输入:字体/行距/页边距/对齐等项按「PDF 可靠性矩阵」标 ⚠️ 需人工复核,不计入 🔴 判定;仅页数、元数据、身份文本作可靠判定。

Step 4 · 身份"显形"扫描

  • 精确命中(🔴):脚本 --identifiers 返回的 leakage_hits(type=identifier)全部 🔴,必须处理;给出安全改写(如"XX建设集团"→"投标人")。
  • 启发式命中(🟡):type=heuristic 的暗示措辞("我公司""荣获""独家"等),一律标 🟡 而非 🔴,仅作补充告警。必须参看返回的前后各约 50 字 context 判断是否为真实泄漏,再给改写建议(如"我公司承建"→"本项目实施")。禁止单凭词命中即判废标。
  • 白名单豁免:若运行脚本时加了 --allow,命中已在脚本层剔除,不在此重复报告。
  • 图像/表格专项(人工复核):脚本无法看像素,按 references/identity_patterns.md 第三节主动提示用户逐项自查——图片内嵌文字(OCR)、图片 EXIF/XMP(ExifTool)、表格边框颜色、图表内字体、图片水印、图签栏公司名/签章(🔴)、修订痕迹批注者(🔴)、超链接蓝色(🟡)。这些项一律标"⚠️ 需人工复核",不计入自动判定。

误报分级与白名单机制详见 references/identity_patterns.md 第〇节。原则:宁可漏报提示、不可误伤废标。

Step 5 · 篇幅逻辑裁剪(若超限)

当页数 > 上限(或用户担心超限):给出"精简优先级建议",原则——保留关键工期、质量保证措施、核心方案;优先压缩:附图(合并/缩印/移图表内说明)、冗长工艺描述、重复章节、可移至商务明标的内容。不替用户删改技术内容,只给可执行的裁剪方向。

结合评分权重(若用户提供评分标准):在裁剪建议中增加"该章节评分权重"列——

  • 高权重章节 → 标注"不建议删减",避免误删失分。
  • 无权重/低权重章节 → 标注"优先压缩"。 这能直接回应投标人"怕删了不该删的导致失分"的顾虑。若用户未提供评分标准,则按通用优先级给建议。

Step 6 · 输出一键差异报告

按下方模板输出"招标文件要求 vs 当前文件现状"对照表 + 修订指令清单 + 身份扫描结果。报告末尾附技能署名与反馈脚注(护栏要求,见文末)。

核心能力映射

能力实现方式
1. 格式硬检scan_docx.py 提取页边距/字体/字号/行距/对齐/缩进/页码页眉页脚 + Step 3 按容差表比对
2. 身份显形扫描脚本 --identifiers 精确命中(🔴) + 启发式词表(🟡) + --allow 白名单 + 元数据检查 + 图片/表格人工复核提醒
3. 篇幅逻辑裁剪Step 5 优先级建议(结合评分权重,不删改内容)
4. 一键差异报告Step 6 模板输出,附 🤖批处理(VBA/Python)/👤人工 分级修订指令
5. 复检闭环用户修订后上传并输入"复检",仅复查上次不合格项
6. 智能提取 / 自检清单接收完整招标文件自动定位暗标要求;输出可打印自检清单

输出模板(差异报告)

【暗标格式"防盲"合规扫描报告】
文件:<文件名> | 扫描时间:<时间> | 要求来源:<招标文件章节/通用标尺假设>
(若含通用标尺假设或待确认项,在此顶部红色提示)

一、格式逐项比对
| # | 检查项 | 招标要求 | 当前现状 | 结论 | 风险 | 修订指令 |
|---|--------|---------|---------|------|------|---------|
| 1 | 页边距(上/下/左/右) | 2.5/2/2/2 cm | 2.5/2/2/2.3 cm | 不符 | 🟡 | 右页边距由2.3改为2.0cm |
| 2 | 正文字体 | 宋体四号常规 | 微软雅黑四号 | 不符 | 🟡 | 全文字体替换为宋体 |
| 3 | 页码/页眉页脚 | 禁止 | 检测到页脚页码 | 不符 | 🔴 | 删除页脚及页码域 |
| ... | ... | ... | ... | ... | ... | ... |

二、身份"显形"扫描
🔴 精确命中:公司名"XX建设集团"出现于第N段:"……"(建议替换为"投标人")
🔴 文档元数据:author=张三、company=XX建设集团(建议清零,见下"批处理脚本")
🟡 启发式:出现"我公司承建"(前后文:"……我公司承建XX公路……",建议改为"本项目实施")
⚠️ 人工复核:图片EXIF/图签栏/修订痕迹须自行核查(见第四部分)

三、篇幅
当前约 N 页 / 上限 M 页 → 未超限 / 超限。
[若有评分标准] 高权重章节(如"工期保证")不建议删减;低权重/无权重章节(如冗长工艺描述)优先压缩。

四、修订指令汇总
🤖 可批处理(一键执行):
  1. 全文字体→宋体四号常规,清除加粗/倾斜/下划线/彩色
  2. 页边距统一 上2.5 下/左/右2 cm;行距固定值30磅
  3. 删除页眉页脚及页码;首行缩进2字符、去空格空行
  4. 文档属性 author/company/lastModifiedBy 清零
  5. 替换/删除所有精确标识符残留
   ▸ Word 宏(Alt+F11 粘贴运行):
     Sub FixBlindBidFormat()
       With ActiveDocument.Content.Font
         .Name = "宋体": .NameFarEast = "宋体": .Size = 14
       End With
       With ActiveDocument.Content.ParagraphFormat
         .LineSpacingRule = wdLineSpaceExactly: .LineSpacing = 25
       End With
       ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Delete
       ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Delete
       ActiveDocument.BuiltInDocumentProperties("Author").Value = ""
       ActiveDocument.BuiltInDocumentProperties("Company").Value = ""
     End Sub
   ▸ 元数据清零(技术用户,Python):
       python -c "from docx import Document; d=Document('技术暗标.docx'); d.core_properties.author=''; d.core_properties.company=''; d.core_properties.last_modified_by=''; d.save('技术暗标_clean.docx')"
👤 需人工核对(AI 不代决):
  1. 启发式命中"我公司/荣获"等:逐句判断上下文,手动改为"投标人/本项目实施"
  2. 压缩附图与冗长工艺:人工选择保留哪些、删减哪些
  3. 图片EXIF(ExifTool)、图签栏公司名、修订痕迹批注者:逐项人工核查去标识

五、风险结论
🔴 废标级 N 项(须 100% 修复后封标)| 🟡 扣分零分级 M 项(建议修复)

六、复检与声明
· 修订完成后,请重新上传文件并输入"复检",我将仅针对本次不合格项定向复查(✅已修复 / ❌仍未修复)。
· ⚠️ 本检查为辅助性工具,最终合规性以评标委员会认定为准;图片EXIF、隐藏图层、扫描件、图签栏等项需人工复核。

PDF 输入时,字体/行距/页边距/对齐等项在报告中标注"PDF 不可靠,建议转 docx 后复检",且不计入 🔴 判定(见 references/blind_bid_specs.md PDF 可靠性矩阵)。

署名与反馈(落地铁律,报告末尾必须附)

署名:一线评标专家&ChesaraM | 反馈/交流:微信公众号「一线评标专家」(使用问题、误报反馈、实务建议,欢迎留言交流)

Top skills in this category