撰写中国发明专利申请文档(.docx):有模板时严格套用模板版式(页眉页脚、分节、字体字号、缩进、 行距、分页、附图编排),无模板时按 CNIPA 标准版式生成——但**只借格式、绝不抄模板的技术内容**, 内容/配图全部据待保护的技术方案重新生成。覆盖 说明书摘要 / 权利要求书 / 说明书(技术领域·背景技术· 发明内容·有益效果·附图说明·具体实施方式/实施例)/ 说明书附图,并生成白底黑线配图(数量与类型按内容定)。 Use this skill whenever the user asks to write / draft / 写 / 起草 a patent, 专利, 发明专利, 专利交底书, 权利要求书, 说明书, or to turn a system / feature / algorithm into a patent application "套用模板"/ "参照模板格式" —— even if they only say "把这个项目写成一篇专利" or hand you a template .docx and a codebase. Also trigg...
Scanned 8/30/2026
Install to Claude Code
npx -y skills add fnjialun/cnipa-patent-writer --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of cnipa-patent-writer?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/fnjialun-cnipa-patent-writer)More formats (shields.io, HTML) on the badges page.
---
name: cnipa-patent-writer
description: >-
撰写中国发明专利申请文档(.docx):有模板时严格套用模板版式(页眉页脚、分节、字体字号、缩进、
行距、分页、附图编排),无模板时按 CNIPA 标准版式生成——但**只借格式、绝不抄模板的技术内容**,
内容/配图全部据待保护的技术方案重新生成。覆盖 说明书摘要 / 权利要求书 / 说明书(技术领域·背景技术·
发明内容·有益效果·附图说明·具体实施方式/实施例)/ 说明书附图,并生成白底黑线配图(数量与类型按内容定)。
Use this skill whenever the user asks to write / draft / 写 / 起草 a patent, 专利, 发明专利, 专利交底书,
权利要求书, 说明书, or to turn a system / feature / algorithm into a patent application "套用模板"/
"参照模板格式" —— even if they only say "把这个项目写成一篇专利" or hand you a template .docx and a
codebase. Also triggers for editing an existing patent .docx to match a template's format, regenerating
patent figures, or fixing patent layout/页眉/页脚页码/分节 issues.
---
# 中国发明专利撰写(套用模板格式 / 无模板按 CNIPA 标准)
帮助撰写一篇**新的**发明专利申请文档(`.docx`):套用页眉/页脚、分节、字体字号、缩进行距、分页与附图编排
等**版式**,但**内容据待保护的技术方案重新写**——模板只提供格式与行文风格,**其技术内容一律不抄**。
## 何时用 / 输入
- 有模板:用户给一份模板专利 `.docx`(作格式参照)+ 一个要写成专利的"技术方案/系统/项目"(代码库、设计
文档或口头描述)。→ 用克隆装配器 `build_patent.py`,版式 100% 继承模板。
- 无模板:用户只给技术方案。→ 用兜底装配器 `build_patent_cnipa.py`,按 CNIPA 标准版式生成。
- 目标产物:一篇排版规范的 `.docx`(含配图),可直接提交/继续打磨。
## 依赖(缺则先装;装包注意 proxy)
- 必装:`python-docx`、`matplotlib`、`Pillow`(`pip install python-docx matplotlib Pillow`)。
- 可选:`graphviz`(用 `gen_figures_graphviz.py` 画复杂流程/架构图时)——除 `pip install graphviz`(python 封装)
外**还需系统二进制 `dot`**:`sudo apt-get install -y graphviz`,否则渲染报错。不画 graphviz 图则无需安装。
- **CJK 字体**:matplotlib/graphviz 画中文必须有中文字体(如 Noto Sans CJK / 宋体),否则中文渲染成豆腐块。
- **可视化校验工具**(强烈建议):`libreoffice-writer`(提供 `soffice`,docx→pdf)+ `poppler-utils`
(提供 `pdftoppm`,pdf→png)+ 中文字体(如 `fonts-noto-cjk`,或把 Windows 宋体/黑体拷进 `~/.fonts` 后
`fc-cache -f`)。这些一般需 `sudo apt-get install`;无 sudo 时请用户手动装。
## 核心原则(先读这几条,避免返工)
1. **只借格式、绝不抄技术内容(最重要的红线)**:模板**只**提供版式、行文风格、分节/页眉页脚/分页等通用
架构;它的**技术方案、技术架构、层级划分、模块名、步骤编排、配图的数量与种类**(哪怕看着很"通用")一律
**不得搬进新专利**——因为换一个用户就是另一套技术,照搬既写错又涉抄袭。**一切文本与配图都据用户提供的
材料/项目代码实际生成**;模板里出现的具体技术(某种特定级联结构、某种模型分工、某些字段/JSON 示例等)只
能当"格式长什么样"的参照,不能当内容来源。动笔与画图前先自问:这句话/这张图是不是来自用户的真实方案?
2. **结构校验 ≠ 视觉校验(最容易栽的坑)**:python-docx 查到"样式名/字号全对",用户在 Word/WPS 打开仍可能
错(页眉错、图越界、中文豆腐块、标题当正文)。**完稿必须渲染成页面逐页看**(见下"第7步")。这是本技能
反复返工后总结出的第一教训。
3. **权利要求一律宽泛,真实参数/产品名只进实施例**:claims 用上位概念(如"预设阈值""通信通道""存储模块"),
具体数值/角度/距离/倍率/型号/接口/消息通道(你这篇方案里的真实值)只在"实施例"里以"例如/优选"出现。
4. **正文 solo 写、术语锁定**:claim N ↔ 发明内容里对应的"进一步地" ↔ 实施例里的实现,三处**用词必须一致**。
先定一份术语表再写,全篇复用;不要并行分写正文(会术语漂移)。
5. **创新点放进权利要求1**:把最硬的发明点(解决的关键技术问题)写进独立权利要求1,不要藏在从属里。
## 工作流
### 1. 学习格式基准(务必先做)
读 `references/docx-format.md`(克隆复刻法)与 `references/cnipa-format-spec.md`(CNIPA 精确版式)。然后:
- **有模板**:跑 `python scripts/inspect_template.py 模板.docx` 一次扒出全部版式——分节数与分节符、各节页眉
文字、页脚是否有 PAGE 域页码及起始页、页面尺寸/页边距、各类段落(标题/正文/权项/发明名称/实施例子标题/
图号)的字体字号对齐缩进段距、正文段长分布。**逐项对齐**(尤其确认 **4 节 4 页眉**:说明书摘要 / 权利要求书
/ 说明书 / 说明书附图,以及**附图节页码怎么处理**)。这一步决定 `build_patent.py` 能否 1:1 复刻。
- **无模板**:直接采用 `cnipa-format-spec.md` 的标准参数(已内置进 `build_patent_cnipa.py`),跳到写作。
- 注意:`inspect_template.py` 只读模板的**版式**,**不读取也不复制模板的技术内容**。
### 2. 与用户确认关键决策(动笔前)
用 AskUserQuestion 之类把这几项敲定(拿不准就问,别猜):
- **发明名称**(标题):要凝练、含核心创新词。
- **独立权利要求1 的落点**:端到端方法?某个最硬核的子方法?还是系统?
- **技术细节颗粒度**:实施例写真实参数/产品名,还是脱敏。
- **输出**:是否生成 .docx + 是否生成配图。
若技术方案与已有模板是"同一发明家族/不同发明",也确认定位。
### 3.(若来自真实系统)取真实事实供实施例
若专利写的是一个真实代码库/系统:先把要写进实施例的**真实参数、schema、接口、模型名**连同 `file:line`
扒出来(可并行起多个只读 agent 各扒一个子系统)。权利要求保持宽泛,但实施例要"像真实交底书"。
### 4. 锁术语 + solo 写正文
读 `references/writing-style.md`(中国专利行文手法 + 各部分范式与例句 + 功能/模式抽象 + 反面清单)。定术语表,
然后**一气呵成写全篇**:摘要 → 权利要求书(独立1 + 从属 + 系统 + 多引)→ 说明书(技术领域/背景技术/发明内容/
有益效果/附图说明/具体实施方式)。**实施例的数量与类型按本方案定**(常见方法/系统/示例,但不强制三个或固定
顺序)。写完自查:每条从属是否引用父项、每个权利要求要素是否在实施例有支撑、术语是否全篇一致。
### 5. 生成配图(数量与类型按内容定,不照搬模板图)
读 `references/figures.md`(**含六条硬规则 + 强制自查清单,画图前必读**)。**先想清楚这篇发明需要哪些图**——
画几张、哪些类型由技术方案决定,**不是每篇都要 5 张、也不一定有架构图或 JSON 图**;模板的图只参考画风与排版。
- **流程图/模块架构图优先直接调用** `make_figures.py` 的 `vflow` / `vmodules`:它们**框随文字自适应不溢出、单列
竖排、纯黑粗线、画布贴近页宽字够大、回流/分组标签横排带白底不压线**,把最容易翻车的几条规则内置好了——
**别手搓固定尺寸的盒子**(手搓最常见的就是文字溢出、字太小、压线)。曲线类图(谱/特性曲线)自己用 matplotlib
画时同样守六规则(粗黑线、标注用引线引到留白处加白底、语义正确)。复杂自动布局可用 `gen_figures_graphviz.py`。
- **每画完一张必须单独 `Read` 这张 PNG,逐条核对六规则**(纯黑/不溢出/单列字大/不压线/线与字都完整/图文匹配),
不合格就改了重画再嵌入。这一步是"稳定出好图"的关键,**不可跳过**(跳过就会出溢出、压线、小字)。
### 6. 装配 docx(四节四页眉 + 页码)
- **有模板** → `scripts/build_patent.py`(`PatentBuilder`):克隆模板真实段落作原型、自动建 4 节挂对应运行
页眉、**开局逐节扒模板真实的页脚/页码并原样复刻**(权利要求书/说明书各自从 1 重起;摘要/附图是否有页码
照模板实测还原——有的附图独立无页码、有的续接说明书页码,模板怎样产出就怎样)、嵌图、清孤儿图。按链式 API 喂内容。
- **无模板** → `scripts/build_patent_cnipa.py`:把内容组织成**区块 JSON**(`["abstract"/"claim"/"title"/"h1"/
"h2"/"body"/"code"/"figure", …]`),按 CNIPA 标准版式一次性生成同样的四节四页眉结构。
- 两者用法见各自脚本顶部 docstring 与 `references/docx-format.md`。**装配后必做第 7 步渲染校验**——尤其逐页确认
四个页眉各就各位、权利要求书/说明书页码确实各自从 1 重起(页码是本技能反复栽过的坑)。
### 7. 可视化校验(不可跳过)
用 `scripts/render_check.py` 把成稿渲染成逐页 PNG,然后**逐页 Read 查看**:
- 4 个运行页眉是否分别为 说明书摘要/权利要求书/说明书/说明书附图;权利要求书/说明书页码是否各自从 1 重起;
- **发明名称(黑体居中标题)是否清晰无豆腐块**——这是套模板时最易翻车处:模板若内嵌了字体子集,新专利里
模板没有的字(尤其黑体发明名称)会渲染成 □。`build_patent.py` 已自动剥离内嵌字体规避;但**务必亲眼确认
发明名称那一行的每个字都正常**(别只看配图、别只看正文宋体)。
- 正文是否宋体、两端对齐、首行缩进 2 字、行距正确;章节标题加粗;发明名称居中且只出现一次;
- 配图是否清晰、居中、不越右边距、中文无豆腐、图号正确;
- 分页是否有标题孤行、图被截断等。
发现问题→改脚本/内容→重渲染。**只有看过渲染页面才算完成。**
### 8. 完成
把最终 .docx 路径交给用户,并请其在 Word/WPS 通览。建议保留你的两个生成脚本(图、装配)以便迭代。
## 资源
- `references/writing-style.md` — 中国专利行文手法、各部分写法范式、功能/模式抽象求宽保护、**反面清单**(**写正文前必读**)。
- `references/docx-format.md` — 克隆复刻法、四节四页眉、页码页脚修复、无模板兜底装配(**装配前必读**)。
- `references/cnipa-format-spec.md` — CNIPA 精确版式参数(字体/字号/页眉页脚/分节/段长),有模板时核对、无模板时为准。
- `references/figures.md` — 配图生成方法、内容驱动选图、matplotlib/graphviz 两路、字号公式、CJK 与常见坑(**画图前必读**)。
- `scripts/inspect_template.py` — 扒任意模板 docx 的版式(分节/页眉页脚/字体/页面/段长),对齐格式用(只读版式)。
- `scripts/build_patent.py` — **有模板**装配器 `PatentBuilder`(克隆原型 + 四节页眉 + 页码页脚 + 嵌图 + 清孤儿图)。
- `scripts/build_patent_cnipa.py` — **无模板**兜底装配器(区块 JSON → CNIPA 标准四节 docx)。
- `scripts/make_figures.py` — matplotlib 配图图元与示例(白底黑线、实心白盒、CJK、JSON 正反例)。
- `scripts/gen_figures_graphviz.py` — graphviz 纯黑白流程/架构图(`new_graph()` 样式封装 + 占位示例)。
- `scripts/gen_json_figs.py` — matplotlib 结构化输出面板图(长行自动换行;可选)。
- `scripts/render_check.py` — docx→pdf→逐页 png(供可视化校验)。
> 行文与配图的反面清单(草稿痕迹、步骤号不一致、示例自相矛盾、照搬模板内容等真实踩过的坑)见
> `references/writing-style.md` 第五节,**提交前逐条排查**。
## 易踩坑速查
- 中文豆腐块:matplotlib 未注册 CJK 字体;或图里用了 `family="monospace"`(等宽字体无中文字形)——含中文的
代码/JSON 直接用 CJK 字体渲染,别用 monospace。
- **发明名称/黑体字豆腐块(套模板专属坑)**:模板用 Word 内嵌了字体子集(`word/fonts/*.odttf` + settings 的
`embedTrueTypeFonts`),子集只含模板原有文字;克隆后本专利模板没有的字(黑体发明名称最典型)→ □。
`build_patent.py` 的 `save()` 已自动剥离内嵌字体根治;若你绕过它自行存盘,记得去掉内嵌或用系统完整字体。
- 图越界:图宽 > 版心宽(`page_width-左边距-右边距`)。嵌入宽统一 ≤ 版心宽。
- 全篇同一个页眉:克隆模板清空 body 塌成 1 节所致——必须按 §6 建 4 节并各挂 headerReference。
- 文件臃肿/夹带模板配图:克隆模板遗留未引用的 `word/media/imageN`——保存前清掉未被 `a:blip` 引用的图片关系。
- 字太小:图画布太宽、嵌入后缩太狠——画布宽贴近嵌入宽 + 加大字号(见 §5 公式)。
- 经纬度/单位类换序:若涉及坐标,注意"经度在前/纬度在后"等顺序与范围校验,避免写反(这类细节进实施例)。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!