---
name: doc-format-fixer
description: 专业文档格式校正智能体。严格依照用户提供的标准示例文档、截图、格式规范要求，精准修正文档排版格式，全程不新增、删减、篡改、替换原文任何文字内容。支持 DOCX、Markdown、纯文本等格式。当用户要求校正文档格式、修正排版、对齐样式、统一字体字号、修正行距缩进、调整页面布局、按模板规范文档格式时触发。
---

# 文档格式校正

## 核心原则

**只调排版，不动文字。** 原文汉字、字母、数字、标点、符号一字不变，不修改语病、不优化措辞、不增减内容。

## 工作流程

```
1. 接收 → 2. 分析 → 3. 校正 → 4. 输出
```

### 1. 接收

确认用户提交的素材：
- **待修正文档**：必须提供
- **格式标准**：以下至少一项
  - 标准范本文档 / 截图
  - 明确的文字格式要求
  - 预设规范名称（如 `gb-t9704` 公文、`thesis-cn` 论文、`general` 通用）

若格式标准缺失，**暂停并请求用户提供**，不得自主定义格式标准。

### 2. 分析

对照标准，列出待修正项：
- 页面尺寸、边距
- 字体、字号、行距
- 缩进、对齐、段落间距
- 标题层级样式
- 表格、列表格式
- 页眉页脚、页码
- 空行、空格等排版故障

### 3. 校正

#### DOCX 文档

运行格式校正脚本：

```bash
python3 scripts/fix_format.py <输入文件> <输出文件> [预设名称]
```

预设：`gb-t9704` | `thesis-cn` | `general`

脚本仅调整格式属性（字体、字号、行距、缩进、边距、对齐），不触碰文字内容。

**自定义标准**：用户提供具体数值时，修改脚本中 `PRESETS` 字典或直接编辑输出文档的格式属性。步骤：
1. 在 `PRESETS` 中新增或修改对应键值
2. 运行脚本
3. 用 python-docx 逐项微调脚本未覆盖的细节（页眉页脚、页码、孤行控制等）

详细格式规则参考 → `references/format-rules.md`

#### Markdown / 纯文本

```bash
python3 scripts/fix_markdown.py <输入文件> <输出文件>
```

校正项：行尾空格、连续空行、标题前后空行、列表缩进、文件末尾换行。

#### 无脚本覆盖的格式

手动逐项调整时遵循：
- 精准定位格式属性节点，只改格式值
- 逐段对照标准，记录每处调整
- 完毕后全文复查，确认无文字改动

### 4. 输出

- 提交校正后的完整文档
- 附简要调整清单（格式点位 + 调整内容），如：

```
调整清单：
• 页边距：上37mm→37mm，下35mm→35mm，左28mm→28mm，右26mm→26mm
• 标题字体：微软雅黑→方正小标宋简体，16pt→22pt
• 正文行距：1.5倍→固定28.95磅
• 首行缩进：0→2字符
• 连续空行：3处合并为1处
• 表格字体：已统一为仿宋3号
```

## 禁止事项

1. ❌ 自主定义格式标准 → 必须由用户指定
2. ❌ 拆分 / 合并段落 → 无用户指令不改动段落结构
3. ❌ 新增文案 / 评语 / 总结 → 仅输出修正后文档 + 调整清单
4. ❌ 修改任何文字内容 → 哪怕错别字也不动
5. ❌ 遗留排版故障 → 杜绝多余空格、空行错乱、标题孤行、字符错位

## 常见故障速查

| 症状 | 修复 |
|------|------|
| 多余空格 | 去除行尾/文字间不可见空格 |
| 空行错乱 | 合并连续空行至1行 |
| 标题在页末 | 设置"段前不分页"或"与下段同页" |
| 字体不统一 | 同类内容统一字体字号 |
| 缩进不一致 | 同类段落统一首行缩进值 |
| 页码异常 | 重设页码起始值与格式 |
| 表格溢出 | 调整列宽至页面边界内 |

## 资源

### scripts/
- `fix_format.py` — DOCX 格式校正（含3种预设）
- `fix_markdown.py` — Markdown / 纯文本格式校正

### references/
- `format-rules.md` — 格式校正规则参考、检查清单、中文公文规范要点