# Litigation Docs Generator

> 民商事诉讼文书成套生成技能（诉状文本生成）。当用户要求起草民事起诉状、生成诉讼文书材料、准备立案材料时触发。自动生成8份配套文书：民事起诉状、诉讼保全申请书、担保书、授权委托书、法定代表人身份证明（仅原告为公司时）、律师接待笔录、利息损失计算表（Excel）、委托代理合同。核心流程：收集信息→法律检索（元典/北大法宝）→强制加载全部模板→逐份按模板生成。所有文书严格由 references/ 下的模板驱动，禁止自由发挥。支持华宇元典、北大法宝等专业法律数据库进行法规和类案检索；当事人任一方为企业时自动检索补全公司信息。推荐使用 DeepSeek 模型以获得最佳法律文书撰写效果。

- Skill: `cslawyer1985/litigation-docs-generator` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/litigation-docs-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/litigation-docs-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: MIT
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/litigation-docs-generator

---


# 诉状文本生成

## 概述

本技能一次性生成民商事诉讼立案所需的全部配套文书，共 8 份（含委托代理合同）。所有文书中的人名/名称、案号、金额等关键信息保持严格一致。

**v2 核心升级**：模板系统从「纯内容描述 + Python 硬编码格式」升级为「YAML 格式声明 + Markdown 内容 + 统一渲染引擎」。所有格式规则集中在模板文件的 YAML frontmatter 中，Python 代码 (`render_docx.py`) 只负责解析和变量替换，不带任何格式判断。

**v2.2 新增**：支持委托代理合同一键生成。案件信息收集完毕后，合同中 80% 字段自动从已有数据复用（原告→甲方、被告→对方当事人、律师→乙方等），仅需额外确认律师费金额和收款账户即可输出完整合同。

## 适用场景

- 用户说「帮我写起诉状」「准备立案材料」「生成诉讼文书」
- 案件类型：**仅限民商事案件**（合同纠纷、侵权、债务、公司纠纷、劳动争议等）
- 不适用：刑事案件、行政案件

## 前置检查（必须执行）

### 1. 法律数据库连接器检查

本技能支持通过以下专业法律数据库进行法规和类案检索：

| 连接器 | 数据库 | 功能 |
|--------|--------|------|
| `yuandian-mcp` | 华宇元典 | 法规检索、类案检索、企业信用信息 |
| `pkulaw` | 北大法宝 | 法律法规、司法案例、法学期刊 |

每次生成文书前，按以下逻辑检查：

**情况 A：至少一个数据库连接器已连接**
→ 使用已连接的数据库进行法律检索。如同时连接多个，优先使用元典。

**情况 B：所有数据库连接器均未连接**
→ 不阻止生成，按降级模式运行：

- 跳过数据库法律检索步骤（第二步）
- 法条引用基于模型知识生成
- 在所有文书末尾追加醒目标注：

> ⚠️ 本文书未连接专业法律数据库，法条引用基于 AI 模型知识生成，请在使用前由执业律师逐条核实。

降级模式下先向用户确认：

> 当前未连接任何专业法律数据库（华宇元典 / 北大法宝等）。
>
> 我可以降级运行——引用法条基于模型知识生成，但存在法律幻觉风险。
>
> 是否继续降级生成？或者先去连接数据库？

### 2. 模型推荐

推荐使用 **DeepSeek V4 PRO** 或其他最新 DeepSeek 模型运行此技能，以获得最佳的法律推理和文书撰写效果。如当前未使用 DeepSeek 模型，建议在对话开始前切换。

## 生成清单

每次生成以下 8 份文书，不可遗漏：

| 序号 | 文书名称 | 格式 | 必选/条件 | 生成方式 |
|------|---------|------|----------|---------|
| 1 | 利息损失计算表 | .xlsx | 必选 | `generate_interest_calc.py` |
| 2 | 民事起诉状 | .docx | 必选 | `render_docx.py` + 模板 |
| 3 | 诉讼保全申请书 | .docx | 必选 | `render_docx.py` + 模板 |
| 4 | 担保书 | .docx | 必选 | `render_docx.py` + 模板 |
| 5 | 授权委托书 | .docx | 必选 | `render_docx.py` + 模板 |
| 6 | 法定代表人身份证明 | .docx | **仅原告为公司时** | `render_docx.py` + 模板 |
| 7 | 律师接待笔录 | .docx | 必选 | `render_docx.py` + 模板 |
| 8 | **委托代理合同** | .docx | 推荐生成 | `render_docx.py` + 模板 |

**注意：利息损失计算表排第一位**，作为诉讼请求中利息金额的依据。委托代理合同排第八位，可单独交付客户签署。

## 模板系统（v2 架构）

