Spanish legislation as a Git repo(github.com)
740 points byenriquelop21 hours ago |58 comments
_ache_18 hours ago
In France, not only our law are versioned. It's formally proved too!

https://catala-lang.org/

*Edit*: Woah ! The French crew is here. We are at least 5 quoting a variation of <https://www.legifrance.gouv.fr/> for versioning.

krtab10 hours ago
Catala is not at all about "proving the law" formally (I'm not even sure what it would mean?). It's about having a formal language to translate law into that both matches the way law is usually written ("default logic") and allows to make numerical computations on. This can typically be used to implement tax or benefits law so that it is way easier to check that the algorithm computing taxes/benefits is correct compared to the actual state of the art of using general purpose programming languages.
mentalgear40 minutes ago
> scope QualifiedEmployeeDiscount :

  definition qualified_employee_discount

    under condition is_property consequence

  equals

    if employee_discount >=

      customer_price \* gross_profit_percentage

    then customer_price \* gross_profit_percentage

    else employee_discount
Dang, I wish all law was written like this instead of the purposefully obfuscated legalise of (lobbied) legislative lawyers meant to mislead people and slip in loopholes for their interest groups to profit of.

Clear legislature is definitely something every person in the world would benefit of - if the the country's administration would want that.

mdnahas7 hours ago
I don’t know if they do it, but it allows proving properties of the law. For example, that the tax increases with income or that an exception doesn’t accidentally increase the tax paid.
allan_s18 hours ago
I find it ironic to have it named "catalan(g)" on a post about spanish law.
asveikau17 hours ago
Even better. The Catalan word for Catalan is català. So catala-lang.org fits that too.
kiliancs14 hours ago
qubex10 hours ago
Borbaqui est la volonté du peuple!
enriquelop21 hours ago
I built a pipeline that converts all Spanish state legislation into version-controlled Markdown. Each law is a file, each reform is a real git commit with the historical date. 8,642 laws, 27,866 commits.

The idea: legislation is just patches on patches on patches. Git already solves this. Instead of reading "strike paragraph 3 and replace with...", you get an actual diff.

The repo is the product. Browse any law, git log to see its full reform history, git diff to see exactly what changed.

Built the pipeline in ~4 hours with Claude Code. Source is BOE (Spain's official gazette) consolidated legislation API.

Exploring whether there's a business here — structured legislation API for legaltech/compliance, or just a useful open dataset. Curious what HN would build with this data.

artirdx20 hours ago
Laws intent are often clarified in courts through judgments. If you can overlay the judgements on top of the corresponding law, at correct points in time, I think that will have value. It might, for example, show which laws were referenced the most and which needed to be clarified the most. It might give insights into what legal language constructs stood the test of time and which had to be repeatedly clarified.
da_chicken20 hours ago
That's true, but it might not be as important here.

Spain is not a country with a Common Law legal system entirely like the US or the UK. They have a civil law system where prior court judgement does not form a strictly binding precedent. Prior judgements can be important, but case law is not really a thing.

tephra19 hours ago
I wonder how true this is, we have the same system in Sweden, that court judgement are not legally binding precedent for lower courts. But in practice lower courts will follow the rulings made by the high court.

Is it not the same in Spain at all?

philistine18 hours ago
It's the same in Spain, which makes OPs proposal kind of useless. The big distinction between a civil and a common law system is the fundamentals. A country's civil code is properly defined, while a common law's system is based on previous cases you have to dig through to find the basics.
markdown11 hours ago
> while a common law's system is based on previous cases you have to dig through to find the basics

In other words, you have to hire a lawyer. They really built a great system for themselves, didn't they?

amszmidt17 hours ago
Would be nice if someone did it with Swedens laws too!
mrimskog11 hours ago
I built it with Claude Code last summer :) Check it out: https://github.com/se-lex/sfs

It’s generated by this CLI: https://github.com/se-lex/sfs-processor (md with temporal tags, html or Git commits as output format)

dotancohen20 hours ago
Laws are often cascaded as well. Specifically in this case, Spain is subdivided into Comunidades Autonomas - each have their own elected parliament. And inside those are cities with their own local laws.

So while this project does track laws, is there any facility to determine which laws from which bodies are relevant to a specific activity in a specific location?

embedding-shape20 hours ago
> And inside those are cities with their own local laws.

No, cities don't have their own laws, but the autonomous communities do have some influence in some laws and regulations (not all), like the amount of income tax you have to pay and so on. But cities within the autonomous communities don't have their own laws.

donalhunt19 hours ago
No by(e)-laws in Spain? Certainly a thing in the UK, Ireland and I believe US and Canada. Is that a common law thing?
Mordisquitos19 hours ago
Local authorities in Spain do have the authority to enact their own law-ish regulations, which are called 'ordenanzas'. For example, if I remember correctly, motorbikes are allowed to park on the pavement by default in Barcelona unless a sign says otherwise, but it is forbidden in Madrid unless a sign explicitly allows it.

I think local government in Spain has at least as much authority as it does in the UK, maybe more, but almost certainly less than it does in the US.

embedding-shape19 hours ago
"By-laws" is typically the name of the rules/"laws" inside of a company or organization, I'm not familiar with that word in the context of "nation-wide criminal/civil laws".

Regardless, cities do not have their own "local laws" in the way your comment made it seem. We have national laws, and minor differences in various autonomous communities, since they have some legislative power to control their own industry, commerce, education and some more stuff.

dylan60416 hours ago
> inside of a company or organization,

Corps and cities are very similarly structured. Each are charted at the start, with corps getting governed by boards and c-suite types while cities have mayors and city council types. Both file paperwork to exist within the state. Both are subject to state laws, but are allowed to make up regulations specific to them as long as they are within the state's laws.

In the end, it's all just paperwork, at least in the US

eep_social17 hours ago
as an american I might call those “local ordinance” when they come from a smaller rulemaker like a town
ninalanyon18 hours ago
> "By-laws" is typically the name of the rules/"laws" inside of a company

I suspect that this should be qualified by "in the US"

embedding-shape18 hours ago
No, I was talking about Spain, I have no idea how it works in the US. I thought mentioning "autonomous communities" was enough context to make it evident, but maybe it wasn't.
Mordisquitos19 hours ago
I may be wrong, but I think autonomous community legislation is not published in the BOE itself (the Official State Gazette), but rather in each of their corresponding official gazettes (e.g. DOGC for Catalonia, BOCM for Madrid, BOA for Aragon, BOJA for Andalusia, etc.).
youknownothing18 hours ago
yes: Comunidades Autonomas can only defined laws as "permitted" by the central government under a Estatuto de Autonomia (Autonomy statute? not good with legal jargon), which is effectively a law of its own. So at the central level the law says "in this particularly region, matters of education are dealt with regionally", and then that's when regional laws apply. Same from local laws. In essence, all laws emanate from the central government, but the central government decides to delegate some areas; technically, they could always take it back.
pseingatl19 hours ago
Rarely in a civil law jurisdiction, essential in common-law jurisdictions.
artirdx13 hours ago
Another thought. Assuming such a dataset (laws+ judgement) could be built, an argument can be made to Parliament to draft new laws that take into account all those judgments and then mark those judgments and old laws in a way that they can no longer be referenced (archived?). This might simplify future cases leading to lower legal costs.

And who knows maybe a way could be found to create smart contracts (smart oracles? smart judges?) and those could lead to instant judgements.

SOLAR_FIELDS19 hours ago
Perhaps reference it in the commit trailer?
Bewelge20 hours ago
Oooh Can you elaborate a bit how the gazette is publishing them? Like what format did you have to parse. And how many documents were there in total? I tried doing the same for German laws 1-2 years ago but LLMs weren't smart enough yet. And the costs would've been at least a couple of thousand €.

Ed: Nevermind, I missed the "BOE (Spain's official gazette) consolidated legislation API" part. Sending jealous greetings from Germany. We just have a bunch of PDFs in Germany. And the private entity that has been publishing them for decades even claims copyright on them!

sivann18 hours ago
Heh we have the exact same status in Greece. It’s sad the upstream is so sloppy.
brcmthrowaway12 hours ago
Do you mean DIN?
Bewelge3 hours ago
No I'm talking about the Bundesanzeiger (the publication where new laws are published) being privatized.
rmonvfer18 hours ago
I looked into this a while back and IIRC, the consolidated legislation doesn’t cover all legislation but only a handful.

Also, in my experience (having built in this space before), regulations aren’t really the issue. Court rulings are, because there’s no open data for them in Spain. And the potential users for a paid product (legal professionals) already know the law; the key players (big law firms) have their own databases of annotated and verified court rulings and other documents.

novachen2 hours ago
4 hours from idea to 27k commits. the velocity with agentic tools is genuinely disorienting sometimes.
manunamz14 hours ago
Very cool project. How are you thinking about indexing and discoverability? Git gives you the change history, but navigating the corpus itself seems like the harder problem: Finding related laws, understanding hierarchical relationships between statutes...

Have you considered embedding semantic hierarchical structure directly in the markdown? Something like https://github.com/wikibonsai/semtree ? It lets you build a navigable tree across markdown files using indented [[wikilinks]] as the organizational spine. Could be a natural fit for legislation that already has an inherent taxonomy (constitutional → organic → ordinary, or by subject area).

gopher_space12 hours ago
> Exploring whether there's a business here — structured legislation API for legaltech/compliance, or just a useful open dataset. Curious what HN would build with this data.

Compiling legal data for specific domains and then selling processes that rely on your private compilation is a battle-tested business plan, but there's a lot of manual work involved and the cost of that work becomes a barrier to entry.

Generally speaking, the people who'd like to cross that barrier are both open to ideas and funded well enough to run little experiments.

youknownothing18 hours ago
This is brilliant. I had thought about this for a long while, you see laws that are just "go to law 132 and amend paragraph 4, then go to law 24 and amend paragraph 9". Basically "laws" are recorded as diffs, and then it's up to the reader to put up the final product in their heads. They should be doing it this way!
wyan12 hours ago
To be fair, the BOE website often offers the consolidated version for many important laws, which includes further amendments by other laws in one text.
airstrike18 hours ago
This is really cool. I've thought about it for a long time as well but never had the idea of just using git, which is equal parts genius and "obvious" in hindsight, as most great ideas are.

I think the corollary that comes to mind is that reforms, with their git commits, are incrementally valuable if they refer to other parts of the legislation, previous commits, etc. to give more context as to the intent at the time of the law. So maybe there's a way to distill the legislative process into more PR and commit-oriented work—likely ex post as you did here, but perhaps in the future as part of an actual workflow.

And then maybe I'd pitch the idea to some technologically-inclined local government.

muyuu10 hours ago
the problem with Roman-Napoleonic systems is that this will let you find changes to articles in law codes, but large swathes of the law are just declared out of context, and its interaction with the rest of law is for lawyers and judges to interpret - which is what makes them inherently different to case law systems

note that even in case law systems, legislators can still pretend to be clarifying or reinterpreting things to essentially change law, but at least the supposed principle is that law has to stay coherent and go through all the pertinent checks and balances

in the UK legislation traces back to its origin, with all relevant amendments, see for example:

https://www.legislation.gov.uk/ukpga/1990/8/contents

rayshan10 hours ago
Would love to get the U.S. tax law as a dump of markdown files. Then everyone can build their own TurboTax.

https://www.irs.gov/privacy-disclosure/tax-code-regulations-...

daedric719 hours ago
Please! Can you make the same for Portugal? Laws here are a mess of reforms...
upcoming-sesame19 hours ago
is there a similar API for Portugal?
mattogodoy13 hours ago
I’ve thought of this of many times! But you’re missing the most important part: every reform should be a PR. With discussions and all. That would be the purest form of voting. And all decisions to reach the current state of a law would ve registered and available for everyone to read. Democracy 2.0.

Dreaming costs nothing.

andrepd10 hours ago
This is already the case since parliamentary minutes are typically on the web as well. Unfortunately of course, this only includes the "official" discussions, not those taking part in corridors, offices, or lobbies... :)
__MatrixMan__18 hours ago
It would be a good place to start if you wanted to hard fork the government.
abdusco10 hours ago
You need some land to host your own legislation
aerhardt16 hours ago
I’ve had the idea of playing with our laws and trying to ask questions about their growing volume and complexity. This is timely and dope Enrique - mil gracias!
Mordisquitos19 hours ago
Congratulations, this is a brilliant resource. You have done one of those countless things which I often think about doing, but my utter lack of follow-through and other distractions make it a fantasy. I cannot wait to clone the repo and explore it.

