专利交底书文档扫描的完整流程:patent-disclosure-skill 的 Step 2 开关位与避坑指南
【免费下载链接】patent-disclosure-skill中国专利.skill:专利点挖掘与交底书(发明/实用/外观)编写,通俗解读专利,嗅探政策动向,辅助审查答复。项目地址: https://gitcode.com/GitHub_Trending/pa/patent-disclosure-skill
如果你刚拿到patent-disclosure-skill这个仓库(clone 地址:https://gitcode.com/GitHub_Trending/pa/patent-disclosure-skill),本文只讲一件事:专利交底书流水线里 Step 2「项目文档扫描」到底怎么扫、哪些动作必须先经用户点头、扫完产出什么。规范定义在skills/patent-disclosure/prompts/project_scan.md,配套脚本都在skills/patent-disclosure/tools/下,按本文顺序执行即可复现。
先看全局:三个开关位怎么设
Step 2 的安全模型可以概括为一句话:轻操作自主放行,重操作默认关、显式确认。所谓"开关位",就是每个高风险动作都留了两个检查点——命令行开关和环境变量,两者都没有时操作直接被拒。
| 操作 | 默认态 | 放行条件 | 拦截机制 |
|---|---|---|---|
| STEP 多视角解析 | 关 | 用户回「是」+--enable-step-parse(或PATENT_SKILL_STEP_PARSE=1) | 无开关时退出码 3 |
| 外观线稿 | 开 | 默认可跑;仅用户明确拒绝或PATENT_SKILL_SKIP_LINEART=1才跳过 | 门禁脚本校验 brief 后出 jobs |
| 实用新型结构线稿 | 开 | 同上 | 件号不对齐parts即拒绝 |
| Office / PDF 转 Markdown | 开(强制) | 无 | 不可跳过,见下文 |
贯穿全文的概念就一个:先问开关位,再动手。下面按操作时序展开。
按优先级扫描,只读"可专利化"浓度高的文件
扫描不是通读整个仓库,而是按project_scan.md里的四档优先级排序取材:
| 优先级 | 文档类型 | 抓什么 |
|---|---|---|
| 1 | 专利相关文档 | 专利点分析、已有交底书、创新点汇总 |
| 2 | 详细设计 / 方案文档 | 方案讨论、流程图、技术对比 |
| 3 | 核心实现代码 | 算法与策略、业务编排、规则引擎、调度机制(按领域灵活识别) |
| 4 | 系统设计文档 | 架构说明、模块划分、数据流与控制流 |
三条执行纪律:
- 大仓库先用关键词搜索定位候选文件再精读,不要从根目录逐层通读;
- 随手记录引用路径,交底书里写"参见某设计"时做脱敏表述,不暴露源码路径;
- 跳过
node_modules/、dist/、build/等目录,也不要扫用户未指定的整个仓库。
裸图目录(如sample_assets/下的独立.png)默认不逐个打开识别——Office 文档转换时嵌入图已被抽取,重复识图是浪费。例外只有两种:用户点名了某张图,或该图被 schema 的source_images明确引用,属于必须识图的附图素材。
Office 与 PDF 文档:强制先转 Markdown 再读
这是 Step 2 唯一的"强制开"项:扫描根内出现.docx/.pptx/.pdf,必须先转换再读,禁止因为"读文本更省事"而漏掉它们——方案讨论和评审结论恰恰藏在 Word 和 PPT 里。前置依赖只需一次:
pip install -r requirements.txt用途:安装mammoth、python-pptx等转换依赖(在仓库根目录执行)。随后对每个文件:
python skills/patent-disclosure/tools/docx_to_md.py -i "<路径>/<名>.docx" -o "<同目录>/<名>.md"用途:把 Word 转成 Markdown,内嵌图片逐个抽出为img_0001.jpg之类的文件并用相对路径引用。
python skills/patent-disclosure/tools/pptx_to_md.py -i "<路径>/<名>.pptx" -o "<同目录>/<名>.md"用途:把 PPT 按页导出为「第 N 页」小节,递归展开组合形状,表格转 Markdown 表格,演讲者备注写入「备注」小节——这两类是常被漏掉的专利素材富矿。
python skills/patent-disclosure/tools/pdf_to_md.py -i "<路径>/<名>.pdf" -o "<同目录>/<名>.md"用途:PDF 可选转换,需另装pip install -r skills/patent-disclosure/tools/requirements-pdf.txt(pymupdf);未装时按脚本提示处理,不得改读二进制 PDF。
转换产出旁的{md 主名}_media/目录存放抽取图,之后以生成的.md正文与图片引用为扫描依据,与原有.md、代码同等对待。注意格式前提:脚本只认 OOXML 新格式,旧版.doc/.ppt须先在 Office / WPS 里另存为再走流程。
⚠️ CAD / STEP 解析:默认关的门禁,放行条件最严格
扫描树内可能有 CAD 文件时,先跑一个轻量分类脚本(无重依赖):
python skills/patent-disclosure/tools/cad_scan.py -r "<扫描根>" --json用途:把扫描根(可重复-r)下的三维文件按后缀分为四类并给出建议动作;初次 Step 2 与多轮补材料后都要再跑。
输出的 JSON 里,action字段决定后续行为(分类逻辑在tools/cad_formats.py,判定在tools/cad_scan.py的recommend_action):
action | 含义 | 怎么做 |
|---|---|---|
ask_enable_step_parse | 发现了.step/.stp | 不中断成文;记下step_files,交底落盘后在「交付后请确认」第 1 条反问用户是否开启 |
hint_export_step | 只有原生 CAD / IGES | 不中断;提示可在 SolidWorks / Creo / Inventor / NX 等中导出 STEP 后再开启 |
none | 无相关文件 | 忽略 |
后缀分类的边界要记住:.step/.stp是唯一可解析目标;.sldprt、.ipt、.prt、.catpart、.dwg等原生厂商格式本技能不直接解析;.stl/.3mf/.obj网格只单独列出、弱提示。
用户回复「是」之后,命令序列分三步:
python skills/patent-disclosure/tools/cad_venv.py用途:探测名为cad-env的隔离虚拟环境(要求 Python 3.10–3.12);输出 JSON 的ok为 true 就跳过安装。
python skills/patent-disclosure/tools/bootstrap_cad_venv.py用途:ok不为 true 时执行,把 CadQuery 装进隔离 venv(执行前先向用户说明会耗时较久);禁止把 CadQuery 装进主环境。
python skills/patent-disclosure/tools/run_step_to_views.py --enable-step-parse \ -i "<path/to/model.step>" -o "outputs/{案件标识}/cad_views"用途:正式转换。--enable-step-parse缺省时脚本输出step_parse_disabled并以退出码 3 拒绝,这是门禁在源码层的双重保险之一(另一个是环境变量PATENT_SKILL_STEP_PARSE=1)。
转换产出落在输出目录里:views/下是 iso / front / top / right 四个标准投影的 SVG(有 Cairo 或无头浏览器时另有 PNG),外加assembly_tree.yaml(装配树)、structure_schema.seed.yaml(部件表种子)、figure_plan.seed.yaml(附图计划种子)和一份 manifest。种子文件里 CAD 条目统一标kind: cad、use_in_disclosure: false——CAD 投影永远只是生图材料,不得当线稿入文。
验证手段有三处:测试tests/test_cad_step_scan.py断言parse_enabled(False)返回False(默认关)、断言tests/fixtures/cad/demo_snap_plate.step必然触发ask_enable_step_parse、断言 seed 中 CAD 条use_in_disclosure为false;运行时验证看退出码(3 = 未放行)与 JSON 的error字段。用户回「否」则记录决定、保留已交付稿,回复末尾可留一句"日后可导出 STEP 再开"。
线稿门禁:默认开,但件号对齐是硬约束
外观与实用新型的案件在成文前必须有入文线稿,这一步默认开启、不问用户,只有用户明确拒绝或设了PATENT_SKILL_SKIP_LINEART=1才整段跳过。线稿来源只有两条:材料里已有合格kind: lineart,或大模型生成(图生图,失败降级为文生图)。
先跑规划脚本确定走哪条路:
python skills/patent-disclosure/tools/image_gen.py --case-dir "outputs/{案件标识}"用途:读案件目录,判定existing_lineart/img2img/txt2img三种模式之一。
结构线稿多一道件号对齐校验,门禁脚本是:
python skills/patent-disclosure/tools/structure_lineart_gate.py \ --case-dir "outputs/{案件标识}" --prepare-jobs用途:校验structure_lineart_brief.yaml后写出lineart_assist/structure_lineart_jobs.json。校验逻辑(validate_brief)防的是"模型自创件号":parts_legend里每个 id 必须存在于structure_schema.parts且名称一致,视图的visible_part_ids必须落在已知件号内,callout_mode只接受overlay/in_prompt/contour_only三值;校验不过以退出码 2 拒绝。序号层推荐overlay模式——先出纯轮廓,再用tools/structure_callout_overlay.py按部件表叠引出线,禁止让生成模型直接画件号。
外观侧对应脚本是tools/design_lineart_gate.py(用法同上):它不强制"有图"——brief 的source_paths为空时允许走文生图,但只要填了路径就必须真实可读,缺图即报源图不存在。测试tests/test_design_lineart_gate.py覆盖了"默认开、skip 生效、空 source_paths 可过、有图时 job 带reference_images"四类断言。
收口:figure_plan.yaml 是唯一附图合同
扫描与线稿的产出最终都收敛到一份figure_plan.yaml(规范见references/schemas/figure_plan.schema.yaml):每张候选图经识图打分后写入path、role、kind、relevance、quality、score、use_in_disclosure、reason等字段。后续成文与迭代只读这份清单中use_in_disclosure: true的条目,不再回assets/里临场挑图。硬规则有两条:入文图必须有唯一正整数fig且从 1 连续编号;kind: cad的条目禁止use_in_disclosure: true。合格的入文线稿须满足kind: lineart且score>=70。
以仓库自带的外观光照台灯示例(skills/patent-disclosure/examples/example_design_desk_lamp/knowledge/)为例:
assets/里的正投影、立体图与实拍须逐张识图打分填appearance_schema并写出figure_plan.yaml;场景图(棚拍、包装)默认低优先级,只作reference不入文。
Step 2 的完整交付物就是三样:材料摘要(含 Office 转换 MD 的引用)、引用路径记录(供脱敏)、figure_plan.yaml草稿。它们直接作为 Step 3 之后专利点挖掘、Step 5 查新与各类型disclosure_builder.md成文的输入;多轮补材料后重跑cad_scan与线稿门禁,保持清单同步。
速查表
| 操作 | 默认态 | 放行条件 | 越线后果 |
|---|---|---|---|
| STEP 多视角解析 | 关 | 用户回「是」+--enable-step-parse或PATENT_SKILL_STEP_PARSE=1 | 退出码 3,step_parse_disabled;擅自装 CadQuery 进主环境即破坏隔离 |
| CAD 分类扫描 | 开(轻量) | 无需确认,cad_scan.py直接跑 | 无;它是门禁前置,不是被拦截方 |
| Office / PDF 转换读取 | 开(强制) | 无需确认 | 漏读.docx/.pptx属流程违规,素材缺失 |
| 外观 / 结构线稿 | 开 | 默认可跑;PATENT_SKILL_SKIP_LINEART=1或用户明确拒绝才停 | 件号不对齐parts、自创件号、CAD 投影入文都会被门禁或 figure_plan 规则拒绝 |
【免费下载链接】patent-disclosure-skill中国专利.skill:专利点挖掘与交底书(发明/实用/外观)编写,通俗解读专利,嗅探政策动向,辅助审查答复。项目地址: https://gitcode.com/GitHub_Trending/pa/patent-disclosure-skill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考