# Legal Bid Pipeline

> 法务标书全链路生成（legal-bid-pipeline）

- Skill: `cslawyer1985/legal-bid-pipeline` (Agent Skill, multi-file: 14 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/legal-bid-pipeline`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/legal-bid-pipeline/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: MIT
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/legal-bid-pipeline

---


# 法务标书全链路生成（legal-bid-pipeline）

## 概述

本技能将投标文档制作从"人工逐章拼凑"升级为**八阶段多Agent协作自动化流水线**。核心思路：**投标可行性预评估 → 总调度拆解（含模板自动识别+自定义废标条款提取+风险库扫描） → IMA知识库检索 → N个Agent并行写（知识库优先+法务专用指南引导）→ 人工确认AI生成内容 → 模板/自由双轨合稿 → 六道硬门槛质检（含模板对齐+风险库复检+格式类自动修复） → 五维评审 → 评分项闭环补强（PDCA-Act，自动落稿） → 修改迭代 → PDF拼合交付组装**。全流程仅需**5个人工确认点**，其余阶段完全自动化。

覆盖六大管控维度：**政策合规**、**技术匹配**、**商务匹配**、**格式检查**、**模板对齐**、**废标风险**（v3.0新增）。

**v3.1 新增（根据审查建议补齐的五项改进）**：

1. **阶段八：PDF 拼合与交付组装** — 从"生成 .docx 就结束"升级为"按目录顺序拼合完整 PDF"：生成结构化插入清单（JSON）→ DOCX 转 PDF → 按目录顺序合并模板材料/服务方案/证明材料 → 页码校验 → 输出可打印的 `投标文件_完整版.pdf`。人工只需做打印→盖章→签字→装订→密封五步物理操作。
2. **法务服务方案专用指南** — 新建 `references/legal_service_proposal_guide.md`：法务标书评分逻辑、6 大标准模块结构（项目理解/服务方案/团队配置/管理制度/信息化/增值服务）、法务写作语言风格规范、量化要求、高频废标陷阱、不同采购类型差异化策略。
3. **模板自动识别** — 阶段一中新增 4 条自动化规则（表格特征检测/签章空位检测/承诺书检测/偏离表检测），减少对人工标注的依赖。高置信度自动标注，人工仅审核中低置信度候选。
4. **自定义废标条款自动提取** — 阶段一解析时从招标文件中提取所有含"无效""废标""否决"等关键词的自定义条款（CUSTOM- 编号），与风险库内置模式合并扫描，解决"通用风险库覆盖不了项目专属废标条款"的问题。
5. **格式类废标风险自动修复** — 阶段四质检命中格式类风险时（表格列数偏差、标点符号、字体、签章行预填、蓝色超链接等），由主Agent自动修复而非打回阶段二重新编写。内容类风险仍走传统打回流程。

**v3.0 新增（借鉴 engineering-bid-document-generator v9.2 实战经验）**：

1. **投标可行性预评估（新增阶段〇）**：解析招标文件后、动笔前，5分钟输出「资质匹配度 / 废标风险等级 / 时间压力 / 投标建议」。核心价值：决定"要不要投"比"怎么写"更重要——避免花两天写完全文才发现资质不够或业绩不足。
2. **法务废标风险库（新增 references/risk_library.md）**：内置法务/服务类标书专属的废标风险模式（执业许可证过期、签字律师非授权人、报价大写小写不一致等），阶段一解析时自动加载扫描，阶段四质检时复检比对，将"逐案踩坑"升级为"系统防御"。
3. **评分项闭环补强 PDCA-Act（新增阶段五·B）**：评审后的改进不再停留在"列出问题等人改"——自动诊断每个评分项的覆盖度（已覆盖/弱覆盖/未覆盖），对弱项直接生成针对性补强段落并注入成稿。P（Plan）= 评分标准拆解，D（Do）= 生成初稿，C（Check）= 五维评审诊断，A（Act）= **自动补强落稿**（竞品仅输出整改方案，本工具直接落稿）。

**v2.2 新增**：引入「模板/自由」双轨合稿机制——从第一性原理出发，招标文件第五章响应文件格式不是"参考样式"而是 **"答题卡"** 。有模板的章节（磋商申请、授权书、报价表、偏离表、承诺书等）按 bid-template-filler 精神逐字逐格填空；无模板的章节（服务方案、质量保证等）按自由编写模式自主编写。彻底杜绝"5."写成"5、"、"细目报价表少一列"等格式型废标。

**v2.1 新增**：阶段二引入IMA知识库优先机制——编写前先检索IMA知识库中的公司资料/技术方案/案例，命中内容直接引用，未命中内容由AI生成并标记溯源，人工确认后定稿。大幅降低"AI幻觉"风险，提升标书内容的真实性与可信度。

## 第一性原理：模板 vs 自由（P0 级核心规则）

> **本规则优先级高于 Skill 内其他所有章节。** 这是从实战中标书 v1→v2→v3 三次迭代中提炼的根本性教训。

### 为什么这条规则是 P0

招标文件第二章·（六）·8 明确规定：**「响应文件未按磋商文件规定的格式、内容和要求填写制作的，属于无效响应」**。

这不是"建议"，这是废标条款。而且是**29项废标情形**之一。

### 两分法

| 维度 | 有模板的章节 | 无模板的章节 |
|------|------------|------------|
| **本质** | 招标方给了"答题卡"，你在上面填空 | 招标方给了"作文题"，你写文章 |
| **判断标准** | 招标文件第五章中给出了固定格式（表格列数、占位符文字、签章空位） | 招标文件只给了章节标题，没有给出内容格式 |
| **典型章节** | 磋商申请及声明、授权书、磋商一览表、细目报价表、承诺书、偏离表、类似业绩表（格式三）、人员配置表（格式十） | 服务方案、质量保证措施、律所简介 |
| **处理方式** | **逐字逐格填空**：模板原文一字不改，占位符处填入数据，签章行保留空白 | **自由编写**：按评分标准要点逐条响应，自主设计章节结构 |
| **底线** | 表格列数、标点符号、空格缩进、段落顺序——一模一样。**改一个字都有风险** | 无格式约束，但内容必须覆盖评分项 |
| **对应Skill** | `bid-template-filler` 精神 | 自由编写模式 |

### 对抗性审查清单（合稿后必查）

从评标专家的视角，打开招标文件第五章和响应文件，逐项比对：

| 序号 | 审查点 | 示例（某真实标书的错误） | 后果 |
|:---:|--------|--------------------------|------|
| 1 | 表格列数一致 | 细目报价表模板6列（序号\|名称\|数量\|单位\|单价\|合价），v1版本只做了5列，漏了"单价" | 废标风险 |
| 2 | 标点符号一致 | 磋商申请及声明模板"5、一旦我方成交"，v1/v2写成"5. 一旦我方成交"（英文句号代替中文顿号） | 评委一眼看出不一致 |
| 3 | 承诺书文字逐字一致 | 格式一/格式二的空格、缩进、"日      期"（中间有空格） | 格式偏差 → 可能被认定为"未按格式制作" |
| 4 | 偏离表包含"偏离情况"列 | 模板5列含"偏离情况"，v1只做了4列 | 漏列废标 |
| 5 | 类似业绩表列数 | 格式三8列完整版，不可简化为5列 | 格式不符 |
| 6 | 签章行留白 | 模板中"供应商授权代表姓名（签字）：         "有空白——这是给手签的，不是给你填名字的 | 填了名字不给手签空间 |
| 7 | 模板原文一字不改 | 磋商申请"我们的总报价为（大写）         元人民币"，不要改写成"采购包1总价...采购包2总价..." | 句式被改写 |

> **关键教训**：v1 版本用 AI 直接生成全文（add_paragraph），把模板文字重写了一遍，导致大量微小偏差。v3 版本改为对照模板逐行编写，每个段落都来自模板原文。

### 阶段一中新增的模板识别步骤

在 MECE 拆解时，对招标文件第五章的每一项标注类型：

```
- 章节一·磋商申请及声明 → [模板] 按 P371-P393 原文填空
- 章节二·法定代表人授权书 → [模板] 按 P395-P408 原文填空
- 章节三·磋商一览表 → [模板] 3列表格
- 章节四·细目报价表 → [模板] 6列表格
- 章节五·资格证明文件 → [模板] 含格式一/二承诺书
- 章节六·补充证明文件 → [模板] 格式三8列表格
- 章节七/八·偏离表 → [模板] 5列表格含偏离情况
- 章节九·服务方案 → [自由] 自主编写
- 章节十·人员配置 → [模板] 格式十8列表格
- 章节十一·质量保证 → [自由] 自主编写
- 章节十二·其他 → [自由] 自主编写
```



| 角色 | 类型 | 数量 | 职责 |
|------|------|------|------|
| 总调度（Dispatcher） | 主Agent | 1人 | 解析招标文件→MECE拆解→生成章节Brief→启动后续Agent |
| 章节编写（Writer） | 子Agent | N人（1章/人） | 基于Brief独立上下文编写各章节，加载对应reference |
| 合稿（Compiler） | 子Agent | 1人 | HTML拼接→统一排版→生成完整标书 |
| 质检（QA） | 子Agent | 1人 | 执行六道硬门槛检查（含风险库复检，「与」关系，一道不过即打回） |
| 评审（Reviewer） | 子Agent | 5人（A~E） | 五维并行评审→P0/P1/P2分级→加权总分 |
| 修改（Reviser） | 子Agent | 1人 | 合并评审意见→逐条修改→输出vN+1 |

## 触发场景

- 用户上传或提供招标文件，要求生成标书初稿
- 用户需要撰写技术方案、商务方案、项目实施计划
- 用户需要进行招标文件解析、提取关键要求
- 用户需要生成响应矩阵（Compliance Matrix）和偏离表
- 用户需要对已完成标书进行质量检查和合规审查
- 触发词示例：「帮我写投标文件」「生成技术方案」「分析这份招标文件」「检查标书格式」

## 输入要求

1. **必需**：招标文件（PDF/DOCX/Markdown/纯文本）
2. **推荐**：公司简介、资质证书清单、成功案例库
3. **可选**：产品资料、技术白皮书、历史投标文件、报价策略
4. **知识库（推荐）**：接入IMA知识库（`ima-mcp` 连接器），将公司资料、资质证书、案例、技术方案等上传至IMA，阶段二中将自动检索并优先使用知识库中的真实素材

---

## 阶段〇：投标可行性预评估（v3.0 新增）

> **核心价值**：决定"要不要投"比"怎么写"更重要。5分钟出结论，避免花两天写完全文才发现资质不够。

**执行者**：主Agent，在解析招标文件后立即执行，不另启子Agent。

**执行时机**：阶段一·步骤2（解析提取）完成后，在进入MECE拆解之前。

**输入**：阶段一的 `01_招标要素清单.md` 中的资格条件部分 + 评分标准部分 + 时间节点部分。

**评估维度**：

| 维度 | 评估内容 | 数据来源 |
|------|---------|---------|
| **资质匹配度** | 营业执照范围是否覆盖、专业资质是否齐全、类似业绩数量是否达标、人员资格是否满足 | IMA知识库中的律所资质资料 + 用户确认 |
| **废标风险初筛** | 是否存在"一票否决"条款（如★号资格条款缺失、业绩门槛不达标等），加载 `references/risk_library.md` 中的「投标准入类」模式进行比对 | 招标要素清单 + 风险库 |
| **时间压力** | 投标截止日距今的日历天数、答疑截止时间、保证金到账时限 | 招标要素清单·时间节点 |
| **竞争态势** | 评分标准中价格分占比（价格战风险）、技术分/方案分的区分度（是否有明显加分点） | 招标要素清单·评分标准 |
| **投标建议** | 综合以上四维，给出三档建议 | 主Agent综合分析 |

**三档建议**：

| 建议 | 标志 | 含义 |
|------|------|------|
| 🟢 **建议投标** | 资质全匹配 + 无硬性废标风险 + 时间充裕 + 有明确竞争优势 | 进入阶段一后续流程 |
| 🟡 **谨慎投标** | 部分资质需补充或有时间压力，但无致命风险 | 提示风险点，用户自行决定 |
| 🔴 **建议放弃** | 存在一票否决条款无法满足、或资质严重不匹配 | 列出不可逾越的障碍，节约后续投入 |

**输出产物**：`00_投标可行性预评估报告.md`，包含：
- 资质匹配矩阵（招标要求 vs 我方资质，逐项 ✅/⚠️/❌）
- 废标风险初筛结果（命中的风险模式编号 + 风险等级）
- 时间压力评估（关键节点倒计时）
- 竞争优势分析（评分标准的加减分预判）
- 最终建议及理由

**⚠️ 人工确认点 #0**：将 `00_投标可行性预评估报告.md` 呈现给用户。用户决定：
- 「继续投标」→ 进入阶段一后续流程（MECE拆解）
- 「放弃」→ 终止流程，保存预评估报告备查

> 如果用户选择「放弃」，这是**成功的放弃**——比花了两个工作日写完全文再发现废标条款有意义得多。

---

## 八阶段多Agent工作流

严格按照以下八阶段流程执行，不可跳过或颠倒顺序。每个阶段的子Agent使用 `Agent` 工具（`subagent_type: "general-purpose"`）启动。

---

### 阶段一：招标解析与框架生成（总调度 Agent）

**执行者**：主Agent（当前Skill的调用者），不另启子Agent

**步骤**：

1. **读取招标文件**：若用户未提供，主动询问。支持 PDF/DOCX/Markdown/纯文本。
2. **解析提取**：输出结构化的「招标要素清单」，包含：
   - 资格条件：营业执照、资质证书、业绩要求、人员要求、财务要求
   - 技术参数：产品/服务的技术指标、性能要求、标准规范
   - 商务条款：付款方式、交付期限、质保要求、知识产权、违约责任
   - 评分标准：技术分/商务分/价格分权重、各评分项及分值（此为后续章节Brief核心输入）
   - 提交要求：文件组成、格式规范、装订要求、电子版要求
   - 时间节点：投标截止时间、答疑时间、开标时间、保证金截止时间
   - 实质性条款：标注★号条款或"必须满足"条款
   - **v3.1新增：自定义废标条款**：从招标文件中提取所有含"无效""废标""否决""不予受理""不通过"等关键词的条款原文，作为风险库的补充输入
3. **模板自动识别（v3.1新增）**：在人工标注 [模板]/[自由] 之前，先执行自动化规则扫描：
   - **规则A：表格特征检测** — 扫描招标文件中所有含表格的页面，提取表格列数和表头文字。如果一个页面包含 ≥3 列且表头含"序号/名称/..."等关键字，标记为候选 [模板] 章节
   - **规则B：签章空位检测** — 扫描含"（签字）""（盖章）""（签字或盖章）""授权代表"等关键字的段落，标记所在章节为候选 [模板] 章节
   - **规则C：承诺书/声明类检测** — 扫描含"我方承诺""郑重承诺""特此声明""郑重声明"等固定句式开头的段落，标记所在章节为候选 [模板] 章节
   - **规则D：偏离表检测** — 扫描含"偏离情况""偏离说明""正偏离/负偏离"等偏离表专用列的表格，标记为候选 [模板] 章节
   - 自动检测完成后，输出「模板自动识别结果」供人工确认（标注置信度：高/中/低）。**置信度为"高"的自动标注，人工仅需审核"中"和"低"的候选**
4. **加载 `references/policy_checklist.md`**，执行政策合规预检，输出「政策合规检查报告」（通过/不通过/需补充 + 修复建议）。
5. **加载 `references/risk_library.md`**（v3.0新增），执行法务废标风险初筛：
   - 解析招标文件中的形式要件（签字/盖章/密封/装订/正副本/电子版/授权）
   - 逐条比对风险库中的法务/服务类废标模式
   - **v3.1新增：合并步骤2提取的自定义废标条款**，将其作为风险扫描的补充范围（冠以 "CUSTOM-" 编号前缀以区分风险库内置模式）
   - 输出「废标风险初筛报告」（风险命中清单 + 规避建议），嵌入 `02_政策合规检查报告.md` 末尾
6. **MECE拆解**：按评分标准将标书拆解为N个独立章节（1章 = 1个评分维度的完整响应），确保章节间无重叠、无遗漏。**v3.1更新：合并人工标注与自动识别结果，对每个章节标注类型 [模板] 或 [自由]**
7. **生成章节Brief**：每个章节一份Brief，包含：
   - **章节类型标注**（[模板] 或 [自由]，标注来源：人工/自动-高置信度/自动-未确认）
   - 本章覆盖的招标条款编号及原文
   - 本章在评分体系中的分值及权重
   - **[模板]章节**：列出模板段落范围（如 P371-P393）、表格列数（如 6列）、签章空位要求
   - **[自由]章节**：必须产出的内容要素（字数下限 + 图表要求 + 表格要求 + 事实/数据引用点）
   - 需要加载的reference文件名
   - 参考的assets模板（如适用）
8. **生成响应矩阵草稿**：条款→响应章节映射，标注各条款类型（强制性/推荐性/隐含性）。

**阶段一产出物**：
- `01_招标要素清单.md`
- `02_政策合规检查报告.md`
- `03_章节Brief汇总.md`（含N个章节Brief）
- `04_响应矩阵草稿.md`

**⚠️ 人工确认点 #1**：阶段一完成后，必须将以上4个文件呈现给用户审核，等待用户确认「y 继续」或「n 修改框架」后再进入阶段二。框架确认前不得启动任何章节编写。

---

### 阶段二：知识库驱动并行章节编写（4个子阶段）

阶段二从「纯AI凭空生成」升级为「IMA知识库优先 → AI补全 → 人工确认」三阶梯模式。分为 A/B/C/D 四个子阶段。

#### 前置条件

**IMA知识库连接器**（`ima-mcp`）需在 WorkBuddy 中连接并授权。若未连接，阶段二·A 将自动回退为「全量AI生成 + 人工确认」模式。

**相关工具（连接后可用）**：
- `mcp__ima-mcp__search_knowledge`：按关键词搜索知识库中的文档/条目
- `mcp__ima-mcp__get_document`：获取知识库中某篇文档的完整内容
- `mcp__lexiang__search_kb_search`（乐享知识库，备选）：当 IMA 不可用时尝试使用乐享知识库

---

#### 阶段二·A：IMA知识库预检索（主Agent）

**执行者**：主Agent（不另启子Agent）

**目的**：在启动章节编写Agent前，先对每个章节Brief的关键词在IMA知识库中检索，获取已有的公司资料、技术方案、案例等真实素材。

**步骤**：

1. **提取检索关键词**：从每个章节Brief中提取3~5组检索关键词。
   - 示例：章节"MES系统详细技术方案" → 关键词：「MES 制造执行系统」「某制造企业」「数字化车间」「电子制造MES」「生产排程 APS」
2. **并行检索**：对每个章节的每组关键词，调用IMA知识库搜索工具。
   - 若 `ima-mcp` 已连接：使用 `mcp__ima-mcp__search_knowledge` 搜索
   - 若 `ima-mcp` 未连接：尝试使用 `mcp__lexiang__search_kb_search`（乐享知识库作为备选）
   - 若两者均不可用：标记为「知识库不可用，全部内容将由AI生成」
3. **结果归类**：将检索结果按章节归类，标注每条结果的来源（IMA/乐享/无）、相关度（高/中/低）、内容摘要。
4. **生成检索报告**：输出 `05_IMA检索结果汇总.md`，包含：
   - 每个章节的检索关键词
   - 每类关键词的命中数量
   - 每条命中结果的内容摘要与来源链接
   - **内容覆盖度评估**：该章节已有知识的覆盖率（高≥70% / 中40~70% / 低<40%）

**阶段二·A产出物**：`05_IMA检索结果汇总.md`

**回退逻辑**：
- 若 IMA/乐享均不可用 → 该报告中标注「知识库不可用，全部内容由AI生成」
- 若部分章节有命中、部分无 → 各章节分别标注，命中章节优先使用知识库素材，未命中章节AI全量生成

---

#### 阶段二·B：知识库优先的并行章节编写（N个章节编写 Agent）

**执行者**：N个子Agent，使用 `Agent` 工具并行启动

**编排规则**：
- 每个章节一个Agent，所有Agent并行启动
- 每个Agent的prompt必须包含：该章节的完整Brief + IMA检索结果 + 指定加载的reference文件路径 + 公司/项目上下文
- 总调度需创建N个 `TaskCreate` 追踪每个章节进度

**Agent Prompt 模板**（每个章节一个，相比v2.0增加了IMA素材和内容溯源要求）：

```
你是投标标书章节编写专家。请根据以下Brief和IMA知识库素材撰写一个独立章节。

【章节Brief】
- 章节名称：{章节名}
- 覆盖招标条款：{条款列表}
- 分值权重：{分值}
- 字数要求：≥3000字（不足将被打回）
- 图表要求：至少1张架构图/流程图/甘特图（使用Mermaid代码生成）
- 表格要求：至少1张响应对照表
- 事实/数据引用点：{具体要求}

【IMA知识库检索结果】（来自05_IMA检索结果汇总.md的本章部分）
{本章相关的IMA检索结果：标题、链接、内容摘要}

【需加载的Reference】
{reference文件路径}

【公司上下文】
{公司简介、资质、案例库等}

【撰写要求——知识库优先原则】
1. **知识库优先**：优先使用IMA检索结果中的真实内容（公司资料、案例、技术方案等）。IMA有直接可用内容的，原文引用并标注来源。
2. **AI补全标记**：当IMA无对应内容、由你基于通用知识生成的段落，必须在段落开头添加标记：
   <!-- AI_GENERATED: 该段内容为AI辅助生成，基于{生成依据}，需人工确认 -->
   例如：<!-- AI_GENERATED: 该段内容为AI辅助生成，基于电子制造行业MES通用实践，需人工确认 -->
3. **逐条响应**：逐条响应Brief中的每条招标条款，不得遗漏
4. **标题编号与招标条款编号对应**
5. **量化支撑**：用数据而非空话（"提升30%"而非"大幅提升"）
6. **所有图表使用Mermaid代码块**（```mermaid ... ```）
7. **禁止使用"可能""大概""也许""应该"等模糊词汇**
8. **输出纯Markdown格式**，章节标题前使用`##`作为顶级标题
9. **在章节末尾附上两种检查表**：
   - 「本章响应检查表」：每条招标条款→响应段落→响应状态
   - 「本章内容溯源表」：列出本章所有节/小节，标注内容来源（IMA知识库/Reference/AI生成）及置信度
```

**编写质量标准**（每个章节Agent必须遵守）：
- **字数底线**：每个章节正文≥3000字（纯中文文字，不含代码块和图表）
- **图表要求**：每个章节至少1张Mermaid图
- **表格要求**：每个章节至少1张表格
- **事实引用**：每个技术/商务论点必须有数据/标准/案例支撑，优先引用IMA素材
- **逐条响应**：Brief中的每条招标条款必须有独立段落响应
- **溯源标记**：所有AI生成段落必须用 `<!-- AI_GENERATED: ... -->` 标记

**阶段二·B产出物**：N个 `ch_N_章节名.md` 文件（含AI_GENERATED标记）

---

#### 阶段二·C：AI生成内容清单与人工确认

**执行者**：主Agent

**目的**：将每个章节中所有 `<!-- AI_GENERATED -->` 标记的段落汇总成清单，提交用户审核。这是阶段二内部的人工确认点。

**步骤**：

1. **扫描提取**：遍历所有 `ch_N_章节名.md` 文件，提取所有 `<!-- AI_GENERATED: ... -->` 标记段落。
2. **生成清单**：输出 `06_AI生成内容清单.md`，包含：
   - 总体统计：总段落数 / IMA命中段落数 / AI生成段落数 / AI生成占比
   - 按章节逐个列出AI生成段落：
     - 所在章节及行号
     - 段落主题
     - 生成依据（从标记中提取）
     - 段落前100字预览
     - 置信度评估（高/中/低）
   - 风险提示：标注哪些AI生成段落属于P0/P1级别（涉及核心技术参数、公司数据、报价等）
3. **输出内容覆盖率报告**：

| 章节 | IMA命中率 | AI生成占比 | P0级AI段落 | 风险等级 |
|------|:--------:|:--------:|:---------:|:------:|
| 章节一 | 45% | 55% | 2 | ⚠️ 中 |
| ... | ... | ... | ... | ... |

**⚠️ 人工确认点 #1.5**（阶段二内部）：将 `06_AI生成内容清单.md` 呈现给用户。用户审核后：
- 「全部确认」→ 移除所有 `<!-- AI_GENERATED -->` 标记，进入阶段二·D 定稿
- 「指定修改」→ 用户指出需要修改的具体段落编号，主Agent重新生成这些段落（仅重新生成指定段落，已确认段落保留）
- 「全部重写」→ 用户提供补充资料后，重新执行阶段二·B

**阶段二·C产出物**：`06_AI生成内容清单.md`

---

#### 阶段二·D：定稿输出

**执行者**：主Agent

**步骤**：
1. 用户确认所有AI生成段落后，移除所有章节文件中的 `<!-- AI_GENERATED: ... -->` 标记
2. 更新 `05_IMA检索结果汇总.md`，在每条检索结果的末尾标注「已采用至第X章第Y节」
3. 生成最终章节文件（命名格式统一为 `章节N_标题.md`）

**阶段二·D产出物**：
- N个 `章节N_标题.md`（定稿版，已移除所有AI_GENERATED标记）
- `05_IMA检索结果汇总.md`（更新版，含采用追踪）

---

#### IMA不可用时的完整回退流程

当 `ima-mcp` 和 `mcp__lexiang__*` 均不可用时：

1. **阶段二·A** 直接输出 `05_IMA检索结果汇总.md`，标注「知识库不可用，全部内容由AI生成」
2. **阶段二·B** 正常启动N个章节编写Agent，所有段落均标记为 `<!-- AI_GENERATED: 知识库不可用时AI全量生成 -->`
3. **阶段二·C** 的 `06_AI生成内容清单.md` 将显示 **AI生成占比100%**，逐章列出所有段落等待确认
4. **阶段二·D** 同样执行——用户确认所有段落后移除标记，定稿输出

> **注意**：IMA不可用时，人工确认的工作量会显著增加（因为100%内容都需审核）。建议用户尽量在投标前将公司资料（简介、资质、案例、技术白皮书等）上传至IMA知识库，以降低AI生成比例。

---

### 阶段三：模板/自由双轨合稿（主Agent 执行）

**v2.2 重要变更**：阶段三不再由单独的子Agent执行，**由主Agent直接执行**。原因：模板填空需要精确对照招标文件原文，子Agent的独立上下文会丢失模板细节。主Agent持有完整的招标文件解析结果，可以逐字逐格对齐。

**执行者**：主Agent

**双轨合稿规则**：

```
对每个章节，根据阶段一标注的 [模板] / [自由] 类型，走不同轨道：

轨道A [模板] 章节：
  1. 从招标文件第五章提取该章节的模板原文（段落、表格结构、签章空位）
  2. 将模板原文作为基准，不在上面"重写"——只做"填空"
  3. 占位符替换：把（供应商名称）、（项目名称）、（大写）等替换为实际数据
  4. 签章行留白：供应商签字、法定代表人签字、日期——全部保留空白供手签
  5. 表格复制：模板几列就是几列，模板什么表头就是什么表头
  6. 标点符号：保留模板中的中文标点（、。「」），不得替换为英文标点

轨道B [自由] 章节：
  1. 从阶段二·D产出的《章节N_标题.md》中读取内容
  2. Markdown → DOCX 转换（保留表格、Mermaid 渲染、层级标题）
  3. Mermaid 代码块通过本地 `mmdc` 渲染为 PNG 后插入 .docx（mermaid.ink / kroki.io 在国内被 GFW 拦截，必须本地化）
  4. 字体统一为小四宋体、1.5倍行距
```

**合稿顺序**（严格按招标文件第五章顺序）：

| 序号 | 章节 | 类型 | 轨道 | 数据来源 |
|:---:|------|:---:|------|---------|
| 1 | 磋商申请及声明 | [模板] | A | 招标文件 P371-P393 + DATA 字典 |
| 2 | 法定代表人授权委托书 | [模板] | A | 招标文件 P395-P408 + DATA 字典 |
| 3 | 磋商一览表 | [模板] | A | 招标文件 P410-P412 + DATA 字典 |
| 4 | 细目报价表 | [模板] | A | 招标文件 P414-P423 + DATA 字典 |
| 5 | 资格证明文件 | [模板] | A | 招标文件 P424-P464（含承诺书格式一/二） |
| 6 | 补充证明文件 | [模板] | A | 招标文件 P465-P474（格式三表格）+ 业绩数据 |
| 7 | 商务条款偏离表 | [模板] | A | 招标文件 P477-P480 + 商务条款数据 |
| 8 | 技术条款偏离表 | [模板] | A | 招标文件 P483-P487 + 技术条款数据 |
| 9 | 服务方案 | [自由] | B | 阶段二·D 产出的章节8A-8E |
| 10 | 项目人员配置 | [模板] | A | 招标文件 P511-P541（格式十表格）+ 人员数据 |
| 11 | 质量保证措施与相关承诺 | [自由] | B | 阶段二·D 产出的章节10 |
| 12 | 其他部分 | [自由] | B | 律所简介 |

**技术实现**：使用 Python + `python-docx` 直接创建 DOCX，不经过 HTML 中间格式。原因：
- HTML 转 DOCX 会丢失表格结构和签章空行
- python-docx 可以精确控制每个段落的文本，确保与模板逐字一致

**产出物**：`标书_v1.docx`

**合稿后必检**（主Agent自检，不等待阶段四）：

打开生成的 .docx，用对抗性审查视角逐项检查：
- [ ] 磋商申请"5、"（中文顿号，不是英文句号"5."）
- [ ] 细目报价表 6 列（不是 5 列）
- [ ] 偏离表含"偏离情况"列
- [ ] 承诺书文字与招标文件逐字一致（含空格和缩进）
- [ ] 签章行保留空白（没有预填名字）
- [ ] 类似业绩表 8 列完整
- [ ] 人员配置表 8 列（含证号列）

**如果发现任何偏差** → 不要寄希望于评审阶段修复，立即修改合稿脚本，重新生成。

---

### 阶段四：质检——六道硬门槛（质检 Agent）

**执行者**：1个子Agent，使用 `Agent` 工具启动

**硬门槛说明**：六道门槛为「**与**」关系 —— **一道不通过即打回阶段二，不得进入评审**。

**Agent Prompt 模板**：

```
你是投标标书质检专家。请对以下标书文件执行六道硬门槛检查（含废标风险库复检）。

【输入文件】标书_v1.docx

【需加载的Reference】references/format_checklist.md

【六道硬门槛——AND关系，一道不过即打回】

**门槛1：字数门槛**
- 遍历每个章节，统计纯中文正文文字量（不含代码块、图表、表格）
- 每章需≥3000字
- 任一章节不满足 → 不通过，标注具体章节及缺口字数

**门槛2：图表门槛**
- 检查每个章节是否至少包含1张图表
- 图表来源检查：是否为Mermaid生成（非网络截图）
- 图表清晰度检查：是否可正常渲染
- 图表编号连续性检查
- 任一章节不满足 → 不通过

**门槛3：表格门槛**
- 检查每个章节是否至少包含1张数据表格
- 表格内容完整性：无空白单元格
- 表格格式统一性：边框/字体/对齐方式一致
- 任一章节不满足 → 不通过

**门槛4：事实核查门槛**
- 逐条检查：所有数据/百分比/金额是否有来源标注
- 搜索"可能""大概""也许""应该""左右"等模糊词 → 全部标记
- 交叉验证：同一数据在两处是否一致
- 发现模糊词或数据矛盾 → 不通过，标注具体位置

**门槛5：格式门槛**
- 图表编号连续性检查（图1→图2→...无跳号，表1→表2→...无跳号）
- 目录页码与实际页码对应检查
- 字体全黑检查（无蓝色超链接残留）
- 文件命名规范检查
- 不满足任一 → 不通过

**门槛6：废标风险库复检（v3.0新增）**
- 加载 `references/risk_library.md`，对照标书终稿逐条扫描
- 检查项：
  - 形式要件完整性（签字/盖章/密封/装订/正副本/电子版/授权）
  - 资质证书有效期（执业许可证、人员资格证书是否在有效期内）
  - 业绩证明格式合规性（合同复印件是否齐全、金额是否达标）
  - 报价一致性（大写与小写是否一致、分项合计与总价是否一致）
  - 签章行留白验证（不得预填名字、不得遗漏签章位）
- 命中任一废标风险模式 → 不通过，标注风险模式编号 + 具体位置 + 修复建议

【输出格式】
生成「质检报告.md」，包含：
1. 六道门槛逐项结果（通过/不通过）
2. 不通过项的具体位置、问题和修复建议
3. 总体结论：通过（进入阶段五）/ 不通过（打回阶段二，附打回原因列表）
```

**打回处理流程**（v3.1更新：增加自动修复能力）：

质检不通过时，按问题类别分两条路径处理：

**路径A：自动修复（格式类风险，v3.1新增）**

以下类别的风险命中，由主Agent自动修复而非打回阶段二：

| 风险类别 | 自动修复方式 | 示例 |
|---------|------------|------|
| 表格列数偏差（B13） | 使用 python-docx 重写表格，严格按模板列数生成 | 偏离表5列→自动补齐到5列 |
| 标点符号替换（B14） | 全文查找替换：英文标点→中文标点（仅限模板章节） | "5." → "5、"、"——"→"——" |
| 字体/字号不一致（B18） | 统一设置：正文小四宋体、1.5倍行距 | 批量应用样式 |
| 表格格式统一性（门槛3） | 统一边框/字体/对齐方式 | 全表格批量处理 |
| 图表编号跳号（门槛2/5） | 重新编号：图1→图2→...无跳号 | 更新图表题注 |
| 模糊词替换（门槛4） | 标记所有模糊词位置，AI 自动替换为具体表述 | "大幅提升"→"提升约30%" |
| 签章行预填（B07/E01-E05） | 清空签章行文本，保留空白供手签 | 删除预填文字 |
| 蓝色超链接残留（门槛5） | 清除所有超链接，统一黑色字体 | 逐段清除 |

**自动修复流程**：
1. 质检 Agent 输出 `质检报告.md` 时，对可自动修复项标注 `[AUTO-FIX]` 标记
2. 主Agent读取 `质检报告.md`，对 `[AUTO-FIX]` 项逐项执行自动修复
3. 修复后的标书另存为 `标书_v1_fixed.docx`，标注修复项和修复内容
4. 主Agent对修复后的标书重新执行阶段四质检（仅检查不可自动修复的门槛：门槛1/4 中不可量化部分）

**路径B：人工修复（内容类风险，走传统打回流程）**

| 风险类别 | 原因不自动修复 | 修复方式 |
|---------|------------|---------|
| 承诺书文字被改写（B15） | 涉及语义，AI 无法判断原文 | 打回阶段二，人工对照模板逐字修改 |
| 报价大小写不一致（D01/D02） | 涉及真实数据，AI 无法获知正确值 | 标记 `⚠️ 需人工确认`，用户提供正确值后修复 |
| 资质证书过期（C01-C06） | 涉及真实业务状态 | 标记风险，用户自行确认和补充 |
| 内容类覆盖不足 | 需要新增章节和内容 | 打回阶段二·B，对应章节Agent重写 |

**打回处理流程**（仅路径B）：
- 质检不通过（路径B类问题） → 主Agent将质检报告中的问题逐条反馈给对应的章节编写Agent（阶段二的Agent）
- 章节编写Agent修正后重新输出章节文件
- 重新进入阶段三（合稿）→ 阶段四（质检）
- 打回次数计入迭代轮数

**阶段四产出物**：
- `质检报告.md`（含 `[AUTO-FIX]` 标记项）
- `标书_v1_fixed.docx`（自动修复后的标书，如适用）

---

### 阶段五：五维并行评审（评审Agent A~E）

**执行者**：5个子Agent（评审A~E），使用 `Agent` 工具**并行启动**

**前置条件**：阶段四质检通过

**评审角色定义**：

| 评审 | 视角 | 权重 | 核心审查内容 |
|------|------|------|-------------|
| **评审A** | 完整性评审 | 20% | 招标文件每条要求是否被覆盖、章节是否遗漏、响应矩阵是否完整 |
| **评审B** | 技术深度评审 | 25% | 技术方案专业性、架构合理性、参数响应准确性、创新性与差异化 |
| **评审C** | 商务竞争力评审 | 15% | 报价竞争力、商务条款合理性、售后承诺可靠性、业绩匹配度 |
| **评审D** | 语言与规范评审 | 10% | 文字表达规范性、逻辑清晰度、专业术语准确性、排版一致性 |
| **评审E** | 评分博弈评审 | 30% | 从评委视角模拟打分：逐条按评分标准打分，识别失分风险和加分机会 |

**评审Agent Prompt 模板**（以评审A为例）：

```
你是投标标书完整性评审专家（评审A，权重20%）。请从完整性视角审查以下标书。

【输入文件】标书_v1.docx
【招标要素清单】01_招标要素清单.md
【响应矩阵】响应矩阵_完整版.md

【审查维度】
1. 逐条检查招标文件中的每一条实质性要求（★号条款）是否在标书中有明确响应段落
2. 逐条检查评分标准中的每个评分项是否在标书中有对应章节
3. 检查是否有应包含但遗漏的章节
4. 检查响应矩阵与实际标书内容是否一致
5. 检查附件清单是否完整

【输出格式】
生成「评审A_完整性评审报告.md」，包含：
1. 覆盖度评分（满分100）
2. 遗漏项列表（每条标注招标条款编号+遗漏内容+P0/P1/P2等级）：
   - P0（致命）：实质性条款遗漏，直接废标
   - P1（严重）：评分项遗漏，失分≥3分
   - P2（一般）：非评分项遗漏或表达不充分
3. 完整性改进建议（逐条可操作）
```

**各评审Agent均需加载**：`references/review_checklist.md`（评审标准与得分规则）

**评审产出物**：
- `评审A_完整性评审报告.md`
- `评审B_技术深度评审报告.md`
- `评审C_商务竞争力评审报告.md`
- `评审D_语言规范评审报告.md`
- `评审E_评分博弈评审报告.md`

**加权总分计算**：
```
总分 = 评审A得分×20% + 评审B得分×25% + 评审C得分×15% + 评审D得分×10% + 评审E得分×30%
```

**P0/P1/P2分级汇总**：主Agent汇总5份评审报告中所有问题，合并去重，按P0/P1/P2分级列出。

**⚠️ 人工确认点 #2**：阶段五完成后，将5份评审报告+加权总分+P0/P1/P2问题清单呈现给用户。用户决定：
- 「y 交付」→ 总分≥95分且无P0问题时可直接输出交付版
- 「n 再改」→ 进入阶段五·B（评分项闭环补强）或阶段七（修改迭代）

---

### 阶段五·B：评分项闭环补强 PDCA-Act（v3.0 新增）

> **核心理念**：竞品（红点智标、数匠云、钛投标）的"闭环整改"停在输出整改方案，本工具直接把补强段落落稿——PDCA 的 Act 不够，才是真的闭环。

**执行者**：主Agent（不另启子Agent）。原因：补强段落的注入需要精确知道每个章节的原始位置，子Agent的独立上下文无法做到。

**前置条件**：阶段五评审完成，用户选择「n 再改」或加权总分 < 95。

**执行流程**：

#### 步骤 1：评分项覆盖度诊断

对每个评分项，检查其在生成稿中的覆盖状态：

| 覆盖状态 | 判断标准 | 处理方式 |
|---------|---------|---------|
| ✅ 已覆盖 | 成稿中有独立章节/段落明确响应，且内容充分（≥300字/评分项） | 跳过，标注"已充分响应" |
| ⚠️ 弱覆盖 | 成稿中有响应但内容单薄（<300字/评分项），或仅一笔带过 | **自动生成补强段落** |
| ❌ 未覆盖 | 成稿中无任何响应 | **自动生成补强段落**（最高优先级） |

**重要排除规则**：以下两张"元表格"不计入覆盖度判断，避免干扰：
- 「评分项响应保障表」（阶段三合稿生成的附录表）
- 「资质业绩响应表」（资格证明章节）

#### 步骤 2：补强段落生成

对弱覆盖/未覆盖的评分项，按类别消费知识库生成补强段落：

| 评分项类别 | 补强素材来源 | 示例（法务标书） |
|-----------|------------|----------------|
| 业绩类 | IMA知识库：律所类似项目案例 | "我方过去三年为 XX 家政府单位提供法律顾问服务，近三年处理行政诉讼案件 XX 件..." |
| 人员类 | IMA知识库：律师简历/CV | "张律师具有 XX 年执业经验，曾代理 XX 案件..." |
| 资质类 | IMA知识库：律所资质证书 | "本所持有 XX 资质，具备 XX 领域专业服务能力..." |
| 方案类 | AI生成 + 行业知识 | 补充服务方案中缺失的子模块（如"信息化管理方案"） |
| 服务承诺类 | AI生成 + 报价数据 | 补充响应时间承诺、服务质量指标等量化数据 |

**补强段落质量要求**：
- 每段 ≥ 200字，有量化数据支撑（禁用"可能""大概""也许"）
- 与原始成稿风格一致（保持章节语言风格和编号体系）
- 标注来源：`<!-- REINFORCE: 基于IMA素材「{来源文档名}」生成 -->` 或 `<!-- REINFORCE: AI辅助生成，基于{行业/领域}知识，需人工确认 -->`

#### 步骤 3：补强段落注入成稿

1. 将每个补强段落插入到对应章节中评分项响应位置的末尾
2. 在docx中使用「修订模式」标记新注入内容（蓝色文字 + 批注标注来源），方便人工识别审阅
3. 为每个注入的段落保留 `<!-- REINFORCE: ... -->` 标记，与阶段二的 `<!-- AI_GENERATED: ... -->` 标记格式一致

#### 步骤 4：生成补强闭环审计报告

产出 `评分项补强闭环报告.md`，包含：

| 评分项编号 | 原始覆盖状态 | 补强后状态 | 补强段落字数 | 素材来源 | 置信度 |
|:---:|:---:|:---:|:---:|------|:---:|
| 技术分-1 | ⚠️ 弱覆盖 | ✅ 已补强 | 350字 | IMA-案例库 | 高 |
| 技术分-3 | ❌ 未覆盖 | ✅ 已补强 | 420字 | AI生成 | 中 |
| ... | ... | ... | ... | ... | ... |

以及：
- **补强前后评分预估对比**：模拟补强前得分 vs 补强后预估得分
- **零遗漏审计结论**：所有评分项是否均已覆盖（已覆盖/已补强覆盖/仍待人工补充）
- **⚠️ 需人工确认的补强段落清单**（置信度 ≤ 中 的段落）

#### 步骤 5：补强后稿输出

输出 `标书_v1_reinforced.docx`（含修订模式标记的补强段落）。

**⚠️ 人工确认点 #2.5**：将「评分项补强闭环报告」呈现给用户。用户审核每个补强段落：
- 「全部接受」→ 移除修订标记 + AI标记 → 进入阶段七
- 「逐条审核」→ 用户逐条确认/修改补强段落 → 进入阶段七
- 「仅接受高置信度」→ 自动接受置信度为"高"的段落，其余进入阶段七人工修改

**阶段五·B产出物**：
- `标书_v1_reinforced.docx`（含修订标记的补强版）
- `评分项补强闭环报告.md`
- `07_补强后评分项覆盖矩阵.md`（score-response matrix，所有评分项 × 覆盖状态）

---

### 阶段七：修改与迭代（修改 Agent）

**执行者**：1个子Agent，使用 `Agent` 工具启动

**Agent Prompt 模板**：

```
你是投标标书修改专家。请根据以下评审意见修改标书。

【输入文件】标书_v1.docx
【评审意见】5份评审报告中的P0/P1/P2问题清单（已合并去重）

【修改要求】
1. P0问题：逐条必须修复，不得遗漏
2. P1问题：逐条修复，至少修复80%
3. P2问题：逐条评估，选择性修复（标注修复/不修复及理由）
4. 修改后重新合并排版
5. 在文档修订记录中注明版本号（v1→v2→...）

【需加载的Reference】
- references/technical_matching.md
- references/business_matching.md
- references/format_checklist.md
```

**迭代循环规则**：
1. 阶段七输出 `标书_vN.docx`（N=当前轮数+1）
2. 新版本重新进入阶段四（质检）→ 阶段五（评审）→ 阶段五·B（补强）
3. 迭代最多**3轮**（即最多输出v4）

**阶段七产出物**：`标书_vN.docx`（N≥2）

---

## 迭代终止逻辑

满足以下**任一**条件即终止迭代，输出最终交付版：

| 条件 | 说明 |
|------|------|
| 加权总分 ≥ 95分 | 质量达标，直接交付 |
| 连续两轮总分提升 < 2分 | 边际收益递减，继续改无意义 |
| 达到最大迭代轮数（3轮） | 时间控制，强制输出当前最优版 |
| 所有评分项覆盖状态均为 ✅ | 零遗漏，补强已完成，无需再迭代（v3.0新增） |

满足终止条件后，精调Agent对最终版做一次格式终审（加载 `references/format_checklist.md` + `references/risk_library.md` 最终扫描），输出 `标书_交付版.docx`。然后进入阶段八（PDF拼合与交付组装）。

---

## 完整产出物清单

| 序号 | 文件名 | 产出阶段 | 说明 |
|------|--------|---------|------|
| 0 | `00_投标可行性预评估报告.md` | 阶段〇（v3.0新增） | 资质匹配+风险初筛+时间评估+投标建议 |
| 1 | `01_招标要素清单.md` | 阶段一 | 结构化招标要求提取 |
| 2 | `02_政策合规检查报告.md` | 阶段一 | 逐项合规检查 + 废标风险初筛结果 |
| 3 | `03_章节Brief汇总.md` | 阶段一 | MECE拆解后的N个章节Brief |
| 4 | `04_响应矩阵草稿.md` | 阶段一 | 条款→响应章节映射 |
| 5 | `05_IMA检索结果汇总.md` | 阶段二·A | 每章IMA知识库检索命中情况+覆盖率评估 |
| 6 | `06_AI生成内容清单.md` | 阶段二·C | 逐章逐段列出AI生成内容，供人工审核确认 |
| 7 | `章节N_标题.md`（N个） | 阶段二·D | N个Agent基于知识库优先编写的定稿章节 |
| 8 | `响应矩阵_完整版.md` | 阶段三 | 条款→实际响应段落映射 |
| 9 | `技术偏离表.md` | 阶段三 | 技术参数偏离说明 |
| 10 | `商务偏离表.md` | 阶段三 | 商务条款偏离说明 |
| 11 | `质检报告.md` | 阶段四 | 六道硬门槛检查结果（含风险库复检） |
| 12 | `评审A~E_报告.md`（5份） | 阶段五 | 五维评审报告 |
| 13 | `评审计分汇总.md` | 阶段五 | 加权总分+P0/P1/P2分级 |
| 14 | `标书_v1_reinforced.docx` | 阶段五·B（v3.0新增） | 含补强段落的修订模式版 |
| 15 | `评分项补强闭环报告.md` | 阶段五·B（v3.0新增） | 补强前后覆盖度 + 零遗漏审计结论 |
| 16 | `07_补强后评分项覆盖矩阵.md` | 阶段五·B（v3.0新增） | 评分项 × 覆盖状态完整矩阵 |
| 17 | `标书_v1.docx` | 阶段三 | 首版标书 |
| 18 | `标书_vN.docx` | 阶段七 | 第N轮修改版 |
| 19 | `标书_交付版.docx` | 终止后 | 最终交付版（含终审） |
| 20 | `08_插入清单.json` | 阶段八（v3.1新增） | 结构化插入清单，机器可读 |
| 21 | `output/标书_vN.pdf` | 阶段八（v3.1新增） | 文字层 PDF（DOCX 转换） |
| 22 | `投标文件_完整版.pdf` | 阶段八（v3.1新增） | 最终交付版 PDF（含所有扫描件） |
| 23 | `页码校验报告.md` | 阶段八（v3.1新增） | 页码与目录逐章校验结果 |

---

## 人工确认点

全流程共五个确认点（v3.1新增确认点#3），其余阶段完全自动运行：

| 确认点 | 时机 | 审核内容 | 操作 |
|--------|------|---------|------|
| **确认点 #0**（v3.0新增）| 阶段〇完成后 | 投标可行性预评估报告（资质匹配/风险初筛/时间评估/投标建议） | 「继续投标」进入阶段一 / 「放弃」终止流程 |
| **确认点 #1** | 阶段一完成后 | 招标要素清单 + 政策合规检查报告 + 废标风险初筛结果 + 章节Brief + 响应矩阵草稿 | 「y 继续」进入编写 / 「n 修改框架」调整Brief |
| **确认点 #1.5** | 阶段二·C完成后 | AI生成内容清单（逐章逐段列出）+ 内容覆盖率报告 | 「全部确认」移除标记 / 「指定修改」仅重写指定段落 / 「全部重写」补充资料后重新执行阶段二·B |
| **确认点 #2** | 每轮阶段五完成后 | 5份评审报告 + 加权总分 + P0/P1/P2清单 | 「y 交付」输出最终版 / 「n 再改」进入阶段五·B补强 |
| **确认点 #2.5**（v3.0新增）| 阶段五·B完成后 | 补强闭环报告 + 所有补强段落逐条审核 | 「全部接受」定稿 / 「逐条审核」逐一修改 / 「仅接受高置信度」自动接受可信段落 |
| **确认点 #3**（v3.1新增）| 阶段八完成后 | `投标文件_完整版.pdf` + `页码校验报告.md` | 「确认交付」输出最终版 / 「调整拼合」修改插入清单重新拼合 |

---

## 质量标准（全流程守则）

- **零遗漏**：响应矩阵必须覆盖招标文件每一条要求
- **零模糊**：禁用"可能""大概""也许""应该""左右"等不确定用语
- **零雷同**：严禁使用通用模板直接套用，必须贴合客户行业和具体需求
- **零幻觉**：所有事实/数据/案例优先从IMA知识库中检索真实素材。无知识库支撑的内容标注「AI辅助生成，需人工核实」，阶段二·C中集中审核确认
- **必确认**：证书编号、报价金额、签章要求、授权有效期、案例合同号——标注「⚠️ 需人工确认」
- **可视化**：架构图用Mermaid代码生成，进度计划用甘特图，数据对比用表格
- **一致性**：同一数据在全文中出现必须一致（报价、人员姓名、时间、编号）

---

## 执行注意事项

### 并行编排规则
- **阶段二**：N个章节编写Agent必须**同时并行启动**（一次 `Agent` 工具调用中发送N个），不得串行逐个启动
- **阶段五**：5个评审Agent必须**同时并行启动**，不得串行逐个启动
- 启动前确保所有前置文件已就绪，避免Agent之间的文件依赖

### Agent上下文管理
- 每个章节编写Agent拥有独立上下文，互不干扰
- 编写Agent不依赖其他章节内容，完全基于本章Brief工作
- 合稿Agent负责解决章节间的交叉引用和一致性

### 错误处理
- 任一章节编写Agent超时或失败 → 重新启动该Agent（不重跑成功的Agent）
- 阶段四质检不通过 → 仅打回不通过的章节编写Agent，通过的保留
- 连续2次打回同一章节 → 主Agent介入分析原因，调整Brief后重试

### 资源加载
- 各Agent按需加载references/下的参考文档，不提前全量加载
- **阶段〇**：加载 `references/risk_library.md` 中的「投标准入类」模式（v3.0新增）
- **阶段一·步骤4**：加载 `references/risk_library.md` 全量模式库（v3.0新增）
- **阶段二·A前**：主Agent需先检查 `ima-mcp` 连接状态。若已连接，使用 `mcp__ima-mcp__*` 系列工具检索知识库；若未连接，尝试 `mcp__lexiang__*` 作为备选
- **阶段二·B**（v3.1新增）：法务标书时，章节编写Agent加载 `references/legal_service_proposal_guide.md` 对应模块作为编写规范
- 合稿Agent加载 `format_checklist.md` + `assets/bid_document_template.md` — **v2.2 废弃**：合稿不再由子Agent执行，由主Agent直接对照招标文件模板生成
- 质检Agent加载 `format_checklist.md` + `references/risk_library.md`（v3.0新增）
- 评审Agent加载 `review_checklist.md`；评审B（技术深度）参考 `references/legal_service_proposal_guide.md`（v3.1新增）
- 阶段五·B（v3.0新增）：主Agent加载 `references/risk_library.md` 做补强合规校验

### 模板数据字典（DATA）

v2.2 新增：合稿前必须在主Agent上下文中构建 DATA 字典，所有 [模板] 章节的占位符从此字典取值：

```python
DATA = {
    # 项目信息
    'project_no': '招标编号',
    'project_name': '项目全称',
    
    # 供应商信息
    'supplier_name': '供应商全称（与公章一致）',
    'supplier_addr': '注册地址',
    'supplier_tel': '联系电话',
    'supplier_fax': '传真',
    'supplier_bank': '开户银行',
    'supplier_account': '银行账号',
    
    # 人员信息（⚠️ 需用户提供）
    'legal_rep_name': '法定代表人姓名',
    'legal_rep_title': '法定代表人职务',
    'auth_rep_name': '被授权代表姓名',
    'auth_rep_title': '被授权代表职务',
    
    # 报价信息
    'price_small': '¥XXX.00',
    'price_big': '大写金额',
    
    # 其他
    'service_time': '服务期限',
    'valid_days': '投标有效期（天）',
    'quality': '质量标准',
}
```

---

## 阶段八：PDF 拼合与交付组装（v3.1 新增）

> **核心理念**：标书不只是 .docx 文字稿——最终要交付的是一份按目录顺序排列的完整 PDF，包含模板材料 + 服务方案 + 证明材料。

### 为什么需要阶段八

v2.2 及之前版本的工作流止步于「生成 .docx → 人工在 WPS 中排版 → 人工插入扫描件」。但这有三个致命问题：

1. **人工拼合容易出错**：扫描件插入的页码位置、顺序、份数全靠人工记忆，遗漏一个附件 = 废标
2. **无法复用**：每次投标都要重新走一遍"打印 .docx → 打印扫描件 → 手动合并装订"流程
3. **不符合用户需求**：用户明确要求"把模板材料和服务方案拼成 PDF，再将证明材料以 PDF 形式按目录合并进去"

### 阶段八的定位

阶段八**不是取代**物理装订（盖章、签字、密封仍然是人工操作），而是**把到达装订台之前的所有文档编排工作自动化**。输出的是一个可直接打印的完整 PDF，人工只需要盖章签字装订。

### 前置条件

- 阶段七修改迭代已完成，`标书_vN.docx` 已定稿
- 用户已准备所有证明材料文件（PDF/图片格式）
- 本机已安装 `python-docx` 和 `PyPDF2`（或 `pypdf`）

### 执行流程

#### 步骤 1：生成结构化插入清单（JSON）

**执行者**：主Agent

从阶段一的 `03_章节Brief汇总.md` 和 `04_响应矩阵草稿.md` 中，提取所有需要插入扫描件的节点，生成机器可读的插入清单：

```json
{
  "project_name": "XX项目法律顾问服务投标文件",
  "toc_order": [
    {"section": "封面", "source": "generate", "page": "auto"},
    {"section": "目录", "source": "generate", "page": "auto"},
    {"section": "一、磋商申请及声明", "source": "template", "file": "标书_vN.docx", "pages": "1-3"},
    {"section": "二、法定代表人授权委托书", "source": "template", "file": "标书_vN.docx", "pages": "4-5"},
    {"section": "三、磋商一览表", "source": "template", "file": "标书_vN.docx", "pages": "6"},
    {"section": "四、细目报价表", "source": "template", "file": "标书_vN.docx", "pages": "7-8"},
    {"section": "五、资格证明文件", "source": "mixed", "children": [
      {"subsection": "5.1 营业执照副本", "source": "scan", "file": "证明材料/营业执照.pdf", "pages": 1},
      {"subsection": "5.2 律师事务所执业许可证", "source": "scan", "file": "证明材料/执业许可证.pdf", "pages": 1},
      {"subsection": "5.3 承诺书（格式一/格式二）", "source": "template", "file": "标书_vN.docx", "pages": "9-10"},
      {"subsection": "5.4 无重大违法记录声明", "source": "template", "file": "标书_vN.docx", "pages": "11"}
    ]},
    {"section": "六、补充证明文件（类似业绩）", "source": "mixed", "children": [
      {"subsection": "6.1 类似业绩表（格式三）", "source": "template", "file": "标书_vN.docx", "pages": "12"},
      {"subsection": "6.2 业绩合同复印件 — 项目1", "source": "scan", "file": "证明材料/业绩合同_项目1.pdf"},
      {"subsection": "6.2 业绩合同复印件 — 项目2", "source": "scan", "file": "证明材料/业绩合同_项目2.pdf"}
    ]},
    {"section": "七~八、偏离表", "source": "template", "file": "标书_vN.docx", "pages": "13-15"},
    {"section": "九、服务方案", "source": "free", "file": "标书_vN.docx", "pages": "16-50"},
    {"section": "十、人员配置", "source": "mixed", "children": [
      {"subsection": "10.1 人员配置表（格式十）", "source": "template", "file": "标书_vN.docx", "pages": "51"},
      {"subsection": "10.2 律师执业证复印件", "source": "scan", "file": "证明材料/律师证_张律师.pdf"},
      {"subsection": "10.2 律师执业证复印件", "source": "scan", "file": "证明材料/律师证_李四.pdf"}
    ]},
    {"section": "十一、质量保证措施与承诺", "source": "free", "file": "标书_vN.docx", "pages": "52-58"},
    {"section": "十二、其他", "source": "free", "file": "标书_vN.docx", "pages": "59-60"}
  ],
  "scan_files": [
    {"path": "证明材料/营业执照.pdf", "description": "营业执照副本复印件（加盖公章）"},
    {"path": "证明材料/执业许可证.pdf", "description": "律师事务所执业许可证副本复印件"},
    {"path": "证明材料/业绩合同_项目1.pdf", "description": "XX公司法律顾问服务合同"},
    {"path": "证明材料/律师证_张律师.pdf", "description": "张律师执业证复印件"},
    {"path": "证明材料/律师证_李四.pdf", "description": "李四律师执业证复印件"}
  ]
}
```

**产出物**：`08_插入清单.json`

#### 步骤 2：服务方案 DOCX → PDF

**执行者**：主Agent（使用 python-docx + 系统打印服务）

```bash
# macOS 使用 cupsfilter 或 libreoffice 将 docx 转为 PDF
# 优先使用 libreoffice（排版保真度最高）
libreoffice --headless --convert-to pdf 标书_vN.docx --outdir ./output/
```

> 如果 libreoffice 不可用，回退方案：使用 python-docx 逐页读取并通过 macOS 原生打印服务生成 PDF。

**产出物**：`output/标书_vN.pdf`

#### 步骤 3：按目录顺序拼合 PDF

**执行者**：主Agent（使用 PyPDF2/pypdf）

```bash
python3 scripts/pdf_assembler.py --manifest 08_插入清单.json --output 投标文件_完整版.pdf
```

`pdf_assembler.py` 的实现逻辑：
1. 读取 `08_插入清单.json` 中的 `toc_order`
2. 遍历每个条目：
   - `source: "template"` 或 `source: "free"` → 从 `标书_vN.pdf` 中提取指定页码范围
   - `source: "scan"` → 读取独立的证明材料 PDF 文件
   - `source: "mixed"` → 递归处理 children
3. 按顺序合并所有页面
4. 自动生成目录页（可选，基于 toc_order 结构）
5. 添加统一页码（从封面之后开始编号）

**产出物**：`投标文件_完整版.pdf`

#### 步骤 4：页码与目录校验

**执行者**：主Agent

1. 打开 `投标文件_完整版.pdf`，核对总页数
2. 逐章核对页码范围是否与插入清单一致
3. 核对：封面无页码、目录页使用独立页码、正文从第1页开始

**产出物**：`页码校验报告.md`

#### 步骤 5：最终完整性检查

对照风险库做最后一轮完整性扫描：
- 文件清单是否齐全（对照 `04_响应矩阵草稿.md` 的附件清单）
- 签章页是否均在位（无遗漏、无错位）
- 证明材料是否全部插入（对照 `08_插入清单.json` 的 scan_files 列表）

**⚠️ 人工确认点 #3**（v3.1新增）：将 `投标文件_完整版.pdf` + `页码校验报告.md` 呈现给用户。用户审核后：
- 「确认交付」→ 输出最终交付版
- 「调整拼合」→ 修改 `08_插入清单.json`，重新执行步骤 3-4

**阶段八产出物**：
- `08_插入清单.json`（结构化插入清单）
- `output/标书_vN.pdf`（文字层 PDF）
- `投标文件_完整版.pdf`（最终交付版，含所有扫描件）
- `页码校验报告.md`

### 阶段八的技术边界

| Skill 做的事 | Skill 不做的事 |
|-------------|---------------|
| ✅ 生成结构化插入清单（JSON） | ❌ 物理打印（激光/喷墨打印） |
| ✅ DOCX → PDF 自动转换 | ❌ 盖章（物理印章） |
| ✅ 按目录顺序程序化拼合 PDF | ❌ 手签字 |
| ✅ 自动生成目录页 | ❌ 装订（胶装/线装） |
| ✅ 页码自动编排 | ❌ 密封 |
| ✅ 证明材料完整性校验 | ❌ 快递/递交 |

> **原因**：盖章、签字、装订、密封是法律要求的物理操作，无法被代码替代。阶段八的目标是把到达装订台之前的所有编排工作自动化，人工拿到 `投标文件_完整版.pdf` 后只需要打印→盖章→签字→装订→密封五步物理操作。

---

## 实战案例：某法律顾问标书（v2.2 教训来源）

### 项目背景
- 项目：XX市XX局2025年法律顾问服务采购（竞争性磋商）
- 评分：价格20 + 业绩9 + 人员10 + 服务方案61 = 100分
- 投标人：某律师事务所

### v1 → v2 → v3 迭代教训

| 版本 | 错误 | 根因 | 修正 |
|:---:|------|------|------|
| v1 | 全文用 add_paragraph 新写，细目报价表5列（缺单价）、偏离表4列（缺偏离情况） | 未对照模板，自行设计表格结构 | — |
| v2 | 磋商申请"5、一旦我方成交"写成"5. 一旦我方成交"（英文句号） | 合稿时重写了模板句式 | v3 改为中文顿号 |
| v2 | 磋商申请报价行"3. 我们的总报价为（大写）..."被改写为"3. 采购包1总价...采购包2总价..." | 改变了模板句式 | v3 保留模板句式 |
| v2 | 签章行预填了供应商名称 | 混淆了"填空"和"代签" | v3 签章行留白 |
| v1-v3 | Mermaid 图无法自动渲染进 DOCX | python-docx 不支持 Mermaid | v2.2修正：`npm install -g @mermaid-js/mermaid-cli` 后通过 mmdc 本地渲染为 PNG，自动插入 .docx |

### 核心结论

> **招标文件第五章不是"排版建议"，是"答题卡"。你改一个字，评委就多一个扣分理由。29项废标情形第8项明确写道："未按磋商文件规定的格式、内容和要求填写制作的"——直接无效。**

---

## 资源文件

### references/ —— 参考文档（按需加载）

| 文件 | 用途 | 加载者 |
|------|------|--------|
| `policy_checklist.md` | 政策法规合规检查清单（6大类检查：法律依据、主体资格、专业资质、政府采购政策、禁止性条款、检查报告模板） | 总调度（阶段一） |
| `risk_library.md` | **v3.0新增** 法务/服务类标书废标风险库（投标前准入筛查 + 46条高频废标风险模式 + 形式要件检查项 + 资质有效期检查规则 + 报价一致性校验规则）。按"投标准入 / 形式要件 / 资质有效期 / 报价校验 / 签章留白"五大类组织，每条含风险编号、触发条件、后果等级、规避措施 | 总调度（阶段一·步骤4）、质检Agent（阶段四·门槛6）、终审（迭代终止后） |
| `legal_service_proposal_guide.md` | **v3.1新增** 法务服务方案编写指南（法务标书评分逻辑、6大标准模块结构、语言风格规范、量化要求、高频废标陷阱、不同采购类型差异化策略、服务方案自查清单）。替代通用 `technical_matching.md` 的法务适用部分 | 章节编写Agent（阶段二·B，并行编写时按需加载对应模块）、评审Agent B（阶段五，技术深度评审参考） |
| `technical_matching.md` | 技术匹配指南（编写原则、盲评满分8要素、参数响应方法、偏离表规范、13章工程结构、可视化要求、自查表） | 章节编写Agent、合稿Agent、修改Agent |
| `business_matching.md` | 商务匹配指南（报价策略、商务偏离表规范、售后承诺要素、业绩证明4要素、10大废标原因、自查清单） | 章节编写Agent、合稿Agent、修改Agent |
| `format_checklist.md` | 格式检查清单（字体段落、页面设置、图表规范、PDF规范、一致性检查、六道硬门槛、终审签字确认） | 合稿Agent、质检Agent、修改Agent |
| `review_checklist.md` | 评审标准与得分规则（5个评审维度详细标准、P0/P1/P2分级规则、加权计分公式、评审报告模板、PDCA-Act补强触发条件） | 评审Agent A~E（阶段五） |

### 外部依赖（需用户在WorkBuddy中提前连接）

| 服务 | 状态要求 | 用途 | 使用阶段 |
|------|---------|------|---------|
| **IMA知识库** (`ima-mcp`) | 需连接 | 阶段二·A中检索公司资料/技术方案/案例，为章节编写提供真实素材 | 阶段二·A |
| **乐享知识库** (`lexiang`) | 备选（IMA不可用时） | 与IMA功能相似，作为IMA未连接时的替代知识库 | 阶段二·A（回退） |

### scripts/ —— 可执行脚本

| 文件 | 用途 |
|------|------|
| `response_matrix_generator.py` | 生成响应矩阵Excel文件（输入招标要素JSON+公司能力库→条款→响应映射表） |
| `checklist_generator.py` | 生成格式检查清单Markdown文件（内容检查+格式检查+一致性检查） |
| `pdf_assembler.py` | **v3.1新增** PDF拼合脚本（读取 `08_插入清单.json` → 按目录顺序合并 DOCX 导出的 PDF 与扫描件 PDF → 输出 `投标文件_完整版.pdf`）。依赖 PyPDF2/pypdf |

### assets/ —— 模板资源

| 文件 | 用途 |
|------|------|
| `bid_document_template.md` | 完整标书文档结构模板（按标准标书章节组织，合稿Agent加载） |

---

## 快速启动示例

用户说「帮我写XX项目的投标文件」，主Agent的执行序列：

1. 确认招标文件已提供
2. **执行阶段〇**（v3.0新增）：解析招标文件 → 资质匹配预检 + 风险初筛 → 输出 `00_投标可行性预评估报告.md` → 等待用户确认「继续」/「放弃」
3. 用户确认继续 → 执行阶段一（招标解析+政策预检+风险库扫描+MECE拆解+章节Brief）
4. 输出4份文件 → 等待用户确认（确认点#1）
5. 用户确认后 → 执行阶段二·A（IMA知识库预检索）→ 输出 `05_IMA检索结果汇总.md`
6. 并行启动N个章节编写Agent（阶段二·B，知识库优先）→ 输出含溯源标记的章节初稿
7. 扫描提取所有AI生成段落 → 生成 `06_AI生成内容清单.md` → 等待用户确认（确认点#1.5）
8. 用户确认后 → 移除AI标记 → 定稿章节文件（阶段二·D）
9. 执行阶段三（模板/自由双轨合稿）→ 输出标书v1
10. 质检通过（六道硬门槛，含风险库复检）→ 并行启动5个评审Agent（阶段五）→ 加权计分
11. 输出评审汇总 → 等待用户确认（确认点#2）
12. 用户选择「交付」→ 格式终审 → 输出交付版
13. 用户选择「再改」→ **进入阶段五·B（v3.0新增）：评分项闭环补强PDCA-Act** → 诊断覆盖度 → 生成补强段落 → 修订模式注入成稿 → 输出补强闭环报告 → 等待用户确认（确认点#2.5）
14. 进入阶段七（修改迭代）→ 回到步骤10
15. **执行阶段八（v3.1新增）：PDF拼合与交付组装** → 生成插入清单JSON → DOCX转PDF → 按目录拼合 → 页码校验 → 等待用户确认（确认点#3）→ 输出 `投标文件_完整版.pdf`