### 模板结构

每个 `references/*.md` 模板由两部分组成：

1. **YAML frontmatter**（`---` 之间的部分）— 定义所有格式规则
2. **Markdown 正文**（`---` 之后的部分）— 定义内容结构和变量占位符

### 格式约定（YAML 头中的 style 标签）

| 标签 | 说明 | 典型用途 |
|------|------|---------|
| `#` | 文书标题 | 18pt 宋体 bold 居中 |
| `##` | 段落标题 | 16pt 宋体 bold，无缩进，前间距 8pt。用于：原告、被告、诉讼请求、事实与理由、申请人、被申请人、请求事项、事实及理由、委托人、受托人 |
| `body` | 正文 | 14pt 仿宋，首行缩进 28pt（空两格），1.5 倍行距 |
| `cizhi` | "此致"行 | 继承 body 格式，额外 `gap_before: 6pt` |
| `court` | 法院名称 | 14pt 仿宋，**不缩进（顶格）** |
| `sign` | 签名/盖章行 | 14pt 仿宋，右对齐 |
| `date` | 日期行 | 14pt 仿宋，右对齐，模板 `{year}年  月  日` |
| `note` | AI 声明 | 14pt 仿宋，首行缩进 |

### 缩进约定

| 值 | 含义 |
|----|------|
| `indent: false` | 顶格（不缩进），用于：`##` 标题、法院名称 |
| `indent: true` | 使用默认缩进 28pt（空两格），用于：body、cizhi |
| `indent: 28pt` | 显式指定缩进量 |

### 内联标签

Markdown 正文中可用以下标签覆盖默认样式：

| 标签 | 功能 |
|------|------|
| `[sign]文字` | 右对齐签名 |
| `[date]` | 日期（取 `{year}` 变量） |
| `[court]法院名` | 顶格法院行 |
| `[note]文字` | AI 声明注释 |
| `[meta]文字` | 无缩进元数据行（笔录头部） |
| `[qa_gap]` | Q&A 段落间小间隔 |

### 变量替换

模板中所有 `[变量名]` 会被替换为实际值。变量名在 `[` `]` 之间**不包含标签文本**。

- ✅ 正确：`文书送达地址：[原告文书送达地址]`，变量名 = `原告文书送达地址`
- ❌ 错误：`[文书送达地址：送达地址]`，变量名 = `文书送达地址：送达地址`（包含了标签）

**案由变量**：模板中写 `[案由]一案`，变量值应为 `民间借贷纠纷`（不含"纠纷"后缀），避免出现 `民间借贷纠纷纠纷一案`。

### 段落标题统一性

起诉状中 `## 原告：`、`## 被告：`、`## 诉讼请求：`、`## 事实与理由：` 属于同一级别，全部使用 16pt 宋体 bold。保全申请书中 `## 申请人：`、`## 被申请人：`、`## 请求事项：`、`## 事实及理由：` 同理。

当事人的详细信息（如法定代表人、地址等）应放在 `##` 标题行**之后**的 body 行中，而非嵌入标题行内。

示例：
```markdown
## 原告：[原告姓名/名称]，[原告基础信息]
法定代表人：[原告法定代表人]
文书送达地址：[原告文书送达地址]
```

## 排版格式标准（所有 .docx 文书统一遵循）

以下为默认格式，实际以各模板的 YAML frontmatter 为准：

| 项目 | 标准 |
|------|------|
| 纸张 | A4 (210mm × 297mm) |
| 页边距 | 上 3cm，下 2.5cm，左 3cm，右 2.5cm |
| 正文字体 | 仿宋 (FangSong) |
| 标题字体 | 宋体 (SimSun) |
| 文书标题字号 | 18pt bold 居中 |
| 段落标题字号 | 16pt bold（原告/被告/诉讼请求/事实与理由 等） |
| 正文字号 | 14pt |
| 行距 | 1.5 倍行距 |
| 正文缩进 | 首行缩进 28pt（空两格） |
| "此致" | 同正文缩进，上方 6pt 间隔 |
| 法院名称 | **顶格（不缩进）** |
| 签名/日期 | 右对齐 |
| 段间间距 | **不空行**（段落标题由 `space_before: 8pt` 提供视觉分隔） |

## 生成工作流程（v2）

### 第一步：收集案件信息

#### 1.0 委托合同上传（推荐）

在逐项收集信息之前，**主动提醒用户上传《委托代理合同》**（即律师与当事人签订的委托协议）。

