将浙江大学 MEM 学位论文 LaTeX 项目(zjuthesis/body 或 chapters/,可含 ref.bib/PDF)或普通 md/docx 草稿生成或审计为符合官方模板的 DOCX,优先使用 scripts/mem_docx.py(latex/draft 子命令)。仅在用户明确要运行/维护 thesis-docx 管线、把该类论文/草稿转 Word、或诊断该管线输出时使用;不要用于普通 Word 排版、通用三线表、非 ZJU MEM 论文、参考文献咨询。
Scanned 9/6/2026
Install to Claude Code
npx -y skills add gxgeek-n/wenqu-mem --skill thesis-docx --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Thesis Docx?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gxgeek-n-thesis-docx)More formats (shields.io, HTML) on the badges page.
---
name: thesis-docx
description: 将浙江大学 MEM 学位论文 LaTeX 项目(zjuthesis/body 或 chapters/,可含 ref.bib/PDF)或普通 md/docx 草稿生成或审计为符合官方模板的 DOCX,优先使用 scripts/mem_docx.py(latex/draft 子命令)。仅在用户明确要运行/维护 thesis-docx 管线、把该类论文/草稿转 Word、或诊断该管线输出时使用;不要用于普通 Word 排版、通用三线表、非 ZJU MEM 论文、参考文献咨询。
---
# thesis-docx
浙大 MEM 学位论文 LaTeX 或普通草稿 -> Word(DOCX) 一键生成与审计。默认目标是可编辑
Word 导师批注稿;送审正本仍以 LaTeX 直接导出的 PDF 为准。草稿路径只做机械排版,
不改写内容。
## 硬规则
- 只改生成器、模板资产、LaTeX 源或本地 config;不要手改最终 DOCX。
- 论文正文只在 `thesis-work` worktree 改,先 `pwd`/`git status` 确认位置。
- 姓名、学号、导师等 PII 只放本地 `~/.config/wenqu-mem/*.json`,不进仓库。
- 致谢、作者简历不代写编造;可保留占位并提示人工补。
- `wenqu-mem` 是公开仓。本地 commit 可以做,未经用户同意不要 push;提交信息不要带 AI 署名尾注。
- Word/WPS 视觉验收以打开后全选 F9 更新域为准。LibreOffice 只作粗冒烟,不能作为最终页数依据。
## 先读
做非平凡修改前,先读最相关的 reference,不要把所有历史塞进提示词:
- `references/conversion-rules.md`:转换规则、字段、表格、引用、审计依据。
- `references/official-format-requirements.md`:官方 2024 模板抽取出的格式要求。
- `references/visual-qa-checklist.md`:Word/WPS 更新域后的视觉验收清单。
- `references/draft-normalizer.md`:普通 md/docx 草稿路径的结构识别和 report 规则。
需要跨会话背景时用共享记忆:
```bash
kb search "thesis-docx"
```
## 适用边界
- 应触发:用户要从 ZJU MEM LaTeX 工程生成/审计 DOCX,或把 md/docx 草稿机械排版成 MEM 规范 DOCX,或维护本目录下的生成管线。
- 不应触发:普通 Word 排版、一次性 DOCX/PDF 编辑、非 ZJU MEM 论文、参考文献咨询。
- 输入:`zjuthesis` 根目录,或普通 `draft.md` / `draft.docx`;本地 `thesis.json`;可选模板/CSL/reference docx;目标输出路径。
- 输出:生成的 DOCX、结构/样式审计结果、可选 Word 渲染 QA 报告。
- 成功标准:一键命令可重复生成;`audit_style_contract` 和 `mem_docx.py validate --json` 通过;需要视觉判断时 Word 全选 F9 后无未更新字段占位。
## 一键生成
先在 `wenqu-mem` 仓库根目录准备本地 Python 环境;后续命令优先用这个解释器:
```bash
cd /path/to/wenqu-mem
python3 -m venv .venv
.venv/bin/python -m pip install -U pip
.venv/bin/python -m pip install -r requirements.txt
```
还需要系统命令:`pandoc`、LaTeX 工具链、Microsoft Word(仅 Word 渲染 QA 需要)。
macOS 常用:
```bash
brew install pandoc
```
**推荐入口 = `mem_docx.py`(或 pip 安装后的全局 `mem-docx`)——scripts/ 下唯一顶层可执行
入口,不再有 `merge_docx.py`/`format_draft_to_mem.py` 等平级薄壳脚本**。透传子命令
`latex/draft/validate/render/gate/importers/redline/comments/frontmatter/body` + 原生子命令
`check/test/doctor/clean/visual`:
```bash
export PATH="/opt/homebrew/bin:/Library/TeX/texbin:$PATH"
PY=/path/to/wenqu-mem/.venv/bin/python
SK=/path/to/wenqu-mem/skills/thesis-docx
"$PY" "$SK/scripts/mem_docx.py" latex --root /path/to/zjuthesis --out ~/Desktop/论文_混合.docx \
--config ~/.config/wenqu-mem/thesis.json --csl "$SK/assets/gb7714-2015-numeric.csl"
"$PY" "$SK/scripts/mem_docx.py" check out.docx --chapters-dir ... --config ... --json # 一键全体检(schema必跑,缺参的gate明示skipped)
"$PY" "$SK/scripts/mem_docx.py" test # 跑全部 test_*.py 统一汇总
"$PY" "$SK/scripts/mem_docx.py" doctor # 依赖体检(硬依赖缺=exit 1;node/Word/redlines/docxtpl为软依赖)
"$PY" "$SK/scripts/mem_docx.py" clean # 运行产物退休:各运行目录保最新3个+清__pycache__/egg-info(--dry-run 先看)
"$PY" "$SK/scripts/mem_docx.py" importers draft.docx --json # 对比 pandoc/mammoth/markitdown importer
```
可选 pip 安装(editable,之后任意目录直接敲 `mem-docx`;红线强引擎为 extras):
```bash
"$PY" -m pip install -e "$SK/scripts" # 基础
"$PY" -m pip install -e "$SK/scripts[redlines]" # + Python-Redlines(WmlComparer)强引擎
```
盲审隐名前置页(作者/导师置空、保留下划线;显名默认;作者简历页 `cv` 不联动本开关,
该页本为占位,仍需人工补真实内容):
```bash
"$PY" "$SK/scripts/mem_docx.py" latex --root /path/to/zjuthesis --out ~/Desktop/论文_盲审.docx \
--config ~/.config/wenqu-mem/thesis.json --blind
```
普通草稿(无 LaTeX 工程)走 `draft` 子命令:
```bash
"$PY" "$SK/scripts/mem_docx.py" draft \
--input /path/to/draft.md \
--config ~/.config/wenqu-mem/thesis.json \
--out ~/Desktop/论文_草稿规范化.docx
```
md 草稿可选自动编号(pandoc-crossref,按章产 `图1.1 题注` 与解析 `[@fig:x]` 引用;
二进制缺失自动降级 none 并写入报告;模板类元数据必须走 `--metadata-file`,`-M` 会静默不展开):
```bash
"$PY" "$SK/scripts/mem_docx.py" draft --input draft.md --number-mode crossref \
--config ~/.config/wenqu-mem/thesis.json --out out.docx
```
`draft` 同样支持 `--blind`(隐去封面/题名页作者与导师姓名)。
PDF 抽取等**已预结构化**的 md(自带显式 `#` 标题)须加 `--trust-headings`——跳过正则
自动升格(拍平表格的数字开头碎行会被误判成章标题,实测被内容门禁逐字揪出)。
PDF 本身不是直接输入:先 `pdftotext -layout` 抽取+清洗出带 `#` 标题的 md(表格需
pdfplumber/MinerU 恢复或人工重建),再走本子命令。`.docx` 草稿同理:
```bash
"$PY" "$SK/scripts/mem_docx.py" draft \
--input /path/to/draft.docx \
--config ~/.config/wenqu-mem/thesis.json \
--out ~/Desktop/论文_草稿规范化.docx
```
`.docx` 草稿默认仍用 pandoc 归一化。需要排查 pandoc 对散乱 DOCX 的识别差异时,可显式试验:
```bash
"$PY" "$SK/scripts/mem_docx.py" draft \
--input /path/to/draft.docx \
--config ~/.config/wenqu-mem/thesis.json \
--docx-importer mammoth \
--out ~/Desktop/论文_草稿规范化_mammoth.docx
```
`markitdown` importer 仅作为可选实验路径,未列为必装依赖;使用前需自行安装。无论使用哪个 importer,
最终仍必须通过 `gate` 子命令的内容指纹和样式门禁。
需要横向比较 importer 时先跑 benchmark,而不是凭视觉猜:
```bash
"$PY" "$SK/scripts/mem_docx.py" importers /path/to/draft.docx \
--workdir ~/Documents/Codex/word-work/importer-bench \
--json
```
benchmark 会对同一 DOCX 依次跑已注册 importer,报告标题识别、摘要/关键词、参考文献、预览、
`docx2python` 诊断和失败原因;失败 importer 不拖垮整份报告。
`$PY` 必须能 import `docx`、`lxml`、`docxcompose`、`fitz`、`docx2python`、`mammoth`。若 import 失败,
回到仓库根目录重跑上面的 `.venv` 安装命令,或跑 `mem_docx.py doctor` 定位缺失项。`docxtpl/Jinja2`
是软依赖,只在模板含 Jinja 标签时启用;默认官方模板无标签,不会接管封面布局、页眉页脚或字段。
常用项目路径:
```bash
/path/to/zjuthesis
```
只调前置页(跳过重建正文):
```bash
"$PY" "$SK/scripts/mem_docx.py" frontmatter \
--root /path/to/zjuthesis \
--out front.docx \
--config ~/.config/wenqu-mem/thesis.json \
[--blind]
```
前置页默认使用 `assets/zju-mem-frontmatter-master.docx` 这个脱敏预清理母版,只替换封面字段、
摘要、关键词和 Word 字段开关。旧 `build_docx.py` 生成器已删除;如需回看历史,用 git 找回。
只调 pandoc 正文(跳过前置页):
```bash
"$PY" "$SK/scripts/mem_docx.py" body \
--root /path/to/zjuthesis \
--skip-front-matter \
--out body.docx \
--reference-doc "$SK/assets/zju-reference.docx" \
--csl "$SK/assets/gb7714-2015-numeric.csl"
```
`frontmatter`/`body` 两个子命令分别透传给 `thesis_docx.pipeline.frontmatter`/
`thesis_docx.pipeline.body`;两者也都保留独立可执行能力,等价地可用
`python3 -m thesis_docx.pipeline.frontmatter` / `python3 -m thesis_docx.pipeline.body` 调试单个工序。
## 管线结构
`mem_docx.py latex`(`thesis_docx.pipeline.merge`)串联两条路线:
1. 以 `python3 -m thesis_docx.pipeline.frontmatter` 子进程从 `assets/zju-mem-frontmatter-master.docx` 渲染前置页:封面、声明、授权、题名页、摘要、目录、罗马页码;如果母版缺失或渲染失败,`latex` 子命令直接失败,避免悄悄回到旧生成器。
2. 以 `python3 -m thesis_docx.pipeline.body --skip-front-matter` 子进程生成正文:第 1 章到参考文献/附录/致谢/简历,保留 OMML 公式、gb7714 参考文献和 `.aux` 真编号。
3. docxcompose 合并后执行分节、字段、样式、字体、参考文献、后置分页、附录副题、三线表和审计收口。
`mem_docx.py draft`(`thesis_docx.pipeline.draft_format`)复用后半段:
1. `draft.md` 直接进入 markdown 归一化;`draft.docx` 先用 pandoc 转 markdown 并抽媒体到固定工作目录。
2. 从草稿抽取中文摘要/英文摘要/关键词/Keywords,交给 `thesis_docx.pipeline.frontmatter.render_frontmatter` 渲染前置页;抽不到时用占位并提示人工补。
3. 正文 markdown 走 `thesis_docx.pipeline.body.markdown_to_docx(..., number_sections=False)`,不让 pandoc 改可见标题文本。
4. 继续复用 `thesis_docx.pipeline.merge.compose` + `thesis_docx` 包内后处理 + `audit_style_contract` + `thesis_docx.qa.content_gate`。
5. 每次运行在固定工作目录写出 `normalized.md`、`body.md`、`body-source.txt`、
`abstracts.json`、`draft_normalize_report.json` 和 `body_quality_report.json`。
`scripts/` 下只有两个顶层可执行文件:`mem_docx.py`(统一 CLI 分发器)与各 `test_*.py`
(测试文件);其余全部实现在 `scripts/thesis_docx/` 包内,直接使用包路径:
- `domain/abstracts.py`:从 LaTeX/PDF 抽取中英文摘要和关键词,供前置页路径复用。
- `domain/draft.py`:普通 md/docx 草稿的结构识别、摘要抽取、工作目录和 normalize report。
- `support/config.py`:封面、章节和字体的默认配置,供生成与验证共用。
- `support/template.py`:可选 docxtpl/Jinja 安全标量预渲染,只允许封面标量变量。
- `ooxml/contract.py`:从官方模板抽取样式合约。
- `ooxml/fields.py`:Word complex field sibling-run 生成。
- `ooxml/field_dsl.py`:bookmark/REF/TC/PAGE/STYLEREF RawOpenXML 小 DSL PoC;先供测试和后续 Lua/filter 前移使用,不替换稳定主线。
- `zju_docx_semantics.lua`:Pandoc 阶段的 CJK softbreak 清理、题注样式标记、TC 短目录项预插入。
- `ooxml/styles.py`:标题、正文族、TOC、题注样式修复。
- `ooxml/fonts.py`:按语境处理中文正文/摘要、英文摘要、题注、参考文献字体槽。
- `ooxml/postprocess.py`:参考文献(挤段自动拆分——PDF 抽取稿条目无空行连成一整段时按
`[n]` 边界拆;citeproc 每条独立成段永不触发)、后置分页、附录英文副题、
**正文引用→上标+点击跳转**(`link_citations_to_bibliography`:文献条目打书签
`bib_ref_n`,正文 `[n]/[n,m]/[n-m]` 包内部超链接锚到条目并加 vertAlign 上标,
与 LaTeX 正本 biblatex 上标口径一致;无对应条目的记号不动;须在
fix_script_mixed_runs 之后跑,两条管线均自动生效)。
- `ooxml/postprocess_links.py`:正文文献/图表交叉引用超链接与书签实现,`postprocess.py` 保留兼容入口。
- `ooxml/tables.py`:题注数据表三线表、列宽、noWrap;表格检查和报告拆到 `table_checks.py` / `table_reports.py`。
- `ooxml/hygiene.py`:文档卫生——`scrub_doc_metadata` 清 docProps 元数据
(creator/lastModifiedBy/Company 置空、revision 归 1;**显名盲审都清**——实锤过
lastModifiedBy 带真名、Company 带公司名 = 文件属性泄漏通道);
`fix_caption_keep_with_next` 题注防拆页(表题样式 keepNext + 图段落 keepNext 粘住下方图题)。
- `ooxml/postprocess.py` 另含 `link_figure_table_refs`:图/表交叉引用点击跳转——题注打书签
`fig_ref_2_1`/`tab_ref_C_1`,正文"图X.Y/表C.1"包内部超链接(不上标);**跨 run 拼接匹配**
(语境字体拆分会把"图"与数字隔开,单 run 匹配为 0 命中——实测教训);目标不存在不动、幂等。
- `qa/audit.py`:最终 OOXML fail-closed 样式门禁;具体断言拆到 `audit_assertions.py`。
- `qa/content_gate.py`:全文 SHA + 段落块指纹 + 差异分类的内容零改写门禁。
- `qa/importer_benchmark.py`:DOCX importer registry benchmark。
- `qa/content_gate.py`:草稿路径内容一致性门禁。
- `qa/validate.py`:LaTeX 源结构、页码、字段、表格、引用和模板残留总验证。
- `qa/render_word.py`:Microsoft Word 渲染截图/字段刷新 QA,LibreOffice 仅为 fallback。
- `qa/redline.py`:两版 DOCX 对照生成带 Word 修订标记的红线稿(builtin/redlines 双引擎)。
- `qa/comments_export.py`:DOCX 批注/修订回流为 LaTeX TODO 表;含 `extract_comments` / `map_to_latex` / `render_todo_md` 三个核心函数 + CLI `main`。
## 关键不变量
### 资产分层
- `assets/` 放可公开复用并可进 git 的脱敏资产:`gb7714-2015-numeric.csl`、`zju-reference.docx`、官方规范模板、前置页母版。DOCX 资产提交前必须 scrub 元数据,并扫描正文 XML 中不得含姓名、学号、导师、绝对路径或 AI 署名尾注。
- `local-assets/` 放本机覆盖资产,已被 `.gitignore` 忽略,不上传公开仓:真实草稿样本、视觉基准、临时渲染件,或需要临时覆盖公开脱敏母版的私有版本。
- 运行时统一由 `thesis_docx.support.assets` 定位资产,查找顺序固定为 `local-assets/` 优先、`assets/` 兜底;缺少硬依赖时 `mem_docx.py doctor` 会报出具体文件和当前来源。
- 本机如需覆盖公开脱敏母版:
```bash
mkdir -p "$SK/local-assets"
cp "/path/to/浙江大学工程管理硕士学位论文规范要求-2024.docx" "$SK/local-assets/"
cp "/path/to/zju-mem-frontmatter-master.docx" "$SK/local-assets/"
```
- 官方模板资产默认在 `assets/浙江大学工程管理硕士学位论文规范要求-2024.docx`。
- 前置页运行时母版默认在 `assets/zju-mem-frontmatter-master.docx`;它是已经清理好说明框、封面布局、题名页、目录字段和前置页分节的稳定 DOCX,运行时只做变量替换。
- 图/表目录使用前置页 `TOC \h \z \f F/T` 加正文隐藏 `TC` 短中文条目,避免双语长题注进目录。
- 复杂字段必须是 sibling runs,不要退回单 run 字段。
- 前置页用静态页眉;正文按一级标题自动分节并写入静态章名页眉,避免 WPS 在章首页把 STYLEREF 解析成“文档中未找到关联章节样式”。
- 中文正文/摘要里出现的 `A公司`、`PDCA`、`Checklist` 等英文缩写仍按中文语境用仿宋;英文摘要/英文题名用 Times New Roman;参考文献按中英文脚本拆分。
- 三线表只审计有正式题注的数据表;公式、注释、空布局表可跳过。
- 合并后正文 10pt 或字体框空白通常是 `basedOn` 悬空(不限 `Normal`,也见 `DefaultParagraphFont/TableNormal`),修复在 `thesis_docx.ooxml.styles.fix_style_inheritance`(按样式名重指,找不到真身则删除悬空 basedOn)。
- **OOXML 顺序规范化**:分散的 OOXML 手术会把 spacing/sz/tblW/headerReference 等 append 到 schema 非法位置(Word/WPS 容忍但不合规);`merge.normalize_ooxml_order` 在 compose 收尾统一按 CT_* 顺序重排(含 settings/m:mathPr、VML shape id 去重),`qa/schema_check.py`(node OpenXmlValidator + Python 结构检查双层)在 validate 链 fail-closed 防复发。新增 OOXML 写入代码优先用 `ooxml/package.py` 的 sort_* 工具收口。
- **中文语境 run 显式 `w:hint="eastAsia"`**:中西共用字符(中文引号/括号)Word 无 hint 按 ascii 字体渲染、WPS 倾向 eastAsia——同一文档两端字形不一致;语境字体与表格文字统一补 hint。
- 官方模板字体考古:封面顶栏名义 `仿宋_GB2312`(模板 fontTable 自带 altName=仿宋,作者机器已无此字体),本管线统一写 `仿宋` 更稳;声明/授权标题 `方正小标宋简体`(altName=微软雅黑)按模板保留——WPS 多自带方正字体、Word 无则回退微软雅黑,**两端渲染字形不同属官方模板固有,非管线 bug**。
- md 草稿的自动编号走 pandoc-crossref(`--number-mode crossref`,文本编号、与 LaTeX 路径 .aux 口径一致);docx 乱排草稿维持保留原编号文本,不猜测散文里的交叉引用。
- 散乱 DOCX 的标题识别是保守规则:确定的章/节标题才提升;中文序号、加粗短行等疑似标题只写入 `draft_normalize_report.json`,需要人工确认。
- DOCX 草稿诊断会用 `docx2python` 补充页眉、页脚、脚注、尾注、图片和文本规模指标;这只增强报告,不替代默认 pandoc 正文归一化。
- 内容门禁报告包含 `sha256(normalized_visible_text)` 指纹;source/target 指纹不一致时视为内容改写风险。
## 验证
语义/字段 smoke test:
```bash
"$PY" "$SK/scripts/test_docx_semantics.py"
```
草稿 normalizer 测试:
```bash
"$PY" "$SK/scripts/test_draft_normalizer.py"
```
结构门禁(含 OOXML schema 双层校验:node OpenXmlValidator 全量 XSD + Python 结构
检查——rels/rid/fldChar/basedOn 悬空 + paraId 唯一性 + 孤儿脚注 + 书签配对为 error,
标题跳级/表格列数不一致为 warning 不掀 ok):
```bash
"$PY" "$SK/scripts/mem_docx.py" validate ~/Desktop/论文_混合.docx \
--chapters-dir /path/to/zjuthesis/body/graduate/master \
--config ~/.config/wenqu-mem/thesis.json \
--json
```
红线稿(两版 DOCX → 带 Word 修订标记的对照稿)——双引擎:
```bash
"$PY" "$SK/scripts/mem_docx.py" redline 旧版.docx 新版.docx --out 红线稿.docx # builtin(默认)
"$PY" "$SK/scripts/mem_docx.py" redline 旧版.docx 新版.docx --out 红线稿.docx --engine redlines # 强引擎
```
- `builtin`:移植自 SecurityRonin/docx-mcp compare.py(MIT,出处已注明),零依赖,
段落 LCS+词级 diff,630 段 0.008s;中文整句级 del+ins;表格不参与 diff。
- `redlines`:Python-Redlines/Docxodus(WmlComparer .NET8 AOT,wheel 自包含免装 .NET,
macOS arm64 实测可用),更细粒度+表格 diff,冷启动约 2-3s。装法
`pip install 'mem-docx[redlines]'`(extras 已锁 `python-redlines[docxodus]`——裸装
python-redlines 缺比较引擎不可用)。代码里 detect_moves 与 simplify_move_markup
**锁死成对**(拆开会产生 Word 报"内容不可读"的 moveFrom/moveTo 标记)。
批注回流(导师批注/修订 → 映射回 LaTeX 源的 TODO 表;锚点文本 NFKC 归一+去 LaTeX
命令噪声,先精确匹配后 difflib 滑窗模糊匹配 ratio≥0.6,置信度 exact/fuzzy/none):
```bash
"$PY" "$SK/scripts/mem_docx.py" comments 导师批注版.docx \
--tex-dir /path/to/zjuthesis/body/graduate/master --out todo.md
```
草稿路径内容门禁:
```bash
"$PY" "$SK/scripts/mem_docx.py" gate \
--source /path/to/body-source.txt \
--source-format txt \
--output ~/Desktop/论文_草稿规范化.docx \
--output-start-heading "第1章 绪论"
```
Word 渲染 QA:
```bash
"$PY" "$SK/scripts/mem_docx.py" render ~/Desktop/论文_混合.docx \
--output-dir ~/Documents/Codex/word-work/thesis-docx-renders/current \
--pages 1,8,11,12,27,89,102
```
`render` 默认把 QA 文件放在固定 `~/Documents/Codex/word-work/...`,
避免 macOS Word 反复弹 `/private/tmp` 沙盒授权。若报告里有
`unupdated_field_markers`,说明目录/图目录/表目录没有真正刷新,不能用那次截图验收。
Windows 下 `render` 子命令(`thesis_docx.qa.render_word`)自动转 `qa/render_com.py`
(pywin32 COM:`Fields.Update`+TOC 逐个 Update+`ExportAsFixedFormat`,`--engine word|wps`;
页图/域检测用 fitz 跨平台)。**该分支按 word-mcp-live/thesis-typeset 的已验证
COM 模式编写,尚未在 Windows 真机实测**,首次使用先跑单文件核对报告。
## Agent 工作流(确定性轨道 + 决策点)
本 skill 的设计是「py 走轨道,agent 站决策点」:转换/门禁/渲染由脚本确定性完成,
agent 的判断只落在下列决策点,且**永远通过可重跑的输入回写**(改 LaTeX/md 源、改
config、改生成器),绝不手改最终 DOCX——保证每份产物可复现、门禁可复跑。
| 决策点 | 读什么 | 动什么 | 重跑什么 |
|---|---|---|---|
| 可疑标题裁决 | `draft_normalize_report.json` 的 warnings | 改草稿 md(升/不升标题) | `mem_docx.py draft` |
| 门禁失败归因 | `check --json` 各 section 的 errors | 改源/改 config/改生成器(判定是内容问题还是管线 bug) | `check` |
| 未定位批注 | `todo.md` 中 confidence=none 条目 | 通读论文语境手动补 LaTeX 定位 | — |
| 视觉复核 | `render` 产出的页图 PNG | 对照 `references/visual-qa-checklist.md` 逐页看图(多模态) | 修后重渲 |
| 红线稿审读 | `redline` 产物 | 判断哪些修订需要回应,配合 thesis-review-response 流程 | — |
## 触发自测
- 应触发:`把 thesis-work 里的浙大 MEM 论文重新生成 DOCX 并审计。`
- 不应触发:`帮我把这个普通 Word 合同排版一下。`
- 边界:`只有 PDF,没有 LaTeX 源,能不能转成规范 DOCX?` -> 不直接使用本 skill,先说明输入不足。
- 边界:`把乱排 docx 草稿排成 MEM 规范,但不要改内容。` -> 使用本 skill 的 `mem_docx.py draft` 路径。
- 回归:`图目录更新后显示整段中英双语题注。` -> 使用本 skill 检查 TC 短目录项和 Word F9 流程。
## 交付习惯
- 每轮非平凡修改后重跑能覆盖改动的最小门禁;影响最终 DOCX 时重跑一键生成。
- 项目提供 `scripts/thesis_quality.py` 时,DOCX 生成与自身校验完成后调用
`thesis-quality-gate` 的 `doctor`;正式交付再运行对应阶段的 `gate`,让结果
绑定当前 DOCX/PDF 哈希。
- 结束时写共享 checkpoint:
```bash
kb checkpoint --title "<title>" --directory "projects" --tags "checkpoint,codex,thesis-docx" --content "<summary>"
```
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!