Skip to content
Legal
Skill

/elements-complaint-generator

Use when converting 律师已写好的常规起诉状(md/docx)或对话描述为最高法 67 类官方要素式示范文本形态的 Word 候选文书(法〔2025〕82 号,2025-07-14 全国推广),覆盖民事/商事/行政/知产案由的起诉状、答辩状和相关申请书。不要用于:扫描件直接识别、自由格式文书起草,或代替律师完成法律内容与法院提交要求复核。

BOOST
From plugin
legal-skills
73766 skills
Install
$ npx -y skills add cat-xierluo/legal-skills --skill elements-complaint-generator --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/elements-complaint-generator

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when converting 律师已写好的常规起诉状(md/docx)或对话描述为最高法 67 类官方要素式示范文本形态的 Word 候选文书(法〔2025〕82 号,2025-07-14 全国推广),覆盖民事/商事/行政/知产案由的起诉状、答辩状和相关申请书。不要用于:扫描件直接识别、自由格式文书起草,或代替律师完成法律内容与法院提交要求复核。

SKILL.md

elements-complaint-generator.SKILL.md
name: elements-complaint-generator
description: Use when converting 律师已写好的常规起诉状(md/docx)或对话描述为最高法 67 类官方要素式示范文本形态的 Word 候选文书(法〔2025〕82 号,2025-07-14 全国推广),覆盖民事/商事/行政/知产案由的起诉状、答辩状和相关申请书。不要用于:扫描件直接识别、自由格式文书起草,或代替律师完成法律内容与法院提交要求复核。
license: MIT
homepage: https://github.com/cat-xierluo/legal-skills
author: 杨卫薪律师(微信ywxlaw)
version: "0.16.1"

要素式起诉状生成 Skill(elements-complaint-generator)

一、定位

在最高法 67 类官方要素式起诉状/答辩状模板(法〔2025〕82 号,2025-07-14 全国推广)上做锚点替换,从律师提供的「常规起诉状(Markdown 或 docx)/自然对话/结构化要素清单」中抽取信息,输出通过 DOCX 结构检查与真实 PDF 渲染门禁的要素式 Word 候选文书。法律内容和个案立案要求仍由律师复核。

1.1 分工铁律(Agent 与代码各司其职)

普通起诉状/对话 --[Agent(LLM) 抽取]--> elements.json --[纯代码(lxml) 替换]--> 要素式 docx
                    语义理解                                确定性模板填充
  • **Agent 负责"抽取"**:读常规起诉状 → 按案由 Schema 产出 elements.json(人可复核)。语义理解是 LLM 强项,regex 只做兜底(`extract_from_markdown.py`)。
  • **代码负责"填充与客观版式门禁"**:`fill_template.py` 在模板 XML 上做 `<w:t>` 跨 run 精确替换,再由独立检查器验证结构和真实 PDF 几何;LLM 不直接修改 OOXML。

1.2 当前范围(v0.16.1)

| 维度 | 范围 | |---|---| | 模板 | **113 棵树全量入库**(法〔2025〕82 号完整版:上册42+中册28+下册43,编号01-68按上中下顺序) | | 抽取 | **Agent 会话内抽取为主**;`extract_from_markdown.py` regex 为兜底 | | 模板形态 | **解包 OOXML 源码树**(git 可 diff),渲染时复制→编辑→打包;**22 案由已替换为法院实际发放件基准**(2 表结构,DEC-011) | | 替换引擎 | lxml 直接编辑 `<w:t>`(跨 run 精确替换,多 part 覆盖,`--verify-residual` 残留校验) | | 版式门禁 | 默认把候选 DOCX 交给正式版 LibreOffice 真实渲染,再检查 A4、逐表居中/列位、跨页续接、语义表头、中文字形存活、连续页码、出版物残码和空白页;失败不覆盖目标文件 | | 模板版本 | 法〔2025〕82 号 2025-07-14 推广版(多渠道交叉比对一致) |

1.3 不适用场景

  • 用户要的不是"要素式"格式(如要自由格式起诉状)→ 用 `legal-proposal-generator` 或人工起草
  • 用户仅有扫描件 PDF → 先用 `legal-ocr` 转 md,再走本 skill
  • 用户要批量生成同案由 100+ 份 → 暂不支持(后续加批量模式)

二、架构

