noah-word-format
SKILL_422927273 · vv1.0 · 通用工具 · Owner:— · 发布于 2026-08-11
调用 184
下载 0
点赞 0
浏览 0
- 简介
- 基于诺亚官方品牌母版,自动化生成与编辑符合排版规范的Word文档。
- 触发词
- 诺亚文档,诺亚格式,公司模板,品牌报告,文档生成
- 分发渠道
- ARK Engine
- 功能测试
- ✅ 通过 · 业务评审:✅ 通过
- 技能包文件
- noah-word-format/NOAH-Word-format.docx、noah-word-format/SKILL.md、noah-word-format/assets/image1.png、noah-word-format/assets/image2.png、noah-word-format/scripts/__pycache__/create_noah_docx.cpython-311.pyc、noah-word-format/scripts/create_noah_docx.py、noah-word-format/scripts/inject_noah_hf.py
使用示例:请基于诺亚官方模板,生成一份包含业务进展的内部汇报文档。
SKILL.md 全文
Frontmatter
| name | noah-word-format |
|---|---|
| description | Create and edit Noah Holdings branded Word documents. Use whenever the user mentions 诺亚、Noah Holdings、诺亚格式、公司模板,or requests a Noah report, memo, letter, meeting note, client document, or other .docx. For new documents, clone the bundled NOAH-Word-format.docx template and generate only the body with python-docx; never expose or hand-edit full OOXML. Preserve the template's headers, footers, logos, page geometry, colors, addresses, and relationships. |
诺亚 Word 文档生成
将本 Skill 与通用docx Skill 配合使用。通用 Skill 负责 DOCX 技术与渲染验证;本 Skill 是诺亚品牌规范和母版工作流的唯一来源。
默认路径:母版克隆
新建诺亚文档时必须使用: 1. 以本 Skill 根目录下的NOAH-Word-format.docx 为母版。
2. 用 scripts/create_noah_docx.py 清空并重建正文。
3. 让模型生成结构化 JSON 内容,不读取、不打印、不手工编辑完整 XML。
4. 渲染输出 DOCX 为 PNG,逐页检查页眉、页脚、分页、表格和字体。
禁止为新文档使用 unpack → 模型编辑 document.xml → repack。DOCX 是 ZIP/OOXML 并不是问题;把展开后的 XML 放入模型上下文才是超时风险。
快速命令
所有路径都相对 Skill 或当前工作区解析,不使用/root/.claude、/mnt/user-data 等硬编码环境路径。
python -m json.tool content.json >/dev/null python scripts/create_noah_docx.py content.json output.docx可显式指定另一份经过确认的诺亚母版:
python scripts/create_noah_docx.py content.json output.docx --template template.docxJSON 示例:
{
"title": "2026年上半年业务回顾",
"subtitle": "内部报告",
"blocks": [
{"type": "heading", "level": 1, "text": "一、项目背景"},
{"type": "paragraph", "text": "正文内容。"},
{"type": "bullets", "items": ["事项一", "事项二"]},
{
"type": "table",
"headers": ["指标", "本期", "状态"],
"rows": [["客户服务响应", "98%", "达标"]],
"widths": [3.2, 1.5, 1.5]
}
]
}
支持 heading、paragraph、bullets、table、page_break。需要更复杂版式时,可导入脚本中的辅助函数编写工作区 builder,但仍以母版为基础并保持模型不接触完整 XML。
正文是数据,不是代码。不得把正文嵌入 JavaScript、Python 或 shell 字符串。中文弯引号原样保留;JSON 内的 ASCII 双引号按标准写成 \"。若 JSON 解析失败,只修内容文件并保留生成器;同类错误最多重试两次,禁止为了一个引号重写整个脚本。
分批写入规则(硬性)
基础设施会在单次流式响应连续生成约 4.5 分钟(约 6千–1万 输出 token)后掐断连接;一次响应吐出整份长文档是 run 失败的头号原因。长文档(如整本白皮书)禁止一次性生成content.json,按以下方式分批:
1. 先 Write tmp/content-head.json(仅 title/subtitle 等元信息,blocks 留空数组)。
2. 每个章节独立 Write 一个 tmp/content-part-NN.json(一个 blocks 数组片段,单文件 ≤150 行 / 约 6KB),一批一个响应,含大段内容的响应里不并行其他工具。
3. 全部片段写完后,用一个小脚本合并(inline python 被策略禁止,脚本落盘执行):
# tmp/merge_content.py
import json, glob
doc = json.load(open("tmp/content-head.json"))
for p in sorted(glob.glob("tmp/content-part-*.json")):
doc["blocks"].extend(json.load(open(p)))
json.dump(doc, open("content.json", "w"), ensure_ascii=False, indent=2)
4. python -m json.tool content.json >/dev/null 校验后再进入 create_noah_docx.py。
5. 修错只改对应片段文件并重新合并,禁止整份重写。
固定品牌区域
必须完整保留母版中的:- A4 页面、页边距和分节属性
- 页眉、页脚及其关系文件
- Noah Logo、橙色装饰线
- 品牌声明、地址、电话、版权和页码字段
- 母版已有的 styles、numbering、theme、fontTable
正文样式
- 正文:Microsoft YaHei,12 pt,黑色,1.5 倍行距,两端对齐。
- 一级标题:Microsoft YaHei,15 pt,粗体。
- 二级标题:Microsoft YaHei,14 pt,粗体。
- 文档主标题:Microsoft YaHei,20 pt,粗体,诺亚橙
#FF6A00,居中。 - 副标题:Microsoft YaHei,11 pt,暖灰
#9A8A7A,居中。 - 表头:诺亚橙背景、白色粗体;正文行保持清晰边框和垂直居中。
- 列表:显式设置悬挂缩进;不要依赖母版中不存在的
List Bullet样式。
编辑已有诺亚文档
优先使用python-docx 做局部正文修改,并保留现有分节、页眉页脚和关系。
存在两处及以上普通文本或占位符替换时,先生成完整映射,再调用通用 docx Skill 的 scripts/apply_text_manifest.py 一次性应用并校验匹配数量。匹配数量异常时修正映射后整批重跑,不得退回逐段、逐字段编辑。跨多种 run 样式、文本框、域、内容控件或修订记录的修改不走该脚本,改用确定性 OOXML 辅助脚本。
仅当 python-docx 无法表达目标结构时,才允许由确定性脚本做局部 OOXML 修补。此时:
- 只处理目标节点,不把完整 XML 输出给模型。
- 不使用正则删除全部
sectPr。 - 不覆盖 header、footer、media 或其 relationships。
- 修改后重新打包、验证并渲染。
兼容兜底
scripts/inject_noah_hf.py 仅用于接收第三方纯正文 DOCX、且无法从母版重新生成时注入品牌页眉页脚。它不是新建诺亚文档的默认路径。
交付门槛
交付前必须: 1. 验证 DOCX ZIP 完整性。 2. 用通用docx Skill 的渲染器生成所有页面 PNG。
3. 逐页检查 Logo、装饰线、地址、页码、中文字体、分页、表格边框和文本截断。
4. 若 LibreOffice 超时,终止进程并报告失败;不得把超时当作成功。