让 AI 帮你写专利交底书:中国专利.skill 的安装与上手全记录

工程师最头疼的专利环节,这套开源技能包都能接手:装进 Claude Code 或 Cursor 之后,AI 能从项目材料里挖出可申请的点、写出带框图的交底书、转成可编辑的 Word、查国知局公布公告,还能把公开专利读成大白话存进个人知识库。它叫中国专利.skill,遵循 AgentSkills 标准,MIT 协议,核心是八个子技能。

这篇文章按真实安装顺序整理每一步,重点讲清三件事:哪些依赖必须装,哪些千万别急着装,哪些功能必须开口点名才会触发。

这套技能包能做什么?

它把中国专利从交底到审查答复的整条链路拆成八个子技能,写不出来和读不进去两端都覆盖了。

子技能 能力 触发说法
patent-disclosure 交底书编写 材料丢进来,挖出真正能保护的点、查在先技术、直接成文,覆盖发明 / 实用新型 / 外观;首篇定稿后可做保护型 1+N 布局 「交底书」
patent-application 申请文件 已有交底改写成权利要求书、说明书、摘要和附图 「申请文件」「申请底稿」(须点名)
patent-docket 案卷会稿 交底和申请一趟串起来,角色扮演交底工程师 vs 专利代理师,缺事实就问 「交底申请一起做」(须点名)
patent-search 著录检索 按发明人、申请人、分类号查公布公告,也能扔一张产品图或一段权要倒推检索式 「著录检索」
patent-reader 通俗解读 公开号或 PDF 变成普通人能看懂的笔记和图谱 「读专利」
patent-map 专利地图 已解读入库的案例摊成语义地形、申请人四象限、同族引证网络、技术功效矩阵、仪表盘 「专利地图」(须点名)
patent-oa 审查答复 拆条款问答、起草答复稿,RAG 检索案例库辅助 「审查答复」(须点名)
patent-exam-policy 政策简报 对照国知局官网近期政策消息出人话简报,提示哪些交底技巧、申请书式可能过时 「政策简报」(须点名)

表里的「须点名」是理解这个工具的关键。申请文件、案卷、专利地图、审查答复、政策简报这五项,只有你明确说出触发词才会进入,AI 不会自作主张替你升级流程。你让 AI 读一篇专利,它不会顺手开地图;你写交底,查新只用交底包自带的轻量检索(一词一页,公布模式每页 10 条),不会去调检索包,检索包的结果也不能反过来冒充交底查新。边界划得死,误触发就少。

专利布局也走点名,文档里叫围栏、保护型 1+N、族树,前置条件是首篇交底已经定稿。流程是分解、突围、矩阵、立项说明,立项校验写进 专利布局.md,没确认立项说明之前,不会分件写出一堆交底。

再补两条全局约定。第一,不指定类型时,交底默认按发明走。第二,所有产出写在工作区 outputs/ 下按类型分目录:解读在 outputs/patent_reader/,检索在 outputs/patent-search/,案卷在 outputs/docket/,申请文件在 outputs/patent-application/。调用脚本时工作目录用工作区根,别把产物写进技能安装目录或 tmp/。

定稿交付大概长这样,初版落盘一次,之后多版本并存并留对话记录:

初版生成
迭代更新

为什么要做它:发明人栏里没有名字

项目的起点是两条真实痛点:一线研发做得出技术,却卡在交底书这最后一步;公开专利又写得让人读不下去。初衷部分的原话是:

做了多年核心研发,专利发明人那一栏从没写过我的名字。

往下是更具体的解释。代码是自己敲的,方案是自己扛的,轮到交底书就卡在三个问题上:专利点怎么挖、查新怎么写、框图和 Word 怎么一次交得出去。这个技能把这一环打通,从项目材料梳出可申请的点,查新、脱敏、成文、迭代另存,让真正干活的人能把技术贡献写进可交付的交底书。

另一端是读专利。公开专利权要绕、术语密,落地语境散在说明书和附图里。解读子技能把单篇读成通俗笔记和图谱,存进 Obsidian;陆续解读的专利靠双链和插件生态攒成知识库,越读越厚。库厚了还能往上做同族对照、技术路线梳理、差异点扫描,从读懂推进到用起来。

我的判断是,这两件事放在同一个工具里是成立的。检索出来的公告既是查新证据,也能直接入库变成资料,写和读共用一套基础设施,比两个独立工具来回倒腾省事。

怎么装进 Claude Code 和 Cursor?

两个工具都认 AgentSkills 布局:仓库根目录就是技能根目录,里面有 SKILL.md,把完整仓库克隆到约定位置就能被识别。