┌────────────────────────────────────────────────┐
│ 输入:常规起诉状(md/docx) / 对话 / 要素文件      │
└───────────────────────┬────────────────────────┘
                        ▼
          ┌───────────────────────────┐
          │ Agent 按 Schema 抽要素     │ ← 语义理解(LLM)
          │ (regex 脚本兜底)           │
          └─────────────┬─────────────┘
                        ▼
          ┌───────────────────────────┐
          │ elements.json(人可复核)  │
          └─────────────┬─────────────┘
                        ▼
┌────────────────────────────────────────────────┐
│ fill_template.py(纯代码,确定性)              │
│  复制 templates/<案由>/ → lxml 编辑 <w:t>       │
│  <w:t> 跨 run 精确替换 → pack_docx 打包         │
│  → 残留校验 → DOCX 静态门禁 → PDF 真实渲染门禁 │
└───────────────────────┬────────────────────────┘
                        ▼
          ┌───────────────────────────┐
          │ 要素式起诉状.docx          │ ← 候选交付件,律师复核
          └───────────────────────────┘

三、运行流程(三段式:案由匹配 → 两段抽取 → 渲染)

3.1 ① 案由匹配

读用户材料(起诉状 md/docx / 口述)→ 对照 references/case-routing.md
→ 确定案由编号 + case-type key + 模板树 + reference 文档
→ 拿不准时列 2-3 个候选案由请用户选

3.2 ② 要素抽取(通用块 + 案由特定块)

按 `references/extraction-prompt-template.md` 执行:

  • **通用块**(common-elements.md):当事人 / 代理人 / 调解意愿 / 具状人
  • **案由特定块**(case-types/{{key}}.md §一):诉讼请求勾选与金额 / 保全 / 事实与理由
  • 纪律:材料没有→留空;枚举用选项原文;日期 ISO;产出 elements.json 后**必须用户复核**
  • 兜底:Agent 不可用时 `extract_from_markdown.py`(09/05 已实现 regex 兜底)

3.3 ③ 渲染(纯代码)

# 精调 key 示例:09-private-lending / 22-copyright / 60-enforcement / 65-objection;两位编号(如 06)走通用级
python scripts/fill_template.py \
  --case-type 09-private-lending \
  --elements <案件>/elements.json \
  --output <案件>/要素式起诉状.docx \
  --verify-residual "旧当事人名,旧电话"
  • 复制 templates/<树>/ → lxml 编辑 `<w:t>`(跨 run 精确替换,多 part 覆盖)→ 打包
  • 通用规则(当事人/调解/具状)与案由规则分层复用(DEC-001/002 铁律)
  • `--verify-residual` 残留校验防旧案信息泄漏
  • 默认 `--layout-check rendered`:先在临时候选件上执行 DOCX 不变量检查,再用 LibreOffice 转 PDF 检查真实页面;任一步失败均非零退出,且不覆盖已有目标文件。
  • `--layout-check docx` 只供开发期批量回归,不能据此交付;`--layout-check off` 仅用于定位门禁自身问题,不能据此声称版式通过。
  • 版式例外统一写入 `config/layout-policy.json`。当前仅 22 著作权法院基准件明确不带页码,禁止由全局规则自行补页码。

3.4 回归

`bash tests/run_e2e.sh` — 内容断言与 68 编号冒烟 + 长文本矩阵快速合同 + 113 棵树 DOCX 版式静态门禁 + 21 类文书真实 PDF 渲染 + 版式违规正反例。

68 棵主文书的发布级长文本矩阵独立运行,不塞进日常 E2E:

python tests/smoke_render_longtext.py \
  --rounds 3 --require-full \
  --json-output tests/output/longtext-report.json \
  --evidence-dir tests/output/longtext-evidence

该入口为每棵主文书生成确定性的长当事人、长诉请和长事实输入,逐类先预热一次,再连续计量三轮;每轮复用正式 DOCX/PDF 门禁,并记录页数、连续页码、空白页、字形存活、候选内容哈希和稳定指纹。证据目录必须为空,拒绝复用旧产物;定位波动时可加 `--evidence-all-rounds` 保留每轮 DOCX、PDF 与关键页截图。

四、依赖与模板资产

4.1 运行依赖