As to what can be done with the data, maybe one interesting step could be a graph-database regarding laws which reference other laws or the definitions that they depend on?

andrepd10 hours ago
> Exploring whether there's a business here — structured legislation API for legaltech/compliance, or just a useful open dataset. Curious what HN would build with this data.

Verrsioning+search is like feature zero of any law software. In many countries (such as next door Portugal) it's even part of the standard public website provided by the state. Not to diminish your effort but yeah, people have thought of that before x)

markdown11 hours ago
I've long wanted to do this, but don't have the api. This is much harder to do with pdfs
zer00eyz15 hours ago
Too bad that author, and committer are individuals and not lists. It would be good to see who wrote them and how the voting went as well.
7777777phil21 hours ago
cool idea, how far back (in time) do those 27k commits go?

Just thinking how this could maybe used for (automated) research / visualization on the evolution of (spanish - in this case) law

codethief20 hours ago
> how far back (in time) do those 27k commits go

Looking at the commit dates (which seem to be derived from the original publication dates) the history seems quite sparse/incomplete(?) I mean, there have only been 26 commits since 2000.

Meneth20 hours ago
It seems the commits aren't in proper date order. Here are some newer changes, placed before the latest commits: https://github.com/EnriqueLop/legalize-es/commits/master/?af...
forgotpwd1618 hours ago
It's related to commits actually having a parent-child structure (forming a graph) and timestamps (commit/author) being metadata. So commits 1->2->3->4 could be modified to have timestamps 1->3->2->4. I know GitHub prefers sorting with author over commit date, but don't know how topology is handled.
codethief17 hours ago
> It's related to commits actually having a parent-child structure (forming a graph) and timestamps (commit/author) being metadata.

