投标技术方案编写。当用户输入"投标方案##"或"写投标方案"时触发。提供结构化协作式投标方案编写流程:需求分析→大纲推荐→逐章生成→Word输出。适用于安全服务、产品交付、等保测评、综合安全等投标场景。
---
name: bid-proposal
description: 投标技术方案编写。当用户输入"投标方案##"或"写投标方案"时触发。提供结构化协作式投标方案编写流程:需求分析→大纲推荐→逐章生成→Word输出。适用于安全服务、产品交付、等保测评、综合安全等投标场景。
---
# 投标技术方案编写
## 概述
本 Skill 提供一套结构化、分阶段协作的投标技术方案编写流程。用户上传招标文件技术需求(Word 或文本),AI 自动分析项目类型、提取评分标准、推荐章节大纲,经用户确认后逐章生成内容,最终输出 Word 文档。
核心能力:
- **智能场景识别**:根据招标需求自动判断项目类型(安全服务/产品交付/等保/综合)
- **评分项驱动**:章节大纲与评分标准对应,确保方案覆盖所有得分点
- **素材库辅助**:支持导入公司技术能力、历史方案等素材,提升生成质量
- **状态持久化**:支持中断后恢复,在任意阶段保存进度
## 触发词
- **新建方案**:`投标方案##`、`写投标方案`、`投标方案 <项目名>`
- **文件触发**:用户通过飞书聊天框直接发送 .docx 文件(招标技术需求)时自动触发
- **继续编写**:`继续投标方案`
- **素材管理**:`投标素材导入`
## 前提条件
- Python 环境:`pip3 install python-docx`
- 素材库(可选):`material-lib/` 目录下可预先导入公司能力描述和过往方案范例
---
## 会话管理(保存 & 恢复)
### 保存并退出
用户在任意阶段说 `保存并退出`、`暂停` 时:
1. AI 将当前全部进度保存为 JSON 状态文件到 `bids/<项目简称>.json`
2. 状态文件包含:项目信息、当前步骤、章节列表及各章状态、所有已确认内容、时间戳
3. 保存成功后告知用户:可后续用「继续投标方案」恢复
### 继续编写
用户输入 `继续投标方案` 时:
1. AI 扫描 `bids/` 目录下所有 .json 状态文件
2. 如果**只有 1 个**已保存方案:直接加载并恢复
3. 如果**有多个**已保存方案:列出所有方案(项目名、进度、最后更新时间),请用户选择一个
4. 如果**没有**已保存方案:提示用户无已保存方案,询问是否新建
5. 加载后告知用户当前进度(已完成哪些步骤、当前处于哪个步骤),继续执行
### 状态文件格式
```json
{
"project_name": "XX集团XX项目",
"project_type": "安全服务类",
"current_step": 3,
"steps": {
"1": { "status": "completed", "result": { "project_type": "...", "scoring_items": [...], "tech_domains": [...] } },
"2": { "status": "confirmed", "result": { "chapters": [...] } },
"3": { "status": "in_progress", "current_chapter": 2, "chapters": [ { "id": "...", "status": "pending|generated|confirmed", "content": "..." } ] }
},
"created_at": "ISO 8601",
"updated_at": "ISO 8601"
}
```
---
## 工作流程
### 输入方式
用户通过**飞书聊天框直接发送 Word 文档**(.docx),将招标文件的技术需求整理后发送给 AI。
⚠️ 用户需先将招标文件中的技术需求、评分标准等内容整理到一个 Word 中再发送,不要直接发送完整标书(正文过长不利于分析)。
### Step 1:分析需求文档
**目标**:解析招标文件,提取关键信息。
**执行**:
1. 读取用户提供的招标需求(通过 `scripts/analyze_requirements.py` 或 AI 直接分析)
2. 识别项目类型(安全服务 / 产品交付 / 等保 / 综合)
3. 提取评分标准(评分项名称、分值、要求)
4. 提取技术关键词和内容域
**匹配场景**:
- 根据 `references/scene-mapping.json` 的场景关键词匹配项目类型
- 如果无法自动匹配,列出所有场景让用户手选
**输出示例**:
```
📊 需求分析结果 — QG2025年年度安全服务项目
项目类型:安全服务类
识别关键词:渗透测试、重保、应急响应、安全运营
评分标准提取:
| 评分项 | 分值 | 要求 |
|--------|------|------|
| 项目理解 | 5分 | 对项目背景和目标的理解深度 |
| 需求分析 | 10分 | 对安全需求的准确识别 |
| 服务方案 | 25分 | 服务内容完整性和专业性 |
| 实施计划 | 10分 | 实施步骤和人员配置合理性 |
| 服务承诺 | 5分 | SLA和服务保障措施 |
```
### Step 2:推荐章节大纲
**目标**:基于场景配置 + 实际评分项,推荐最合适的章节结构。
**执行**:
1. 加载 `references/scene-mapping.json` 获取默认章节
2. 根据提取的评分项补充/调整章节
3. 为每章标注对应的评分项
4. 区分必选章节(✅)和可选章节(⚪)
**输出示例**:
```
📋 推荐方案大纲 — QG2025年年度安全服务项目
类型:安全服务类
必选章节:
✅ 1. 项目背景与目标 (对应评分项:项目理解,5分)
✅ 2. 需求分析 (对应评分项:需求分析,10分)
✅ 3. 服务方案 (对应评分项:服务方案,25分)
✅ 4. 实施方案 (对应评分项:实施计划,10分)
可选章节:
⚪ 5. 服务保障与SLA (对应评分项:服务承诺,5分)
请确认或调整:
• 添加章节:`+ 章节名`
• 删除章节:`- 章节名`
• 调整顺序:`X和Y调换`
• ✅ 确认 → 开始逐章编写
```
### Step 3:用户确认/调整大纲
用户通过简洁指令调整大纲:
- `+ 培训方案` → 在末尾添加"培训方案"章节
- `- 服务保障与SLA` → 删除该章节
- `3和4调换` → 交换第3章和第4章顺序
- `确认` / `开始编写` → 进入逐章生成
### Step 4:逐章生成内容
**执行**:
1. 对每个章节按顺序生成内容
2. 使用 `scripts/prompt_builder.py` 构建每章写作 prompt:
- 章节名称和类型
- 对应评分项的详细要求
- 招标需求上下文
- 素材库中相关章节(如有)
3. AI 生成章节内容(Markdown 格式)
4. 用户审阅后确认、修改或跳过
**交互格式**:
```
📝 正在生成:3. 服务方案(对应评分项:服务方案,25分)
[生成的 Markdown 内容]
---
✏️ 修改 / ✅ 确认 / ⏭ 跳过
```
**用户修改指令**:
- `确认` / `继续` → 保存内容,进入下一章
- `跳过` → 保留空白,进入下一章
- 直接输入修改后的文本 → 替换当前章节内容
- `重新生成` → AI 重新生成当前章节
### Step 5:生成 Word 文档
**执行前先询问**:
```
📄 是否需要使用 Word 模板?
A. 使用模板 → 请发送模板 .docx 文件
B. 不使用模板 → 使用内置默认模板(同简要方案的模板)
```
**执行**:
1. 收集所有已确认的章节内容
2. 调用 `scripts/generate_docx.py`:
- 如果用户提供了模板 .docx,基于用户模板生成
- 如果用户选择不使用模板,基于 `references/default-template.docx` 生成(复用 brief-proposal 的模板格式)
- 按章节顺序写入内容
- 保留自动目录(SDT)
3. 输出为新的 .docx 文件
4. **通过飞书聊天框直接发送 Word 文档给用户**
5. 提示用户:打开文档后右键目录区域,选择"更新域"以刷新目录
6. 清理临时 Markdown 中间文件
**样式规范**(复用 brief-proposal 标准):
- Normal:10.5pt(五号)
- Heading 1:16pt(三号),加粗
- Heading 2:15pt(小三号),加粗
- Heading 3:14pt(四号),加粗
- 分页符放在章节标题之前的空白段落上
---
## 场景选择
根据招标需求关键词自动匹配,四种场景覆盖主流投标类型:
| 场景 | 典型关键词 | 推荐章节数 |
|------|-----------|-----------|
| 安全服务类 | 渗透测试、重保、应急响应、安全运营、MSS | 5-6 章 |
| 产品交付类 | 分类分级、脱敏、DLP、防火墙、WAF、堡垒机 | 6-7 章 |
| 等保测评类 | 等保、等级保护、测评、备案、整改 | 5-6 章 |
| 综合类 | 安全建设、整体安全、安全体系 | 7-8 章 |
详见 `references/scene-mapping.json`。
---
## 素材库
素材库位于 `material-lib/`,结构如下:
```
material-lib/
├── README.md # 使用说明
├── company-capabilities.md # 公司技术能力描述(技术栈、方法论、服务全景)
├── past-projects/ # 历史项目方案节选
│ └── 2025-XX-项目方案.md
└── chapter-examples/ # 章节写作范例
├── 需求分析范例.md
├── 服务方案范例.md
└── 技术方案范例.md
```
### 导入素材
用户说 `投标素材导入 <文件路径>` 时:
1. 读取指定文件
2. 分析内容类型(公司能力 / 历史方案 / 章节范例)
3. 存入对应的 `material-lib/` 子目录
4. 确认导入成功
### 素材使用
AI 生成章节时:
1. 在素材库中搜索与当前章节类型匹配的范例
2. 提取公司能力描述中相关部分
3. 将素材融入写作 prompt 中作为参考
---
## 与 brief-proposal 的关系
| 维度 | brief-proposal | bid-proposal |
|------|---------------|--------------|
| 输入 | 用户口头描述背景 | 招标需求 Word/文本 |
| 框架 | 固定 7 阶段 | AI 动态推导 |
| 内容风格 | 政府公文 | 投标技术方案 |
| 素材库 | 无 | 支持素材库 |
| 评分驱动 | 无 | 评分项驱动章节 |
| 场景匹配 | 无 | 4 种场景自动匹配 |
复用的能力:
- python-docx 脚本技术
- Word 样式规范(字号、分页符、SDT 目录)
- 会话状态保存/恢复机制
- 飞书文档交互能力
---
## 交互节奏
1. **信息先行**:优先基于招标需求信息推断,确实无法判断的才提问
2. **草稿制**:每章生成后提交草稿,用户一次性审核
3. **进度可见**:每次交互告知用户当前进度(如"第3/6章")
4. **可回溯**:允许用户在任何章节要求修改前面已确认的内容
5. **批处理**:同一阶段的多个问题合并为一条消息
## 语言风格要点
### 投标技术方案风格
- 正式、专业、客观,避免口语化
- 使用行业术语:等保、重保、渗透测试、安全运营、态势感知、零信任、纵深防御
- 突出技术优势和方案亮点
- 对标评分标准,确保每章内容满足评分要求
- 量化能力:人员数量、服务年限、响应时间等
- 避免"或许""可能""大概"等不确定表述
- 不用"我们""你们",使用客观表述
---
## 脚本说明
| 脚本 | 功能 | 调用方式 |
|------|------|---------|
| `scripts/analyze_requirements.py` | 分析招标需求文本,提取项目类型、评分项、关键词 | `python3 scripts/analyze_requirements.py <输入> [--format json\|text]` |
| `scripts/prompt_builder.py` | 根据章节+需求+素材构建写作 prompt | `python3 scripts/prompt_builder.py <chapter_config_json> <analysis_json>` |
| `scripts/generate_docx.py` | 基于模板生成最终 Word 文档 | `python3 scripts/generate_docx.py <template> <chapters_json> <output>` |
don't have the plugin yet? install it then click "run inline in claude" again.