法令第1条の決まり字(?)を検索できるようにした

実装そのものよりもGitHub Actionsで回せることに時間をかけちゃった / 2025年12月07日

法令というのは著作権の対象となっておらず、無料かつ自由に扱うことが出来ます。というわけで各種法令の第1条において、第1条がある法令のうちユニークとなる「 決まり字 」を検索できるようにしました。

こちらからから遊ぶことが出来ます。後述するようにバグはありますが、取り敢えず使えるものとはなっていると思います。この記事は

結論

  1. 法令第1条を特定するのに必要な最短文字数が気になった
  2. Claude Codeにいい感じに実装してもらった
  3. バグはあるが取り敢えずリリース

法律第1条イントロクイズ

こたけ正義感さんという、弁護士資格を持ちながら芸人としても活動されている方がいらっしゃいます。個人的に好きなのでちょくちょく動画を見ていたのですが、先日「法律第1条イントロクイズ」という企画を行っていらっしゃいました。

「法律第1条イントロクイズ」というのは、法律の第1条を初めから読んでいき、それが何の法律家を早押し形式で回答するというスタイルのクイズです。こう書くと全く面白くないように聞こえるのですが、弁護士の方々の得意分野というか、それぞれの思考方法(?)が垣間見える押し方が見えてとても面白いため、ぜひ見てください。本当に面白いので。

これを見ていて気になったものとして、「どの点で押すのが最適であったのか?」という点です。競技クイズのテクニックを考えると読ませ押しやレベル感から当たりを付けていくなどもあるので何とも言えませんが、確実に「最適」と言えるような点は、「 第1条がある法律の中でユニークになったタイミング 」といえるかと思います。しかしながら、これを検索することは、既存のツールではなかなか困難であると言えます。

幸いにもこのえーあい全盛時代において、地味に面倒な「第1条がある法律の中でユニークになったタイミング」を求めるツールをいい感じに作成することが出来るようになりました。e-gov法令検索のXML一括ダウンロードページ法令APIドキュメントを適当に読み、決まり字を頑張って言い換えて定義をし、日本語の文字だから気を付けてほしい…などなどを言語化して、Claudeで仕様書もどきを30分程度かけて作りそれをClaude Codeへ渡す形で開発を行うことにしました。

法令第1条決まり字検索

ある程度固まった仕様書(?)を渡して開発を行い、必要な点については人間の修正を行うことによって実装を進めていきました。基本的な機能は1時間程度で完成しましたので、諸々の設定も含めて本質的な機能は2時間程度で作成できたと考えると、めちゃくちゃ便利だなと思います。

ただ決まり字の決定において、最初はパトリシア木を用いて効率的に求めようと思ったのですが、ヒープ領域の制限に引っかかったりIntl.Segmenter()を多用したことに伴う激しいRAM消費(同時に処理したので)に引っかかったりなどなどで、結果的にソートしたデータを比較しあう原始的な手段となりました。ただ、これはActions上における制限なので、``をあたえることでパトリシア木を活用することは出来るようにしています。

そういった諸々の問題に遭遇しつつ、取り敢えず「法令第1条 決まり字検索」をリリースしました。GitHubリポジトリもありますので、バイブコーディングにおいて最小限の修正のみを行った際はこうなるというものを見たい方は是非ご覧ください。

分かっているバグ

一応リリースはしたのですが、まだまだバグは残っています。Claude Code様にほぼ全てをやらせてしまったので私が悪いのですが、分かっているだけで以下のようなバグはあります。実用上問題は無いものばかりなのですが、一応認識しているということを示すために書いておきます。

決まり字より長い文章を入れた際の表記

例えば「公共サービス」と入力した際において、「戸籍等の謄本等の交付の請求の受付及び引渡しの業務の公共サービス実施民間事業者における実施に関する省令」は以下のような形で出てきます。

公共サービス実施民間事業者は、競争の導入による公共サービスの改革に関する法律(以下「法」という。)第三十四条第一項第一 / 号に掲げる業務を実施する特定業務取扱事業所(法第三十四条第八項に規定する特定業務取扱事業所をいう。)ごとに、当該業務の実施を委託した地方公共団体(以下「委託地方公共団体」という。)、実施する業務の内容及び当該業務の実施時間を、各特定業務取扱事業所の公衆の見やすい場所に掲示するとともに、ウェブサイトへの掲載により公表しなければならない。

ここにおいて、「公共サービス実施民間事業者は、競争の導入による公共サービスの改革に関する法律(以下「法」という。)第三十四条第一項第一号」と入力したとします。本来は「号」まで入力したとしても、その前における「一」で既にユニークとなっていますので、スラッシュは「一」と「号」の間に挿入されるべきです。しかしながら、入力した文字の強調に使用している <span> タグの関係で、上手い具合にスラッシュが入らない形となってしまっています。

実用的には、入力したテキストを何文字か減らしていき、程よく調整するといったことで対応が可能です。 面倒だしこれが出てくるのはそこまで多くないはずなので 当面私が対応する予定はありませんので、よろしくお願いいたします。

未施行部分がある法令の場合

法令においては、同じ法令においてもその部分がいつ施行されるかどうかが異なる場合があります。XML中にそれが記述されてはいますが、読むのが面倒であったためこれらを画面上で反映することが出来ていません。例えば民法においては2025年12月7日の時点で、

  • 令和7年10月1日施行(現行法令)
  • 令和8年4月1日施行
  • 譲渡担保契約及び所有権留保契約に関する法律(令和七年法律第五十六号)の施行の日施行
  • (民事関係手続等における情報通信技術の活用等の推進を図るための関係法律の整備に関する法律の)公布の日から起算して五年を超えない範囲内において政令で定める日施行

の4つがあります。これらについて一番上以外は未施行判定が可能であるとは思うのですが、面倒なのでやっていません。ちなみに失効した古い法令は参照しないようにはしています。これについては気合が出たら対応を行います。

最後に

というわけでClaude Codeにほぼ全てを書かせた「法令第1条 決まり字検索」の記事でした。参考になる人は少ないかと思いますが、いい感じに遊んでくれると助かります。

Writer

Osumi Akari

カテゴリ