分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

lexifina/global-law

数据

把多国法律整理成一条带日期的 git 历史,可查询任一天在施行的条文。

793
57
HTML
NOASSERTION
创建于 2 天前

Global-law 将各国法律语料作为 git 子模块编排进同一条时间线,使一个提交代表某一天所有已覆盖法域的合并状态。它适合律师、研究者和开发者查询某条文在某日的规定、由哪部法律修改,以及文本如何演变,而不必手工比对各国官方公报。

它做什么、如何实现

每国法律位于独立的 lexifina/<country>-law 仓库,其中每个提交是一部法律生效;本仓库固定这些仓库,并按生效日期重放其提交,在提交 trailer 中记录语料、语料提交、法律与生效日期。首个提交是没有法律、日期为 1970 年 1 月 1 日的法域树;最后一个提交加入 README、工具和测试。构建是确定性的,因此语料重建后,本仓库会从零重建并强制推送——之后需要在受影响的语料内初始化子模块并强制拉取标签(README)。

覆盖范围差异很大,且有明确标注。部分语料包含一国全部法规(捷克、西班牙、瑞士、格鲁吉亚、马耳他);另一些只有几部法律或样本——美国语料是《美国法典》九个编,英国语料仅涉及特殊教育需要法。manifest.json 记录各语料的 coverage 以及历史如何得知:带日期的官方版本(in-force)、通过逐部修正法重建(replayed,并注明校验过的日期)或仅当前文本(current-only)。已通过但尚未生效的法律留在各语料的 future 分支,不出现在 main。

两种查询方式

  • 命令行:tools/law.py 可查看全法域某日快照、某日条文、按行或按词归属、差异,以及日期区间内生效的法律。日期必须写成 YYYY-MM-DD;超出记录范围时工具在 stderr 说明限制(README)。
  • 面向 AI 客户端的 MCP:tools/mcp_server.py 是通过 stdio 运行的 Model Context Protocol 服务器,可供 Claude、Cursor 等客户端使用。它只依赖 Python 3.10+ 与 git,在本机运行、读取仓库、不发起网络请求、不修改内容,提供 18 个只读工具,覆盖条文查找、按日期读取、逐词作者、变更影响、引证核验与判例检查(README)。

具体限制

  • 某日期缺少文件,可能表示该条文尚未生效,也可能表示语料没有追溯到那么早。
  • 追溯适用的法律记录在提交信息中,但不改变较早日期显示的文本。
  • git blame 以整行为单位归属;law.py words 通过比较版本按词归属。
  • Git 无法存储 1970 年以前的日期,因此旧变更以相隔一秒的 1970 年提交日期保存;In-force trailer 才是权威日期,工具会读取它,而普通 git log --before 可能静默给出错误答案。
  • 查看较早时刻应使用独立 worktree;就地 checkout 旧提交会导致尚未存在的语料目录和工具消失。

许可

本仓库自身内容为 CC0——可自由 fork、在其上构建,无需许可或署名。法律文本仍位于各国仓库,受各仓库自身条款约束,因此下游复用必须遵守各语料的许可(README、许可)。

HotRepo 点评

该项目在 2026-10-30 的全语言新项目榜上显示 793 总星、第 26 名,这不是单日增长数据。可比的每日榜单历史不足;检索到的 Hacker News 帖子只有 2026-10-29 的一条,1 分、1 条评论(讨论)。

本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。

Hacker News 讨论

Git for All Global Law
▲ 1 · 1 条评论 · 2026年10月29日