# 技术交底书生成模板（Step 7 · 发明）

**本文件仅用于发明。** 实用新型 / 外观见 `../utility_model|design/disclosure_builder.md`（**勿**用本章 3.2/3.4 mermaid 系统主线去写结构或外观案件）。

详细章节范例与 **mermaid** 图示模版见同目录 **`template_reference.md`**。

## 7.1 章节结构

```
1. 注意事项
2. 一、介绍相关技术背景，描述与本发明技术最相近的现有技术，并说明该现有技术存在的缺点
   - 1.1 现有技术（按技术方向分类，含专利检索结果）
   - 1.2 现有技术存在的缺点
3. 二、针对上述缺点，说明本发明所要解决的技术问题
4. 三、本发明技术方案的详细阐述
   - 3.1 背景
   - 3.2 系统框图（**mermaid**，如 `flowchart` + `subgraph` 分层；交付前经工具转 PNG；**不要** ASCII 文字框图）
   - 3.3 模块功能说明（聚焦作用与关联关系，非输入输出）
   - 3.4 系统流程说明（**mermaid 流程图**，交付前经工具转 PNG；**不要** ASCII 文字/箭头流程图）
   - 3.4.1 符号与公式（出现公式或形式化变量时**须设**；**先**写案件目录 `formula_plan.yaml` 再成文；体例见 **§7.7**、范式库 `references/formulas/`、**`template_reference.md` §3.4.1**）
   - 3.5 关键技术参数（参数表「符号」列与 3.4.1 **同形**）
5. 四、与现有技术相比，本发明具有哪些优点？
6. 五、本发明的技术关键点和欲保护点是什么？
7. 六、其它（实施例、技术效果、参数示例）
```

**第一章 1.1 撰写硬性要求**：在「按技术方向分类」的**每一条**现有技术（专利或文献）末尾或表格中，必须给出 **经核验的公开源 URL**（规范与示例见 `prior_art_search.md` 与 `template_reference.md` §1.1）。**国知局检索**（`EPUB_HITS_JSON`）中对该专利给出的 **`abstract` 非空时**：文中「技术方案 / 应用 / 局限」类表述**须以摘要理解为前提**（消化后重写，非整段粘贴），**禁止**与摘要明显矛盾或脱离摘要杜撰；详见 **`prior_art_search.md`**「`abstract` 必用」。

**禁止输出**：交底书正文中**不得**包含「自检清单」章节，例如检查项表格或带状态符号的清单列。自检见 `disclosure_self_check.md`，**内部执行**，不写入交付正文。

**禁止仓库/技能脚注**：交付用 Markdown **末尾不得**出现任何指向本技能或示例仓库的说明，例如「本文件为 `patent-disclosure-skill` 仓库内教学示例」「不构成任何法律或技术承诺」「虚构教学」「详见 `examples/`」等。正文**止于第六章及此前章节**；**不要**在文末追加斜体免责或仓库署名。

## 7.2 文档头部模板

```markdown
# 技术交底书

**案件名称**：[待填写]一种XXX方法及系统

**技术联系人**：
- 姓名：[待填写]
- 电话：[待填写]
- 邮箱：[待填写]

**专利类型**：发明

---

## 注意事项

（1）交底书应使代理人能看懂，尤其是背景技术和详细技术方案，一定要写得全面、清楚、完整；
（2）技术的公开程度，应以本领域普通技术人员不需付出创造性劳动即可进行实施为准。
（3）在与代理人沟通时，对于代理人咨询的技术问题，应给予回答并认真讲解，并且按要求及时正确地补充相应技术材料。
```

## 7.3 输出文件命名（用户产出目录，必遵循）

在用户目录（如 `outputs/{案件标识}/`）写入交底书 **Markdown / Word** 时，**主文件名须体现正文中的「案件名称」**，且**凡向用户落盘交付的定稿均须带时间戳后缀**（见下第 5 点），避免无区分度的固定名（如一律 `disclosure_draft.md`）。**仓库内 `examples/` 为教学统一可仍用固定名**；用户产出不适用该惯例。

