---
name: ipo-doc-formatting
description: 在写 Word 或改 Word 文件时，按招股书 / 审核问询反馈回复的样式要求应用格式（报告/备忘录/尽调等正式文档同归招股书版 000-009）。触发词：「按招股书样式」「招股书格式」「招股书排版」「招股书章节样式」「把这篇改成招股书格式」「这篇按招股书排一下」「按反馈回复样式」「问询回复格式」「反馈回复排版」「反馈回复排版规范」「落实函格式」「套用 000-009 样式」「套 000-009」「报告模板样式」「套模板样式」「把这个 Word 改成XXX格式」「Word 排版规范」「按投行规范排版」「排版规范一点」「文档格式统一」。核心流程：识别文档类型→加载样式模板（assets/templates/ 下报告模板.docx / 反馈回复样式.docx，模板即样式源可自定义）→路由底层工具（tencent-docx 新建 / minimax-docx apply-template 套样式 / tencent-local-office-edit 局部微调，不可用则脚本兜底并标注局限）→应用样式映射（000-009 体系、反馈回复 0011/001 监管问题黑体、标题序号九级链、表格三线表）→校验门禁（样式完整性 + 空段落检测）。与 ipo-write-response 分工：本 skill 管格式层（排版/样式），内容层方法论见 ipo-write-response。
agent_created: true
version: 0.3.0
---

# ipo-doc-formatting

A股 IPO 文档样式应用（2026-08-25 创建，封装专家团「报告样式规范」资产）。核心：把「招股书版（000-009，含报告/备忘录/尽调等正式文档） / 审核问询反馈回复版（0011/001/000-009）」两套文档的**样式体系知识**（模板路径、pStyle 映射、序号规则、表格规则）集中封装，并在写 Word / 改 Word 时路由到底层工具执行。**管格式，不管内容**。

## 何时使用

用户要求给 Word 应用 / 修改以下任一排版要求时，无条件触发：

| 场景 | 触发词示例 |
|------|-----------|
| 招股书样式（含报告/备忘录/尽调等正式文档） | 「按招股书样式」「招股书格式」「招股书排版」「招股书章节样式」「按招股书章节格式写」「把这篇改成招股书格式」「这篇按招股书排一下」「套用 000-009 样式」「套 000-009」「报告模板样式」「按报告模板」「套模板样式」「应用报告样式」 |
| 反馈回复样式 | 「按反馈回复样式」「按问询回复格式」「反馈回复排版」「反馈回复排版规范」「问询函回复格式」「落实函格式」「审核问询回复格式」「按问询函格式排版」 |
| 通用排版要求 | 「把这个 Word 改成 XXX 格式」「排版规范」「按投行规范排版」「字体字号统一」「排版规范一点」「文档格式统一」 |
| 局部样式调整 | 「标题改成黑体」「正文首行缩进」「表格改成三线表」「单位行右对齐」 |

> 若任务同时含「写反馈回复内容」→ 内容方法论走 `ipo-write-response`，本 skill 只负责生成后的样式落地；两者可串联（先写内容、再套样式）。
> 典型用例（触发→执行→产出 全链路示例）见 `references/examples.md`。

## 样式资产索引（先加载，禁止裸写）

> 模板文件路径（**skill 自带，即样式源**）：`assets/templates/`（相对本 skill 目录）
> **模板即样式源（2026-08-25 共享化改造）**：使用者可直接修改/替换 `assets/templates/` 下的 docx——**改模板 = 定制输出样式**，输出将跟随新模板。
> 原权威源（专家团资产，模板更新时以权威源为准回同步）：`C:/Users/Kian_/.workbuddy/plugins/marketplaces/my-experts/plugins/ipo-doc-team/references/templates/`

| 模板文件 | 适用文档 | 样式体系 | 关键样式 ID |
|---------|---------|---------|------------|
| `报告模板.docx` | 招股书章节 / 报告 / 备忘录 / 尽调报告等正式文档 | 招股书版 000-009 | 000 正文、001 一级标题、002-007 二级至七级标题、008 单位、009 备注 |
| `反馈回复样式.docx` | 审核问询回复 / 反馈回复 / 落实函回复 | 反馈回复版（000-009 + 0011/001） | 0011 一级标题（问题编号）、001 问题正文（监管问题黑体）、000 正文、002-009 明细层级 |
| `表格模板.docx` | 以上全部文档的表格 | 三线表 | 报告表格 a6、表格前单位 a5、表格后说明 a4 |

**完整样式定义**（每种样式的字体/字号/对齐/缩进/间距/行距/大纲级别）见 `references/style-map.md`。

## 场景识别与工具路由（决策树）

