TianLiLally
发布于 2026-11-02 / 0 阅读
0
0

把全世界法律做成一个 git 仓库!global-law 深度拆解:674 子仓 + 34 万 commit + MCP 可查询

⚖️

global-law:把全世界法律做成一个 git 仓库

674 个子仓 · 34 万 commit · MCP 可查询 · CC0
1652★ CC0
仓库规模
341,120 commit
674 子模块 · 223 国家目录
核心能力
MCP 自然语言查法
154KB server · 本地运行不联网
最大落差
211 国只有 52 国有料
「全世界」目前是目录,不是数据

🔥 把「法律」当成代码来版本控制,这个想法被真做出来了

先说它到底在干什么:每个国家的法律单独一个 git 仓库,每一条法律生效就是一次 commit,主仓把 674 个子仓的历史按生效时间交织排序。于是「某国某年某日的法律原文是什么」,变成了一个 git checkout <日期> 的问题。项目 2026-10-28 上线,五天涨到 1652 star,README 说它是美国法典项目的扩展版(那个曾登上 Hacker News 首页第一)。我抽了德国仓的真实文件验证,不是占位符:

  • 德国《基本法》第一条:Die Würde des Menschen ist unantastbar... 原文准确,格式规范;
  • 《1 马克金币法》:真实法条,含授权主体、发行年份、铸造上限;
  • 德国单个子仓就有 87,178 个 md 文件、137 MB,主仓累计 341,120 条 commit。

📋 四个真正硬核的设计

  • MCP server 是完整实现,不是空壳:tools/mcp_server.py 有 154 KB,另配 build.py 49KB、law.py 23KB、check_corpus.py 11KB。纯 Python 3.10+ 加 git,本地 stdio 运行,不联网、不改文件,每条回答都会标明该记录的起始与终止日期;
  • 历史可信度分级:manifest.json 给每个语料标 history 字段——in-force(有官方日期的权威版本,23 个)、replayed(按修正案回放重建,标注校验过哪些日期,6 个)、current-only(只有今天文本,查历史会警告,5 个)。它没有假装所有历史都同等可靠;
  • CHANGELOG 敢量化自己的 bug:亚美尼亚语料因大写条文标题未被识别,500 份抽样缺 0.014%、多 0.019% 文本,标 Open 说明正在重建;德国首次全量构建时 3,118 个 commit 的作者名被写成 index.md(文件循环复用了作者变量),已修复并加入检测;
  • 可复现性有据可查:REPRODUCE.md 22 KB,写了怎么从原始来源重建每个语料;LICENSE.md 明确区分「主仓 CC0」与「各子仓法律文本各自许可」。

📊 实测速查大表:宣传 vs 现状

维度 README 宣称 manifest 实测
国家覆盖 「每个国家的法律」 211 国中仅 52 国有实际文本
接入状态 目录结构齐全 55 国仍 awaiting_corpus_json
语料质量 语义化、可检索 107 语料中 65 个带 warnings
覆盖深度 未量化 捷克/西班牙/瑞士有整部法典;美国仅 9 编、英国仅 1 部
许可 CC0,随便用 主仓 CC0 成立;法律文本按各子仓许可
维护 — 单一账号,34 万 commit 需 force push 重写

⚠️ 四个必须知道的落差

🚨 「全世界法律」目前是目录结构,不是数据现状
  1. 近一半国家连 corpus.json 都没有:awaiting_corpus_json 55 国、not_pinned 3 国。README 自己承认法国只有 jurisdiction.json 和 SOURCES.md,没有任何历史数据;
  2. 覆盖深度极不均匀:少数国家有整部法典(捷克、西班牙、瑞士、格鲁吉亚、马耳他),美国只有《美国法典》九个编,英国只有特殊教育需要法一部。用之前必须先看 manifest 里该国的 coverage 和 history;
  3. 65 个语料带警告:107 个语料里 65 个有 warnings,最常见是「corpus.json 没有引用规则,法条引用无法识别」——这意味着 MCP 的引用功能对多数国家实际失效;
  4. 34 万 commit 不等于 34 万个法律事件:那是 674 个子仓交织后的结果。CHANGELOG 里已经写明「超过约 150 MB 的历史推不上 GitHub,要分批推临时分支再 push --force --mirror」——任何数据修正都要重写大量历史,而维护者只有一个账号。
💡 想上手的三条实操建议
  1. 先浅克隆主仓看结构,别一上来就 --recurse-submodules:674 个子仓加起来是 GB 级,德国单仓就 137 MB。先 git clone --depth 1 拿主仓,读 manifest.json 确认目标国家有没有料;
  2. 查某国前先核 history 字段:如果该国标的是 current-only,那它只有今天的文本,查历史日期会得到错误答案(工具会警告,但容易被忽略);
  3. 商用前逐国确认许可:主仓 CC0 只覆盖目录树、manifest、工具和文档。法律文本在各子仓,各带自己的 LICENSE。README 明确说「法律文本在很多国家无版权,但不是所有国家」——这句话不能跳过。

🎯 值得关注,但别当权威数据库用

  • 🔥 做法律科技产品的:MCP 接口 + git 历史这套抽象是对的,可以作为自建法律语料库的参考架构;
  • 📚 研究法律演变的:德国《基本法》这类 in-force 语料质量很高,适合做条文级的时序分析;
  • 🧪 想学 MCP 工程实现的:154 KB 的 mcp_server.py 是一个真实规模的 MCP 服务样本,比官方 demo 有参考价值;
  • 🚫 需要「准确答案」的生产场景:别直接用。近一半国家没数据、65 个语料带警告、维护者只有一人。涉及真实法律判断时,回到各国官方公报;
  • 🚫 想查中国法律的:先确认该国有无 corpus.json,别默认「全世界」包含你要的那个国家。

一句话总结:这是把「法律可编程」认真做到工程层面的项目——不是概念演示,是真的有 87,178 个德国法条文件躺在仓库里。但它的诚实也恰恰体现在数据里:211 国只有 52 国有料、65 个语料自带警告、连自己的 bug 都量化到小数点后三位。把它当架构参考和实验样本,别当权威法源。真要查某国法律,先看 manifest,再回官方公报核对。

免责声明

本文章仅供参考学习使用,不具备任何教学行为,了解账户授权、第三方服务风险、数据处理及责任限制。


评论