例規の改正案の改め文と新旧対照表を突き合わせ、食い違い・条番号のずれ・引用条項の追随漏れ・用字用語の誤りを審査の前に拾う
各課から上がってきた例規の一部改正案について、改め文と新旧対照表が同じ改正を表しているか、条番号のずれや引用の追随漏れがないか、用字用語が基準どおりかを、法規審査の前に点検して指摘の一覧にします。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Python
- 対象業界
- 自治体
- 対象部門
- 法務
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 校正
- 主な効果
- 入力漏れ削減/品質標準化/属人化解消
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 各課が改め文と新旧対照表を作り、文書管理システムで法規担当に回す
- 法規担当が、例規データベースで現行の本文を開く
- 改め文を1文ずつ読み、現行の本文のどこを改めるのかを確かめる
- 新旧対照表の改正前の欄が現行の本文と同じか、改正後の欄が改め文のとおりかを見比べる
- 条・項・号を削ったり加えたりしていれば、繰り上げ・繰り下げの番号と、引用している箇所を確かめる
- 用字用語、送り仮名、句読点、改め文の定型の言い回しを確かめる
- 指摘を付箋かコメントで付けて各課に戻す。直ったものを再度確かめる
- 人各課が改め文と新旧対照表を作り、決まったフォルダに保存する
- 自動保存をきっかけに処理が動き、対象の例規の現行の本文を例規データベースから取り出す
- 自動新旧対照表の改正前の欄と、現行の本文を比べる
- 自動生成AIが、改め文を改正の操作の一覧(どの条・項・号の、どの文字を、どう改めるか)に直す
- 自動プログラムが、操作の一覧を現行の本文に当てて改正後の本文を作り、新旧対照表の改正後の欄と比べる
- 自動削る・加える・繰り上げる条・項・号について、同じ例規と他の例規から引用している箇所を拾う
- 自動生成AIが、改正後の本文と改め文の用字用語・言い回しを、基準の一覧に照らして校正する
- 自動指摘を1つの一覧にまとめ、起案した課と法規担当に返す
- 人起案した課が指摘を見て直し、法規担当に回す
- 人法規担当が指摘の一覧と直した案を確かめ、内容の審査に入る
各工程の詳しい説明を読む
- 各課が改め文と新旧対照表を作り、文書管理システムで法規担当に回す
- 法規担当が、例規データベースで現行の本文を開く
- 改め文を1文ずつ読み、現行の本文のどこを改めるのかを確かめる
- 新旧対照表の改正前の欄が現行の本文と同じか、改正後の欄が改め文のとおりかを見比べる
- 条・項・号を削ったり加えたりしていれば、繰り上げ・繰り下げの番号と、引用している箇所を確かめる
- 用字用語、送り仮名、句読点、改め文の定型の言い回しを確かめる
- 指摘を付箋かコメントで付けて各課に戻す。直ったものを再度確かめる
(a)改め文と新旧対照表がずれる。 各課は新旧対照表を先に作り、そこから改め文を書くことが多くあります。途中で新旧対照表だけを直し、改め文を直し忘れる。 効力を持つ改め文の側が古いまま、審査に上がってきます。
(b)新旧対照表の改正前の欄が、現行の本文と違う。 前回の改正を反映していない古い本文をもとに作ると、改正前の欄に、すでに改正された文が載ります。 その上に作った改め文は、存在しない文字を「改める」ことになります。
(c)番号のずれと引用の追随を見落とす。 第5条を削ると第6条以下が繰り上がり、同じ例規の中で「第7条の規定により」と書いていた箇所や、別の規則が引用していた箇所も直す必要があります。 改正案の中を見ているだけでは、他の例規からの引用は見えません。
(d)審査の観点が人に付いている。 「この言い回しは改め文では使わない」「この字は仮名で書く」といった知識は、ベテランの職員の経験です。同じ改正案でも、誰が審査するかで戻される指摘が違います。
- 【人】 各課が改め文と新旧対照表を作り、決まったフォルダに保存する
- 【自動】 保存をきっかけに処理が動き、対象の例規の現行の本文を例規データベースから取り出す
- 【自動】 新旧対照表の改正前の欄と、現行の本文を比べる
- 【自動】 生成AIが、改め文を改正の操作の一覧(どの条・項・号の、どの文字を、どう改めるか)に直す
- 【自動】 プログラムが、操作の一覧を現行の本文に当てて改正後の本文を作り、新旧対照表の改正後の欄と比べる
- 【自動】 削る・加える・繰り上げる条・項・号について、同じ例規と他の例規から引用している箇所を拾う
- 【自動】 生成AIが、改正後の本文と改め文の用字用語・言い回しを、基準の一覧に照らして校正する
- 【自動】 指摘を1つの一覧にまとめ、起案した課と法規担当に返す
- 【人】 起案した課が指摘を見て直し、法規担当に回す
- 【人】 法規担当が指摘の一覧と直した案を確かめ、内容の審査に入る
9番目が、この設計の分かれ目です。指摘は法規担当より先に、起案した課に返ります。 書き方の食い違いは、起案した課が自分で直せるものがほとんどです。法規担当が見るのは、直した後の案と、課が直せなかった指摘です。
5番目をプログラムにしているのも、意図してのことです。 改め文のとおりに本文を直すと何になるかは、文字の置き換えで一意に決まります。 そこをAIの読み比べにすると、見落としがあったときに理由を追えません。
02今回想定するシステム構成
各課の改正案(改め文・新旧対照表)
▼【トリガー】決まったフォルダへの保存
Power Automate ── 例規データベースから現行の本文を取り出す
▼
Python(Azure Functions)── 改正前の欄と現行の本文の比較
▼
Azure OpenAI(Microsoft Foundry)── 改め文 → 改正の操作の一覧(構造化出力)
▼
Python ── 操作を現行の本文に当てて改正後の本文を作る → 改正後の欄と比較
── 削る・加える・繰り上げる条項を引用している箇所を全例規から拾う
▼
Azure OpenAI ── 用字用語・言い回しの校正(基準の一覧に照らす)
▼
指摘の一覧 →【起案した課が直す】→【法規担当が確かめて内容の審査へ】| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 差異計算 | Python(Azure Functions 上で difflib を使う) | Azure Container Apps 上の同じ処理 |
| 連携 | Power Automate | Make、n8n |
| 改正案と指摘の置き場 | SharePoint のライブラリとリスト | 既存の文書管理システムの共有フォルダ |
| 現行の本文 | 既存の例規データベース(本文のテキスト出力) | ― |
例規データベースは、新しく足すものではありません。 現行の本文をテキストで取り出せれば足ります。取り出し方(全文のテキストの出力、例規ごとのファイル、ベンダーの提供する連携)は、例規データベースのベンダーに確かめる必要があります。 この構成から例規データベースへ書き込むことはしません。
生成AIは、Azure OpenAI の構造化出力で呼びます。 Microsoft Learn では、構造化出力を使うとモデルは推論 API 呼び出しの一部として指定した JSON スキーマの定義に従うとされ、有効な JSON は保証するがスキーマへの厳密な準拠はできなかった以前の JSON モードとは違うと説明されています。列挙型が使え、すべてのフィールドを必須にし、オブジェクトには additionalProperties: false を付けます。 改正の操作の種類を列挙型で固定できることが、この構成では大事です。
差異の計算は、Python の difflib で行います。 SequenceMatcher は比べる2つの並びの最長の共通部分を見つけ、get_opcodes() は一方を他方に変えるための操作を replace/delete/insert/equal の組で返します。機械で作った改正後の本文と、新旧対照表の改正後の欄の違いが、この4つのどれかとして位置付きで出ます。
03どうやって実装するのか
処理の起点を決める
起点は、起案した課が改正案を決まったフォルダに保存したことです。 フォルダは例規の種類ごとではなく1つにし、ファイル名に例規の番号(例規データベースの管理番号)を入れる規則にします。例規の番号が無いファイルは処理せず、保存した課に「例規の番号を入れてください」と返します。
改め文と新旧対照表は、同じフォルダに対で保存してもらいます。 片方しか無いときは処理を待ち、24時間たっても揃わなければ、保存した課に知らせます。 片方だけで点検すると、突き合わせの結果が出ません。
法規担当が審査の途中で直した版も、同じ規則で保存し直せば、もう一度点検が動きます。 何度目の点検かは、ファイルの版の番号で残します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 改め文 | 題名、本則の改正の文、附則 | 各課の改正案(ワープロのファイル) |
| 新旧対照表 | 改正前の欄と改正後の欄。改正の箇所に傍線 | 各課の改正案 |
| 現行の本文 | 対象の例規の現行の全文(最新の改正まで反映したもの) | 例規データベース |
| 全例規の本文 | 引用を拾うための全文 | 例規データベース |
| 基準の一覧 | 用字用語の基準、改め文の定型の言い回し、自治体独自の表記の決まり | 法規担当が作る一覧 |
質を決めるのは、いちばん下の基準の一覧です。 一覧には、内閣法制局の「法令における漢字使用等について」から、常用漢字表にあっても仮名で書くもの(「且つ」は「かつ」、「但し」は「ただし」、「因る」は「よる」など)と、常用漢字表にない漢字を使う言葉の書き方を入れます。そのうえに、法規担当の手元のメモにある自治体独自の決まりを足します。この一覧が、ベテランの職員の観点を文字にしたものになります。
現行の本文は、「最新の改正まで反映したもの」であることを確かめて使います。 例規データベースへの反映が遅れていると、その本文と比べた結果がすべてずれます。取り出した本文に、最後に反映した改正の日付を付けて残します。
データの取得方法を決める
改め文と新旧対照表は、保存されたファイルをテキストと表に分けて読みます。 新旧対照表は表の形のまま、行ごとに改正前の欄と改正後の欄の文を取り出します。傍線の有無も、文字の範囲として取り出します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 改め文の本文 | 改正案のファイル | 操作の一覧に直す |
| 新旧対照表の各行 | 改正案のファイルの表 | 改正前・改正後の比較 |
| 現行の本文 | 例規データベースのテキスト出力 | 改正前の欄との比較、操作を当てる元 |
| 最終の改正日 | 例規データベース | 現行の本文が最新かの確認 |
| 全例規の本文 | 例規データベースのテキスト出力(毎晩) | 引用の検索 |
全例規の本文は、毎晩まとめて取り出しておきます。 引用の検索は改正案ごとに行いますが、1,500本の例規を毎回取り出すと時間がかかります。 毎晩の写しと、その日の改正の反映の有無を確かめて使います。
条・項・号は、本文を構造に直してから扱います。 「第○条」「第○項(項番号の2、3…)」「第○号(一、二…)」の区切りで本文を分け、条・項・号の番号で位置を指せる形にします。 操作の一覧を当てるのも、引用を拾うのも、この形の上で行います。
AIへ渡す前に整形する
- ファイルの対を確かめる … 改め文と新旧対照表がそろっているか、例規の番号が一致しているかを見ます
- 現行の本文を取り出す … 例規データベースから、最終の改正日付きで取り出します
- 本文を条・項・号の構造に直す … 現行の本文と、新旧対照表の両欄を同じ形にします
- 改正前の欄を現行の本文と比べる … ここで食い違えば、改め文の点検に進む前に指摘します
- 表記をそろえる … 全角・半角、空白、改行の違いを比較の前にそろえます。文字そのものは変えません
- 改め文を文ごとに分ける … 「第○条中」「第○条を」「附則」などの区切りで分けます
4番目を先に行うのが大事です。 改正前の欄が現行の本文と違えば、その改正案は古い本文をもとに作られています。 そのまま改め文の点検に進むと、指摘が何十件も出て、本当の原因が埋もれます。最初に「改正前の欄が現行の本文と違います」と1件だけ返します。
5番目で文字を変えないのは、 用字用語の誤りまで「そろえて」消してしまわないためです。そろえるのは空白と全角・半角の違いだけにします。
AIに処理させる
させるのは2つです。1つは改め文を改正の操作の一覧に直すこと、もう1つは用字用語と言い回しを基準の一覧に照らして校正することです。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 改め文 → 操作の一覧 | 対象(条・項・号)、操作の種類(改める/加える/削る/繰り上げる/繰り下げる/全部を改める)、改める前の文字、改めた後の文字 | 対象や文字が読み取れなければ unparsed として原文を返す |
| 用字用語の校正 | 基準の一覧に当たる語の、位置・現在の表記・基準の表記・基準の出どころ | 一覧に無い語は指摘しない |
| 言い回しの校正 | 改め文の定型から外れた言い回しの位置と、定型の例 | 定型の一覧に無いものは「要確認」 |
1つ目で「改める前の文字」を必ず書かせるのは、 プログラムがその文字を現行の本文の指定の位置で探すためです。見つからなければ、改め文が存在しない文字を改めようとしていることになり、 それ自体が指摘になります。
| させないこと | 理由 |
|---|---|
| 改め文と新旧対照表の食い違いの判定 | 操作を当てた結果の比較はプログラムが行う |
| 改正の内容の妥当性・上位の法令との整合 | 法規担当が審査する |
| 基準の一覧に無い表記の指摘 | 好みの言い換えが混ざる |
| 改め文の書き直し | 直すのは起案した課。示すのは位置と基準まで |
| 引用している箇所の判定 | 番号での検索はプログラムが行う |
3行目がいちばん起きやすい失敗です。 「校正してください」とだけ頼むと、モデルは読みやすさの観点で言い換えを提案します。例規の言葉は、読みやすさより他の例規との統一が優先です。 指摘を基準の一覧に当たるものに限り、一覧のどの項目に当たったかを必ず書かせます。
指示内容を固定する
改め文を操作の一覧に直す指示です(用字用語の校正は、別の指示で呼びます)。
あなたは自治体の法規担当で、例規の一部改正の改め文を読み、
改正の操作を一つずつ書き出す担当です。
【すること】
改め文の各文を読み、次の形で操作を書き出してください。
- target: 対象の条・項・号(例:第5条第2項第3号、附則第2項、別表第1)
- op: replace(改める)/insert(加える)/delete(削る)/
renumber(繰り上げ・繰り下げ)/replace_all(全部を改める)
- before_text: 改める前の文字(改め文の「 」の中をそのまま)
- after_text: 改めた後の文字(改め文の「 」の中をそのまま)
- new_number: 繰り上げ・繰り下げのときの新しい番号
- source_sentence: 根拠にした改め文の一文
【厳守事項】
- 改め文に書かれた操作だけを書き出してください。
新旧対照表や、あなたの知識で操作を補わないでください。
- before_text と after_text は、改め文の「 」の中を一字も変えずに写してください。
表記を直したり、句読点を足したりしないでください。
- 1つの文に複数の操作があるときは、書かれた順に分けて書き出してください。
- 対象や文字が読み取れない文は、op を unparsed にし、
source_sentence に原文を入れてください。推測で埋めないでください。
- 改正の内容がよいか悪いかを書かないでください。
【改め文】{kaimebun}
【対象の例規の題名と番号】{reiki_title}
「新旧対照表で補わない」を明記しないと、補います。 改め文の操作が足りないとき、モデルは手元の新旧対照表から「本来あるべき操作」を足して一覧を完成させます。それをされると、改め文の書き漏れという、いちばん見つけたかった食い違いが消えます。 新旧対照表は、この呼び出しには渡しません。
「一字も変えずに写す」も同じ理由です。 改め文の「 」の中に誤字があれば、そのまま写させ、本文の中で見つからないという形で指摘に出します。
用字用語と言い回しの校正は、別の呼び出しで次のように指示します。
あなたは自治体の法規担当で、例規の改正案の用字用語と言い回しを、
渡された基準の一覧に照らして点検する担当です。
【すること】
改正後の本文と改め文を読み、基準の一覧のどれかに当たる箇所を書き出してください。
箇所ごとに、位置(条・項・号)、現在の表記、基準の表記、
当たった基準の番号(rule_ref)を書いてください。
【厳守事項】
- 基準の一覧に無い観点で指摘しないでください。
読みやすさや言い換えの提案をしないでください。
- 改正で変わらない箇所(傍線の無い箇所)は指摘しないでください。
- 引用されている法令の名前や、法令の条文をそのまま引いている箇所は、
原文の表記を優先し、指摘しないでください。
- 判断に迷う箇所は severity を check にし、must_fix にしないでください。
【基準の一覧】{rules}
【改正後の本文(傍線の範囲付き)】{amended_text}
【改め文】{kaimebun}
「改正で変わらない箇所は指摘しない」は、指摘の数を抑えるためのものです。 古い例規には、現在の基準と違う表記が残っています。改正のたびにそれを全部指摘すると、起案した課は改正と関係の無い直しに追われます。 既存の表記の統一は、改正とは別の機会に行います。
出力形式を固定する
操作の一覧は、次の形のJSONで受け取ります。
{
"reiki_id": "R-0312",
"operations": [
{ "seq": 1, "target": "第5条第2項", "op": "replace | insert | delete | renumber | replace_all | unparsed",
"before_text": "", "after_text": "", "new_number": null, "source_sentence": "" }
]
}
プログラムは、操作を当てた結果と比較の結果を、次の指摘の一覧にまとめます。
{
"reiki_id": "R-0312",
"base_text_date": "2026-09-01",
"findings": [
{ "type": "old_column_mismatch | kaimebun_table_mismatch | text_not_found | renumber_gap | citation_not_followed | wording | phrasing | unparsed",
"location": "", "evidence": "", "rule_ref": "", "severity": "must_fix | check" }
]
}
1つ目の理由は、op を列挙型で固定できることです。 操作の種類が決まっていれば、プログラムは種類ごとに当て方を決められます。想定していない操作は unparsed として必ず人に返ります。
2つ目は、指摘の type で起案した課の直し方が分かることです。 old_column_mismatch は新旧対照表を最新の本文で作り直す、text_not_found は改め文の「 」の中を直す、citation_not_followed は引用している箇所の改正を足す、と指摘の種類と直す作業が1対1で対応します。
起案した課の画面では、指摘の一覧を次のように並べます。
| 種類 | 位置 | 内容 | 直し方 |
|---|---|---|---|
text_not_found | 第5条第2項 | 改め文の「申請書を提出」が現行の本文に無い(本文は「申請書を提出し」) | 改め文の「 」の中を直す |
citation_not_followed | 〇〇市補助金交付規則 第8条 | 改正で繰り上がる「第7条」を引用している | 同時に改正するかを法規担当と決める |
wording | 第3条第1項 | 「但し」→「ただし」(基準 1-4) | 改め文と新旧対照表の両方を直す |
3つ目は、base_text_date を残すことです。 比べた現行の本文がいつの改正までを反映していたかが分かれば、後で例規データベースの反映が遅れていたと分かったとき、どの点検をやり直すかが決まります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 改正案のフォルダ | Power Automate のトリガー | 改め文と新旧対照表の保存を検知する |
| 例規データベース | テキスト出力の読み取り | 現行の本文と最終の改正日、全例規の本文 |
| Azure Functions(Python) | HTTP の呼び出し | 構造への変換、比較、操作の適用、引用の検索 |
| Azure OpenAI | API 呼び出し | 操作の一覧への変換、用字用語と言い回しの校正 |
| 指摘の一覧 | SharePoint のリスト | 起案した課と法規担当が見る |
例規データベースへは書き込みません。 この構成が出すのは指摘の一覧までで、例規の本文を改めるのは、公布の手続きを経たあとの例規データベースの更新作業です。
指摘の一覧は、起案した課ごとに見える範囲を分けます。 他の課の改正案の指摘は、法規担当だけが見られるようにします。
人が確認する
起案した課は、指摘を must_fix から順に直します。 法規担当が確かめる順は次のとおりです。
old_column_mismatchを最初に見る … 出ていれば、他の指摘は見ずに課に作り直しを求めますtext_not_foundとkaimebun_table_mismatchを見る … 改め文と新旧対照表のどちらが正しいかは、起案した課に改正の意図を確かめて決めますcitation_not_followedを見る … 他の例規からの引用は、その例規も同時に改正するか、別の改正で対応するかを決めますunparsedを読む … 機械で読めなかった改め文を、目で確かめますwordingとphrasingを見る … 基準の出どころrule_refを見て、直すかを決めます
2番目を機械で決めないでください。 改め文と新旧対照表が食い違うとき、どちらが起案した課の意図どおりかは、文書の上からは決まりません。 効力を持つのは改め文ですが、意図が新旧対照表の側にあることもあります。
目標は、40件をならして1件30分です。 指摘が用字用語だけのものは10分で済み、引用の追随が要るものは1時間を超えます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 例規の番号がファイル名に無い | 処理せず、保存した課に番号を入れるよう返す |
| 改め文と新旧対照表の片方しか無い | 24時間待ち、揃わなければ課に知らせる |
| 現行の本文の反映が遅れている | base_text_date と例規データベースの更新予定を見比べ、法規担当が反映を待つか決める |
| 全部改正・廃止の案 | 操作の適用はせず、用字用語の校正だけ行う |
| 別表・様式の改正 | 表の構造が崩れて比較できなければ unparsed。目で確かめる |
| 複数の例規を1本の改正で改める案 | 例規ごとに分けて点検し、指摘を1つの一覧にまとめる |
| 附則の経過措置 | 操作の一覧には入れ、比較の対象からは外して check で返す |
| 生成AIの呼び出しが失敗する | 指摘の一覧に「点検できず」と出し、法規担当がこれまでどおり審査する |
上から3行目は、AIの問題ではありません。 公布から例規データベースへの反映までの間に次の改正案が上がってくると、比べる本文が古いまま点検されます。 反映の遅れの日数を数えて、反映の段取りを見直す材料にします。
記録を残す
- 改正案のファイル(版の番号付き)と、比べた現行の本文(
base_text_date付き) - 生成AIに渡した改め文と、返ってきた操作の一覧
- 操作を当てて作った改正後の本文と、比較の結果
- 指摘の一覧と、起案した課・法規担当がそれぞれの指摘をどう扱ったか
- 基準の一覧のどの項目で指摘が出たかの件数
4つ目で「どう扱ったか」を残すのは、指摘の質を測るためです。 直さなかった指摘が多い種類は、基準の一覧か指示のどちらかが実態に合っていません。
最後の行は、各課の研修の材料になります。 毎月同じ基準で指摘が出るなら、その基準を起案の手引きの最初に置きます。
04実装レベルの3段階
最小構成では、比較は目のままなので、時間はあまり減りません。 確かめるための段階です。 半自動化で、1件90分が55分程度になります。 突き合わせは機械になりますが、番号のずれと引用、用字用語の点検が残ります。本格構成で30分になり、この段階が本記事の想定です。 差が大きいのは、全例規からの引用の検索が、手作業では1件ごとに例規データベースを何度も引く作業だからです。 段階を飛ばさないでください。 半自動化を1か月回すと、改正前の欄が現行の本文と違う案の割合と、例規データベースの反映の遅れが見えます。そこを直してから引用の検索を足すほうが、指摘の空振りが減ります。
05工数削減シミュレーション
導入後 40件 × 30分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 条例・規則・要綱などの例規の一部改正が毎月数十件あり、法規担当(総務課の法制係など)が少人数で審査している市町村・都道府県。改正案を改め文と新旧対照表の両方で作っていて、両者の突き合わせを目で行っている場合。審査の観点がベテランの職員の経験に頼っていて、異動で引き継げていない場合。例規データベースから現行の本文をテキストで取り出せる場合。
- 例規の改正が年に数件で、法規担当が十分に時間を取れる場合。改正をすべて新旧対照表だけで行い、改め文を作っていない場合(突き合わせの対象がなく、用字用語の点検だけになります)。改正の内容が妥当か、上位の法令に合っているかの判断をAIに任せたい場合(この構成は書き方の食い違いを拾うだけで、内容の審査は法規担当が行います)。
07最小構成で試す方法
- 先月審査した一部改正案から10件を選ぶ(うち数件は、審査で食い違いが見つかったものを入れる)
- その10件について、当時の審査で付けた指摘を書き出しておく
- 庁内で利用が認められた生成AIの環境で、1件ずつ改め文を貼り、「この改め文を、対象の条・項・号、操作の種類、改める前の文字、改めた後の文字の表にしてください。新旧対照表で補わないでください」と指示する
- 出てきた表を、新旧対照表と目で突き合わせる
- 当時の指摘と比べる
10件は必ずやってください。 プログラムを書く前に、「改め文が操作の表に直せるのか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 操作の表が改め文のとおりに出た | 例規データベースの出力と比較のプログラムに進む |
| 新旧対照表で操作を補った | 指示の書き方で直る。構成は有効 |
| 別表や様式の改め文が表にならない | その種類は当面目で見る。 本文の改正から始める |
| 当時の審査で見落としていた食い違いが出た | 今の審査の負担が見えた。 法規担当で共有する |
4行目が出ることは珍しくありません。 失敗ではなく、目で突き合わせることの限界が1件分見えたということです。 公布の後に見つかった食い違いは、直すためにもう一度改正が要ります。試す10件の中にそうした例があれば、法規担当の中で、この構成に時間をかける理由として共有してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 改正前の欄が古い本文で作られている | 最初に現行の本文と比べ、食い違えば他の点検をせず返す |
| AIが新旧対照表で操作を補う | 操作の一覧への変換には新旧対照表を渡さない |
| 改め文の「 」の中の誤字が直されて消える | 一字も変えずに写させる。 見つからないことを指摘にする |
| 例規データベースの反映が遅れている | 最終の改正日を付けて取り出し、比べた本文の日付を残す |
| 他の例規からの引用を見落とす | 全例規の本文から番号で拾う |
| 校正で好みの言い換えが出る | 基準の一覧に当たるものだけを指摘させる |
| 全角・半角の違いで食い違いが大量に出る | 比較の前に空白と全角・半角だけそろえる |
| 別表・様式が比較できない | 当面は unparsed として目で見る |
| 改め文と新旧対照表のどちらが正しいかを機械で決める | 意図は起案した課に確かめる |
| 指摘が法規担当に直接届き、課が直さない | 指摘は先に起案した課に返す |
上の3行が、この構成の失敗のほとんどです。 どれも、見つけたかった食い違いが、点検の途中で消えてしまう失敗です。比べる前の本文が正しいか、AIが補っていないか、AIが直していないか。この3つを守れているかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公布前の条例・規則・要綱の改正案です。公布前の改正案には、手数料の額や補助の要件など、公表前の政策の内容が含まれます。
- 公布前の改正案を外部の画面に貼らない … 試す段階から、庁内で利用が認められた環境だけを使います。Azure OpenAI では、プロンプトと出力が他のお客様には利用できず、OpenAI には提供されず、許可または指示なしに基盤モデルのトレーニングに使われないとされています
- 保存の機能を使わない … Responses API の会話の保存や保存済みの補完など、メッセージ履歴などがリソースに保存される機能を使わない呼び方にします
- この構成は改正の内容を審査しない … 上位の法令に合っているか、政策として妥当かは、法規担当が審査します。 指摘の一覧が空でも、審査が済んだことにはなりません
- 公布の期限を見込んで回す … 地方自治法では、条例の議決があったときは議長が3日以内に長に送付し、長は送付を受けた日から20日以内に公布するとされ、この規定は規則などにも準用されます。議決の後で書き方の誤りが見つかると、直す時間がほとんどありません。 点検は議案の提出前に済ませます
- 基準の一覧の出どころを残す … 指摘に
rule_refを付け、内閣法制局の基準か、自治体独自の決まりかを区別します。 独自の決まりを変えたときに、どの指摘が変わるかを追えます
誤りが起きた場合のリスクは、食い違いを見落として公布することと、起案した課の意図と違う方に直すことの2つです。 前者は機械の比較と全例規の引用の検索で、後者は「どちらが正しいかは課に確かめる」という手順で防ぎます。
10まず何から始めるか
1週目:基準の一覧を作る
内閣法制局の「法令における漢字使用等について」から、仮名で書くもの、常用漢字表にない漢字の扱いを一覧にし、法規担当の手元のメモから自治体独自の決まりと改め文の定型の言い回しを足します。この一覧ができれば、審査の観点が初めて文字になります。
2週目:10件で試す
先月の一部改正案10件で、改め文を操作の表にできるかを試します。新旧対照表で補っていないか、「 」の中を写し変えていないかを最優先で見ます。
3週目:例規データベースの出力を決める
ベンダーと、現行の本文と最終の改正日をテキストで取り出す方法を決めます。あわせて、本文を条・項・号の構造に直す処理を作り始めます。
4週目:改正前の欄の比較から動かす
保存を起点に、新旧対照表の改正前の欄と現行の本文を比べるところまでを動かします。この時点では改め文の点検はせず、古い本文で作られた案がどれくらいあるかを数えます。
2か月目: 操作の一覧と改正後の本文の比較を足し、起案した課に指摘を返し始めます。3か月目以降: 全例規からの引用の検索と用字用語の校正を足し、1件90分が何分になったかを実測します。指摘の扱いの記録を見て基準の一覧を直し、各課からの改正案で must_fix が減ってきた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
構造化出力で、モデルが指定した JSON スキーマの定義に従うこと。以前の JSON モードとの違い。列挙型がサポートされること。すべてのフィールドを必須にすること。additionalProperties: false が必要なこと | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-07 |
| プロンプトと出力が他のお客様に利用できず、OpenAI に提供されず、許可または指示なしに基盤モデルのトレーニングに使われないこと。Responses API や保存済みの補完などでメッセージ履歴などが保存されること | Microsoft Learn: Azure が販売する Foundry モデルのデータ、プライバシー、セキュリティ | 2026-10-07 |
| 平成22年11月30日付けの内閣法制局長官の定め「法令における漢字使用等について」。法令の漢字使用が常用漢字表等によること。常用漢字表にあっても仮名で書くもの(「虞・恐れ」→おそれ、「且つ」→かつ、「但し」→ただし、「因る」→よる など)。常用漢字表にない漢字を使う言葉の扱い | 内閣法制局: 法令における漢字使用等について(PDF) | 2026-10-07 |
| 条例の議決があったとき議長が3日以内に長に送付し、長が送付を受けた日から20日以内に公布すること。規則等への準用(地方自治法第16条) | e-Gov 法令API: 地方自治法 | 2026-10-07 |
SequenceMatcher が2つの並びの最長の共通部分を見つけること。get_opcodes() が replace/delete/insert/equal の組で変換の操作を返すこと | Python: difflib | 2026-10-07 |
改正の内容の審査と、改め文と新旧対照表のどちらを正とするかは、法規担当と起案した課で判断してください。 本記事は上の公式情報で確認できた範囲だけを扱っています。例規データベースからの本文の取り出し方は、利用している例規データベースのベンダーに確認してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0692)についてのご相談はこちらから。