Yeah, I think everyone is aware. It's just that the last couple dozen commits, to me, looked like commits had been created in chronological order, so that topological order == chronological order.

> I know GitHub prefers sorting with author over commit date, but don't know how topology is handled.

Commits are usually sorted topologically.

lcrisci18 hours ago
I love it. This is a step in the right direction to have a transparent database of existing laws and be able to consult them with your AI or anything capable to reason about them and explain the status quo of our national laws. I would love to see a similar setup for other countries.
wrxd17 hours ago
It would have been cool if the commit authors reflected the actual politicians responsible for the reforms. Find a law, run `git blame` and immediately know who’s responsible for it
deepsun17 hours ago
And even more useful would be unit-tests -- here is a loophole and here is the law preventing it.

Whenever a law is about to be changed/removed, run all the tests to make sure no regressions.

ecocentrik16 hours ago
Tests for correctness, self similarity, duplication of concerns, contradictory statutes, edge case detection, cruft or outdated laws that muddy the waters...

If the full compliment of software development practices were applied to legislation and ordinances we would be living in a very different world.

dylan60416 hours ago
oh gawd, code is law is back. or is it law is code?
psychoslave16 hours ago
Jurisdictional laws don't work that way though. It's more like a script for improvised theater. Everybody get the same text, but no one gets the same performance twice.
mergeshield59 minutes ago
Great application of version control to a domain that needs it. The diff between law versions would be genuinely useful.

Interesting to think about what code review would look like for legislation. Risk scoring on proposed changes - does this amendment conflict with existing law? Does it have unintended scope? Same problems software teams deal with at a different scale.

j-bos21 hours ago
This is brilliant. I wish this were available for all legislations. There's so many inefficiencies that are trivially solved with existing tech frameworks.
Schmerika20 hours ago
> There's so many inefficiencies that are trivially solved with existing tech frameworks.

There really, really are.

The legal industry is well aware of that fact - and how many billable hours they stand to lose by making their work more efficient and understandable.

You know how tax prep companies spent over $90m 'lobbying' Congress to ensure that filing your taxes remains difficult and complicated [0]?

Well, lawyers know just as well or better how to butter their bread; and they will pull out every dirty trick they have to scupper attempts to make practising law more transparent or efficient in any way.

0 - https://www.opensecrets.org/news/2023/09/tax-prep-companies-...

DennisP19 hours ago
It's not just the legal industry, it's the legislators. I used to be friends with a former state senator, who had a background in forensic accounting. She said they purposely made the bills harder to parse than necessary so it was hard to figure out what they were actually doing. Given enough time, people could do it but in practice there wasn't time before voting on the bill, and that was on purpose too. Of course some of it was to reward lobbyists or do other unpopular things, but she used to read bills from back to front because the back was where they put all the graft. An example I remember was $50K in taxpayer money going to a congressman's birthday party.

