Code and technical design for a Git-native mirror of Italian legislation in Laputa-compatible Markdown.
The current implementation covers Stage 0 through Stage 3:
- live source probes for Normattiva, Senato bulk data, and Camera datasets
- a flagship reconstruction cohort with backdated Git history
- a real repeal example modeled from official Normattiva article payloads
- a broader current enacted-law snapshot driven by Normattiva's updated-acts feed
- checkpointed current-corpus sync batches with replayable manifests
- backdated Git commits in the companion
italian-law-datarepo - Laputa type notes generated automatically for the published corpus
- event notes, manifests, and article notes for the reconstructed history
Run the live probes:
PYTHONPATH=src python3 -m italian_law_sync.cli stage0 --output-dir fixtures/stage0Generate the Stage 2 flagship cohort:
PYTHONPATH=src python3 -m italian_law_sync.cli stage2 --data-repo /Volumes/Jupiter/Workspace/italian-law-dataGenerate the Stage 2.5 cohort with the repeal example:
PYTHONPATH=src python3 -m italian_law_sync.cli stage25 --data-repo /Volumes/Jupiter/Workspace/italian-law-dataBootstrap the Stage 3 current enacted-law snapshot on top of the Stage 2.5 cohort:
PYTHONPATH=src python3 -m italian_law_sync.cli stage3 \
--data-repo /Volumes/Jupiter/Workspace/italian-law-data \
--start-day 2026-03-01 \
--end-day 2026-04-12 \
--reset-repoUse --reset-repo only on a fresh italian-law-data checkout. On an existing reconstructed repo, omit it so the current-corpus batch is appended without duplicating the historical commit chain.
Resume the current snapshot from the last Normattiva checkpoint:
PYTHONPATH=src python3 -m italian_law_sync.cli stage3-sync \
--data-repo /Volumes/Jupiter/Workspace/italian-law-data \
--end-day 2026-04-12Inspect the resulting article history:
git -C /Volumes/Jupiter/Workspace/italian-law-data log -- articles/it-state/090G0294/art-1.md
git -C /Volumes/Jupiter/Workspace/italian-law-data log -- articles/it-state/099G0363/art-5.mdThe current design covers:
- enacted national law from Normattiva Open Data
- active parliamentary bills from Senato and Camera open data
- article-level Git history for enacted-law updates
- explicit repeal detection from official article payloads
- feed-based current-corpus bootstrap and checkpointed delta sync
- branch or PR-like handling for bills still in Parliament
- Laputa-compatible frontmatter and relationships for laws, bills, people, institutions, and events
Primary sources documented in the design include:
- Normattiva Open Data
- Senato Open Data
- Senato Akoma Ntoso bulk data
- Camera Open Data
- legalize-es as the reference product pattern