1实现原理 · 为什么它能做到
分层设计:引擎全部外置到 minimax-skills:minimax-docx(第三方市场插件),本 skill 自称零引擎代码,只带『调试换来的使用知识 + 自研生成器』。
Thin incremental layer over **`minimax-skills:minimax-docx`**. Not a document engine.
中文正式文档生成由自带 C# 生成器实现:Program.cs(~260 行 OpenXML + Markdig)把 markdown 解析成 AST 再按 ECMA-376 组装 docx。
var mdText = File.ReadAllText(args[0]); var pipeline = new MarkdownPipelineBuilder().UsePipeTables().Build(); var docAst = Markdown.Parse(mdText, pipeline);
对齐规则机器可查:含 LineBreakInline(甲方/乙方信息块、签字栏)的段落强制左对齐,其余正文两端对齐——用 inline 树判定而非肉眼。
The rule is machine-checkable, so do not eyeball it: if the markdown paragraph's inline tree contains a `LineBreakInline`, left-align that paragraph; otherwise justify it.
列表编号正确性靠 OpenXML 语义:每个独立列表拿自己的 NumId + LevelOverride(StartOverrideNumberingValue=1),复用同一 NumId 会让条款 3 的列表从 4 继续编号。
Each independent markdown list must get its **own** `NumId` plus a `LevelOverride` carrying `StartOverrideNumberingValue = 1`. Reuse one `NumId` across clauses and clause 3's list silently continues from 4.
CJK 字体必须双槽(RunFonts 的 Ascii/HighAnsi/EastAsia),中文加粗切黑体(宋体无真粗体、合成加粗糊字);尺寸用 OpenXML 半磅。
A run must set `RunFonts { Ascii, HighAnsi, EastAsia }`. Setting only the Latin slots leaves Chinese characters to Word's fallback
强制视觉验证链:生成→XSD validate(minimax CLI)→LibreOffice headless 转 PDF→pdftoppm 出 PNG→逐页 Read;qlmanage 缩略图被明文禁止(ISSUE-008)。
**Banned: `qlmanage` thumbnails as visual proof.** macOS Quick Look renders with a different engine than Word and will happily show a clean-looking page for a document whose info blocks are stretched apart.
文档路由表把 Word/WPS 稿→PDF、Markdown→PDF 分别导向 word-to-pdf.md 与 pdf-creator,明确禁止把权威 Word 稿绕 markdown 往返。
| Existing Word/WPS → repaired layout / selected excerpt → PDF | Keep the Word source; follow `references/word-to-pdf.md` and `references/verification_protocol.md` |
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | dotnet SDK / dotnet run |
| package | DocumentFormat.OpenXml 3.2.0 + Markdig 1.3.2(NuGet) |
| cli | minimax-docx 引擎 CLI(第三方市场插件 minimax-skills,XSD 校验) |
| cli | LibreOffice soffice --headless(验证转 PDF) |
| cli | poppler pdftoppm(PDF→PNG) |
| cli | Microsoft Word.app(可选,macOS 兼容模式复核) |
4风险提醒 风险提醒:黄色 · 留意使用
- 强依赖第三方 minimax-docx 插件 — XSD 校验与 SDK 参考全指向宿主需自装的 minimax-skills 市场插件;插件缺装时校验链断档,其行为也不在本仓可审计范围内。供应链信任交给宿主。
- 验证链重(soffice+poppler+可选真 Word)且部分结果不可自动化 — 『Read every page PNG』与真 Word 人工复核是 skill 的硬要求;无人值守/无 GUI 环境(无 soffice/Word)只能降级,ISSUE-012 类缺陷可能漏过。
- NuGet/网络首跑门槛 — 离线环境首次 dotnet run 无法还原包(~20s 联网),生成器不可用;README 明示该限制。
- 覆盖写风险 — 会覆盖同名 out.docx;SKILL 只提示检查 ~$ 锁文件,宿主需自行保证目标路径正确。
5第二遍独立确认
- [ok] 零引擎代码、能力在 minimax-docx — SKILL.md 自述 'This skill contains zero engine code';本仓 grep minimax-docx 仅命中路径引用,引擎目录不在仓库内——外置关系属实。
- [unlocatable] minimax-docx validate CLI 行为 — CLI 位于宿主 ~/.claude/plugins/marketplaces/minimax-skills/…,不在本 pin 源码内,其 XSD 校验具体行为无法在此核验;SKILL 自身亦承认依赖其安装。
- [ok] 自研生成器 Program.cs — File.ReadAllText+Markdown.Parse+OpenXML 组装流程与 csproj 依赖(OpenXml 3.2.0/Markdig 1.3.2/net10.0)属实;对齐/NumId/字体双槽注释在源码中可定位。
- [ok] qlmanage 禁令与 ISSUE-008 叙事 — SKILL.md Banned 段与 known_issues.md ISSUE-008 记录一致;verification_protocol.md 亦重申。
- [ok] ISSUE-012 真 Word 兼容模式案例 — known_issues.md 含根因(元素顺序/缺 tblGrid 等)与 'LibreOffice 全绿、真 Word 兼容模式' 的复现记录;verification_protocol Step 3a 强制 Word 复核。
- [ok] NuGet 首次还原需网络 — SKILL.md quick start 注明 '(first run restores DocumentFormat.OpenXml + Markdig, ~20s)';scripts/README 依赖表 'NuGet reachable' 行一致。
- [ok] 无凭证/无外发代码 — Program.cs/README/引用文件 token 扫描:无 env 密钥、无 requests/urllib、无 curl;网络仅 NuGet 还原。
- [ok] 元数据 — GitHub API:MIT / 1385 stars / pushed 2026-09-09T12:33:29Z;本地 HEAD==pin d5c4678。
6结论
31fc8fead4571a90…d5c4678cb5