For a while I thought about trying to write software that would turn the obscure natural-language diffs in written bills into a readable diff, showing the laws before and after with highlighted changes. But she said they just got the bills as paper printouts which weren't always even up-to-date, so it might not have helped much. Maybe now they're online. And LLMs might make the project easier.

FuckButtons17 hours ago
Presumably, there must be some point in time where the bill is made public in some form before going to a vote. If you could get the right tool in the hands of a journalist to turn whatever obscure format it’s in into something legible by an ordinary person there’s probably value there.
newyankee18 hours ago
and then we have people touting Jevon's paradox as outcome of AI disruption leading to more work. Before we create new work we need to figure out how to reduce incentive of people to unnecessarily complicate stuff and to be honest the answer is never clean or easy
wolfi120 hours ago
unfortunately, laws are not everything. you need to know how to get around them. our country for example has the habit of creating a lex fugitiva that means that some regulations could be changed in other not related laws. good luck finding the correct regulation without a law degree
dgreisen20 hours ago
Our nonprofit, Open Law Library, is working on this exact problem. It is definitely not trivial, but it is very doable. We partner directly with governments to help them implement so the git repos become the canonical record (rather than just an unofficial mirror).

Maryland just launched their regs on our platform:

https://regs.maryland.gov (https://github.com/maryland-dsd/law-xml-codified)

Feel free to reach out (email in bio) if you would like your community to publish their official laws on GitHub!

rafram20 hours ago
Everyone in government knows what Track Changes is. The standard format of a piece of legislation in British-influenced systems is a diff. The tech field does not have secret knowledge that the rest of humanity lacks.
j-bos10 hours ago
> Everyone in government knows That's part of the point good rafram, I'm not in government but I've looked up laws for at least three jurisdictions and have never encountered version control. A tool at the bottom of a drawer or in only one person's belt is not a tool to anyone else.
dinkumthinkum17 hours ago
I was thinking the same thing. I feel like people in software tech always think they have secret powers that experts in other fields can't imagine.
appstorelottery21 hours ago
I couldn't agree more - this is fantastic work.
Esophagus420 hours ago
> so many inefficiencies that are trivially solved with existing tech frameworks.

Out of curiosity, like what specifically?

Didn’t DOGE’s failure highlight that it actually wasn’t trivial? I’m skeptical at first glance but open to being proven wrong.

bojan20 hours ago
DOGE wasn't actually trying to make things more efficient. You can't count it as an honest attempt.
j-bos10 hours ago
To be clear, I wasn't exclusively referring to government. I was actually only thinking of the use of git-like version control across a number of different technical domains, law, design, book writing, architecture, etc
Esophagus410 hours ago
Oh, I gotcha.

Yes, I’ve noticed that software like MS Word and Atlassian Confluence now has version control built in

0x3f17 hours ago
> Out of curiosity, like what specifically?

For example, there are thousands of divisions of government out there provisioning largely the same systems in duplicate. E.g. the very local government here has a web portal for the sports venue bookings like pools and tennis courts. They have a waste collection portal. Local tax portal.

Only recently has this been slightly standardized but even those efforts are purely regional. You might get 5 local councils in the city using one SaaS platform, another 5 using another SaaS platform, and another 5 rolling their own. For each function of local government.

Nevermind the fact that a local government in France like this probably has very similar needs to one in Belgium or even the US.

And the worst part is they are terrible at procurement so even when they do consolidate, they're basically getting scammed.

I often think about starting a cost-plus-priced open core project to deal with these issues. Like we build common government functions, and sell it for cost plus 20% markup, with a licence that lets the gov run it themselves if we ever go bust. But then I think procurement is largely a grift game and it might not do well for that reason.

akudha12 hours ago
Wouldn’t consolidation lead to monopoly? If 50 local governments use the same SaaS/vendor, the 51st local government would likely go for the same vendor just because 50 others used that vendor before them, no? What prevents the vendor from jacking up prices or general enshittification at the stage?
0x3f11 hours ago
> What prevents the vendor from jacking up prices or general enshittification at the stage?

Well what I'm proposing building would be source-available and licensed such that the gov can run it themselves if it ever gets too expensive. The sub-gov entities should really band together for the negotiation though, then they can ask for whatever they want: non-profit vendors, liberal licensing, price agreements. A collective of government buyers form basically a monopsony larger than any individual vendor could ever be.

hirako200020 hours ago
DOGE made the token gain more in market cap than it saved in expenses. Despite having at head a master of blind layoffs.
f1shy20 hours ago
I would like to have a legal advisor based on that. At least for a first question, qithout paying a lawyer
idiotsecant20 hours ago
And, in the example of the stereotypical venture capital seeking techbro junk that has somehow infected the entire world, this project doesn't actually understand or solve any real world problems.

No shade on the author, they made a fun thing. I'm directing my cannons more towards the parent post idea that the world needs software developers for their rare genius to use their beautiful brains to solve problems in ways no actual participant in the system could have ever thought of.

The additude that because you can prompt a LLM to write some python you are also uniquely situated to solve the world's problems is how we built an entire generation of automated solutions worse than what we had before.

theptip18 hours ago
Nice! I was just implementing this for CA state bills.

Is the parsing/uploading code shared somewhere else?

Definitely the kind of idea that would have been below my activation energy pre-Claude.

I think this approach should be standard, I have always wondered why the source of truth for these documents is not moved to a repo like git.

dylan60416 hours ago
my first reaction cynically would bet that government really doesn't want the people to know exactly what the laws are. a more generous reason would be nobody in law is truly technical enough to understand it let alone implement it.
enriquelop12 hours ago
OP here. Thank you for the incredible response — I did not expect this.

