LoginSignup
109
73

More than 1 year has passed since last update.

もしも法律がgitで管理されるとしたら (GitLaw)

Last updated at Posted at 2016-09-29

概要

  • 法律はソースコードで管理
  • 裁判と法の解釈は処理系による判断

リポジトリ

法律リポジトリ

Untitled Diagram.png

masterブランチ (天皇)

  • 国家に1つ
  • 実運用(デプロイ)されるリポジトリ
  • 天皇しかpushできないリポジトリ

releaseブランチ (議会)

  • 議会に1つ
  • 国会議員以上でしかpushできないリポジトリ

devブランチ (議員個人)

  • 議員につき1つ
  • 国会議員以上でしかpushできないリポジトリ
  • 議員が好きに弄れる

issueブランチ (国民)

  • いくらでも建てられる
  • 国民が作成可能で、devにマージするリクエストを送れる

憲法(憲法リポジトリ)の改正

  • 憲法はそれ自身はテストの集合(spec)であり、他の法律をe2eテストするプログラム群
  • 憲法改正は国会議員がissueを建て、国会議員の2/3以上の :thumbsup: で発議
  • 国民の過半数がレビューして賛成すると成立し、masterにマージされる

法律の立て方

issue

Untitled Diagram (1).png

  • 国会議員は、1人1つのdevブランチを所持
  • 国民は、国会議員のdevブランチにプルリクエスト付きissueを送ることができる
    • issueは :thumbsup::thumbsdown: があるので投票としても効く
    • プルリクエストは憲法に適合するか、既存法律と整合性が取れているかのユニットテストを行う
  • 国会議員は送られたプルリクを承認できるし、自分で法律を書くことも可能
  • 国会議員は release ブランチにマージできる
    • マージ前にユニットテストが走る

releaseブランチで国会審議

Untitled Diagram (2).png

  • releaseブランチにマージされたプログラム(法案)をレビューし、 :thumbsup: 多数で可決
    • もちろん憲法e2eテストも通す
  • 可決すると、masterにマージリクエストを送る

天皇のマージ承認とデプロイ

Untitled Diagram (3).png

  • 天皇はmasterにマージする承認作業を行う。
  • マージされると、デプロイされる
  • git diffで法律の差分を読むことができる
109
73
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
109
73