1. **提取**：从 `**案件名称**：` 行取完整发明名称；去掉占位（如 `[待填写]`、`【待填写】`）、首尾空格。
2. **规范化**：删除或替换 Windows 非法字符 `\ / : * ? " < > |` 与换行；连续空格可压为单个空格或删去（中文标题通常无空格亦可）。
3. **长度**：文件名（不含扩展名）建议 **≤ 80 个字符**；超长则**截断**到约 80 字并保留语义完整（例如截在「方法及系统」等结尾词之前），勿用无意义随机串。
4. **定稿命令**：`mermaid_render.py` 的 `-o` / `--docx` 须使用**同一主文件名**，且该主名**必须符合第 5 点**（**案件名 + `_` + 14 位时间戳**）。示例（案件名已按上文规范化、过长已截断时）：

   `python tools/shared/mermaid_render.py -i "…草稿.md" -o "一种异构计算环境下基于资源画像与限频重排队的批任务调度方法及系统_20260408143025.md"`

   默认同目录生成同名 `.docx`。过程性中间稿（仅自用、非交付）文件名可自定，但**最终交付**不得省略时间戳。

5. **时间戳后缀（凡落盘交付必遵循）**：凡写入用户产出目录、作为**向用户交付**的技术交底书 **`.md` / `.docx`**，主文件名须为：  
   **`{§7.3 规范化案件名}_{YYYYMMDDHHmmss}.md`** 与同名 **`.docx`**。  
   - **首次定稿**与**迭代合并/纠正**适用**同一规则**；每次交付取**当次落盘时**的**本地时间** 14 位数字（年月日时分秒各 2 位，如 `20260408143025`）。  
   - **不要覆盖**已有交付文件；新一次交付即**新时间戳**、新文件名。用户**明确要求**覆盖某路径时从其意。  
   - **`mermaid_render.py`** 的 `-o` 与可选 `--docx` 须与上述主名一致。  
   - **例外**：（1）仓库内 **`examples/`** 示例可继续固定文件名；（2）用户书面指定文件名时从其意（仍建议保留时间戳以免混淆）。

Agent **落盘时**即采用上述命名，并在回复中写明路径，便于用户对照标题与磁盘文件。

## 7.4 系统框图与流程图要点

- **系统框图与流程图**均仅用 **fenced mermaid**（`mermaid_render.py` 经 Playwright 出 PNG，不依赖 Node/mmdc 或外网 PlantUML）；Word 中以 PNG 为准，**无需**再附 ASCII 文字框图
- mermaid 内节点标签用简短中文/数字，避免 ①②③。可另写简短「流程说明」段落概括各步，**不得**用 ASCII 框线箭头代替图示

## 7.5 脱敏要求

| 类型 | 脱敏方式 | 示例 |
|------|----------|------|
| 业务/行业 | 抽象为通用描述 | 「XX检测」→「多标签分类场景」 |
| 具体分类 | 用 ABC 等替代 | 「类别1、类别2」→「分类A、分类B、分类C」 |
| 具体数值 | 用范围或示例说明 | 「每日 N 人」→「每日一定规模」 |
| 公司/产品 | 不出现具体名称 | 删除或替换为「某系统」 |

## 7.7 符号与公式体例（必遵）

撰写 **3.4.1**、**3.5** 及全文含 LaTeX 的段落时须遵循；正/反例见 **`template_reference.md` §3.4.1**。  
范式菜单（可外挂扩展）：**`references/formulas/paradigms.yaml`**（说明见同目录 `README.md`）。

### 成文前：`formula_plan`（有公式时必做）

1. **`Read`** `references/formulas/paradigms.yaml`（或先 `python tools/shared/formula_paradigms.py list [--case-dir …]` 看合并结果）。  
2. 在案件目录写出 **`formula_plan.yaml`**（合同：`references/schemas/formula_plan.schema.yaml`）：选定 `paradigm_ids` / 可选 `combo_id`、主式人话、本案符号、**可代入数值例**。  
3. 校验：`python tools/shared/check_formula_plan.py -i …/formula_plan.yaml --eval`；**不通过不得写 3.4.1**。简单式由脚本代入 `numeric_example` 核对；求和/范数/分位等复杂式脚本会警告跳过，须手算。  
4. 再写正文 3.4.1：只展开计划中的式；打分与限频触发宜分式 (1)/(2)。  
5. 建议顺序：**流程文字 → 数值走查（可放第六章草稿）→ 锁定公式 → 回填符号表 / 3.5**。

覆盖范式：环境变量 `PATENT_FORMULA_PARADIGMS`，或案件目录 `formula_paradigms.yaml`。

### 符号表先行

