# houritsu (Kohei-Wada/houritsu)

> Every Japanese law as a git repository: each commit is one amending law coming into force, built from the e-Gov law API.

- GitHub: https://github.com/Kohei-Wada/houritsu
- GitHub.Locker page: https://github.locker/Kohei-Wada/houritsu
- Stars: 359
- Last push: 2026-11-05

## Questions and answers

Written by GitHub.Locker from the README and the repository; check the README below for details.

**Is it a code library or just a set of text files?**

It's a data repository, not a program. Each law is a markdown file with YAML frontmatter, and the git history is the amendment timeline.

**How do I see how a law was amended over time?**

Clone the repo and run git log on the law's file, for example git log laws/act/415/415AC0000000057.md for the Personal Information Protection Act. Use git show to see what one amendment changed.

**Do I need anything beyond git?**

No. The README's examples use only git log and git show. No account, API key or separate install is mentioned.

**Do the commit dates show when each law was really written?**

Not exactly. History starts around 2015, so commit dates reflect e-Gov's data coverage as much as legislation. git blame dates when text was covered, not when it was written.

**What is the difference between the main and upcoming branches?**

main holds revisions already in force. upcoming holds laws that are promulgated but not yet in force, and its last commit is dated 2117-12-31 when the enforcement day is still undetermined.

**How do I find a law if I only know its title?**

File names are e-Gov law IDs that stay the same when a title changes, so search the YAML frontmatter for the title instead.

**What happens to a repealed law's files?**

Its file is deleted in the commit of the repealing law, but its history stays visible in git log for the old path.

**Will an old checkout include every law?**

No. A law that e-Gov covers only from later dates does not appear in older checkouts. About 2,800 laws exist at 2010-01-01, against 9,000 now.


---

## README (checked against GitHub 2026-11-06)

Source: https://github.com/Kohei-Wada/houritsu/blob/main/README.md

# houritsu

Every Japanese law (法令) as git history. One commit is one amending law coming into
force: `git log laws/act/415/415AC0000000057.md` is the amendment history of the Personal
Information Protection Act, and `git show <commit>` is what one amendment changed.

> **Before v1.0, history may be rebuilt and force-pushed.**

## Layout

- `laws/<law type>/<first 3 characters of the ID>/<e-Gov law ID>.md`, with metadata in YAML
  frontmatter. The first 3 characters are the era and year of promulgation (`415` = 平成15年).
- Tables are HTML (merged cells kept). Figures and 様式 are links to the attachment on e-Gov,
  on a line of their own, or as an HTML link inside a sentence or a table cell. About 3 in
  10 figures have no attachment there and show `（図：e-Gov に画像なし）` instead.
- The table of contents (目次) is left out: it only repeats the headings.
- `main`: enforced revisions. `upcoming`: promulgated but not yet in force.
- Commit date = enforcement date (00:00 JST). Trailers: `Amendment-Law-Id`, `Enforced`;
  for an amending Act, also `Bill` (the Diet bill), `Bill-Submitter` (who submitted it, e.g.
  `内閣` or `神谷宗幣君外四名`) and `Bill-Url` (its text on the House of Representatives site,
  where the bill's 理由 is). `Skipped-Revision` names a revision
  e-Gov has no text for; the commit's diff covers it too.
  git cannot record dates before 1970, so earlier ones are recorded as 1970-01-02; the real
  date is in the `Enforced` trailer and the frontmatter.
- An amendment whose enforcement day is not fixed yet has `enforced: "undetermined"` and
  `Enforced: undetermined`, and is the last commit on `upcoming` (dated 2117-12-31, the
  placeholder e-Gov uses). `enforcement_comment` in the frontmatter words the day as the
  amending law does (e.g. 政令で定める日); with it, an `upcoming` date is e-Gov's estimate.
- A repealed law's file is deleted in the repealing law's commit; its history stays in
  `git log -- <file>`.

## Limits

- **History starts around 2015, not at enactment.** e-Gov's revision data ramps up from
  about 2015 (a few hundred commits a year before, about two thousand a year from 2019), so
  a time series of commit dates measures e-Gov's coverage as much as legislation.
- **`git blame` dates the coverage, not the wording.** A law's oldest commit holds every
  line that existed before coverage began: most of 刑法 blames to its 2016 commit. Read it
  as "already there by then".
- **Many laws have little history.** About a third of laws have a single commit.
- **A law enters at its oldest e-Gov revision.** Checking out an old date shows no file for
  a law e-Gov covers only later, not its older text: about 2,800 laws at 2010-01-01 against
  9,000 now.
- **Commit SHAs are not stable before v1.0.** A rebuild keeps them only while the data
  and the builder are unchanged; a builder change, or e-Gov adding a revision dated before
  existing commits, rewrites every later SHA. Refer to a revision by its `law_id` and
  `revision_id` (both in the frontmatter) instead.

## Finding a law

File names are e-Gov law IDs, which stay the same when a title changes. Search the
frontmatter by title:

```sh
git grep -l '^title: "個人情報の保護に関する法律"' -- laws
```

## Following one article

Heading depth depends on the chapters around an article, so match any depth:

```sh
git log -L '/^##*  *第十六条/,/^##*  *第十七条/:laws/act/415/415AC0000000057.md'
```

This takes the first match, the main text. For an article of a 附則, start the range at
that 附則's heading, which names its amending law: `/^## 附　則（令和二年/,/^## 附　則/`.

## 出典 / Source

出典：e-Gov法令検索（https://laws.e-gov.go.jp/）、PDL1.0（https://www.digital.go.jp/resources/open_data/public_data_license_v1.0）

e-Gov法令検索の法令データ（法令API v2）を [houritsu-builder](https://github.com/Kohei-Wada/houritsu-builder)（Kohei-Wada）が markdown に加工して作成。
条文の文字は変更していない（markdown のための見出し記号とエスケープ、図へのリンクを加えた）。正本は官報。改正履歴は e-Gov が提供する範囲に限る。

議案との対応：[衆議院議案データベース](https://github.com/smartnews-smri/house-of-representatives)（smartnews-smri、MIT）。議案番号と本文ページへのリンクのみ使用。

The characters of the statute text are unchanged; headings, markdown escapes and figure
links are added. This is not the official text; the official text is the 官報. Revision
history is limited to what e-Gov provides.

## License

[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which PDL1.0 §1.7 allows for
the source data. Attribute as in the section above. The statute text itself is not
copyrighted (著作権法第13条).

No warranty: this is not legal advice, and the text may be out of date or wrong. Check
e-Gov or the 官報 before relying on it.

## Lint

```sh
uvx rumdl@0.2.79 check
```

