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外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| 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管控建议与判定依据
- scripts/: 执行本地脚本或命令: dotnet run(本地编译执行自带 Program.cs)
- 网络端点: 声明外部网络访问: 首次 dotnet run 经 NuGet 还原 DocumentFormat.OpenXml/Markdig(SKILL/README 明示 ~20
- 本地工作目录: 文件读写与工件输出: 生成/覆盖用户指定的 out.docx(SKILL 提醒先查 ~$ 锁文件);cp 生成器到文档旁 _docxgen/;验证产物写 /tmp/docx
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…