Claude Code 在你项目的 git 仓库根目录下装:

mkdir -p .claude/skills
git clone <本仓库 URL> .claude/skills/patent-disclosure-skill

或者用本地路径复制到 .claude/skills/patent-disclosure-skill。

Cursor 分全局和项目两种放法。全局安装后所有项目可用:

系统 推荐路径
Windows %USERPROFILE%\.cursor\skills\patent-disclosure-skill\
macOS / Linux ~/.cursor/skills/patent-disclosure-skill/

macOS / Linux 命令:

mkdir -p ~/.cursor/skills
git clone <本仓库 URL> ~/.cursor/skills/patent-disclosure-skill

Windows(PowerShell):

New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.cursor\skills"
git clone <本仓库 URL> "$env:USERPROFILE\.cursor\skills\patent-disclosure-skill"

只想在当前项目用,就放到 <项目根>/.cursor/skills/patent-disclosure-skill/。

Cursor 侧有三个容易翻车的点:

  1. 要放完整仓库内容,包括各 skills/patent-* 子包,只拷一个文件夹不够。
  2. SKILL.md 里 name 字段的值必须和文件夹名一致,这里都是 patent-disclosure-skill。
  3. 重启 Cursor 后去 Settings → Rules 看有没有被发现,或者在 Agent 输入框打 / 选技能名。

顺带一提,Cursor 也会扫描 ~/.claude/skills/ 和项目内的 .claude/skills/,给 Claude Code 装的那份它多半能直接认出来。要是连目录都不想挪,直接用 Cursor 打开仓库根目录当工作区也行,各环节的分步指令在对应的 prompts/ 目录里。

还有一条路径规则:文档里的命令都相对技能仓库根(含根级 SKILL.md 的目录),比如 python skills/patent-disclosure/tools/image_gen.py。当前工作区不是这个仓库时,先定位技能安装目录再拼接路径,不要依赖厂商环境变量。单独拷走某个子包的话,包内改用 python tools/… 就行。

环境要配到什么程度才算够?

默认按发明交底走的话,Python 3.9+、一份 requirements.txt、本机有 Chrome 或 Edge,就够跑通定稿出图和查新。Node、npm、mmdc 都不用装。

第一步装依赖(含 python-docx、playwright):

pip install -r requirements.txt

第二步探测浏览器:

python skills/patent-disclosure/tools/browser.py --probe

ok=true 就能直接定稿出图、跑国知局检索。提示没有 Playwright 包,把上面那条 pip 再跑一遍。本机既没有 Chrome 也没有 Edge,才需要 python -m playwright install chromium,整机装一次就够。

默认产出长这样:定稿出 .md 加 .docx 两个文件,3.2 / 3.4 框图出 PNG,Step 5 优先走国知局检索。

没浏览器也有兜底:发明仍可以先交 Markdown,mermaid 围栏保留在文里,Word 里框图暂时是代码块。等浏览器补齐后重跑 mermaid_render.py,图就渲染出来了。

公式进 Word 走 OMML,latex2mathml 已在 requirements.txt 里。这里有条容易违反的规矩:不要为默认交底装 matplotlib。只有定稿 stderr 出现 omml_text_fallback、且你回复「是」之后,才走:

pip install matplotlib
python skills/patent-disclosure/tools/md_to_docx.py -i 定稿.md -o 定稿.docx --base-dir 定稿目录 --math-render

扫描目录里有 PDF 时再加一条:

pip install -r skills/patent-disclosure/tools/requirements-pdf.txt

实用新型和外观定稿以各自类型的 disclosure_builder.md 为准:填表产出 structure_schema 或 appearance_schema,外加 figure_plan.yaml,成文只把清单里的图嵌进文(结构图或视图;docx 对实用新型是建议项,外观可选)。不跑发明 mermaid 的话,requirements.txt 还是建议装上,扫 Word/PPT 和出 docx 都用得到。

最省的一种情况:只在编辑器里手写 Markdown、完全不跑仓库脚本,那 Python 都不必装。细则集中在仓库的 skills/patent-disclosure/tools/README.md。

读完依赖清单我的感受是,这个仓库把「什么时候才需要装什么」卡得很死。matplotlib 这种大件被挪到兜底路径,CadQuery 单独隔离(后面会讲),首次安装的时间成本压得很低。手痒把可选项一次全装上,反而容易把环境搞乱。

实用新型和外观的线稿,能跳过吗?

不能随便跳。成文前必做,流程默认不问用户,只有设了 PATENT_SKILL_SKIP_LINEART=1,或者明确说不要线稿,才会跳过。CAD 投影不算线稿,不得入文。

