addlaws

0
0
Source

Automatically format and add Chinese laws to VuePress-based legal library. Supports batch processing with progress tracking via LAWS_PROGRESS.md.

Install

mkdir -p .claude/skills/addlaws && curl -L -o skill.zip "https://mcp.directory/api/skills/download/7482" && unzip -o skill.zip -d .claude/skills/addlaws && rm skill.zip

Installs to .claude/skills/addlaws

About this skill

录入法律技能

你是一个专业的法律收录助手,负责将中国法律自动添加到 VuePress 法律库中。

使用模式

单部收录

用户提供 Markdown 文件路径,如:.temp/laws_md/中华人民共和国爱国主义教育法_20231024.md

批量收录(推荐)

无需参数,自动处理所有未收录法律。读取 LAWS_PROGRESS.md,按序处理每部未收录的法律。

核心执行流程

步骤 1:确定法律信息

提取全名:从文件名提取(中华人民共和国爱国主义教育法_20231024.md中华人民共和国爱国主义教育法),备选从 md 第一行提取

翻译英文名称:全小写、连字符分隔、不含 "the"

  • 中华人民共和国爱国主义教育法patriotism-education-law
  • 中华人民共和国种子法seed-law

确定分类:从 LAWS_PROGRESS.md 查找法律所在分类

分类映射

中文目录
宪法相关法constitutional-relevance
民商法civil-and-commercial
行政法administrative
经济法economic
社会法social
刑法criminal-law
程序法procedural

步骤 2:检查是否已存在

使用 Grep 搜索 docs/ 目录(法律全名)和 docs/.vuepress/config.js(法律简称)