- 撰写 **3.4.1** 或全文含 LaTeX 时，**先写符号与变量定义**（可按（1）任务/对象下标、（2）节点/环境下标、（3）标量与向量分组），每项至少含：**符号、含义、下标含义（如 \(i\)=任务、\(j\)=节点）、量纲或取值范围**。
- 其后公式、**3.5 参数表**、**第六章实施例**中出现的符号须与符号表 **同形、同义**。
- **禁止同一字母多义**：例如任务侧权重用 \(b\)，节点侧饱和度应改用 \(g\)、\(h\) 等其它字母，勿任务/节点共用 \(b\) 表示不同物理量。
- **选题不创作**：主式须来自范式库 `id`；禁止未登记的装饰性「论文风」自创式。平滑用范式 `ema_smooth` + 符号 \(A\)，**禁止** `\tilde`/`\hat`/`\bar` 等装饰音（与范式库 `rules.forbid_accents` 一致）。

### 下标与上标

- **资源维度/类型标签**（cpu、mem、io、peak 等）一律写入 **下标**，维度名用 `\mathrm{cpu}`、`\mathrm{mem}` 等正体，例如 `b_{i,\mathrm{cpu}}`、`a_{j,\mathrm{mem}}`。
- **禁止**用 `^{cpu}`、`^{mem}`、`^{io}` 等 **上标** 表示维度或字段名（易被读作幂次，亦不符合专利正文常见写法）。
- **上标仅用于**：幂次、转置、序号、撇号类标记、以及归一化标记 `^{\mathrm{norm}}`（若选用）；**下标用于**对象编号与维度标签。

### LaTeX 分隔与写法（全文统一）

- **行内公式**：全文统一 **`\(...\)`** 或 **`$...$`** 二选一，**不得混用**。
- **块级公式**：全文统一 **`\[...\]`** 或 **`$$...$$`** 二选一，**不得混用**。
- 比较符优先写 `\leq`、`\geq`（定稿工具可兼容 `\le`/`\ge`，正文仍推荐 `\leq`/`\geq`）。
- 块级公式尽量 **单行写完**；需编号时用 `\tag{1}` 或正文写「式 (1)」，**全文择一**并保持体例一致。
- 逻辑连接词（「且」「或」）优先写在公式 **外** 的中文叙述中；若必须写入公式内，用 `\land`/`\lor`，**避免** `\text{且}` 等复杂文本命令（定稿渲染易失败）。
- 防零除：用与分母 **同量纲** 的 \(\varepsilon\)；**禁止**在容量类分母上裸写 `max(1, b_{\mathrm{mem}})`。

### 跨节一致

- **3.4.1 符号表**、正文首次定义式、**3.5「符号」列**、**第六章实施例** 四处须 **逐字同形**。
- 修改任一处符号时，须同步核对上述各处及 3.3/3.4 文字叙述中的同名变量，并更新 **`formula_plan.yaml`**。

---

## 定稿交付：Markdown + Word（必做）

**版本与覆盖**：凡交付均以 **§7.3 第 5 点**「**案件名 + 时间戳**」落盘，同目录下多文件即版本历史。**可选**：另存 `versions/` 手工快照非强制。

须**同时**交付：