四条命令按顺序跑({案件} 换成你的案件目录):

python skills/patent-disclosure/tools/image_gen.py --case-dir outputs/{案件}
python skills/patent-disclosure/tools/design_lineart_gate.py --case-dir outputs/{案件} --prepare-jobs
python skills/patent-disclosure/tools/structure_lineart_gate.py --case-dir outputs/{案件} --prepare-jobs
python skills/patent-disclosure/tools/structure_lineart_compose.py --case-dir outputs/{案件}

原则是先规划再出图。结构线稿按 parts 写出子 SVG,拼成总图后再叠件号引出线,禁止自创件号。流程细节在 image_gen.md、design_lineart_assist.md、structure_lineart_assist.md、structure_lineart_compose.md。

实际效果:

外观专利线稿
实用新型线稿与部件序号引出线
CAD 三维模型等轴测投影

CAD/STEP 是另一个开关,默认关闭。扫描发现 .step 或 .stp 文件时,Agent 成文不会中断,等交底 md 和 docx 落盘之后再反问要不要开启,确认前不装 CadQuery。手里只有 SolidWorks 这类原生 CAD、拿不出 STEP 的,交付回复末尾会提示导出中性格式。

确认开启后,先探测再引导安装:

python skills/patent-disclosure/tools/cad_venv.py
python skills/patent-disclosure/tools/bootstrap_cad_venv.py
python skills/patent-disclosure/tools/run_step_to_views.py --enable-step-parse -i model.step -o outputs/{案件}/cad_views

CadQuery 只进隔离 venv,要求 Python 3.10 到 3.12,本机已经是 3.11 或 3.12 就不必再装 3.10。系统没有 Cairo 时保留 SVG,用已有的 Playwright 无头浏览器截 PNG。CAD 出图同样不碰 matplotlib。这套依赖和主 requirements.txt 完全独立,删掉也不影响主流程。

查国知局公告,哪些坑要提前知道?

依赖好装,真正要留神的是两处:怎么判断检索有没有翻完,以及 Windows 终端的编码表现。

交底轻量查新和著录检索是两个入口。只装爬虫、不装整份主依赖时:

pip install -r skills/patent-disclosure/tools/crawl/requirements-cnipa.txt
python skills/patent-disclosure/tools/browser.py --probe
# 仅当 probe 显示无 Chrome/Edge 且无自带 Chromium 时:
# python -m playwright install chromium

交底查新是一词一页:

python skills/patent-disclosure/tools/crawl/cnipa_epub_search.py --type utility_model 卡扣

著录检索默认只翻 config.yaml 里设定的 max_pages,想改可以在对话里说,或者加 --max-pages:

python skills/patent-search/tools/cnipa_search.py --inventor "发明人姓名" \
  --applicant "申请主体一" \
  --applicant "申请主体二" \
  --type all

结果落到 outputs/patent-search/SEARCH-*.md,版式由 emit_search_report.py 控制,同时打印 EPUB_SEARCH_MD 和 EPUB_SEARCH_JSON 两个机读前缀。

第一个坑在这里:只有 complete: true 才表示翻到了末页;退出码 3 表示部分结果,禁止据此声称「全部」。普通查询不要默认 --complete。专利场景里这个约束很要紧,把部分结果当成全部,查新结论就不可信了。

第二个坑在 Windows 终端。定稿和查新脚本会把 stdout、stderr 都设成 UTF-8,子进程带 PYTHONUTF8=1。判断成败只看两样:退出码,和机读前缀(EPUB_HITS_JSON:、EPUB_SEARCH_JSON:、PROBE:、MERMAID:、DOCX:、MATH:)。stderr 冒出中文,或者 PowerShell 弹 NativeCommandError,都不等于失败。不必先 chcp 65001。真遇到乱码,设 PYTHONUTF8=1,并且不要用 2>&1 把 JSON 混进错误流。

我在 PowerShell 里见过红字 NativeCommandError,第一反应是脚本挂了,回去看退出码是 0,文件正常落盘。这段说明装完就该读一遍,能省掉很多无谓的重跑。

最后补一句依赖关系:playwright 已写在根目录 requirements.txt,装过主依赖就不用为查新单独 pip;requirements-cnipa.txt 只在只装爬虫时用。没装或探测失败时,交底 Step 5 会降级成 WebSearch(比如 Google 学术)。

后半程的功能,为什么喊了没反应?

大概率是没点名,或者前置门禁没过。申请文件、案卷、专利地图、审查答复、政策简报五项都要你亲口说触发词,其中申请文件还须指定交底目录。

申请文件