版本比较方法

  1. 从原文文件名提取日期(如 中华人民共和国种子法_20211224.md2021年12月24日
  2. 读取已收录法律 md 文件的立法记录
  3. 提取立法记录中的最后一条日期(最新的修订日期)
  4. 比较两个日期

示例

原文文件名:中华人民共和国种子法_20211224.md
原文日期:2021年12月24日

已收录文件立法记录最后一条:
根据2021年12月24日第十三届全国人民代表大会常务委员会...修正
提取日期:2021年12月24日

比较:日期相同或更旧 → 不处理
     日期更新 → 执行替换

已存在处理

  • 如果原文日期相同或更旧:跳过该法律收录并记录
  • 如果原文日期更新:备份旧文件(.old)并替换,保持原分类不变

步骤 3:读取并分析结构

.temp/laws_md/ 查找文件名包含法律名称的 md 文件

分析结构

  • 检查是否有"第一编、第二编"等结构
  • 检查是否有"第一章、第二章"等二级标题(##)
  • 统计条文数量(搜索 "**第")

判断文件类型

类型结构特征处理方式Frontmatter示例
A无任何章节标题单个 README.md❌ 不需要国旗法
B仅有章/节(##)单个 README.mdsidebar: auto种子法
C有编/章节结构多个 md 文件部分文件需要民法典、刑法

步骤 4:格式化并创建文件

通用格式化规则(所有类型适用)

参考示例种子法

  1. 立法记录

    • 每条单独成行
    • 记录间必须空行(关键!)
    • 删除中文与数字间空格
    • 不能包含全角括号 ()
  2. 章节标题

    • 章:## 第一章 总则(中文空格  
    • 节:### 第一节 一般规定
  3. 条号**第一条** (加粗+中文空格)

  4. 空行规则所有元素之间必须有空行(最重要)

  5. 数字格式:数字与中文之间不要有空格(如 2021年12月24日,不是 2021 年 12 月 24 日

类型 A:无章节法律(如国旗法)

参考示例国旗法

# 中华人民共和国{法律名称}

{立法修法记录 - 每条记录单独一行,记录间有空行}

**第一条** 条文内容...

**第二条** 条文内容...

类型 A 特殊规则

  • 不需要 frontmatter
  • 不需要 sidebar: auto
  • 其他遵循通用格式化规则(空行、立法记录格式等)

类型 B:有章节法律(如种子法)

参考示例种子法

---
sidebar: auto
---

# 中华人民共和国{法律名称}

{立法修法记录 - 每条记录单独一行,记录间有空行}

## 第一章 总则

**第一条** 条文内容...

类型 B 特殊规则

  • 需要添加 frontmatter:sidebar: auto
  • 其他遵循通用格式化规则

类型 C:有编结构法律(如民法典、刑法)

参考示例

处理方式

  1. 拆分文件

    • README.md(封面页:法律标题 + 立法记录)
    • 01-general-principles.md(第一编)
    • 02-{英文名称}.md(第二编)
    • 03-{英文名称}.md(第三编)
    • ...(其他编)
    • 00-supplementary.md(附则,如有)
  2. README.md 格式(封面页):

    ---
    next: /{分类}/{英文名称}/01-general-principles.md
    ---
    
    # 中华人民共和国{法律名称}
    
    {立法修法记录}
    

    注意:README.md 只包含标题和立法记录,不包含章节和条文

  3. 第一编的格式

    ---
    prev: /{分类}/{英文名称}/
    ---
    
    # 第一编 总则
    
    ### 第一章 基本规定
    
    **第一条** 条文内容...
    
  4. 其他编的格式(第二编及以后):

    # 第二编 XXX
    
    ### 第一章 XXX
    
    **第X条** 条文内容...
    

    注意:第二编及以后的文件 不需要 frontmatter

  5. 标题级别

    • 编标题使用 # (一级标题)
    • 章标题使用 ## (二级标题)
    • 节标题使用 ### (三级标题)
  6. 文件命名:使用数字 + 英文

    • 第一编:01-general-principles.md
    • 第二编:02-{英文名称}.md(如 02-property-rights.md
    • 第三编:03-{英文名称}.md
    • 附则:00-supplementary.md
    • 命名规范:数字前缀 + 连字符 + 英文名称(全小写)

类型 C 特殊规则

  • 拆分成多个文件,每个文件包含独立的编内容
  • README.md 仅包含封面信息(标题 + 立法记录)
  • Frontmatter 分配:README.md 有 next,第一编有 prev,其他编无
  • 标题级别:编→#、章→##、节→###
  • 其他遵循通用格式化规则(空行、立法记录格式等)

步骤 5:更新导航配置

5.1 更新 category 列表(所有类型)

重要:navbar 每类法律最多展示 3 部,不需要更新 navbar

编辑 docs/category/{分类}.md,在法律列表中添加:

[{法律简称}](../{分类}/{英文名称}/)

示例:在 docs/category/economic.md 中添加:

[种子法](../economic/seed-law/)

注意:链接末尾需要加 /

5.2 配置 sidebar(仅类型 C:有编结构的法律)

编辑 docs/.vuepress/config.js,在 sidebar 对象中添加:

sidebar: {
  "/{分类}/{英文名称}/": [
    {
      text: "中华人民共和国{法律简称}",
      children: [
        "/{分类}/{英文名称}/01-general-principles.md",
        "/{分类}/{英文名称}/02-property-rights.md",
        "/{分类}/{英文名称}/03-contract.md",
        // ... 其他编
        "/{分类}/{英文名称}/00-supplementary.md",
      ],
    },
  ],
}

注意

  • children 从"第一编"开始,不包含 README.md
  • README.md 作为封面页,通过 next 链接到第一编
  • 第一编通过 prev 链接回 README.md

参考示例

步骤 6:更新进度

编辑 LAWS_PROGRESS.md

  • 法律状态:未收录✅ 已收录
  • 分类进度:更新分子和百分比
  • 总计进度:更新顶部和底部统计
  • 统计表格:更新对应分类进度

步骤 7:提交代码

# 类型 A 和 B
git add docs/{分类}/{英文名称}/ docs/category/{分类}.md LAWS_PROGRESS.md
git commit -m "📘 收录《{法律名称}》"

# 类型 C(需要配置 sidebar)
git add docs/{分类}/{英文名称}/ docs/category/{分类}.md docs/.vuepress/config.js LAWS_PROGRESS.md
git commit -m "📕 收录《{法律名称}》"

注意:类型 C 会自动添加该目录下的所有文件(README.md + 各编文件 + 附则)

提交规范

  • 新增:📘📗📙📕 收录《》
  • 更新:📝 更新《》
  • 格式修正:🔧 修正《》格式
  • 版本替换:🔄 替换《》为最新版本

故障排除

问题处理
版本更新比较文件名日期与立法记录最后日期,新版本则备份旧文件(.old)并替换
格式不规范检查 frontmatter/空行/条号/章节级别
无章节法律添加了 frontmatter删除 frontmatter,参考国旗法
有编结构未配置 sidebar在 config.js 中添加 sidebar 配置
链接错误检查 / 开头结尾,无空格中文
category 链接末尾缺少 /添加 / 结尾

关键注意事项

🚫 禁止使用代理

严格禁止使用 Task 工具启动代理执行法律收录任务

原因:Prompt 传递衰减导致格式细节丢失(如中文空格   变成普通空格 )。

执行:必须由主对话直接处理,每部法律独立提交。

AI 优先原则

使用 AI 直接理解和格式化,不用脚本

  • AI 对上下文的理解能力更强,能够处理特殊情况(章节标题、条文嵌套、列表格式等)
  • 脚本容易出现格式错误,需要反复调试
  • AI 可以一次性生成正确格式
  • 使用 Read 工具读取原始文件,然后使用 Write 工具按照格式要求创建格式化文件

最常见错误(必读!)

  1. 空行遗漏:所有元素之间必须有空行(立法记录、章节、条文之间)
  2. 全角括号:立法记录中不能包含 ()(容易从原文复制过来)
  3. Frontmatter 错误:无章节法律不需要 frontmatter,有章节法律需要 sidebar: auto
  4. 链接路径:category 链接末尾必须有 /,链接中不能有空格或中文

Frontmatter 快速参考

法律类型文件Frontmatter
无章节(如国旗法)README.md❌ 不需要
有章节(如种子法)README.mdsidebar: auto
有编结构(如民法典)README.mdnext: 01-general-principles.md
有编结构(如民法典)第一编prev: ../
有编结构(如民法典)其他编❌ 不需要

文件结构判断流程

读取原始 md 文件
    ↓
检查是否有"第一编、第二编"
    ↓
  是 → 类型 C(有编结构)
       → 创建 README.md(封面页,有 next frontmatter)
       → 为每一编创建独立 md 文件
       → 第一编有 prev frontmatter,其他编无 frontmatter
       → 配置 sidebar(从第一编开始)
    ↓
  否 → 检查是否有"第一章、第二章"
    ↓
      是 → 类型 B(有章节)
           → 单文件 + `sidebar: auto`
    ↓
      否 → 类型 A(无章节)
           → 单文件 + 无 frontmatter

其他格式细节

  • 中文空格:章节标题和条号后用  (U+3000)
  • 链接路径:小写、连字符、无空格中文
  • 命名规范
    • 文件夹:全小写连字符,简称省略"中华人民共和国"
    • 编文件:数字前缀 + 英文名称(如 01-general-principles.md

导航配置

  • navbar:❌ 不需要更新(每类最多展示 3 部)
  • sidebar:✅ 仅在有编结构时配置
  • category:✅ 所有类型都需要更新

完成标准

  • ✅ 文件在正确分类目录
  • ✅ 格式符合规范(frontmatter、空行、中文空格)
  • ✅ 内容完整(章节条文无缺失)
  • ✅ category 文件已更新(链接末尾有 /
  • ✅ 有编结构的法律:sidebar 已配置
  • ✅ LAWS_PROGRESS.md 已更新(状态、分类、总计)
  • ✅ 无重复
  • ✅ 代码已提交

批量模式额外:所有未收录法律处理完毕,显示 308/308 (100.0%)

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

9521,094

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

846846

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

571699

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

548492

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

673466

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

514280

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.