```
用户请求（写 word / 改 word + 样式要求）
│
├─ 场景A：已有 docx，整套套用样式 ──→ minimax-docx apply-template
│     （source=用户文件, template=对应模板, output=新文件）
│
├─ 场景B：新建 docx（从模板基底填充）──→ tencent-docx 专业创作
│     （创作时声明按 000-009 样式生成；或 minimax-docx create --template）
│
├─ 场景C：局部调整（某段/某表改样式）──→ tencent-local-office-edit 实时编辑
│     （唯一编辑中枢，按 style-map.md 手动应用 pStyle / 直接改格式）
│
└─ 场景D：生成后校验样式 ──→ scripts/check_styles.py
      （统计 pStyle 分布 + 检查必备样式是否应用）
```

**工具调用顺序**（与 writer 工具链一致）：
1. 新建创作 → `tencent-docx`（首选）；失败降级 `minimax-docx create`
2. 已有文件整套套样式 → `minimax-docx apply-template`（实测通过，XSD 校验门禁防损坏）
3. 局部微调/改段落样式 → `tencent-local-office-edit`（唯一编辑中枢）
4. 样式校验 → 本 skill 自带脚本 `scripts/check_styles.py`

**失败降级协议（2026-08-25 用户裁定：脚本兜底 + 标注局限）**：

| 失败场景 | 默认降级 | 交付说明 |
|---------|---------|---------|
| tencent-docx 不可用 | `minimax-docx create` | 注明降级方案 |
| minimax-docx 不可用 | **脚本兜底**：以 `assets/templates/` 对应模板为基底（复制 styles.xml 等部件），仅替换 document.xml（段落 pStyle + 三线表） | 注明「脚本兜底生成」；覆盖不了的元素（封面/TOC/页眉页脚/页码/图片/修订）列出清单标注「待人工处理」 |
| 局部编辑工具不可用 | 脚本直接修改 document.xml 的样式字段 | 注明降级；编辑器同步风险提示 |
| 文档含脚本兜底覆盖不了的元素（封面/TOC/图片等） | 不硬撑——输出 Markdown + 样式应用说明 | 注明非最终形态，建议走专业工具 |
| 校验门禁未过 | 返回 S4/S5 修正后重跑 | 门禁结果摘要（必备样式/裸段落/空段落/跳级） |

## 执行流程（S1-S7）

### S1 识别样式场景
- 用户明确指定（招股书版 / 反馈回复版）→ 直接采用
- 未明确 → 按文档类型推断：含"问题X."编号或【发行人说明】【中介机构核查】→ 反馈回复版；其余正式文档（含"第一节/第二节"、业务与技术、报告、备忘录等）→ 招股书版（000-009）

### S2 加载样式资产
- 读 `references/style-map.md` 对应样式体系表
- 确认模板 docx 存在（`ls` 检查，中文文件名注意编码）
- 新建场景：确定是「以模板为基底填充」还是「从零生成后按表设置」

### S3 工具路由
- 按上文决策树选择工具；调用前 ToolSearch 加载 skill / 工具 schema
- `minimax-docx` 环境备忘：依赖 .NET SDK 8 + 华为云 NuGet 镜像；`apply-template` 前先 `dotnet restore MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj --source https://repo.huaweicloud.com/repository/nuget/v3/index.json`

### S4 样式映射（核心）
按 `references/style-map.md` 将内容段落映射到 pStyle：

| 内容类型 | 招股书版 pStyle（含报告类文档） | 反馈回复版 pStyle |
|---------|----------------|------------------|
| 章 / 问题编号标题 | 001（第一节 XXX，居中分页前） | 0011（问题1.XXX，两端对齐） |
| 监管问题原文 | — | 001（黑体缩进，问题正文） |
| 正文段落 | 000 | 000（首行缩进2字符1.5倍行距） |
| 二级标题 | 002（一、） | 002（一、，加粗） |
| 三级标题 | 003（（一）） | 003（（一），加粗） |
| 四级标题 | 004（1、） | 004（1、，加粗） |
| 五级标题 | 005（（1）） | 005（（1），加粗） |
| 六级标题 | 006（1）） | 006（1），默认） |
| 七级标题 | 007（①） | 007（①，默认） |
| 表格前单位行 | 008（右对齐五号） | 008（右对齐五号） |
| 表格后备注行 | 009（五号首行缩进） | 009（五号首行缩进） |
| 表格 | 报告表格 a6 | 报告表格 a6 |

### S5 标题序号 + 表格规则
- 标题序号九级链 + 「序号前缀≠标题」判定 → `references/rules.md` 第一节
- 表格三线表规范（框线/字号/对齐/tblHeader/合计加粗）→ `references/rules.md` 第二节

