把国家法律塞进 GitHub:西班牙这个开源项目,让“查法条”第一次像查代码一样顺手

当法律开始像代码一样管理
如果你是程序员,看到一句“每部法律是一个 Markdown 文件,每次修法都是一次 commit”,大概率会会心一笑。可笑完之后,会很快意识到:这主意居然非常合理。
GitHub 上最近这个名为 legalize-es 的项目,做的事情并不花哨——它把西班牙国家层面的 8600 多部法律整理成 Git 仓库。宪法、刑法、劳动法、民事诉讼法,都成了一份份可检索、可 diff、可追踪历史的 Markdown 文本。开发者 Enrique Lopez 甚至把每一次法律修订都做成独立 commit,并尽量按照官方发布日期来保留时间线。于是,法律不再只是“当前生效版本”的静态文件,而变成了一条可以回溯的历史轨迹。
这件事最迷人的地方,在于它并没有发明什么新技术。没有大模型,没有区块链,也没有“重新定义政务数字化”的发布会口号。它只是把软件工程里最朴素的一套方法——版本控制——用在了法律文本上。可正是这种“不新”的技术,往往最能暴露公共信息系统里那些被忽视多年的低效率。
法律公开了很多年,但“可用”是另一回事
很多国家的法律文本其实早已公开。西班牙这个项目的数据来源,就是官方 BOE(国家官方公报)的开放数据 API。换句话说,原料本来就摆在那里,合法、公开、权威。但“公开”不等于“好用”,这中间往往隔着一整个时代。
任何认真查过法条的人都知道,最麻烦的通常不是找不到文件,而是找不到“变化”。一条法律在 1998 年写成,2003 年改过一次,2011 年又因为财政稳定政策动了一处措辞,2024 年再做技术性修订。普通人看到的常常只是当前合并后的文本,很难直观看出:到底改了什么?为什么改?是删掉了一句,还是把一个模糊表达改成了刚性义务?法律的力量,很多时候就藏在这些词语增减里。
而 Git 恰好特别擅长处理这件事。你可以 grep 某个条文,git log 看它什么时候变过,再用 git diff 精确比对某次修法改了哪几个字。这种能力,对律师、研究者、记者、公共政策从业者,乃至普通公民都很有价值。以前做这种工作,常常要在不同版本 PDF、网页存档和官方说明之间来回翻。现在,它第一次有了“代码审查”般的清晰感。
从新闻视角看,这也是一个很有代表性的信号:开放政府数据的下一阶段,已经不只是“把数据放出来”,而是“把公共信息组织成可以被社会真正使用的形态”。CSV、JSON、API 只是起点,围绕它建立怎样的结构、索引、元数据和版本历史,决定了它究竟是资料库,还是工具。
程序员的方法,能不能改进法治基础设施?
我很喜欢这个项目的一点,是它带着典型的工程师气质:不夸张,不宏大,但非常实用。README 里给的例子就很直接——“今天宪法第 135 条怎么写?”“它什么时候改过?”“2011 年财政稳定改革到底改了什么?” 这就是现实世界里真正有人会问的问题。
更重要的是,它让法律文本第一次拥有了和代码类似的“可协作性”。每个文件有统一结构,开头有 YAML frontmatter,包含标题、标识符、发布日期、最后更新时间、状态、来源链接等元数据。项目还允许用户提交 issue,指出某个法条、某次修订是否缺失或有误。你会发现,一套原本服务于开源社区的协作机制,被轻巧地挪到了公共法律知识的维护上。
这背后其实有更大的行业背景。过去几年,全球“法律科技”赛道一直很热,但很大一部分创新都集中在商业服务层:合同审查、案例检索、企业合规、AI 法律助手。面向大众、面向公共法条基础设施的项目反而不算多。原因也不复杂——这类事难赚钱,脏活累活多,还要处理权威性问题。相比之下,做一个“AI 帮你读合同”的产品更容易获得投资人的注意。
所以 legalize-es 的可贵之处,恰恰在于它把目光放回了底层。没有干净、可追溯、可比对的法律文本数据库,再聪明的 AI 法律助手也容易变成“幻觉制造机”。在这个意义上,法律版 Git 仓库不是花活,而像是一层数字时代的法治基础设施。
它很酷,但也别急着神化
当然,这类项目也有它天然的边界。Git 擅长处理版本差异,但法律并不是纯文本游戏。法条变动的真正含义,往往要放在判例、行政解释、执行实践乃至政治背景中理解。一个 diff 告诉你“这句话删掉了”,却不会自动告诉你,这会如何改变法官的裁量、企业的合规成本,或者公民的权利边界。
还有一个现实问题是,法律体系并不总像代码库那样整洁。不同层级规范之间会相互引用,旧法可能被部分废止,新法可能做出例外规定,地方性规范和国家级规范还会交错叠加。把国家层面的“合并后文本”做成仓库,只是迈出了很重要的一步,但离完整映射整个法律系统,仍然很远。
另外,开源项目的生命力也取决于持续维护。这个仓库目前有上百个 star、数万个 commit,已经相当亮眼,但它毕竟高度依赖个人开发者和官方数据源的稳定性。公共基础设施若过度建立在单点个人热情上,总让人既佩服又有点担心。理想状态当然是:这类能力最终被法院系统、立法机构、大学法学院、新闻机构乃至公民组织共同参与建设,而不是只靠某位技术爱好者“为爱发电”。
这件事为什么对西班牙之外的世界也有意义
如果把视野再放大一点,这不只是一个西班牙故事。它其实提出了一个很朴素但很尖锐的问题:为什么今天的软件版本比法律版本更容易追踪?
我们早就习惯了代码有 commit history,文档有修订记录,百科词条有编辑对比,甚至连设计稿都能逐版回看。可对一部影响几千万人的法律来说,普通人却常常很难顺手地看到“它是怎么一步步变成今天这样的”。这显然不太合理。法律是公共规则,按理说应该比商业软件更透明,而不是更模糊。
这也是我觉得这个项目最有启发性的地方。它让人看到,很多公共数字化问题并不一定要靠庞大系统重建,有时先借用成熟工具就能把体验拉高一个层级。法律文本上 GitHub,听起来有点像程序员拿锤子看世界,但这把锤子真敲对了地方。
对中文世界来说,这个思路也很有借鉴意义。无论是法律、政策、行业标准,还是部门规章、监管文件,真正让公众难受的往往不是“信息不存在”,而是缺乏连续、明确、可验证的版本脉络。未来如果有更多机构愿意把公共规则做成机器可读、版本可追溯、历史可对比的形态,AI 才能在可靠基础上发挥作用,公众也才能真正参与理解与监督。
说到底,法治不只是把规则写出来,更是让人看得懂、查得到、比得清。这个 GitHub 仓库看似只是把 8600 多部法律换了个存放方式,实际上是在提醒我们:技术最好的样子,不一定是制造一个全新世界,也可以是把本该清楚的东西,终于整理清楚。