Many of you asked if the code is shared. It is now: https://github.com/legalize-dev

The pipeline is multi-country by design. France already works as a second country (Légifrance data). Adding a new country means implementing 4 Python interfaces for your national gazette. The rest (markdown, git, web, API) is generic.

I wrote a guide for contributors who want to add their country: https://github.com/legalize-dev/legalize-pipeline/blob/main/...

From this thread alone, people asked about Germany, Portugal, Sweden, Finland, Netherlands, and Brazil. If you know your country's open data source for legislation, a PR is the best way to help.

I'll be honest — I don't know how much time I'll be able to dedicate to this, but I'd love to build something big. Legislation is massive and scaling to more countries takes real infrastructure. I'm setting up an Open Collective to fund hosting and development: https://opencollective.com/legalize

Live site with browsable laws + diffs: https://legalize.dev

Everything is still very precarious, time to time.

Thank you

Quarrel21 hours ago
Great project.

For others wondering, while most of the Franco-era laws were nuked in 1978, this does include lots of old laws (ie pre-20th C).

However, the source material starts with a sqashed commit in 1960 :) So no changelog before that. The BOE source though is pretty phenomonal, they've scanned files going back to the 1600s so far.

cyrusradfar20 hours ago
I think this is great. Only limit of git is I can't imagine "git blame" works. It would be nice to know who voted for and against each patch. Git isn't structured for collaborative commits.
hirako200020 hours ago
That could actually be a git commit log with date, votes and other metadata.

But getting the entire country's law into git is already an impressive feat.

3eb7988a166317 hours ago
If we are spitballing, I think there should be an actual file associated with the text so you can see the vote. A file makes it trivial to grep for "Senator X".

Not git, but Congress actually does have quite a bit of data digitized. A random example[0] -they even provide XML. The Congress data is going to give you all bills - many of which do not pass, so a different mission than this project.

[0] https://www.congress.gov/bill/118th-congress/house-bill/4818

embedding-shape20 hours ago
> Git isn't structured for collaborative commits.

Git isn't structured for collaborative commits, but community-wide conventions kind of "patches" support for it on top of the git message body, via "Co-Authored-By: name <name@example.com>" which IIRC most platforms support, and the convention itself initially comes from Linux kernel development.

171862744019 hours ago
You could have the parliament (meaning including the election cycle) as the main author and then the parties and votes as Co-Authors.
dinkumthinkum17 hours ago
Is this really a problem we have now, though? This information is publicly available. If everyone here is so excited about LLMs then why would this even be needed? Anthropic can just give us the answer to every question. We don't need nerds that know what git is. :)
nuhuhh20 hours ago
Yeah you can, just smash commits on the PR where multiple contributed. It will say it was a collaborative commit in history showing all their avatars.
vitorbaptistaa20 hours ago
Congratulations! This is a very cool project. A few years ago there were similar ones -- browse gitlaw.

In Brazil we have lexml, a standard to describe the law and their changes over time. It's surprisingly complex.

phlakaton20 hours ago
Hah! XML strikes again. :-)

I understand that Spain was a participant in LexML as well... I gather they've since converted to something else?

josalhor19 hours ago
Not only would be cool for laws to have appropiate time stamps so we can "go back in time to how it was at a certain moment", but also if we could have proper git commit diffs of how laws change over time. See this: https://www.boe.es/buscar/act.php?id=BOE-A-2015-11430

You can see how certain articles have the option to check "how that particular article was at each moment in time". That would be way harder to track, but it would be awesome if not only could you "go back in time and see what the law was" but also "how its been evolving".

jonhohle19 hours ago
Not only that, but authors and approvers could be used to track who created and voted for each change.
dan_linder19 hours ago
Then compare wording and structure with other bills proposed elsewhere to look for single sources trying to legalize an agenda or retry after earlier failed attempts.
upcoming-sesame18 hours ago
it would also be cool to know the "why" that went into the change
sigio20 hours ago
I did the same with a limited subset of dutch laws a while back: https://github.com/sigio?tab=repositories&q=wetboek
zaep20 hours ago
Nobody seems to have (yet) mentioned the most recent (rn) commit [1] dated 2099. I can't really figure out where the date came from, at the source noted in the commit I find no '2099', I can't see it being a joke, if it's a bug it's not obvious to me..

I'm sure I won't be the only one curious, please enlighten me.

[1]: <https://github.com/EnriqueLop/legalize-es/commit/424cbc96507...>

gloosx19 hours ago
Classic. He forgot to add "make no mistakes" to the prompt. Based on the commits alone Im not sure anyone really reviewed the correctness of the git history.

When someone specifically mentions "built in ~4h with Claude Code" they probably didn't care that much about the outcome quality

forgotpwd1618 hours ago
It's a cool PoC even if implementation/result isn't perfect.
comboy19 hours ago
Add CI to check if new laws don't contradict with any existing ones.
bertil19 hours ago
You might need to turn laws into formal proofs, and the existence of judges makes me think that’s not as likely as you would like. A commenting system would though—trained on countries’s precedents, jurisprudence and traditions might.
whattheheckheck19 hours ago
Can you imagine rebases with merge conflicts?
bentcorner17 hours ago
This could in theory already happen without any tech, but I suspect since the government is pretty monolithic, any changes in a specific law are all being done by the same set of people.

