西班牙立法以 Git 仓库形式呈现
文章摘要
Legalize-ES 是一个将西班牙全部国家立法转化为 Git 版本控制的开源项目。其核心理念极其简洁:”每部法律是一个文件,每次修法是一次 commit。”该仓库目前包含 8,642 部法律,通过 27,866 次 Git 提交记录了所有立法变更的历史。
项目数据来源于西班牙官方公报(BOE, Boletin Oficial del Estado)的开放数据 API。所有法律文件以 Markdown 格式存储,文件名使用 BOE 标识符(例如西班牙宪法对应 BOE-A-1978-31229.md)。每个文件包含 YAML 前置元数据(标题、标识符、法律等级、日期、法律状态等)和层次化结构的法律正文。Git 提交使用历史上在官方公报中的实际发布日期,使得整个版本历史与真实立法时间线一致。
目录结构方面,es/ 目录存放国家级立法,各自治区法律按区域代码组织(如 es-ct/ 对应加泰罗尼亚,es-pv/ 对应巴斯克地区)。法律的规范等级(法律、皇家法令、组织法等)存储在 YAML 前置元数据中而非目录结构中。
项目作者 EnriqueLop 表示,整个管道是在大约四小时内使用 Claude Code 构建的。这意味着开发者可以直接使用标准 Git 操作(如 git log、git diff、git blame)来追踪任何一部法律的修改历史、对比不同版本之间的差异。立法文本本身属于公有领域,而项目的组织结构和格式化使用 MIT 许可证。该项目是更广泛的 Legalize 项目的一部分。
HN 评论精华
法律叠加与司法判例的设想:用户 artirdx 提出了一个有趣的想法——在立法的对应时间节点上叠加法院判决,可以揭示哪些法律最需要司法解释、哪些法律语言经受住了解释的考验。但 da_chicken 指出西班牙属于大陆法系(civil law),判例的约束力远不如英美法系(common law),因此这种叠加的价值有限。
国际版本涌现:评论中出现了多个国家的类似项目。mrimskog 展示了他用 Claude Code 构建的瑞典版本(se-lex/sfs)。其他评论者也表达了对德国、葡萄牙、芬兰和巴西版本的兴趣。值得注意的是,codethief 提到德国联邦议院曾有一个类似的官方仓库但已废弃,而法国的 Legifrance 平台已经提供了版本对比功能。
数据质量问题:zaep 发现了一个日期标注为 2099 年的提交,暗示自动化管道存在数据验证问题。ks2048 指出 Markdown 转换中遗漏了表格和图片,降低了完整性。
实用性质疑:rmonvfer 警告说,合并后的立法并不覆盖所有内容,私人法律数据库(而非开放法规来源)才是法律专业人士的真正竞争优势。philistine 认为该项目对大陆法系来说”基本没用”。rafram 则指出立法机构本身已经在使用修订追踪格式,技术领域并没有什么政府不知道的秘密知识。
改进建议:多位评论者建议将西班牙文件夹拆分为分类子文件夹以便导航、将提交归属到特定立法会期或政党、添加议会投票记录作为元数据,甚至实施检测法律之间矛盾的”测试”。
政府实践:dgreisen 来自 Open Law Library,介绍了他们与政府合作的经验,提到马里兰州最近将其法规以 GitHub 作为官方权威记录发布。