法改正の差分、まだ目で探してる?「gitlaw-jp」ならGitで追える

gitlaw-jp
日本の法律の改正履歴を、Git で追えるコミットとブランチに変換する試み
GitHub
公開
正式公開 2026-04-02
作り手
saqula(個人)
対応
Python
言語
日本語
価格
記載なし
評価
GitHub のスター 100(2026-10-11)

どんなアプリか

gitlaw-jp は、日本の法律の改正履歴や沿革を、ディレクトリとファイルの形に整え、Git で追えるコミットのデータに変換する試みです。変換は src/ にある Python スクリプトが、e-Gov のバルクデータから直接行います。

変換後のファイルは laws/ に、e-Gov 法令 API の法令 ID ごとのフォルダで置かれます。各コミットが法令の版ごとの XML を current.xml に当てていくので、このファイルの来歴をたどると法令の差分を確かめられます。

ブランチは公布と施行で分かれています。公布ブランチでは改正法をコミットの単位とし、施行ブランチでは各法令への条文の溶け込み、つまり法令の版をコミットの単位にしています。

改正法=commit単位は個人的に直感的だと思うので。

saqula さん、GitHub の README「ブランチについて」

施行を別のブランチにしているのは、同じ改正法でも法律によって施行の月が違ったり、同じ改正規定を段階的に適用したりすることがあるためだと README で説明されています。

公布と施行のブランチをどう対応させるかは、作り手自身が一番の課題に挙げています。今のところは版ごとのコミットを最小の単位とし、公布ブランチの側で改正法ごとに束ねるコミットを作っています。

同じ分野のアプリ

名前型仕掛け対応料金
gitlaw-jp法令データの変換法律の改正履歴を Git のコミットとブランチに変換Python記載なし
Lawsy法令の調査日本の法令に特化した Deep Research ツールOSS(Web アプリ)無料(OSS)

入れる前に

動かすには、e-Gov 法令 API から all_xml.zip と XML スキーマのファイルを自分でダウンロードし、payload/ フォルダに置く必要があります。Python の環境は uv を使うのが一番簡単だと README に書かれています。

初期設定では法律のみが対象です。政令などの種別は –law-type で足せ、–all-law-types を付けるとすべての種別が対象になります。

main.py には、コミットとブランチの計画を作る plan、それを実際に Git に反映する apply、両方をまとめて行う full があります。

GitHub のリポジトリには、ライセンスの記載がありません。