把已有交底改写成权利要求书、说明书、摘要与黑白附图。缺 schema、线稿或交底书就停,引导先补交底;说不清的内容写进问题清单,不挡整套文件;改已有产出则另存。不另装依赖(PyYAML 加已有的 python-docx 和 playwright),不做 TIFF。

python skills/patent-application/tools/material_gate.py --case-dir outputs/{案件}
python skills/patent-application/tools/render_invention_figures.py \
  --plan outputs/patent-application/{案}/figures/invention_figures.yaml \
  --out-dir outputs/patent-application/{案}/figures
python skills/patent-application/tools/audit_claims.py outputs/patent-application/{案}/权利要求书.md
python skills/patent-application/tools/check_support.py --dir outputs/patent-application/{案}
python skills/patent-application/tools/emit_application_docx.py --dir outputs/patent-application/{案}

门禁退出码为 2 就是缺材料,先回交底技能补齐再回来。

案卷会稿

把交底书和申请文件串成一趟:按发明人或工程师给的材料成文,问题清单上的缺口最多改三轮,缺技术事实就停下来问,不编。这个包只记账和派工,正文仍由交底包、申请包来写;派工时读对方的 SKILL.md,不从案卷包里调那些包的 tools/。责任边界分得清楚,不会出现一个包替另一个包编内容的情况。依赖只要根目录的 PyYAML。

python skills/patent-docket/tools/init_docket.py --case-id {案件slug} --mode from_zero
python skills/patent-docket/tools/validate_docket.py --yaml outputs/docket/{案件slug}/docket.yaml
python skills/patent-docket/tools/emit_tracker.py --yaml outputs/docket/{案件slug}/docket.yaml

产物在 outputs/docket/{案件}/,机读前缀 DOCKET_DIR:、DOCKET_YAML:、DOCKET_OK:、DOCKET_ERROR:。

审查答复

显式触发「审查答复 / 案例入库 / /oa」后使用,库薄时会先引导入库或蒸馏。配置与向量库默认在系统文档目录 {Documents}/patent-disclosure-skill/oa/,环境变量 PATENT_OA_HOME 可覆盖。向量模型推荐智谱 embedding-3,也支持 DashScope、MiniMax、本地和 OpenAI:

pip install -r skills/patent-oa/tools/requirements-oa.txt
python skills/patent-oa/tools/config.py recommend
python skills/patent-oa/tools/config.py set --preset zhipu
python skills/patent-oa/tools/ingest_case.py -i path/to/case.md
python skills/patent-oa/tools/refresh_vault.py   # 刷新 oa 索引 / Bases / 关联 Canvas
python skills/patent-oa/tools/search_cases.py --query "创造性 区别特征" --defect inventiveness --top-k 5
# 用户确认采纳某份草稿后,才出陈述正文 Word
# python skills/patent-oa/tools/emit_opinion_docx.py -i outputs/oa/案/意见陈述_时间戳.md

Obsidian 案例落在库的 oa/cases/history/,另有 pending/、drafts/、playbooks/ 目录。依赖与主 requirements.txt 独立。

政策简报与专利地图

政策简报对照国知局官网近期政策消息出人话简报,分析技能里哪些交底技巧、申请书式可能过时,审查口径一变就能跟上。改技能只是旁路,没点名不会去动交底包以外的目录。

专利地图需要已有解读入库的 vault,同样须点名,不会因为你读了一篇专利就自动打开。

Obsidian 库是加分项还是必选项?

不装也能用,解读笔记和中间产物落在工作区 outputs/patent_reader/,但没有图谱和索引,效果会弱一截。想要索引、Canvas 知识图谱、术语网、关系图配色和公开线索旁注,就得装 Obsidian 并配好库路径,文档里的措辞是「强烈建议安装并配置」。

先跑探测,确认库的位置:

python skills/patent-reader/tools/vault/check_obsidian_env.py
# 自动接受唯一/当前打开的库:
python skills/patent-reader/tools/vault/check_obsidian_env.py --auto-accept
# 手动指定并持久化(+ Windows 用户环境变量):
python skills/patent-reader/tools/vault/check_obsidian_env.py --set "C:\Users\你\Documents\Obsidian Vault" --setx

也可以只设会话变量:

$env:PATENT_READER_OBSIDIAN_VAULT = "D:\Obsidian\你的库"
# 可选:库内目录,默认 Research/Patents
$env:PATENT_READER_PAPERS_DIR = "Research/Patents"
$env:PATENT_READER_GLOSSARY_DIR = "Research/术语"

依赖两条,PDF 解析用 pymupdf,专利地图语义地形用 fastembed(不含 PyTorch):

