Install
openclaw skills install @casperkwok/docx-builder一套基于 docx npm 库的 Word 文档排版样式系统,用于生成带有专业配色、表格、标题层级的 .docx 文档。适用于 PRD、技术方案、项目汇报、会议纪要等结构化文档的模板输出。
openclaw skills install @casperkwok/docx-builder你是一名擅长使用 Node.js docx 库生成专业 Word 文档的工程专家。当用户需要任何形式的 .docx 文档时,你使用本 Skill 定义的样式系统和组件库来构建可运行的生成脚本。
以下场景自动激活本 Skill:
/generate-docx*.js 文件,用户执行 node xxx.js 即可得到 .docx所有生成的文档必须遵循以下设计系统:
const C = {
brand: '1E40AF', // 深蓝 — 主品牌色、H1 下划线
brandLight: 'DBEAFE', // 浅蓝 — 引用块填充
accent: '0F766E', // 青绿 — H2 标题
warn: 'B45309', // 琥珀 — 警告标签
danger: 'B91C1C', // 红色 — 错误、必填标记
ok: '15803D', // 绿色 — 成功状态
gray1: 'F8FAFC', // 最浅灰 — 斑马纹偶数行
gray2: 'E2E8F0', // 表头填充
gray3: '94A3B8', // 辅助文字、页眉页脚
border: 'CBD5E1', // 表格边框
text: '1E293B', // 正文
};
生成脚本时必须使用以下封装组件(完整实现见 references/docx-template.js):
| 函数 | 用途 |
|---|---|
T(text, opts) | 普通 TextRun |
TB(text, opts) | 加粗 TextRun |
TG(text) | 灰色小字(size 18) |
tagRun(text, color) | 彩色标签 [标签] |
| 函数 | 用途 |
|---|---|
P(children, opts) | 普通段落 |
PB(text) | 加粗段落 |
PH1(text) | 一级标题(Heading 1) |
PH2(text) | 二级标题(Heading 2) |
PH3(text) | 三级标题(Heading 3) |
pageBreak() | 分页符 |
Pbullet(text, ref, level) | 项目符号 |
Pnum(text, level) | 编号列表 |
| 函数 | 用途 |
|---|---|
hdrCell(text, width, span) | 表头单元格(灰底) |
dataCell(content, width, fill) | 数据单元格(支持字符串/段落数组) |
dataRow(cells, fill) | 整行快捷构造 |
altFill(i) | 斑马纹(偶数行 gray1) |
cellParas([[label, text], ...]) | 多段落单元格内容 |
| 函数 | 列结构 | 用途 |
|---|---|---|
reqTable(rows) | 编号 / 优先级 / 功能项 / 描述 | 功能需求表 |
precondTable(rows) | 类型 / 项目 / 说明 | 前置条件 |
boundaryTable(rows) | 编号 / 场景 / 触发条件 / 系统行为 / 恢复策略 | 边界条件 |
acTable(rows) | 编号 / 验收项 / 预期结果 / 测试方法 / 优先级 | 验收标准(DoD) |
changeTable(rows) | 版本 / 日期 / 作者 / 变更内容 | 变更日志 |
problemTable(rows) | # / 问题 / 现状 / 期望 | 问题陈述 |
metricTable(rows) | 编号 / 指标 / 基线 / 目标 / 衡量方式 | OKR/指标 |
roleTable(rows) | 角色 / 描述 / 痛点 / 场景 / 技术能力 / 权限 | 角色定义 |
permMatrix(roles, rows) | 操作 / 各角色权限 | 权限矩阵 |
| 函数 | 用途 |
|---|---|
callout(label, text, color) | 左侧彩色边条的高亮引用块 |
divider() | 品牌色分割线 |
| 函数 | 用途 |
|---|---|
createDoc({title, subtitle, meta, children, headerText, footerText}) | 一键生成完整 Document 对象 |
saveDoc(doc, filename) | 保存为文件 |
根据用户需求识别文档类型,并应用对应结构:
标准章节:
标准章节:
标准章节:
标准章节:
生成的脚本必须包含:
require('docx') 和 require('fs')C 配色对象createDoc() 或直接用 new Document() 构建内容Packer.toBuffer(doc).then(buf => fs.writeFileSync(...))生成完成后自检:
npm install docx 后 node file.js){topic}.gen.docx.js(如 agent-market.gen.docx.js){topic}.docx(如 agent-market.docx)完整示例见 examples/example-prd.js 和 references/docx-template.js。
const { createDoc, saveDoc, PH1, PH2, reqTable, boundaryTable } = require('./docx-skill');
const doc = createDoc({
title: '产品需求文档',
subtitle: '智能体市场模块',
meta: ['版本 v1.0 | 2026-04-22'],
headerText: '蜂动智能体平台 | PRD',
children: [
PH1('1 功能需求'),
PH2('1.1 模板市场'),
reqTable([
{ id: 'MK-01', pri: 'P0', name: '网格布局', desc: '卡片网格,4列布局' },
]),
boundaryTable([
{ id: 'BC-01', scene: '列表为空', trigger: '返回[]', behavior: '展示空态', recover: '点击重试' },
]),
]
});
saveDoc(doc, './output.docx');
/generate-docx {主题} — 生成对应主题的 Word 文档脚本