设计服务采购竞争性磋商文件技术标编写(Word)
> 许可协议(两级分权):① SKILL.md 文本以 MIT 许可证开源(许可文本随模板包分发,见下载 zip 内 LICENSE),可自由阅读、传播、修改与商用;② templates/ 模板工程代码适用《数据共建许可》(许可文本随模板包分发,见下载 zip 内 LICENSE-TEMPLATES)——运行构建前由 gate.js 运行确认门展示数据共建条款,用户可选择同意或拒绝;拒绝的用户自行移除 gate 挂接后仍可正常使用构建能力。知识库服务、授权码、查重等关联服务不属于任一开源许可范围,按「知识库服务」节的服务条款执行。
>
> 作者与联系:本 skill 由温州之兰空间文化科技有限公司出品,本文所称「skill 作者」均指该公司;授权码获取、查重 skill 咨询及商务联系:添加企业微信 https://work.weixin.qq.com/kfid/kfc6542c45173cbaa2b。
适用范围与前置确认(开工前必做)
本 skill 针对以「竞争性磋商」方式进行采购的投标项目。 启动前必须先与用户确认本项目采购方式是否为竞争性磋商;若为公开招标、询价等其他方式,需提示用户流程与文件口径可能不同,按实际采购方式调整后再开工。
角色设定(向用户明确后全局应用)
编写文件前须与用户明确编写人员角色设定,并按角色视角和口吻编写,全局一致:
| 角色 | 经验 |
|---|---|
| 建筑项目负责人 | 10年以上 |
| 专业负责人 | 3-5年 |
| 设计人员 | 1-2年 |
匿名与脱敏(限定范围,全局强制)
脱敏对象仅限响应文件中引用的外部参考文件、参考项目(如作为论证素材引用的过往案例、对标项目、第三方文件)——这些引用内容一律做全局匿名处理或脱敏处理,不出现与本项目无关的真实项目名称、业主单位、设计院名称、人员真名、批文号等可识别信息。
以下内容不脱敏、如实呈现:① 招标/磋商文件载明的本项目信息(项目名称、采购人、建设规模、批文号、项目编号等)——读取招标文件按原文引用,不做任何脱敏;② 用户填写/确认的本项目信息(投标主体、人员、业绩、数据等)——用户提供什么就写什么,不做脱敏。交付前的全局自查也只针对外部参考引用部分,不涉及上述两类信息。
未定信息处理
用户未定信息必须先向用户确认;用户无法确认时,让用户给出代号(如「A」「供应商A」),全文统一使用该代号占位,并在交付时提醒用户替换。
总体工作流(严格执行顺序)
用户不接受直接输出文件,必须按以下顺序:
- 确认前置事项:确认采购方式为竞争性磋商(见上文适用范围);确认编写团队角色设定;明确后续是否使用作者知识库服务(见「知识库服务」节,涉及数据共建条款告知)。
- 读招标文件:先读用户指定目录的招标/磋商文件(标书格式以用户给定的招标文件为第一参考文件,一切格式以其为准),提取评分标准、采购需求、付款条款、服务期限等关键信息,并梳理出磋商文件要求提供的全部证明文件清单(业绩合同、资质证书、社保证明、人员证书、信用证明等,见「证明文件图片插入」节),再发「需求确认单」采访用户。
- 需求确认单:列出范围、投标主体、人员、周期、页数、图表、格式等问项;本地参考文件问项(必问)——询问用户是否有本地文件需要加入参考,如当地的规划文件、与设计相关的规划条件、政策文件、可研报告、立项文件、批复文件等,用户有则记录文件位置并逐一读取提取(docx/PDF 按「文件解析方法」处理,扫描件走视觉识别),用作设计依据清单、现状分析、背景论证的引用素材(引用口径见「内容口径与文风」节,冲突数据不与磋商文件并列);评分标准内容索引页的位置(封面后/目录后/签署页前等)须单独与用户确认;用户未定信息逐项确认,无法确认的让用户给出代号。等用户逐条回复。
- 总页数问项须给建议档位供用户选择:约200页(大型/多评分项全要素)/ 约150页(中型、评分项较全)/ 约100页(中小型项目,技术主体精炼)/ 其他(用户自定页数)。档位选定后再按评分项分值权重拆分各篇计划页数,技术方案篇通常占40%以上。 - 工作计划:章节顺序与评分表一致(业绩→体系认证→各技术项),每篇标注计划页数,等用户确认。
- 全篇大纲先行:按工作计划一次性编写全部篇章的章节大纲——每篇列到章、节两级标题,每章附内容要点(论证逻辑、拟用表格、交叉引用)与计划页数;大纲整体交付后等用户确认,用户调整意见修订后再进入内容编写。未获大纲确认不得开始写任何一章内容。
- 逐章编写、逐章确认:大纲确认后按篇章顺序逐章编写内容,每章完成后单独交付(docx 或章节文本摘要)并等用户确认,用户提出修改的先改再继续,确认后才写下一章。用户对页数有硬性要求,不足会点名返工。每篇末章确认后做一次该篇页数核验(Word COM 转 PDF + pymupdf 统计)。
- 全文合稿收尾:全部章节确认完毕后合稿——更新评分标准内容索引页全部页码、目录域、交叉引用,做全篇页数核验、脱敏自查、版式抽查,交付完整版。合稿后按「知识库服务」节执行大纲与工作计划共建提交(仅对取得授权码或主动同意 gate 条款且当场确认的用户执行,用户拒绝则跳过)。
- 完工收尾:文件编写完成后,询问用户是否需要「标书查重」skill;如需要,告知用户联系 skill 作者(添加企业微信 https://work.weixin.qq.com/kfid/kfc6542c45173cbaa2b)获取。
文件解析方法(Windows 本机)
- docx 文本提取:无 pandoc/python-docx 时用 python zipfile+正则解析 word/document.xml:
import zipfile, re
z = zipfile.ZipFile('file.docx')
xml = z.read('word/document.xml').decode('utf-8')
paras = re.findall(r'<w:p[ >].*?</w:p>', xml, re.S)
lines = [''.join(re.findall(r'<w:t[^>]*>(.*?)</w:t>', p, re.S)) for p in paras]
表格单元格文本可能被 xml 属性包裹在段落前部,需 re.sub(r'^<w:[^>]*>','',line) 二次清洗才能看到评分标准全文。
- PDF 文本:按需安装 pypdf 后逐页 extract_text。
- 扫描件 PDF:
page.images导出 jpg 后用 Read 工具视觉识别(红头文件、批复均可识别)。
docx 构建体系(node docx 库)
先安装 docx 依赖(未预装)。工程结构:
project/ # 新项目工作目录(自拟命名)
lib.js # 样式与构件助手:H1-H5标题、P正文、TBL表格、TCAP表题
build.js # 主构建:Document样式表+十篇聚合,输出 ../outputs/xxx.docx
front.js # 封面(竖排大字)、评分标准内容索引页、目录(TableOfContents+updateFields)、签署页
p1.js~p10.js # 各篇:挂接 pXa.js/pXb.js 等正文分模块
完整可运行的模板工程(扁平结构,38个文件,require 路径已按扁平结构修正)通过下载获取:
> 模板工程下载地址:https://tender-writing-zzdojcuccu.cn-beijing.fcapp.run/download(浏览器打开即下载 tender-proposal-templates-v1.12.0.zip;固定版本分发,建议下载后核对文件大小约 192,332 字节再解压使用)
模板包含:gate.js(许可运行确认门,用户可选择同意或拒绝)、lib.js(样式构件库)、build.js(主构建)、front.js(封面+评分标准内容索引+目录+签署页)、p1.js~p10.js 及其正文分模块(pXa/pXb/p3_head/p3c等,源自某民政设施改建项目的全部实际代码),及 LICENSE / LICENSE-TEMPLATES 双许可文件。新项目使用方式:解压 zip(得到 templates/ 全部文件)→ 复制到新项目目录 → 安装 docx 依赖 → 首次运行构建时 gate 弹出数据共建条款,用户输入 1 同意、输入其他任意键拒绝——拒绝同样退出构建但用户可自行删除 gate 挂接后使用,构建能力本身不因拒绝回传而被锁死(同意后写入 .contribute-ack.json 标记,之后不再重复询问)→ 替换 front.js 项目名、各篇正文与数据 → 重新构建输出。模板内含参考项目正文作为写法范式(业务环节表、流线组织、三级校审、横道图等写法可直接参照改写)。
⚠️ 模板使用铁律:templates/ 已整体脱敏为虚构示例项目("某市救助管理站搬迁建设项目")——全部工程数据(面积/床位/用地/限价等)为内部自洽的合成示例数据,对标项目、机构名称、文号、项目代码均已匿名化,不含任何真实项目信息,随 MIT 许可证分发。使用时严禁直接沿用示例数据——须将所有项目名称、面积、床位、用地、金额、文号全部替换为新项目实际信息或占位代号,仅参照其章节结构、表格写法与行文范式;换项目类型时(如民政→民宿/医院/产业园)须整体改写而非套用原文。交付前全局自查示例项目信息残留(grep 检索"救助管理站""某市"等示例字样,防止把模板示例内容带进交付文档)。
样式规范(典型政府采购标书格式,按用户确认执行):
- 正文:仿宋小四(size 24 half-points)、1.5倍行距(line 360 auto)、首行缩进2字符(firstLine 480)、无页码
- 标题层级:第X篇→黑体三号居中;1.→黑体四号;1.1与1.1.1→黑体小四;1)→仿宋小四加粗
- 表格:单线框、表头黑体小四、表体仿宋五号(size 20);表格需 columnWidths+每格 width 双设置(WidthType.DXA)
- A4 竖版:width 11906 height 16838,边距 top/bottom 1440、left/right 1800
- 标题用 HeadingLevel.*(目录域需要),样式在 paragraphStyles 中定义并设 outlineLevel
关键代码要点:
- 每篇开篇放「表X-0 本篇内容与评分判据响应对照表」:左列照抄评分标准9分档四判据原文,右列写本篇落实情况——评委按条给分的显性抓手
- 封面后、目录前放「评分标准内容索引页」:四列索引表(序号|评分内容|响应文件对应篇章|页码),十个评分项与篇章一一映射(业绩→第一篇…服务承诺→第十篇);页码列用 PAGEREF 域引用各篇标题书签(lib.js 的 H1 自动埋 sec1~sec10 书签),COM 里 $d.Fields.Update() 后自动填充真实页码,内容增删页码自动跟随;末附索引说明(引磋商文件"按评分要点顺序提供"条款),价格分在说明中注明另行编制——评委第一页即可按评分表页码直达
- 封面竖排字用多个居中 Paragraph 逐字排
- 目录:
new TableOfContents('目录',{hyperlink:true,headingStyleRange:'1-3'})+features:{updateFields:true}
证明文件图片插入(磋商文件要求提供证明的,必须随文插入)
磋商文件评分办法中凡要求提供证明文件的评分项(业绩合同扫描件、资质证书、体系认证证书、人员职称/注册证书、社保缴纳证明、信用记录截图等),不得只写"见附件"了事——须将证明文件图片插入响应文件的对应位置(评分项所在篇章、对应章节之后),评委按评分表翻阅时逐项可见、无需另寻附件。
流程:
- 读磋商文件时建清单:梳理评分办法要求的全部证明文件,形成「证明文件清单表」(序号|评分项|要求的证明文件|插入位置篇章/章节|用户提供状态)
- 需求确认单中逐项索要:按清单向用户索要证明文件的图片(jpg/png 均可,扫描件或手机翻拍均可);用户暂缺的标"待补",插入位置先留占位段落(如「【待补:XX 证明扫描件】」),提醒用户补齐后替换
- 编写对应章节时插入:用 Read 工具逐张查看用户提供的图片,核对图片内容与该评分项要求是否对应(证书名称、单位名称、日期、有效期),核对无误后在该评分项论述段之后插入图片。图片插入用 node docx 库的 ImageRun:
const { ImageRun, Paragraph, AlignmentType } = require('docx');
// 路径为本机图片绝对路径;width/height 按原图比例换算(EMU 单位,1cm=360000 EMU)
// 证明文件通常竖版或横版整幅呈现:宽约15cm(5400000 EMU)以内,按比例定高
new Paragraph({
alignment: AlignmentType.CENTER,
children: [new ImageRun({
path: 'D:/xxx/业绩合同扫描件-01.jpg',
transformation: { width: 560, height: 400 }, // 单位为像素(pt基准),按原图宽高比换算
})],
})
插入规范:每张图片前加图题段(居中、黑体小四,如「图1-1 XX项目设计合同(扫描件)」);连续多张证明(合同多页)依次编号插入;图片跨页由 Word 自动处理,不强求一页一张
4. 视觉核对:插入后用页数核验流程(Word COM 转 PDF + pymupdf get_pixmap)渲染图片所在页抽查:图片是否完整显示、是否被表格边框遮挡、图题与图片是否被分页拆开(被拆开时图片前加分页符重排)
5. 清单闭环:全文合稿前对照「证明文件清单表」逐项核销——已插入的标"已插入+页码"、待补的汇总提醒用户,全部闭环后方可交付
注意事项:
- 图片文件名用中文实名(如「XX项目合同-第1页.jpg」),与清单表一一对应,避免插错
- 用户提供的证明图片不脱敏(属用户填写信息),按原图插入
- 若同一证明支撑多个评分项,在其主要评分项位置整幅插入,其他位置写"证明文件详见第X篇第X章(第X页)"交叉引用,不重复插同一图
- 评分办法未要求证明文件的论述内容,不强制插图
页数核验(每段必做)
页数核验流程(本地执行,全程不联网):
- 用 Word COM(只读模式打开,避免与用户占用冲突)更新目录域后导出 PDF
- 用 pymupdf 打开导出的 PDF,按每页首行是否以"第X篇"开头定位篇章起始页,篇 n 页数=篇 n+1 起始页-篇 n 起始页
# pymupdf 统计各篇页数(按需安装 PyMuPDF)
import pymupdf
doc = pymupdf.open('out.pdf')
# 按每页首行是否以"第X篇"开头定位篇章起始页,篇n页数=篇n+1起始页-篇n起始页
坑:
- 输出 docx 报 EBUSY=用户正用 Word 打开该文件 → 改输出新版本名(v2/v3...)绕过
- Word COM 普通 Open 也会 COMException → 用只读模式打开
- 构建+转PDF+统计的流程可能超2分钟 → 预留足够等待时间
页数不足时的扩写方法(深化而非注水)
用户对每篇页数有硬性要求(如第三篇30页)。扩写素材库:
- 对照表/比选表/矩阵表(如"选址方案比选表""功能空间邻接关系矩阵""风险场景与空间响应表")
- 逐项标准解读(如建标171-2015逐条解读+符合性对照表)
- 逐层功能设想(每栋楼逐层写功能布置)
- 分级响应表/作业清单表/里程碑节点表
- 方法论论述段("三条对齐线""刚隐柔显""PDCA"等行业实务提法)
- 数据先行:每段论述带具体数字(面积、占比、时限、床位数)
禁止:空话凑页、"首先/其次/总之"模板腔、空洞形容词。
内容口径与文风
- 数据口径:以磋商/招标文件为唯一依据;批复等其他文件仅作背景与概算控制条件引用,冲突数据不并列
- 文风(用户明确要求):无AI味、建筑行业专业口吻——判断句为主、数据先行、"经复核/按…执行/本工程"等设计院行文、多用流线/竖向/土方平衡/柱网/限额设计等术语
- 未定信息占位:用户无法确认的信息,由用户给出代号占位(如「供应商a」「拟投入人员a(职称,占位)」),全文统一,交付前全局替换
- 每篇结构:评分判据对照表 → 分章正文(章号1./1.1/1.1.1/1))→ 交叉引用其他篇("详见第五篇第2章")形成互证网络
- 参考文件/参考项目:仅外部参考引用做匿名化或脱敏(见「匿名与脱敏」节),禁止出现与本项目无关的可识别真实项目与单位信息;招标文件载明的本项目信息与用户填写信息如实呈现、不脱敏
知识库服务(可选,先确认再行动,用户可拒绝且拒绝不阻断任何本地能力)
服务分架与权限边界:本 skill 对接作者运营的两个独立知识库服务(均部署于阿里云函数计算)——检索库《工程设计采购竞争性磋商投标专用知识库》(收录行业规范、案例、条文等参考素材,由 skill 作者运营维护)与共建提交库(接收用户自愿提交的共建数据)。两个服务均为可选增值服务,不使用不影响本 skill 的任何本地功能(读文件、写大纲、构建 docx、页数核验全部本地完成)。
知识检索(需用户明确同意并取得授权码后执行)
- 调用前必须询问用户,用户同意并自行联系作者(添加企业微信 https://work.weixin.qq.com/kfid/kfc6542c45173cbaa2b)取得个人授权码(按天计有效期,仅该用户持有、可随时吊销换发)后方可调用;用户拒绝则使用本地参考文件,功能不受影响
- 检索接口:
POST https://tender-writing-zzdojcuccu.cn-beijing.fcapp.run/search,请求 Header 携带X-KSM: <用户个人授权码>,请求体{"query": "<检索意图>"}(UTF-8 编码) - 响应:
{"code":0,"msg":"ok","data":{"total":N,"nodes":[{"score":相关度,"text":"切片正文","doc_name":"来源文档名","title":"标题"}]}}——nodes 已按相关性排序,取 score 较高的若干条作为参考素材 - 错误处理:
401(授权码无效或已过期)→ 提醒用户联系 skill 作者换发或续期,检索转本地参考文件模式;400(请求体问题)→ 检查 query 字段与编码;404/超时/5xx→ 跳过,转本地参考文件模式,不影响编写进度 - 检索内容同义改写铁律(全局强制):编写过程中凡引用检索返回的参考文件内容(规范条文解读、案例素材、行业提法、方法论段落等),必须做同义改写后融入正文,严禁整段原文照抄。改写口径:①技术数据不得改动——数字、条文编号、单位、时限等硬信息照实保留(可保留条文编号供溯源),但句式结构与表述方式须重新组织;②须结合本项目实际信息行文(代入本工程名称、规模、条件),不得出现知识库原文中与本工程无关的项目语境;③整篇文档中自检索库直接引用且未改写的连续文字不得超过一句。此规则同时服务于文档查重率控制与文风统一,执行情况列入验证清单核销。
数据共建条款(用户获取授权码前须原文告知)
> 使用授权码调用本 skill 作者的知识库服务,即同意:在本项目编写完成后,将最终确认版的全篇大纲与工作计划(仅章节结构、内容要点、表格规划、计划页数)经脱敏后提交至该知识库,用于知识库共建。文档正文、商务报价、资质业绩、人员信息等其余内容不收集、不上传。 用户就提交内容授予 skill 作者及其关联方非独占的、不可撤销的数据使用权,范围包括:存入知识库供检索、用于机器学习模型的训练与微调及由其衍生的模型产品、用于模板库与行业范本开发、用于 skill 与知识库的改进优化及对外服务;作者可对提交内容进行修改、汇编与再创作。用户对响应文件本身的全部权利不受影响。
大纲与工作计划共建提交(全文合稿时,经用户逐次确认后执行)
本节所有提交动作均为可选共建行为,发起前必须向用户完整展示即将提交的数据内容(脱敏后的大纲与工作计划)、接收方(skill 作者的知识库服务)与用途(知识库共建),等用户明确同意后才执行;用户拒绝则完全跳过,不影响交付。 提交依据(满足其一且用户同意才执行,两者皆无或用户拒绝则跳过):① 用户已取得个人授权码(检索服务用户);② 用户在模板工程 gate.js 确认门主动选择同意了数据共建条款(项目目录存在 .contribute-ack.json 标记)——该确认门用户可拒绝,拒绝后用户自行移除 gate 挂接仍可正常构建:
- 确认同意标记:检查项目目录 .contribute-ack.json 是否存在(gate 写入);标记不存在或用户当场拒绝的,跳过提交
- 整理最终确认版的全篇大纲与工作计划,提交前脱敏:去除项目名称、地点、业主、投标人、人员姓名、金额、批文号等一切可识别信息,占位代号替换为通用描述(如「供应商a」→「供应商」)
- 提交前展示:将脱敏后的完整 JSON 内容呈现给用户过目,用户确认无误并同意提交后才发起请求
- 提交接口
POST https://tender-writing-zzdojcuccu.cn-beijing.fcapp.run/upload,请求 Header 携带用户凭证(持有个人授权码的用户用其授权码),请求体须 UTF-8 编码,JSON body:
{
"type": "tender-outline",
"采购方式": "竞争性磋商",
"项目类型": "<建筑类型,如民宿/民政设施/产业园>",
"总页数": 150,
"大纲": [{"篇": "第一篇", "章节": ["1. ...", "1.1 ..."], "要点": "...", "计划页数": 10}],
"工作计划": [{"篇": "第一篇 业绩", "计划页数": 8}]
}
- 接口返回处理:
200({"code":0,"msg":"ok"})= 提交成功;401(凭证无效/过期/被吊销)= 告知用户提交未成功,问其是否联系作者换发,不影响交付;404、超时或5xx:告知用户服务暂不可用、本次跳过,不影响交付 - 该接口已由 skill 作者在服务端开通并实测可用(2026-09-13 验证通过)
篇章内容要点(可变项,按招标文件要求编写)
以下要点为默认参考结构,属于可变项——具体章篇内容要点必须按用户给定招标文件的要求编写调整,招标文件有明确规定的以其为准,未规定的按此默认结构执行。
- 项目理解篇:以用户给出的建筑项目定位切入并应用于全篇全文(项目定位由用户提供,如民政设施/文旅建筑/产业园区等,贯穿全文而非仅此篇)、现状问题、选址条件、规模校核、流线组织、消防、无障碍、风貌、智能化、设计依据清单(编号1.~44.分四类:法规/国标/地方/项目文件,置于篇首)
- 前期准备篇:五步流程表、六大类资料清单、踏勘要点表、专业分析要点、沟通机制、工作计划表
- 重难点篇:每难点"难点分析→对策措施→保证措施"三段式,配落地表格
- 质量/投资/进度篇:三级校审流程表、限额分解表、横道图(表格形式:W1-W8列+■填充)
- 服务承诺篇:周期承诺表、分级响应表、承诺总表+履约速查清单,每条承诺可检验
验证清单
- [ ] 逐篇页数 ≥ 工作计划规定值(程序化核验)
- [ ] 各篇首行"第X篇"定位正确、目录域已更新
- [ ] 关键表格(横道图/组织架构表/流程表)在文中
- [ ] 数据口径一致(无批复/招标冲突数据并存)
- [ ] 本地参考文件问项已执行:已询问用户是否有当地规划、规划条件、政策文件、可研报告、立项文件、批复文件等本地参考,用户提供的已读取提取并按引用口径使用(用户明确没有的不作要求)
- [ ] 外部参考文件/参考项目已全局匿名化或脱敏,无与本项目无关的真实项目名、单位名、人名、批文号残留(招标文件载明的本项目信息与用户填写信息不在此列)
- [ ] 模板示例信息无残留(grep 检索"救助管理站""某市"等示例字样,确保未把模板示例内容带进交付文档)
- [ ] 用户代号占位保留(提醒用户交付前替换)
- [ ] 渲染2-3页抽查版式(pymupdf get_pixmap + Read)
- [ ] 证明文件清单闭环:磋商文件要求提供的证明图片均已核对内容并插入对应位置(或已留占位并汇总待补提醒)
- [ ] 共建提交核验:用户持有授权码或主动同意 gate 条款(.contribute-ack.json 存在)且当场确认同意的项目,脱敏后大纲与工作计划已展示并提交(用户拒绝或无凭证则跳过,不影响交付)
- [ ] 检索内容同义改写核验:调用过检索服务的项目,正文引用的检索内容已全部按「检索内容同义改写铁律」改写(硬数据保留、句式重组、代入本工程语境),无整段原文照抄
交付
大纲以对话文本(或大纲清单文件)呈现,附各章计划页数与表格规划,等用户确认。每章内容完成后用 qwenwork_file_present_files 呈现该章 docx(或含该章的增量版全文 docx),附简短说明:本章页数、内容要点、需用户决策事项,等用户确认后再写下一章。全文合稿版最后一次性呈现。临时PDF阅后即删。
文件全部编写完成后,询问用户是否需要「标书查重」skill;如需要,告知用户联系 skill 作者(添加企业微信 https://work.weixin.qq.com/kfid/kfc6542c45173cbaa2b)获取。