You might not have merge conflicts but I imagine you could end up with conflicting guidance from two separate pieces of law (e.g., law A says you must wear green on St. Patrick's day, law B outlaws green pajamas).

PhilipV17 hours ago
Well done. I believe that Governments should have a Open Licence for copyright purposes like exists in the UK that allows Govt docs to be used for commercial purposes without issue. I would want to propose a step forward there so that the next generation of this open licence actually has a data set approach to making data sets available - possibly at cost. Governments are losing the ability to charge for nominal items in paper as digital is so openly available - they can make a revenue on providing data at large to public so that others can build or simply if not for free.

Well done and great to see items like this and great to see the comments.

postepowanieadm16 hours ago
Legislation is out of copyright. Unofficial consolidated versions may be a different matter.
0x3f17 hours ago
The UK is IMO quite terrible in this regard. Yes, a lot is OGL, but very key items are sequestered away and very costly to obtain. OGL is a total bodge; just get rid of Crown Copyright.

When it comes to the law specifically, there's a whole silly setup with transcription companies as well.

pilingual16 hours ago
One idea behind the PoC Right to Privacy Act is having tests. A recurring theme with conservative Justices is clarity of legal text.

Testing may not exhaust all scenarios but it is useful to see where loopholes may exist or whether a bill that sneaks in while you aren't paying attention is unfavorable to your values.

https://github.com/righttoprivacyact/bill/blob/main/tests/te...

rafram16 hours ago
This is incredibly software engineer-brained. The law doesn't work like software. The only thing that matters is how the judiciary interprets the text, and if you try to use LLM "test" output to argue for a specific interpretation, you'll be laughed out of court.
pilingual11 hours ago
I believe you hastily misinterpreted the point. It's merely a tool that wasn't possible before.
psychoslave16 hours ago
Laws are there to inform the land how the dominant class expect to be served. At least in theory the dominant class could be the working class or the majority, mind you. In practice you generally get a better idea looking at what small network core founded the country, generally through bloody wars or genocides.
maCDzP18 hours ago
Nice, I am going to this for Swedish law! Any suggestions on how one can model parliament voting when a law passes using GitHub? Or all the work that preceded a law, that’s like a feature request or a bug report.
mrimskog11 hours ago
I’ve done this for Swedish laws: https://github.com/se-lex/sfs (Markdown with git history)

https://github.com/se-lex/sfs-processor (processor with Git, md, md with temporal tags, or html as output formats)

maCDzP3 hours ago
Thank you! Didn’t know that existed.
juahan15 hours ago
I started doing it for Finland!
setopt18 hours ago
Parliament voting, maybe upvotes and downvotes on a pull request?
matthewgard115 hours ago
I did something very similar for some US state level laws. "Legit" legislative git.

Useful for alerts in our concern area, and monitoring proposed legislation iteration and flow through committees to keep ahead.

I can imagine quite a few other more civic interest uses as well!

Hoping to open source some later myself, seems an area ripe for some open civic citizen/hacker projects. Bet some fun startups could be made on top too, gl.

MinimalAction19 hours ago
The general sentiment here is that it's a great project. Could someone please explain why? All I'm seeing is that laws are updated with commits within markdown files.
saadn9219 hours ago
The value is in the semantics git gives you for free once the data is in this shape. Right now if you want to understand how a law changed, you go to the official gazette website and read a document that says "strike paragraph 3 of article 12 and replace with the following text." You're doing the diff in your head.

With this repo, git log --oneline -- spain/BOE-A-1978-31229.md gives you every reform to the Spanish Constitution in one command. git diff between any two reforms shows you exactly what changed in context. git blame tells you which reform touched which article. These are operations that would take a lawyer hours of cross-referencing, and they're free once the data is structured this way.

The other great thing: you can build tooling on top of it and use it with the CLI.

MinimalAction18 hours ago
Thanks for a beautiful explanation. Makes sense now that this repo enables git diff, git base to reveal changes easier.
saadn9216 hours ago
of course, thanks for asking a great question!
xeromal18 hours ago
The why is that it's cool. Why it's not cool for you cannot be explained by us, only you.
MinimalAction18 hours ago
I didn't say it's not cool. I was trying to understand the utility of it being great.
xeromal18 hours ago
Coolness and greatness can be the same thing.

For instance, the big Lebowski is great and cool.

ks204818 hours ago
A couple things I noticed opening one random page (https://github.com/EnriqueLop/legalize-es/blob/master/spain/...)

It left out the tables (e.g. under 2.1 Materiales.) and the images (e.g see the very bottom).

sebastianconcpt18 hours ago
We need something like this for every country.
dorianmariecom20 hours ago
icpmoles17 hours ago
For older edits there is https://github.com/steeve/france.code-civil

Unfortunately Git is based on Unix timestamps so everything pre-1970 has the wrong date.

wouldbecouldbe20 hours ago
This is really great, anyone know of a Dutch version?
layer819 hours ago
wouldbecouldbe16 hours ago
yeah thats a great start, however the md files of every change are really helpful in going though history and understand steps with llms'
boredatoms17 hours ago
Is there something like this for the US?
wavemode17 hours ago
Even if there were, it wouldn't be very useful. In a "common law" system like the US, legal questions are rarely answered purely by the plain text of a law. You also need case law - that is, how the law is typically applied in practice by the courts.
boredatoms16 hours ago
Sure, then that with case law too?
smitty1e16 hours ago
The legislation seems more high-level requirements, that then implemented over in the Code of Federal Regs[1].

Using AI to plow through and make sense of all this would put us at risk of people knowing what the USG is getting up to.

[1] https://en.wikipedia.org/wiki/Code_of_Federal_Regulations

the-rc15 hours ago
There was a project at Google Chicago to do something like that, around 15 years ago. For some reason, it was never launched.
8bitsrule18 hours ago
Looks like we're heading toward some resolution to the old problem 'ignorance of the law is no excuse'. Born in a world with plenty of laws, the jeopardy that goes with them, and no easy and reliable resources, that would certainly be welcome.
wyan12 hours ago
The fact that the oldest current law in the list is about places where nuns are allowed to be buried is quite amusing, in some sort of way.
bertil19 hours ago
This is a key project, and I’m sure many countries have enough developers who might try and get it done, but a project that can do it for most legal systems (assuming the sources are on-line) would help a lot more people access legal resources.
coopykins21 hours ago
Hey, very nice! Seems like a great way to have LLMs answer questions about the laws more reliably.
worksonmine17 hours ago
Hey! How can I make this about LLMs?

(Many countries' laws are already available online and included in the dataset they're trained on. The project is very cool for humans though.)

0x3f20 hours ago
Neat. I wonder if there are commercial products that are formal specifications of laws, decisions, etc. Such that you can reason on them via solvers etc.
embedding-shape20 hours ago
I think it's a rite of passage for every developer who ever touched the ecosystem of law to also wonder the same. Probably even since the invention of "business programming" there been developers wondering this. Many has attempting, so far, I don't think anyone succeeded.

But I'm sure someone at some point might figure it out, you never know :)

0x3f19 hours ago
Well, there's a new batch of autoformalization attempts with LLMs now. Although I've also heard people say autoformalization will always be impossible.

It's interesting to wonder what kind of coverage Cycorp managed to achieve internally, and on what domains. Seemingly no job openings at the moment though!

planteur19 hours ago
0x3f18 hours ago
Nice, now I just need to spend 5 years encoding it all and I can finally start my 'AI' tax evasion consultancy firm.
throwaway_262620 hours ago
This is amazing. I have a couple of suggestions: - Maybe breaking the "Spain" folder into subfolders? Not sure what categories could be used, but browsing would be easier. - There's a missed opportunity in having different authors for the commits (maybe the "legislatura" number), and possibly, tags/labels including the political parties that voted in favor of each.

I'll take a look at data to enrich it :).

larsiusprime21 hours ago
Is the idea that the commits themselves are also time stamped with the date of the legislation/amendment too?
Thev00d0021 hours ago
Yes
larsiusprime20 hours ago
Brilliant!
d0m20 hours ago
I wonder which country will be the first to be run entirely by AI instead of corrupt politicians
layer819 hours ago
I don’t think a country where everyone is absolutely right would work.
canyp16 hours ago
You're absolutely right.
akerl_8 hours ago
This makes me think of back when people were really hyped about DAOs because technology was going to solve the problems with squishy, fallible humans.
logicallee19 hours ago
>I wonder which country will be the first to be run entirely by AI instead of corrupt politicians

State of Utopia[1] has this manifesto[2]. In our estimation (and we use AI a lot), it is not powerful enough to govern a country yet. We thought it was worth trying anyway.[3] We would like it to be able to handle contexts that are millions of times greater (think more like 1 billion tokens than 1 million tokens), and even so AI governance is a very difficult matter. In addition, once AI governance is achieved, how can you truly trust the governance model not to be corrupted? Transparent government run by AI is an additional point of difficulty. These days, the most difficult unsolved problem is how to introduce voting and users' comments without inviting comment spam and vote rigging. You can watch my latest update here[4] (I'm sorry, it's very quiet), and we welcome your input on all subjects. We have a fully autonomous agent currently running the country, which consists of a Mac Mini and a Claude subscription (plus our own dedicated server in a country that recognizes us, and we have a couple of other embassies by agreement and legal contract). But in practice this government just does whatever I tell it. It's not advanced enough to run a code of laws, which is one of the basic requirements citizens expect of their country. The size of problem space for running a country is larger than models can handle, but many things help.

One of the best hopes we have is with deterministic offline models where we share the pipeline with people ahead of time, so they know exactly how it will work. This could be a trustworthy matter of dispute resolution, if we get the architecture right.

For example, our country could help you sign a contract and in case of dispute, both parties could submit supporting documents and make statements and the offline model they agreed to at the time of signing their contract could adjudicate. This pipeline could be transparent from the start. This won't satisfy everyone, but might provide the minimum standard of having a code of laws that assists with contract enforcement. For now, all you can really do is keep checking our site for updates and leave comments about what direction you'd like the country to take. (For example, you can leave a comment on my latest update on Youtube.)

[1] https://stateofutopia.com

[2] https://claude.ai/public/artifacts/d6b35b81-0eeb-4e41-9628-5...

[3] https://medium.com/@rviragh/ai-is-not-ready-to-create-utopia...

[4] https://www.youtube.com/live/K0dgrPRWPCs

rwmj20 hours ago
This is great. Compare it to British legislation which is frankly a mess of patches. Example picked fairly much at random, this law was originally passed in 1990 and has been "patched" regularly:

https://www.legislation.gov.uk/ukpga/1990/18/section/9

Laws being passed are these ludicrous sets of patches:

https://www.legislation.gov.uk/ukpga/2015/9/part/1

gus_massa20 hours ago
I think it's similar everywhere. IIRC from time to time here in Argentina when there are too many big changes, the legislature make copy of one old law with all the amends and add all the new ones and approve the new version. Let's say every 50 years or so, and not all the laws at the same time. So the "current" law is a mostly a mess of patches.

The main difference is that in Britain the judge decisions become almost-laws, so it's like a repo with too many people with commit right. I think in Spain the judge decisions have less weight and only the legislature has commit permissions .

codethief20 hours ago
I think such "ludicrous sets of patches" are very common in many jurisdictions. (At least in Germany they are.) I agree, though, git patches would be a lot nicer.
postepowanieadm16 hours ago
It's not messy. You have to take into account that every patch is voted separately - read Robert's Rules of Order for an enlightenment ;)
hirako200020 hours ago
Also the principle of common law.
gib44418 hours ago
Let's hear your solution to the mess.
reality_inspctr17 hours ago
love this. I did something similar w the US Constitution. https://usconstitutionapi.com/
SweetSoftPillow19 hours ago
We need it for every country and every law in the history of humanity
ivanjermakov20 hours ago
I'm surprised the world is not running a system where laws are formally encoded using some DSL that would allow making decision (guilty/not guilty) using formal logic. Perhaps there is not much interest from law making/enforcing parties for this either.
rrr_oh_man20 hours ago
That's a common fantasy of developers who haven't touched grass in a while.
bonoboTP19 hours ago
It's a rehashing of Leibniz's "Calculemus!".

It's not a fully stupid idea, many rules can be automated and indeed have already been. The things that courts still have to decide manually are the leftovers that require more human judgment.

fph18 hours ago
This pipe dream will soon be replaced by "let's have the first degree of judgment be ChatGPT; human judges should only deal with appeals".
rrr_oh_man16 hours ago
Sounds like every self-driving startup
krzyk16 hours ago
Why is it a fantasy to have a fair system with no room for interpretation?
rileymat220 hours ago
You’d also probably be surprised about how subjective and unevenly applied the law is… by design, to allow appropriate outcomes and discretion.

Edit: Consider the following words included in law.

“reasonable” “reckless” “due care”

bonoboTP19 hours ago
Have you actually tried reading a single law? If you have, have you tried to write just one article in formal logic?

Certain laws, like parts of tax law may be possible to turn into code, like percentages and deadlines, but even those often carry natural language conditions that can't be evaluated so easily. Seriously, try it.

bentcorner17 hours ago
I don't think this is where the problem lies. If you kill someone with intent, it's murder. But the whole system needs to prove that you killed someone with intent beyond a reasonable doubt, and a DSL will not help you there.
gloosx19 hours ago
Maybe we should go further and use some DSL to speak with each other in the first place? Would def make everything straight and eliminate ambiguity!
bonoboTP19 hours ago
That's Lojban.

Turns out, ambiguity is an intentional communicative tool.

anthk11 hours ago
Law is not 100% exact. For instance, the age of consent in Spain it's 16, and you are adult by 19. You and a group of people had sex with a 15 yo. Your friends are well over 20 (24, 25...), and OFC trialed and jailed. But you, being almost close in maturity to that girl, (and noticed by psychologysts testing both the girl's mindset and yours ) can have the charges perfectly dropped.