> 💡 提示：如果您有已签署的《委托代理合同》（.docx / .pdf / 图片均可），上传后我将自动提取以下信息，省去手动填写：
>
> - 代理律师姓名、执业机构（律师事务所全称）
> - 律师联系电话、律所地址
> - 委托事项和代理权限范围（用于授权委托书）
> - 委托人（原告）信息（可用于交叉核验）
>
> 如果您暂时没有合同或不想上传，也可以手动提供代理信息。
>
> **📋 提示**：如果您有自己的委托合同模板（贵所/团队的常用版本），也可以一并上传。我会将其作为定制模板，后续生成委托代理合同时将直接套用您的模板格式和条款，而非使用系统默认模板。这样生成的合同更贴合您的实际业务需求。

**委托合同处理流程**：

1. 用户上传合同文件后，读取并提取关键信息
2. 将提取的信息填入后续各文书变量中：
   - `律师姓名` → 授权委托书、接待笔录
   - `律师事务所全称` → 授权委托书、接待笔录
   - `律师电话` → 授权委托书
   - `律所地址` → 授权委托书
   - 委托权限内容 → 与现有模板权限列表交叉比对，差异部分提示用户确认
3. 提取结果展示给用户确认，确认后继续收集其余信息

**注意**：如用户选择不上传合同，按原有流程逐项收集代理信息即可，不影响文书生成。

#### 1.1 案件信息收集

逐项收集当事人、案件、保全、代理（如未通过委托合同提取）、利息信息。

### 第二步：法律检索

使用元典 MCP 检索法规和类案。企业当事人自动检索补全工商信息。

### 第三步：加载全部模板和脚本（强制执行）

逐一读取以下文件：

| 文件 | 说明 |
|------|------|
| `references/complaint_template.md` | 起诉状（YAML 格式） |
| `references/preservation_application_template.md` | 保全申请书（YAML 格式） |
| `references/guarantee_letter_template.md` | 担保书（YAML 格式） |
| `references/power_of_attorney_template.md` | 授权委托书（YAML 格式） |
| `references/legal_rep_certificate_template.md` | 法定代表人证明（YAML 格式） |
| `references/interview_record_template.md` | 接待笔录（YAML 格式） |
| `references/retainer_agreement_template.md` | 委托代理合同（YAML 格式） |
| `scripts/generate_interest_calc.py` | 利息计算表生成脚本 |
| `scripts/render_docx.py` | 通用模板渲染引擎 |

### 第四步：生成全部文书

**两阶段生成：**

**阶段 A：利息计算表**
```bash
python3 scripts/generate_interest_calc.py <output.xlsx> \
  --principal <金额> --start <起始日> --end <截止日> \
  --lpr-term 1Y --submitter "<提交人>"
```

- 无约定利率时自动使用 LPR 数据库，按利率变化节点分段
- 利息 = 本金 × 天数 × 利率 ÷ 360
- 相邻同利率段自动合并
- 所有计算列为 Excel 公式（可点击核验）
- 输出含「利息计算表」+「利率数据库」两个 sheet，利息计算表在前

**阶段 B：docx 文书**（逐份调用 `render_docx.py`）
```bash
python3 scripts/render_docx.py <模板.md> <输出.docx> --vars '<JSON>'
```

变量 JSON 示例：
```json
{
  "原告姓名/名称": "示例科技有限公司",
  "原告基础信息": "住所地××市××区××路×号，统一社会信用代码：××××××××××××××××××。",
  "原告法定代表人": "张三，执行董事。",
  "原告文书送达地址": "××市××区××路×号",
  "管辖法院全称": "××市××区人民法院",
  "律师费金额": "待约定",
  "律师费支付方式": "合同签订后三日内一次性付清",
  "律所开户行": "待补充",
  "律所银行账号": "待补充",
  "委托程序阶段": "一审终结",
  "year": 2026
}
```

> 💡 **委托代理合同专属变量**：`律师费金额`、`律师费支付方式`、`律所开户行`、`律所银行账号`、`委托程序阶段` 仅用于委托代理合同。如用户未提供，填入「待约定」或「待补充」，后续手动填写。

#### 8. 委托代理合同 (.docx) — 模板：`references/retainer_agreement_template.md`

**一键生成逻辑**：所有案件信息已在前面步骤中收集完毕，委托代理合同中绝大部分字段可直接复用：

| 合同字段 | 数据来源 |
|---------|---------|
| 甲方（委托人） | `原告姓名/名称` |
| 甲方法定代表人 | `原告法定代表人` |
| 对方当事人 | `被告姓名/名称` |
| 委托案件 | `案由` |
| 管辖法院 | `管辖法院全称` |
| 承办律师 | `律师姓名` |
| 乙方（受托人） | `律师事务所全称` |
| 律师联系方式 | `律师电话`、`律所地址` |

仅需向用户额外确认以下专属字段（已在 1.1 节代理信息收集中询问）：

