中国专利申请文件质检员
AI 辅助审查中国专利申请文件(.docx / .doc),按照专利法、专利法实施细则和专利审查指南的规则,对摘要、权利要求书、说明书等章节进行多维度审查,生成在修订模式下执行替换、删除、批注的 docx 副本,同时生成审查意见汇总报告。
⚠️ .doc 格式支持:本 skill 支持输入
.doc格式文件。处理时会自动使用 pywin32(COM 自动化)调用 Microsoft Word 将.doc转换为.docx,然后按标准流程处理。要求:Windows 系统 + 已安装 Microsoft Word + 已安装 pywin32 库。
功能特性
| 功能 | 说明 | |:---|:---| | 专利文本提取与章节分割 | 自动提取 docx/doc 文本并分割为摘要、摘要附图、权利要求书、说明书、说明书附图 5 个章节 | | 多维度审查规则(13条) | 涵盖摘要检查(2条)、权利要求书审查(6条)、说明书审查(2条)、全文审查(2条)、整理汇总(1条) | | 修订模式操作 | 对于明确了具体操作的修改建议,在修订模式下执行字词替换或删除,同时添加批注说明 | | 批注标记问题位置 | 对于无法明确具体操作的修改建议,在 docx 文档中添加批注标记问题位置 | | 审查意见汇总报告 | 按章节整理所有审查意见,生成结构化 markdown 报告 |
⛔ 关键禁止事项
以下行为会导致输出文档内容丢失或审查结果不可靠,严格禁止:
- 禁止自行编写修正脚本:必须使用
review_adder.py添加批注和修订。自行编写脚本调用Document类的get_node+replace_node会导致严重内容丢失 - 禁止跳过验证步骤:第七步的内容完整性验证是强制性的,未通过验证的文档禁止输出给用户
- 禁止在终端中直接执行多行 Python 代码:必须直接调用
patent_extractor.py、review_adder.py和verify.py - 禁止在 skill 目录内创建工作文件夹:工作文件夹必须创建在输入 docx 文件所在目录下,所有路径必须使用绝对路径
- 禁止自行编造时间戳:时间戳必须通过执行命令获取真实值
路径变量说明
| 变量 | 含义 | 示例 |
|:---|:---|:---|
| <skill_name> | 本 skill 的名称,同时也是输出 docx 文件中批注的作者名 | checking-patdocx-cn-single-agent |
| <skill_root> | 本 skill 的根目录 | D:\path\to\.trae\skills\checking-patdocx-cn-single-agent |
| <input_docx> | 输入 docx/doc 文件的绝对路径 | D:\docs\专利申请文件.docx |
| <input_dir> | 输入 docx 文件所在目录的绝对路径 | D:\docs |
| <input_stem> | 输入 docx 文件名(不含扩展名) | 专利申请文件 |
| <timestamp> | 第二步获取的本地时间戳 | 20260424_153025 |
| <work_dir> | 工作文件夹的绝对路径 | D:\docs\checking-patdocx-cn-single-agent_20260424_153025 |
⚠️ 所有路径必须使用绝对路径。Windows 路径中的反斜杠
\在命令行参数中直接使用即可,不要手动添加额外转义。
工作流检查清单
在开始执行前复制以下清单,并在每一步完成后显式标记状态。
- [ ] Step 1:判断文件类型(非 .docx/.doc 则终止)
- [ ] Step 2:获取时间戳并创建工作文件夹
- [ ] Step 3:提取文档文本并分割章节
- 反馈闭环:若提取失败或章节缺失,检查文件是否损坏并告知用户
- [ ] Step 4:按审查规则逐章审查
- 反馈闭环:审查完成后自检——每条意见是否有明确 context?action_type 是否正确?old_text 是否为 context 的子串?
- [ ] Step 5:整理汇总审查意见
- [ ] Step 6:添加批注和修订到 docx
- 反馈闭环:若跳过数量 > 0,检查原因并修正 reviews JSON 后重新执行本步
- [ ] Step 7:内容完整性验证(强制性)
- 反馈闭环:若验证未通过,排查原因并修正后重新执行 Step 6 和 Step 7
- [ ] 输出结果
工作流程
第一步:判断文件类型
检查用户输入的文件是否为 .docx 或 .doc 格式:
- 获取用户输入的文件路径,检查文件扩展名是否为
.docx或.doc(不区分大小写) - 如果文件扩展名不是
.docx或.doc,直接告知用户:
⚠️ 目前本 skill 只支持解析 .docx 和 .doc 格式的专利申请文件,不支持 .pdf 等其他类型文件。
请将文件转换为 .docx 格式后重试。
并终止工作流程。如果是 .docx 或 .doc,继续执行第二步。
⚠️ .doc 格式自动转换:如果输入文件为
.doc格式,patent_extractor.py、review_adder.py和verify.py会自动调用doc_converter.py(基于 pywin32 COM 自动化)将.doc转换为临时.docx文件,处理完成后自动清理临时文件。要求:Windows 系统 + 已安装 Microsoft Word + 已安装 pywin32 库。
第二步:获取时间戳并创建工作文件夹
必须先执行以下命令获取当前本地时间戳:
python -c "from datetime import datetime; print(datetime.now().astimezone().strftime('%Y%m%d_%H%M%S'))"
将输出的时间戳记为 <timestamp>。必须实际执行此命令,不得自行编造或猜测时间戳。
然后定义工作文件夹路径(必须创建在输入 docx 文件所在目录下,使用绝对路径):
<work_dir>=<input_dir>\<skill_name>_<timestamp>
创建工作文件夹:
mkdir "<work_dir>"
后续步骤中的中间产物都放在 <work_dir> 下。
第三步:提取文档文本并分割章节
3.1 提取完整文本
python "<skill_root>\scripts\patent_extractor.py" "<input_docx>" --extract-only > "<work_dir>\extracted_text_<timestamp>.txt"
⚠️ 文本提取已覆盖正文段落、表格和文本框(包括传统文本框
w:txbxContent和现代形状文本框wps:txbx)。脚注、尾注中的文字仍无法提取,如果文档包含这些元素,应提醒用户可能存在未检查到的区域。
3.2 分割为章节
python "<skill_root>\scripts\patent_extractor.py" "<input_docx>" --output-json "<work_dir>\sections_<timestamp>.json"
该命令会输出一个 JSON 文件,包含以下 5 个章节的文本:
| 字段 | 章节 |
|:---|:---|
| abstract_text | 摘要 |
| abstract_fig | 摘要附图 |
| claims | 权利要求书 |
| description | 说明书 |
| description_figs | 说明书附图 |
第四步:AI 按审查规则逐章审查
⚠️ 这是核心审查步骤。AI 必须逐一读取审查规则文件,将规则内容作为审查提示词,结合对应章节的文本进行审查。
4.1 读取审查规则
审查规则文件位于 <skill_root>\审查规则\ 目录下,共 13 个 .txt 文件。AI 必须逐一读取每个规则文件的完整内容。
4.2 按章节应用审查规则
| 章节 | 审查规则文件 | 说明 |
|:---|:---|:---|
| 摘要 | 11-摘要-简单检查1.txt | 字数、段落、商业用语、附图标记等 |
| 摘要 | 12-摘要-复杂检查1.txt | 摘要表述完整性、各要素一致性 |
| 权利要求书 | 31-权利要求书-简单审查1-格式检查1.txt | 序号格式、编号、句号使用等 |
| 权利要求书 | 31-权利要求书-简单审查2-格式检查2.txt | 附图标记、模糊词、绝对化词等 |
| 权利要求书 | 31-权利要求书-简单审查3-所述的引用基础.txt | "所述"引用基础、应加"所述"等 |
| 权利要求书 | 31-权利要求书-简单审查4-引用与主题.txt | 从属权利要求引用关系、多引多、单一性等 |
| 权利要求书 | 32-权利要求书-复杂审查1.txt | 保护范围不清楚、权利要求不简要 |
| 权利要求书 | 32-权利要求书-复杂审查2-单一性.txt | 独立权利要求之间的单一性 |
| 说明书 | 41-说明书-简单审查1.txt | 发明名称、技术领域、背景技术、发明内容等 |
| 说明书 | 42-说明书-复杂审查1-说明书公开是否充分.txt | 说明书公开充分性 |
| 全文 | 61-全文-简单审查1.txt | 错别字、术语一致性、附图标记一致性等 |
| 全文 | 62-全文-复杂审查1.txt | 权利要求书是否得到说明书支持、摘要与说明书一致性 |
4.3 执行审查
对每个章节,按以下流程执行审查:
- 读取该章节对应的审查规则 .txt 文件的完整内容
- 将规则内容作为审查提示词,结合第三步提取的章节文本,逐条检查是否存在问题
- 对于权利要求书的审查规则,需要结合权利要求之间的引用关系进行分析
- 对于全文审查规则(61、62),需要同时参考摘要、权利要求书和说明书的文本
- 收集所有发现的问题
4.4 输出审查意见 JSON
将所有审查发现的问题整理为 JSON 格式,保存为 <work_dir>\reviews_<timestamp>.json。
详细的 JSON schema、字段说明和示例请参见 参考/reviews_json_schema.md。
关键要求:
- 审查意见必须基于审查规则,不得随意添加规则外的意见
- 每条审查意见必须有明确的
context(文档中实际存在的文本片段) action_type为"replace"或"delete"时,old_text必须是context的子串或等于contextcontext、old_text和highlight_text必须是文档中实际存在的原文逐字复制,不得改写、意译或增减字符,任何不匹配都会导致批注定位失败;highlight_text必须是context的子串- 当同一
context在文档中出现多次但只需标注特定位置时,使用occurrence字段(从 1 开始的整数)指定第几次出现;不指定时默认标注第一次出现
第五步:整理汇总审查意见
使用审查规则 71-整理汇总输出.txt 中的模板,将第四步的所有审查意见整理为一份结构化的 markdown 报告。
- 读取
<skill_root>\审查规则\71-整理汇总输出.txt的内容,按照其中的模板格式组织审查意见 - 将审查意见按章节分类
- 权利要求书部分按权利要求序号分组列出问题
- 保存为
<input_dir>\<input_stem>_review_report_<timestamp>.md
详细的报告模板和格式要求请参见 参考/report_template.md。
⚠️ 报告文件放在输入文件同目录下,不放入工作文件夹。
第六步:添加批注和修订到 docx
使用 review_adder.py 脚本将审查意见添加到 docx 文档中。根据审查意见的 action_type 字段,脚本会执行不同操作:
| action_type | 操作 | 说明 |
|:---|:---|:---|
| "comment" | 仅添加批注 | 不修改原文,仅在目标位置添加批注标记 |
| "replace" | 修订模式下替换 + 批注 | 在修订模式下将 old_text 替换为 new_text,并添加批注说明 |
| "delete" | 修订模式下删除 + 批注 | 在修订模式下将 old_text 标记为删除,并添加批注说明 |
python "<skill_root>\scripts\review_adder.py" "<input_docx>" "<input_dir>\<input_stem>_ReviewOut_<timestamp>.docx" --reviews-file "<work_dir>\reviews_<timestamp>.json"
⛔ 必须使用
review_adder.py,禁止自行编写批注/修订脚本。 自行编写脚本会导致严重内容丢失。review_adder.py内部已正确处理文本拆分逻辑和跨 run 文本映射。
精准定位能力:
review_adder.py已内建精准匹配能力,可在 docx 文件中精准且最小化地定位待修改或待批注的文本:
- 跨 run 精准定位:当目标文本跨越多个
w:r元素时,能精确计算字符偏移量,只标记目标文本范围,不影响 run 中的其他文本- 批注精准定位:纯批注(comment)模式下,优先使用
highlight_text指定批注精确覆盖范围(仅批注该文本而非整个 context);若未指定highlight_text,则批注范围覆盖整个 context- 修订批注精准定位:replace/delete 模式下,批注仅覆盖实际修订的文本(w:del/w:ins 节点),不包含修订前后的未修改文本
- occurrence 字段:当同一 context 在文档中出现多次时,可通过
occurrence字段(从 1 开始的整数)指定标注第几次出现;不指定时默认标注第一次出现- 空白字符容错:搜索文本时先尝试精确匹配,失败后自动尝试忽略空白字符差异的模糊匹配
⚠️ Windows PowerShell 环境:禁止使用
PYTHONPATH=xxx python -m ...的 bash 语法,必须使用python "<skill_root>\scripts\review_adder.py"直接调用。
脚本执行后会输出处理统计信息。如果跳过数量大于 0,需要检查原因并修正 reviews JSON 后重新执行本步。
第七步:内容完整性验证(强制性)
⛔ 本步骤为强制性步骤,不得跳过。 未通过验证的文档禁止输出给用户。
python "<skill_root>\scripts\verify.py" "<input_docx>" "<input_dir>\<input_stem>_ReviewOut_<timestamp>.docx" "<work_dir>"
该脚本会自动执行以下三项验证:
- 段落数量验证:对比原始文档与审查文档的段落数量
- 模拟接受修订验证:确认只有预期的字词被修改
- 文件结构验证:确保审查文档保留了原始文档的所有文件
如果任何验证项未通过(输出 ❌),必须排查原因并修正后重新执行第六步和第七步。
最终输出结果
向用户报告审查结果:
📋 专利申请文件审查完成
审查文件:xxx.docx
发现问题:N 处
【审查摘要】
- 摘要:X 处问题
- 权利要求书:Y 处问题(涉及 Z 项权利要求)
- 说明书:W 处问题
- 全文一致性:V 处问题
已生成审查版文档:xxx_ReviewOut_<timestamp>.docx
- 明确了具体操作的修改建议已在修订模式下执行替换或删除,可在 Word 中逐一接受/拒绝
- 无法明确具体操作的修改建议以批注标记,可在 Word 中查看
- 批注第一行为问题描述,换行后为修改建议
审查意见汇总报告:<input_dir>\<input_stem>_review_report_<timestamp>.md
中间文件保存在:<work_dir>
脚本错误处理
当脚本执行出错时,按以下方式处理:
| 脚本 | 常见错误 | 处理方式 |
|:---|:---|:---|
| patent_extractor.py | 文件损坏或非 docx 格式 | 告知用户文件可能损坏,建议检查文件 |
| patent_extractor.py | 章节识别不完整 | 提醒用户文档结构可能不符合标准专利申请格式 |
| review_adder.py | ⚠ 未找到文本 | 检查 context 是否为文档中实际存在的文本,修正后重新执行 |
| review_adder.py | ⚠ 未找到待替换/待删除文本 | 检查 old_text 是否为 context 的子串,修正后重新执行 |
| verify.py | 段落数量不一致 | 检查是否使用了自行编写的脚本,回退使用 review_adder.py |
| verify.py | 模拟接受修订后内容不一致 | 排查修订操作是否影响了非目标文本,修正后重新执行第六步 |
文件命名规则
所有输出文件必须包含第二步获取的真实本地时间戳:
| 文件 | 命名格式 | 位置 |
|:---|:---|:---|
| 工作文件夹 | <skill_name>_<timestamp> | <input_dir> 下 |
| 提取文本 | extracted_text_<timestamp>.txt | <work_dir> 下 |
| 章节 JSON | sections_<timestamp>.json | <work_dir> 下 |
| 审查意见 JSON | reviews_<timestamp>.json | <work_dir> 下 |
| 审查版 docx | <input_stem>_ReviewOut_<timestamp>.docx | <input_dir> 下 |
| 汇总报告 | <input_stem>_review_report_<timestamp>.md | <input_dir> 下 |
技术架构
checking-patdocx-cn-single-agent/
├── SKILL.md # 本文件
├── scripts/
│ ├── __init__.py
│ ├── document.py # Document 类(OOXML 编辑)
│ ├── utilities.py # XMLEditor 基类
│ ├── doc_converter.py # .doc 转 .docx(pywin32 COM 自动化)
│ ├── patent_extractor.py # 专利文本提取与章节分割脚本
│ ├── review_adder.py # 审查意见批注添加脚本(必须使用)
│ ├── verify.py # 内容完整性验证脚本
│ └── templates/ # 批注相关 XML 模板
├── ooxml/
│ └── scripts/
│ ├── unpack.py # docx 解压
│ ├── pack.py # docx 打包
│ └── validation/ # 验证工具
├── 审查规则/ # 13 条审查规则文件
├── 参考/ # 参考文档(渐进式披露)
│ ├── reviews_json_schema.md # 审查意见 JSON Schema 说明
│ └── report_template.md # 审查意见汇总报告模板
└── requirements.txt
依赖
- Python 3.10+
- defusedxml
- lxml
- python-docx
- pywin32(用于 .doc 转 .docx,仅 Windows + Microsoft Word 环境需要)
Scan to join WeChat group