Ditto with alcohol laws -18 there-. Selling a cyder to a 17 + 11 months guy would have a much smaller fine than a hard liquor to a 14yo.

The reverse it's true, too. 14yo are the minimum age to be legally punished. If you are 13 and barely stole some $20 Steam card -if any- you just got sentenced to spend your formative years in a juvenile center.

But, if you are 13yo gang member and you have a longass list of both petty and hard crimes and the last one has been a bloody crime with serious injuries or homicide... you can be sent as an exception to an adult prison because your mentality and mindset are not the ones from the early teens.

Especially if your body it's really developed for your age and you basically commanded mini-clans as the ones you can see in Ireland, Italy and the like. When you can smack down adults at age 13 and even ilegally drive a car, the Spanish constitution wont save you. Ultimately you must -and can- be trialed as an adult but also be able to finish the mandatory education years until you hit 16. Not easy, of course, but sending these kind of people to juvenile centers just generates more thugs than anything else.

If this is difficult for humans, imagine that for software with exact constraints.

d--b21 hours ago
I think French laws have been on website that’s like that for a while
codethief20 hours ago
The German parliament even has an official git repository: https://github.com/bundestag/gesetze

Looks like it's been abandoned, though. :(

layer819 hours ago
The GitHub org being called “bundestag” doesn’t mean that it’s anything official. It looks like it’s made by independent activists.
codethief17 hours ago
Oops, I should have checked this more carefully. Thanks!
Rexxar20 hours ago
https://www.legifrance.gouv.fr/