### S6 校验门禁
- 成品文档校验：`python scripts/check_styles.py --input <docx或目录> --scenario <招股书|反馈回复>`（`报告` 为 `招股书` 别名，兼容旧调用；默认 `--mode document`）
- 模板/样式库校验：`--mode template`（检查 styles.xml 中 000-009 / 0011+001 / a4-a6 是否齐全；模板正文为空属正常，勿用 document 模式误判）
- 检查项：必备样式已应用（000 + 场景一级：招股书 001 / 反馈回复 0011+001）、无裸正文段落、无空段落（2026-08-25 裁定：段落间禁止空行）、标题层级无跳级
- `minimax-docx apply-template` 自带 XSD 校验门禁（防损坏）
- **任一不符 → 返回 S4/S5 修正后重跑，不交付**

### S7 交付与声明
- 交付物路径 + 样式应用情况声明（"已按招股书版 000-009 样式生成/套用" 或 "已按反馈回复版样式套用"）
- 若从零生成，必须声明"已按报告模板 000-009 样式生成"
- 样式未全覆盖处列出清单（哪些段落待人工复核）
## 样式应用铁律

0. **只改格式、严禁修改原文内容（2026-08-25 用户裁定，最高优先级）**：本 skill 只做样式应用（pStyle/字体/字号/对齐/缩进/间距/边框），**不得增、删、改、移任何文字内容**（含表格内文字、标点、空格、数字、单位）。套用样式后必须用 `check_styles.py --verify-content <原文件>` 校验内容完整性——文本与原文逐字不一致即 FAIL，打回重做，不交付。内容修改（如补数据、改措辞）属内容层任务，走 `ipo-write-response` 等，本 skill 一律不做。
1. **模板先行**：任何文档动笔前先确认模板 docx 存在（`assets/templates/`），优先以模板为基底（保留 styles.xml 样式表）；**模板即样式源，使用者替换模板即定制输出样式**
2. **pStyle 优先于手写格式**：能应用命名样式（000-009/0011/001）就不用直接格式（字体/字号硬编码），保证全文一致性与后续批量修改能力
3. **序号前缀≠标题**："1、""（1）""1）""①"开头的段落可能是正文而非标题——按 `rules.md` 判定：引导句+长句列举（>40字）→ 000 正文；短标题（≤40字）+ 段后独立展开 → 对应标题样式
4. **反馈回复合规展示**：监管问题原文必须 001（黑体），回复正文必须 000（宋体）——黑体宋体对照本身就是审核合规展示，不得混用
5. **不覆盖用户手动格式**：用户已有 docx 中人工调整的格式（非样式体系内容），apply-template 前先与用户确认是否保留
6. **段落间禁止空行/空段落（2026-08-25 用户裁定）**：段落间距一律靠样式 spacing（段前/段后）控制，不得插入无文字空段落分隔段落——样式自带 spacing 已提供间距，空段落破坏样式统一性（命中裸段落检查）、造成间距叠加

## 踩坑记录（实测）

- **中文文件名编码**：Git Bash 向 Python/minimax CLI 传中文文件名参数可能乱码（zipfile 读 报告模板.docx 曾报 "No such item"）→ 优先用 Python `glob.glob`/`os.listdir` 遍历目录取文件，或复制为临时英文文件名再处理
- **minimax-docx 环境**：restore 必须用 csproj（.slnx 不支持 dotnet 8）；依赖华为云 NuGet 镜像
- **apply-template 语义**：把模板样式套到源文件（保留源内容换样式），不是以模板内容为基底——新建场景用 create，套用场景用 apply-template，勿混淆

## 维护与更新

| 变化类型 | 需要改 skill？ | 动作 |
|---------|---------------|------|
| 模板 docx 更新（样式调整） | ⚠️ 视情况 | 同步更新 `references/style-map.md` 对应样式定义 + CHANGELOG 留痕 |
| 工具链变化（minimax/tencent 升级） | ✅ 改 | 更新「工具路由」章节 |
| 新增文档类型样式 | ✅ 改 | 新增场景行 + style-map 样式表 |
| 序号/表格规则裁定变化 | ✅ 改 | 更新 `references/rules.md` |

**版本管理（2026-08-25 固化）**：
- 版本号规则：**功能/结构变更 bump minor（0.2.0→0.3.0），规则裁定/缺陷修复 bump patch（0.3.0→0.3.1）**；模板 docx 更新在 CHANGELOG 对应版本下记录，不单独 bump
- 每次变更同步更新 `CHANGELOG.md`（Keep a Changelog 风格：新增/修正/模板留痕/测试 分类）
- 发布时打 git tag `vX.Y.Z`；当前版本见 frontmatter `version`