pip install -r skills/patent-reader/tools/requirements.txt
pip install -r skills/patent-map/tools/requirements.txt

专利地图的向量模型和加速副本默认放在文档目录 {Documents}/patent-disclosure-skill/patent-map/(与 oa 同级,PATENT_MAP_HOME 可覆盖),不要下到工作区。可以先跑 ensure_model.py。

首次使用不用手动建库:解读入库时会自动初始化,CSS、Bases、索引、关系图配色都配好。用户要做的只有装 Obsidian、配库路径,再可选地在社区插件市场装 Dataview 之类,步骤和插件清单在仓库的 obsidian-setup-guide.md,交付后还有 obsidian_plugin_guide.md 引导可选插件。

日常两个常用入口:

python skills/patent-reader/tools/extract/fetch_patent_pdf.py --pub CN… -o outputs/patent_reader/RUN
python skills/patent-reader/tools/vault/write_patent_obsidian_note.py --help

工具链分 shared/、extract/、analyze/、vault/ 四层,说明在 tools 目录的 README 里。

库用起来的样子:

Obsidian 关系图
解读 Canvas
专利地图

单篇笔记记完就忘,串起来的术语网和关系图才是回头能查的资产。读得越多,这层差别越明显。

实用摘要:操作清单

  1. 克隆完整仓库到 .claude/skills/ 或 ~/.cursor/skills/patent-disclosure-skill/,文件夹名保持 patent-disclosure-skill 不变,别漏掉各 skills/patent-* 子包。
  2. 装 Python 3.9+,在技能根目录 pip install -r requirements.txt。
  3. 跑 browser.py --probe,ok=true 就能出图和查新;双浏览器都没有再 playwright install chromium。
  4. 扫描目录有 PDF 才装 requirements-pdf.txt;公式回退提示出现且确认后才装 matplotlib。
  5. 交底不指定类型默认发明;实用新型和外观定稿前跑线稿四连,除非 PATENT_SKILL_SKIP_LINEART=1。
  6. 有 .step 文件先交底落盘,确认开启后才装 CadQuery(隔离 venv,Python 3.10–3.12)。
  7. 查新结果认准 complete: true,退出码 3 就是部分结果,别写成「全部」,普通查询不默认 --complete。
  8. Windows 下盯退出码和机读前缀,不用 2>&1,乱码设 PYTHONUTF8=1。
  9. 申请文件、案卷、专利地图、审查答复、政策简报须点名;申请文件须指定交底目录,门禁退出码 2 先补交底。
  10. 想要图谱和索引就装 Obsidian,首次入库自动初始化,向量模型放文档目录别放工作区。

一页速览

问题 答案
这是什么 跑在 Claude Code / Cursor 的中国专利技能包,AgentSkills 布局,MIT 协议
装在哪 .claude/skills/ 或 ~/.cursor/skills/patent-disclosure-skill/(Cursor 要求 name 与文件夹名一致)
必装依赖 Python 3.9+、requirements.txt、本机 Chrome 或 Edge
明确不装 matplotlib(默认)、CadQuery(确认前)、Node / npm / mmdc(用不上)
产出位置 当前工作区 outputs/ 下按类型分目录
须点名功能 申请文件、案卷会稿、专利地图、审查答复、政策简报
查新判据 complete: true 才算翻完;退出码 3 为部分结果
Windows 要点 脚本自带 UTF-8;认退出码和机读前缀;乱码设 PYTHONUTF8=1

常见问题

只手写 Markdown,不跑脚本,要装 Python 吗?

不用。只有跑仓库脚本才需要 Python。

默认交底要装 matplotlib 吗?

不要。只有定稿 stderr 出现 omml_text_fallback、且你确认之后,才装 matplotlib 重跑 Word 转换。

Windows 下 stderr 报中文是不是失败了?

不是。以退出码和机读前缀为准,NativeCommandError 不代表失败,不必先 chcp 65001。

检索退出码 3 是什么意思?

部分结果。只有 complete: true 才表示翻到末页,不能把部分结果说成全部。

实用新型线稿可以跳过吗?

默认必做。设 PATENT_SKILL_SKIP_LINEART=1 或明确不要线稿才跳过。

为什么说了「写个申请文件」AI 没反应?

申请文件须点名且须指定交底目录,缺 schema、线稿或交底书会停下引导先补交底。

CadQuery 能装进主环境吗?

不能。只进隔离 venv,Python 3.10–3.12,与主依赖独立。

不装 Obsidian 会怎样?

功能可用,解读落在 outputs/patent_reader/,但没有图谱、索引和术语网,效果会弱一截。