If you go on particular laws, you can see the previous versions and how it changed. Example: https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT0000...

Click on "version" then "comparer" buttons and you will see a diff.

Ericson231419 hours ago
All legislatures need to work this way as soon as possible!
sandbx18 hours ago
Did you try more heading levels for the article names?
notorandit15 hours ago
That's how it should be everywhere!
makaking18 hours ago
I love this. This made me think that logging all legislation in a public VCS might be a very good way to leverage superintelligence while maintaining democracy. I want this for Germany.
drob51819 hours ago
The date of the last commit is 2099.
MomsAVoxell20 hours ago
Great idea! I hope you did something like:

  $ git commit --amend --author="Author Name <author@spanish.gov>" --no-edit
.. with the details for the author of each commit.

Then, it would be simply amazing to run gource, sit back, and watch where all the noise is coming from.

Gource:

https://github.com/acaudwell/gource

What gource looks like:

https://gource.io/

I’ve long wanted to see gource applied in other sociologically-relevant contexts and this’d be a real good one ..

PenguinRevolver16 hours ago
I tried using Gource and... well, the commits were not sorted by date, so the time goes all over the place.
smashah21 hours ago
I've been saying for years that any and all legal documents (and all lawyers) should be required to be on/use git
sh-cho17 hours ago
Good Idea!
AtomicOrbital19 hours ago
all of government data including all laws especially tax law needs to be put online and optimized by ML
saglogog19 hours ago
Nice
TZubiri20 hours ago
I've seen something like this before, here's the Argentina constitution as a git repo, with reforms as commits. Much shorter in scope, but this was pre LLM coding

P.S: Sadly my PR amendment was repealled

LukeB4216 hours ago
adjejmxbdjdn21 hours ago
Love this idea
anthk11 hours ago
Heh, with the BOE you need a Common Lisp expert in order to parse that. Some legal sentences look like a text from Marx, and not the Commie ones.