skills/cat-xierluo/legal-skills/legal-text-format

legal-text-format

Installation
SKILL.md

法律文本格式化工具

概述

将法律文本(法律条文或法律案例)转换为规范的 Markdown 格式,删除推广冗余信息,自动识别文本类型并应用相应的格式化规则。

核心职责:只负责格式化和内容清理,不包含内容抓取能力。

与其他技能的协作

典型工作流程

场景:用户请求格式化网页上的法律文本

用户请求 → AI 判断来源 → 抓取类 skill 获取内容 → legal-text-format 格式化

示例流程:

  1. 用户提供微信公众号链接 → AI 使用 wechat-article-fetch 抓取 → AI 调用 legal-text-format 格式化
  2. 用户提供普通网页链接 → AI 使用其他工具抓取 → AI 调用 legal-text-format 格式化
  3. 用户直接粘贴文本 → AI 直接调用 legal-text-format 格式化

技能职责边界

  • wechat-article-fetch / 其他抓取工具:负责从各种来源获取原始文本内容
  • legal-text-format:负责对已获取的文本进行格式化和清理

核心原则

内容完整性保证:除格式调整和去除推广内容外,所有法律案例和法条的实质内容必须完整保留,不得有任何遗漏!

工作流程

步骤 1:分析文本类型

使用 LLM 分析输入文本:

  • 判断是法律条文还是法律案例
  • 识别文本结构特征(章节、条款、案号等)
  • 确定适合的格式化策略
  • 提取主题用于文件命名

分析提示词参考

分析以下文本,判断其类型:
- 如果是法律条文:识别章、节、条的结构
- 如果是法律案例:识别案例标题、案号、案情、裁判结果、典型意义等
- 提取主题用于文件命名

步骤 2:保存原始内容

将输入的原始内容保存为本地 Markdown 文件:

  • 文件位置:archive/{YYYYMMDD_HHMMSS}_{主题}/
  • 文件命名:{YYYYMMDD}_{主题}_raw.md
  • 目的:提供溯源依据,便于内容比对验证

归档目录结构示例

archive/20250122_153400_个人信息保护检察公益诉讼典型案例/
├── 20250122_个人信息保护检察公益诉讼典型案例_raw.md      # 原始内容
├── 20250122_个人信息保护检察公益诉讼典型案例_formatted.md # 格式化后的内容(步骤4生成)
└── meta.json                                              # 元信息(可选)

步骤 3:格式化文本

重要:一次性处理完整文本,不进行分段。

格式化提示词(参考 examples.md 中的详细示例):

请将以下法律文本格式化为规范的 Markdown 格式。