| 工具 | macOS 安装 | 用途 | |---|---|---| | Python 3.11+ | 系统自带 | 运行 scripts | | lxml | `pip3 install lxml` | XML 编辑与 DOCX 版式检查(硬依赖) | | PyMuPDF | `pip3 install pymupdf` | 读取真实渲染 PDF 的页面几何与页码(默认交付路径需要) | | LibreOffice 正式版 | `brew install --cask libreoffice`<br>Linux: `sudo apt-get install libreoffice` | 默认交付路径的 DOCX→PDF 真实渲染;开发版/alpha 构建不能作为中文视觉验收依据 |

首次运行默认渲染路径前安装 Python 依赖:`pip3 install lxml pymupdf`。缺少 LibreOffice 或 PyMuPDF 时,脚本会明确报错并拒绝发布目标文件,不会静默降级为“已验证”。

4.2 模板资产

templates/                     # ★ 模板唯一权威源(113 棵 OOXML 源码树,git 可 diff)
  01-侮辱案刑事附带民事-刑事附带民事自诉状/   # 上册 01-21:刑事自诉4+民事9+商事8
  05-离婚纠纷-民事起诉状/                     #   (起诉状+答辩状成对)
  09-民间借贷纠纷-民事起诉状/                 # ← 规则已实现
  30-垄断纠纷-民事起诉状/                     # 中册 22-36:知产民事9+知产行政6+垄断行政
  44-行政处罚-行政起诉状/                     # 下册 37-68:海事4+环资3+行政11+行政答辩+国赔4+执行9
  55-行政答辩状/  60-强制执行申请书/           #   单文书目录(树名=编号-案由)

templates/templates-manifest.json             # v2 清单:树↔源文件↔SHA-256 溯源 + 命名规范化记录

**为什么用解包树而非 docx**:docx 是 zip 二进制(git diff 乱码);解包后是纯文本 XML,模板迭代、官方版本更新、每次填充差异全部可 diff/可 review/可回滚。**每案由存完整树**(自包含、互不污染,不抽公共 base 防止格式铁律破防)。

4.3 模板入库流程(新案由 / 官方更新时)

# 完整版为原生 OOXML docx,直接批量解包入库(上中下顺序,编号 01-68):
python scripts/ingest_full_templates.py \
  --source "~/Desktop/要素式起诉状模板/67类完整版(起诉状+答辩状+第三人意见陈述书)" \
  --templates templates --overwrite
# 若源是 OLE2 老格式(如 67类/ 平铺目录),先转再入:
python scripts/ole2_to_docx.py --input ~/Desktop/要素式起诉状模板/67类 --output /tmp/ecg-docx \
  --manifest templates/templates-manifest.json --include 'NN-*'
python scripts/unpack_docx.py --input /tmp/ecg-docx --output templates --overwrite
# ③ 反向打包(校验/出件用)
python scripts/pack_docx.py --tree templates/06-买卖合同纠纷-民事起诉状 --output 检查.
Read more
Ships withlegal-skills

面向法律人的 Skills 集合。

Get the whole plugin

Other skills on legal-skills.

agent-email
Skill

agent-email

Agent 专用邮箱统一管理:让 Claude Code、Codex 等平台的 Agent 用一套命令收发邮件、整理收件箱、分发任务。支持网易 ClawEmail(claw.163.com)和腾讯 Agent Mail(QQ…

apple-smart-schedule
Skill

apple-smart-schedule

把一句自然语言(机票/高铁/开庭/会议/截止日期/聚会/看病等)或一张票据截图,自动变成苹果「日历」事件 + 一串按事件类型智能提前的「提醒事项」。在 macOS 上运行、经 iCloud 同步到 iPhone/iPad。当用户说「帮我加个日程/提醒」「机票…

case-dashboard
Skill

case-dashboard

律师案件看板。本地零依赖看板服务(案件总览、任务三态看板、期限预警、进度写回)+周研判分析。当用户说"打开看板/dashboard/案件面板/看下案件进度/给我案件周报研判"时使用。案件状态写入与上下文管理用 case-progress(/progress…

case-progress
Skill

case-progress

案件进度与状态台账管理。案件 case.yaml 的唯一写入引擎(新增任务、推进任务、登记期限、更新案件阶段、校验、存量迁移),Agent 会话的进度加载与写回契约,以及案件进度监控对账。当用户或 Agent…

code2patent
Skill

code2patent

从已开发代码项目中提取技术实现证据,围绕候选专利方案生成算法/软件类说明书式技术交底书,并以“权利要求布局卡 →…