houki-abbreviations
法令・通達の略称辞書と、それを取り巻く小さな関数群です。houki-hub family の MCP サーバーはすべてこのパッケージを依存に持ちます。 MCP サーバーではなく、開発者のコードが import するライブラリです。
- npm:
@shuji-bonji/houki-abbreviations(最新 0.5.0。houki-egov-mcp 0.5.3 と houki-nta-mcp 0.10.4 が取り込んでいるのは 0.4.1) - リポジトリ: shuji-bonji/houki-abbreviations
- 動作環境: Node.js 20 以上。依存パッケージなし
辞書の中身(0.5.0)
174 エントリを 6 分野に分けて持ちます。
| 分野 | 件数 | 例 |
|---|---|---|
| 行政法(administrative) | 48 | 行政手続法、個人情報保護法、電子帳簿保存法 |
| 税法(tax) | 35 | 消費税法、法人税法、消基通、所基通 |
| 商法・会社法(commercial) | 31 | 会社法、金融商品取引法 |
| 労働法(labor) | 28 | 労働基準法、労働安全衛生法 |
| 民法(civil) | 23 | 民法、借地借家法 |
| 会計(accounting) | 9 | 財務諸表等規則 |
種別で見ると、法律 138、省令 16、政令 8、基本通達 8、個別通達 1、規則 2、憲法 1 です。 各エントリは正式名称、法令 ID(e-Gov の law_id)、法令番号、別名(「インボイス」→「適格請求書」など)、 そして どの MCP が担当するか(source_mcp_hint: houki-egov 165 件 / houki-nta 9 件)を持ちます。
MCP が使っている版と最新版の関係
houki-egov-mcp と houki-nta-mcp の package.json は ^0.4.1 を指定しています。0.x 系の ^ は minor を跨がないので、 両 MCP に入るのは 0.4.x で、0.5.0 は入りません。0.5.0 で足した逆引きと検証は MCP からは呼ばれておらず、辞書の中身は 0.4.1 と 0.5.0 で同じなので、 動作上の差はありません。MCP から呼ぶ関数は resolveAbbreviation、normalizeJpText、normalizeSearchQuery の 3 つです。
このパッケージを minor で上げたときは、MCP 側の依存範囲も上げて publish し直す必要があります(次は 0.6.0 の略称展開を houki-nta-mcp が使うとき)。
提供する機能
| 機能 | 何をするか |
|---|---|
| 略称の解決 | 「法基通」→「法人税基本通達」、「個情法」→「個人情報の保護に関する法律」と法令 ID |
| 逆引き | 法令 ID や法令番号から辞書エントリを引く |
| 表記の正規化 | 全角英数字・記号・空白を半角に揃える。DB への取り込み時と検索時に同じ関数を通し、片方だけ揃わないことを防ぐ |
| 検索クエリの正規化 | 上の正規化に加え、検索向けの前処理を行う |
| 鮮度の判定 | 取得日時からの経過日数を、コンテンツ種別ごとのしきい値と比べて fresh / stale などに分類する |
| 似た名前の提案 | 打ち間違いに対して、編集距離の近い候補を返す |
| 辞書の検証 | 全エントリの法令 ID の形式と重複を検査する。本文から法令名を抽出する補助もある |
設計上の約束
- 辞書のエントリは、正式名称・法令 ID・法令番号を e-Gov の値と一致させる ことを検証で確かめます。推測で書きません
- 管轄(
source_mcp_hint)は「その MCP が本文を取りに行けるか」で決めます。houki-egov-mcp に「消基通」を渡すと、解決はしますが本文は取りに行かず、houki-nta-mcp への案内を返します - 正規化は 幅(全角・半角)だけ を揃えます。漢数字と算用数字の変換(「第三十条」と「第30条」)は別の関心事として切り分けており、次の版の課題です
次の版で予定していること
- 略称から複数の正式名への展開(houki-nta-mcp の検索で「消基通」と「消費税法基本通達」の両方を引くため)
- 法令番号の漢数字と算用数字の相互変換
- 法令 ID の検証を月次で自動実行する GitHub Actions