# Complaint Drafter

> 要素式起诉状生成技能。将用户提供的文字、图片（起诉状照片/扫描件/截图）或已转写语音材料，判定案由是否属于最高人民法院67类要素式文书范围（法〔2025〕82号），命中则生成对应要素式起诉状（在官方标记模板上逐项填空），未命中则生成一般起诉状，最终输出为 Word（.docx）文档。触发场景：用户要求起草起诉状、生成要素式起诉状、把起诉状图片转成 Word、民事/行政/刑事自诉状起草、诉讼文书生成等。当用户提到起诉状、要素式、67类、立案材料、诉讼请求等关键词时使用。

- Skill: `cslawyer1985/complaint-drafter` (Agent Skill, multi-file: 116 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/complaint-drafter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/complaint-drafter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/complaint-drafter

---


# 要素式起诉状生成技能

## 一、能力定位

本技能是"要素式起诉状生成专家"的执行技能。核心任务：把用户上传或描述的纠纷材料，判定案由是否属于**最高人民法院规定的 67 类要素式文书**范围；
- 命中 54 类起诉状模板 → 生成对应的**要素式起诉状**（在官方标记模板上逐项填空后渲染）；
- 命中国家赔偿/执行 13 类 → 生成要素式**申请书**（说明文书性质）；
- 未命中 → 生成**一般起诉状**（原告 / 被告 / 诉讼请求 / 事实与理由）。

最终以 **.docx（Word）** 形式交付。

## 二、核心铁律（忠实渲染四条 · 最高优先级）

生成要素式起诉状时，必须严格遵循以下四条，优先级高于任何"美化"或"简化"冲动：

1. **保留原表格**：必须基于官方 67 类模板的原有表格结构生成，**不得删除、不得改列、不得用通用两列表格替换官方多列表格**。模板里的每一个表格、每一行、每一列、每一个单元格都要原样保留。
2. **不改变表格内的字体**：正文统一宋体、标题与表头统一黑体（与官方版式一致），**不对单元格内既有文字做任何字体替换或样式破坏**；未知项留空即可，但不得删除表格内容。
3. **未知信息可留空，但不得删除表格内容**：材料缺失的要素，留空或填"无"，并保留该单元格原有的标签与提示文字；不得在输出中删去任何行、列或文字。
4. **严禁虚构事实**：所有填写内容必须来自用户材料，不得臆造当事人、金额、日期等；确实无法确认的，留空并在回复中提示用户补充。

> 一句话原则：**在官方模板上"填空"，而不是"重写"官方模板。**

## 三、输入与多模态处理

- **文字**：直接解析用户描述、粘贴文本、合同 / 聊天记录等。
- **语音**：本运行环境**无内置语音转写能力**。若用户上传音频，请先请用户提供文字稿 / 转写文本；若用户已附转写文本则直接使用。

### 3.1 图片起诉状识别与要素式转换（重点能力）

当用户**直接上传起诉状图片**（照片 / 扫描件 / 截图）时，按以下流程提取信息并转换为 **Word 版要素式起诉状**：

1. **图片归一化（推荐）**：若图片方向异常、过大或来自手机拍照，先运行预处理脚本提升识别率：
   ```bash
   python scripts/preprocess_image.py <图片路径> --outdir <临时目录> --max-size 2200
   ```
   脚本会按 EXIF 校正方向、缩放、另存 PNG，并打印归一化路径。清晰规范的图片可跳过此步直接 Read 原图。
2. **视觉识别（OCR）**：用 **Read 工具**逐张读取图片（多页 / 多张逐张读取），识别其中文字与版面，提取当事人、诉讼请求、事实与理由、证据等。详细提取清单与字段映射见 `references/图片识别字段映射.md`。
3. **案由推断**：结合"标题 + 诉讼请求 + 事实与理由"推断案由（第四节提供典型映射），再回查 `references/67类要素式案由清单.md` 判定是否命中 67 类。
4. **生成**：
   - **命中 54 类起诉状模板** → 使用预先生成的**标记模板**：读取 `references/marked/<对应案由>.fields.json`，从图片抽取各字段值写成 `values.json`，调用 `python scripts/generate_complaint_docx.py --fill references/marked/<案由>.docx references/marked/<案由>.fields.json values.json <输出.docx>`（见第五节）。填空仅替换占位符，表格结构 / 字体 / 列宽完全不变。
   - **命中 13 类申请书** → 生成要素式申请书并说明性质。
   - **未命中** → 按 `references/一般起诉状结构.md` 生成一般起诉状 .docx（见第六节 DATA 模式）。
5. **质量校验与回退**：关键信息（被告姓名、金额、关键日期）无法识别时，**不得臆造**——在回复中列出"已识别 / 未能识别"字段，请用户补清晰图片或口述缺失项；可先出带占位符草稿，补全后再定稿。

> 注意：原图若是**已填写的要素式模板**，识别后按同模板结构重组为干净 .docx（保留全部内容，勾选项用 `√/□` 标注），同样遵循"忠实渲染四条"。

## 四、案由判定（关键步骤，必须先做）

1. 用 Read 读取 `references/67类要素式案由清单.md`，掌握 67 类案由及分组。
2. 从用户材料归纳核心法律关系，匹配最接近的案由：
   - 命中"一至六"共 **54 类**（提供起诉状模板）→ 生成**要素式起诉状**。
   - 命中"七、八"（国家赔偿 4 类 / 执行 9 类，共 13 类）→ 生成要素式**申请书**（非起诉状），说明文书性质后按要素式结构生成。
   - 均未命中 → 生成**一般起诉状**。
3. 判定不确定时，向用户确认案由，不要臆造；可在回复中列出候选案由让用户选择。

**典型案由推断映射：**
- 借贷/欠条/拒不还款 → 民间借贷纠纷
- 离婚/感情破裂/子女抚养/财产分割 → 离婚纠纷
- 交通事故/损害赔偿 → 机动车交通事故责任纠纷
- 买房/卖房违约 → 房屋买卖合同纠纷
- 拖欠工资/工伤/解除劳动关系 → 劳动争议纠纷
- 商标/专利/著作权侵权 → 对应知识产权案由
- 行政处罚不服 → 行政处罚（行政）

## 五、要素式起诉状生成流程（标记模板 · 原封不动填空）

> 本流程核心：每个案由都已预先生成**带唯一占位符 `⟦F{n}⟧` 的官方标记模板**。只需从用户材料抽取各字段值，按 id 替换占位符——**绝不用通用结构重写，也绝不重新解析填写稿**，因此表格结构 / 字体 / 列宽永不错乱。

### 5.1 标记模板已就绪（版式 100% 来自官方原文件）

- **数据来源**：标记模板由最高法《67 类要素式起诉状答辩状示范文本》官方原文件（`.doc`/`.docx`）**逐案由截取**生成——直接裁剪原文件中每个案由的"起诉状"表单（表单标题 + 案由名 + 说明框 + 各要素表 + 具状人栏），因此字体、字号、列宽、合并、底纹等官方版式**逐像素保留**，不是程序重建。
- 标记模板：`references/marked/<案由>.docx`（带 `⟦F{n}⟧` 占位符的官方版式表格）
- 字段映射：`references/marked/<案由>.fields.json`，每条含：
  - `id`：占位符编号（对应 `⟦F{id}⟧`）
  - `section`：所属节（当事人信息 / 诉讼请求 / 事实与理由 …）
  - `role`：诉讼地位（原告 / 被告 / 第三人 / 委托诉讼代理人，部分模板因排版顺序可能为空）
  - `label` / `original`：单元格原文（核对填写位置的凭据）

### 5.2 填空步骤

1. **读映射**：用 Read 读取 `references/marked/<案由>.fields.json`，通览字段，定位用户材料能填哪些。
2. **抽值**：从用户文字 / 图片材料中，为各字段写出填写值：
   - 普通栏：直接给完整单元格文字，**保留官方标签与提示**，如 `"姓名：张三"`、`"住所地（户籍所在地）：北京市朝阳区… 经常居住地：…"`。
   - 勾选项：保留官方选项文字，对应项打 `√`、其余 `□`，如 `"性别：√ 男  □ 女"`、`"是否逾期：√ 是  □ 否"`。
   - 与案件无关 / 材料缺失：该字段**不写入 values**（填空时会自动恢复模板原文，绝不留 `⟦F⟧` 残符）。
3. **写 values.json**：`{ "字段id": "填写值", ... }`（id 用数字或字符串均可）。
4. **执行填空**：
   ```bash
   python scripts/generate_complaint_docx.py --fill \
       references/marked/<案由>.docx \
       references/marked/<案由>.fields.json \
       values.json <输出.docx>
   ```
5. **向用户说明**：本状为依最高法示范文本填制的要素式起诉状，提交前请核对并签字 / 盖章，具体以受理法院要求为准。

## 六、一般起诉状生成流程（DATA 模式 · 兜底）

1. 用 Read 读取 `references/一般起诉状结构.md`，按标准结构（原告 / 被告 / 诉讼请求 / 事实与理由 / 证据 / 此致法院 / 具状人）组织。
2. 构造 `DATA`（见下方 schema），写入临时 `data.json`，运行：
   ```bash
   python scripts/generate_complaint_docx.py data.json <输出.docx>
   ```
3. 说明文书性质（一般起诉状，非要素式）。

**DATA（JSON）结构：**
```json
{
  "doc_title": "民事起诉状",
  "reason": "一般起诉状 或留空",
  "include_notice": false,
  "parties": [
    {"role": "原告", "fields": "姓名\n性别：男√ 女□\n身份证号：…\n联系电话：…"}
  ],
  "sections": [
    {"title": "诉讼请求", "free": "可完整表述诉讼请求"},
    {"title": "事实与理由", "free": "…", "elements": [["1. 婚姻关系基本情况", "…"]]},
    {"title": "证据清单", "rows": [["证据1", "证明目的"]]}
  ]
}
```
渲染说明：标题居中加粗（黑体）；当事人信息、要素、证据均用表格；勾选项由内容中用 `√ / □` 标注。

## 七、Word 生成脚本（generate_complaint_docx.py）

脚本位置：`scripts/generate_complaint_docx.py`（自包含，仅需 `python-docx`）。
依赖 `python-docx`：若运行环境缺失，先 `pip install python-docx`。

**模式说明：**
- **`--fill`（填空模式 · 推荐）**：按字段映射把占位符替换为用户内容；未提供的字段自动恢复模板原文，**表格结构 / 字体 / 列宽完全不变**。
  ```bash
  python scripts/generate_complaint_docx.py --fill <标记.docx> <字段.json> <值.json> <输出.docx>
  ```
- **标记模板生成（维护用）**：`scripts/build_marked_from_docx.py` 读取最高法官方 `.docx` 母版，按案由截取"起诉状"表单并写入 `⟦F{n}⟧` 占位符，批量产出 `references/marked/<案由>.docx` 与 `.fields.json`（已执行，覆盖全部 54 类）。需重新生成时：
  ```bash
  python scripts/build_marked_from_docx.py <官方母版.docx> <templates_dir> <out_marked_dir>
  ```
- **`*.txt`（要素式 · 兼容兜底）**：忠实渲染官方模板。
  ```bash
  python scripts/generate_complaint_docx.py <填写稿.txt> <输出.docx>
  ```
- **`*.json`（一般起诉状）**：按第六节的 DATA 构造。
  ```bash
  python scripts/generate_complaint_docx.py data.json <输出.docx>
  ```

## 八、注意事项与免责

- 本技能生成的是**文书草稿**，非法律意见，不构成律师-委托人关系；重大 / 复杂案件建议咨询执业律师。
- 须如实填写，严禁虚构事实（虚假诉讼须担责）。
- 涉及的个人身份、财产信息仅用于本次生成，勿外传或另作他用。
- 文书具体格式、立案要件以**受诉法院最新要求**为准。
- 不主动判定法律责任归属、赔偿金额合理性等需专业裁量的结论，仅在用户给定事实基础上组织文书。
- **绝对禁止**：以"重写/简化"为由删改官方模板的表格结构或文字内容。