# 法律条文格式化规则
- 章前面添加二级 markdown 格式(##)
- 不同条文之间添加空行
- 每一条条文内部换行时不应有多余空行
- "第X条"进行加粗(**第X条**)
- 如果一段文字的最后没有句号或分号,则删除后方的回车
- 保持所有条文内容完整,不得遗漏任何条款

# 法律案例格式化规则
- 把英文标点符号替换成中文标点符号(包括括号、逗号、句号、冒号、分号等)
- 案例序号或名称前添加二级 markdown 格式(##),序号后要紧跟案例名称
- 每个案例的章节前添加三级 markdown 格式(###)
- 每个案例的章节内部不应有大于1个的空行(连续换行数不超过2个)
- 清理多余的连续空行,保持段落间适当的分隔
- 把数字格式调整为半角
- 内容范围限定:
  - 仅保留从第一个案例到最后一个案例的内容
  - 删除前面的文章介绍、作者信息、引言、目录等
  - 删除底部的宣传推广内容、二维码、公众号介绍、相关文章推荐等
  - 保留标准:只保留案例标题、案号、基本案情、裁判结果、典型意义等法律案例本身的内容
- 保持所有案例实质内容完整,包括案情、裁判、意义等所有部分

# 参考示例
详见 references/examples.md 文件,其中包含4个完整的格式化示例。

法律条文格式化规则摘要

  • 章前面添加二级 markdown 格式(##
  • 不同条文之间添加空行
  • 每一条条文内部换行时不应有多余空行
  • "第X条"进行加粗(**第X条**
  • 如果一段文字的最后没有句号或分号,则删除后方的回车
  • 保持所有条文内容完整,不得遗漏任何条款

法律案例格式化规则摘要

  • 把英文标点符号替换成中文标点符号
  • 案例序号或名称前添加二级 markdown 格式(##),序号后要紧跟案例名称
  • 每个案例的章节前添加三级 markdown 格式(###
  • 每个案例的章节内部不应有大于1个的空行(连续换行数不超过2个)
  • 清理多余的连续空行,保持段落间适当的分隔
  • 把数字格式调整为半角
  • 内容范围限定
    • 仅保留从第一个案例到最后一个案例的内容
    • 删除前面的文章介绍、作者信息、引言、目录等
    • 删除底部的宣传推广内容、二维码、公众号介绍、相关文章推荐等
    • 保留标准:只保留案例标题、案号、基本案情、裁判结果、典型意义等法律案例本身的内容
  • 保持所有案例实质内容完整,包括案情、裁判、意义等所有部分

步骤 4:保存

保存格式化后的文档:

  • 文件位置:archive/{YYYYMMDD_HHMMSS}_{主题}/
  • 文件命名:{YYYYMMDD}_{主题}_formatted.md
  • raw.md 保存在同一归档目录下

参考文档

格式化示例

详细的格式化示例和对比请参见 examples.md,包含:

  • 4个完整的法律案例格式化示例
  • 每个示例包含原始文本和格式化后的对比
  • 格式化要点总结(标点符号处理、标题层级、空行处理、内容范围等)

准确性要求

  • 不改变原文含义:格式调整不得改变法律文本的原意
  • 保留关键信息:案号、法院名称、当事人等关键信息必须保留
  • 序号保持:案例序号、条文序号不得修改

输出文档结构

归档目录组织

所有格式化结果按时间戳归档存储:

archive/
├── {YYYYMMDD_HHMMSS}_{文档主题}/
│   ├── {YYYYMMDD}_{主题}_raw.md        # 原始抓取内容
│   ├── {YYYYMMDD}_{主题}_formatted.md  # 格式化后的内容
│   └── meta.json                       # 元信息(可选)

命名规则

  • 目录名{YYYYMMDD_HHMMSS}_{主题}(例:20250122_153400_个人信息保护典型案例
  • 文件名
    • 原始文件:{YYYYMMDD}_{主题}_raw.md(例:20250122_个人信息保护典型案例_raw.md
    • 格式化文件:{YYYYMMDD}_{主题}_formatted.md(例:20250122_个人信息保护典型案例_formatted.md
  • 主题限制:从文本中提取的核心主题,限制30字以内
  • 日期格式YYYYMMDD(例:20250122)

formatted.md 内容结构

# {文档标题}

## 元信息
- **原文链接**:{从原始文件的 `> 原文链接:` 行提取,无则省略此行}
- **处理时间**:{时间戳}
- **文本类型**:{法律条文/法律案例}

---

{格式化后的正文内容}

原文链接提取规则:当输入来自 wechat-article-fetch 时,原始 Markdown 文件头部包含 > 原文链接: https://mp.weixin.qq.com/s/xxxxx,必须提取该 URL 写入元信息的"原文链接"字段。

质量标准

  • 标点符号统一:所有标点符号使用中文标点
  • 数字格式统一:数字使用半角字符
  • 层级结构清晰:正确使用二级、三级标题
  • 空行规范:段落间空行适当,不过多也不缺失
  • 内容完整性:保留所有法律相关内容,去除无关推广信息

适用场景

  • 整理法律条文汇编
  • 规范化法律案例集
  • 准备法律学习材料
  • 建立法律文本知识库
  • 清理从网页抓取的法律文本

输入要求

本技能接受以下类型的输入:

  1. 已抓取的文本内容:由其他 skill(如 wechat-article-fetch)获取的文本
  2. 用户粘贴的文本:用户直接提供的文本内容
  3. 本地文件:已保存的 Markdown/文本文件

不接受:网页链接(链接应由专门的抓取类 skill 处理)

来自 wechat-article-fetch 的自动调用

wechat-article-fetch 检测到法律内容且本技能已安装时,会自动链式调用本技能。此时输入为已保存的 Markdown 文件路径。处理流程不变:

  1. 读取指定路径的 Markdown 文件内容作为输入
  2. 按步骤 1-4 执行(分析类型、保存原始、格式化、验证)
  3. 结果保存到本技能的 archive/ 目录
  4. 文件路径记录在 formatted.md 元信息的"来源"字段中
Weekly Installs
59
GitHub Stars
164
First Seen
4 days ago