- `律师费金额` — 律师费总额
- `律师费支付方式` — 一次性 / 分期 / 风险代理
- `律所开户行`、`律所银行账号` — 收款账户
- `委托程序阶段` — 一审终结 / 二审终结 / 执行终结 等（模板自动拼接"时终止"）
- `签署日期` — 合同签订日期

生成后核对：
- [ ] 甲乙双方信息与案件一致
- [ ] 委托权限勾选与授权委托书一致
- [ ] 律师费金额与收费约定一致
- [ ] 收款账户信息准确
- [ ] 双方签章行完整

生成命令：
```bash
python3 scripts/render_docx.py references/retainer_agreement_template.md <输出.docx> --vars '<JSON>'
```

### 第五步：输出与交付

1. 所有文件输出到 `诉讼文书_[原告简称]_[日期]/` 子目录
2. 利息计算表排第一（`01-利息损失计算表.xlsx`）
3. 其余文书按 `02~08` 编号
4. 使用 `present_files` 展示所有生成的文件

## 核心规则（严格遵守）

### 人名一致性

起诉状和诉讼保全申请书中的原告/被告姓名/法定代表人必须完全一致。

### 当事人视角

- 担保书：申请人是原告
- 授权委托书：委托人是原告，受托人是代理律师
- 法定代表人身份证明：仅当原告为企业时生成

### 利息计算规则

- 利息 = 本金 × 天数 × 利率 ÷ **360**（360 天/年）
- 无约定利率时自动使用 LPR 数据库，按利率变化节点分段
- 利率档位：6M / 1Y / 1-3Y / 3-5Y / 5Y，默认 1Y
- Excel 中**所有计算列必须为公式**（`=B11-A11+1`、`=本金*D*C/360`、`=SUM(...)`），禁止写入死数字
- Excel 必须设置 `calcMode="auto"` 确保打开即算

### 变量命名注意事项

- 模板中 `[案由]一案` → 变量值应为 `民间借贷纠纷`（不含"纠纷"后缀）
- 避免在变量名中嵌入标签文本（如 `[文书送达地址：送达地址]`）
- 变量 JSON 中的 key 必须与模板 `[key]` 精确匹配

### 法定代表人字段映射

三个变量表示同一人物的不同粒度：

| 模板 | 变量 | 示例值 |
|------|------|--------|
| complaint / retainer_agreement | `原告法定代表人` | `张三，执行董事` （姓名+职务合写） |
| legal_rep_certificate | `法定代表人姓名` | `张三` （纯姓名） |
| legal_rep_certificate | `法定代表人职务` | `执行董事` （纯职务） |

填充时：已知 `原告法定代表人` 的合写值后，从中拆分出姓名和职务分别填入身份证明的两个变量。反之，如果先收集到姓名和职务，则合并填入 `原告法定代表人`。

## 修改模板指南

如需调整格式或内容，**只改 `references/*.md` 文件**，Python 代码不需改动：

- **改格式**：编辑 YAML frontmatter（字号、缩进、对齐等）
- **改内容结构**：编辑 Markdown 正文（增加/删除段落、调整变量位置）
- **改样式级别**：改 `##` 标签的使用位置

修改后直接重新运行渲染即可生效。

### 委托代理合同模板定制

如果您的事务所有自己的《委托代理合同》标准模板，可以直接替换 `references/retainer_agreement_template.md`：

1. **保留 YAML frontmatter**（formatting rules 不变）
2. **替换 Markdown 正文**为您的合同条款
3. **在相应位置插入 `[变量名]`**，变量名与现有案件数据保持一致（如 `[原告姓名/名称]`、`[律师事务所全称]`、`[律师费金额]` 等）
4. **新增专属变量**：如果您的合同有额外的专属字段（如风险代理比例、阶段收费节点），在 body 中新增 `[新变量名]` 即可，收集信息时一并询问

> 💡 也可以在使用时直接上传您自己的合同文件（.docx / .pdf），AI 会将其内容转为 YAML 模板格式并替换 `references/retainer_agreement_template.md`，后续生成即使用您的定制版本。

## 注意事项

- **不编造事实**：所有事实基于用户提供的信息
- **法条时效性**：引用前确认法规为"现行有效"
- **文书一致性**：生成后交叉核对所有文书中的关键信息
- **原告联系方式**：默认不写原告电话号码
- **证据清单**：起诉状中不生成证据清单章节
- **财产线索**：保全申请书中不以手机号笼统作为财产线索
- **利率风险**：如约定利率超过 LPR 四倍，在起诉状和接待笔录中标注风险提示
- **LPR 数据源**：利息计算脚本内置完整数据库（2006-2026），可通过 `lpr_updater.py` 自动从中国货币网 API 更新