1. **Markdown**：定稿 `.md` **保留** `` ```mermaid`` 围栏源码；能出图时含 ``<!-- ![图示](…png) -->`` 注释引用（由 `mermaid_render.py` 生成）。
2. **Word**：对上一文件执行 `md_to_docx.py`，或使用一条命令：

`python tools/shared/mermaid_render.py -i <含图示的草稿.md> -o "<案件名_YYYYMMDDHHmmss>.md"`（默认在同目录生成**同名** `.docx`；可用 `--docx` 指定路径，`--no-docx` 跳过 Word。Word 失败时见终端提示的手动命令。**默认不出公式 PNG、不安装 matplotlib**。）

（mermaid 出图：Playwright + 内置 `tools/shared/vendor/mermaid.min.js`，与查新共用浏览器，见 `tools/shared/browser.py`。**禁止**为出图执行 `npm` / `npx` / `playwright install chromium`（除非 `--probe` 显示本机无 Chrome/Edge 且无自带 Chromium）。无可用浏览器时**仍须交付 .md**（围栏保留）；Word 可生成但框图可能为代码块，告知用户补浏览器后可重跑本脚本。）

**判读（stderr ≠ 失败）**：以 **退出码 0** 和机读前缀为准：`MERMAID: ok=`、`DOCX: ok=1`、`MATH:`、`omml_text_fallback=`。PowerShell 红字 / `NativeCommandError` / 中文乱码 **不是**失败；**禁止**因此重跑安装或认定 Word 未生成。`DOCX: ok=0` 才按终端里的手动 `md_to_docx.py` 命令补做。

### OMML 失败后的公式 PNG（可选，默认关）

Word 公式主路径为 `latex2mathml` → 可编辑 OMML；失败则 **留 LaTeX 原文**。定稿默认 **不** 预渲染公式 PNG，**禁止**为此自动 `pip install matplotlib`。

若 stderr 出现 `omml_text_fallback=` 或 `OMML_FAIL:` 或 `MATH: ... text=`（`text`>0）：

1. **先完成交付**（仍须写明 `.md` / `.docx` 路径）。
2. 在**本轮回复末尾**反问 **一次**（请回 **是** / **否**），列出失败公式摘要；说明须额外安装 matplotlib（约 100MB，含 numpy 等），图片在 Word 中不可再编辑。
3. 未得 **是**（含未回复）：保持当前 docx，**禁止**安装 matplotlib。
4. 用户回 **是**：本会话最多一次 `pip install matplotlib`（已装则跳过），再对**同一份已定稿 md** 覆盖同名 Word（不必重跑 mermaid）：

   `python tools/shared/md_to_docx.py -i "<同名.md>" -o "<同名.docx>" --base-dir "<md 所在目录>" --math-render`

   仍走 OMML 优先；PNG 也画不出的保持原文，**不要再问第二轮**。

脚本禁止 `input()`；反问只在对话里进行。全成功则不问。

## 7.6 交付回复：权利要求偏向点（建议交互，必做）

每次向用户**交付**本技能产出的定稿（已写明 **`{案件名}_{YYYYMMDDHHmmss}.md` / `.docx` 路径**）时，在**同一条对话回复**中**追加**一段**仅供用户选用**的交互引导（**不得**写入交底书正文、不得出现在 `.md`/`.docx` 内）。

**须交代清楚：**

1. 用户若希望对**第五章「技术关键点和欲保护点」**做更贴近**权利要求书撰写习惯**的强化，可**用一句话说明侧重点**。  
2. 承接方式：Agent **`Read`** **`iteration_context.md`**，再按 **`merger.md`** 以**当前交付稿为基准**合并，**另存**新时间戳 **`.md` / `.docx`**（§7.3 第 5 点），并维护 **`交底书修订对话记录.md`**。  
3. **禁止捏造偏向**：对话里提出的「可对举的两类侧重点」**必须**能从**当前定稿与上游已用材料**中推出——包括 Step 2 扫描文档、Step 3–4 已整理专利点、**第三至五章已写明的技术方案与保护点表述**；**不得**为了凑交互而编造本案未涉及的场景、模块或行业词。若全文仅有一条清晰保护主线，**只须忠实概括该主线**并询问是否改为更「方法/系统/流程步骤」或更「装置/模块」等**书式侧重**（仍须对应文中已有结构，不新增技术事实）。  
4. 在满足上条前提下，可给出**两组可对举的偏向**（用语须**摘编或概括**自正文已有概念，而非套用泛例）；句式可参考：

> 若您希望权利要求/保护点表述更偏「……」或更偏「……」（**二者均须与本稿已阐述的技术路线或保护点一致，仅为书式或强调重心之择**），请说明侧重点；我可按 **`iteration_context.md`** 与 **`merger.md`** 另存一版，对**第五章做权利要求书式强化**（无新材料时其它章节以衔接一致为前提，尽量保持既有结论）。

**合并 / 纠正迭代**若再次交付定稿，**仍须**附带本节同类引导（可缩短为 1～2 句，但须保留「第五章」「新时间戳」「iteration_context + merger」三要素之一或等效说明，且**仍遵守「不捏造」**）。

## 7.7 交付回复：政策感知低频提示（可选）

定稿交付回复末尾，按 **`prompts/evolution/soft_nudge.md`** 决定是否加 **至多一句**（默认低频；不入正文；不自动进入模式 C）。

## 7.8 交付回复：STEP 解析（可选，默认关）

若 Step 2 / 补材料的 `cad_scan` 为 `ask_enable_step_parse`：**先完成交底落盘**，再在**本轮回复末尾**反问一次是否开启 STEP 多视角解析（文案见 `cad_scan` 的 `messages.ask_enable_step_parse`）。**禁止**在 Step 2 中断成文。未得 **是** 禁止 `bootstrap_cad_venv.py` / `run_step_to_views.py`。用户成文前已主动要求开启的除外。`hint_export_step` 则仅在交付末尾提示导出 STEP。细则见 `project_scan.md`「CAD / STEP」。
