Skip to content

公開定数の仕様 ​

INFO

houki-abbreviations v0.7.1 の specs/current/public_constants/spec.md から自動生成しました(仕様 ID 9 件・2026-10-11)。手で編集しないでください。再生成は node scripts/generate-reference.mjs specs です。

CATEGORIES / DOMAINS / LAW_TYPE_CODES / SOURCE_MCP_HINTS / STALENESS_THRESHOLDS

使いどころ・引数・実測の呼び出し例は、値のページにあります。

最後に仕様が変わったのは v0.7.0 の「辞書のエントリと公開定数を凍結する」(2026-09-30 承認)です。それまでの経緯は承認の履歴にあります。

利用者と得られる結果 ​

この機能の利用者と、利用者が渡すもの・得られる結果を示します。

  • houki-hub family の MCP サーバー(houki-egov-mcp・houki-nta-mcp など)。辞書エントリの domain / category / source_mcp_hint がとりうる値の一覧として読み、引数の検査や管轄の判定に使う。鮮度の判定では STALENESS_THRESHOLDS の境界を使う
  • このパッケージの辞書データ(src/data/*.json)。各エントリの値はこれらの定数の値のどれかにする

値 ​

このパッケージが公開している値と、その中身です。

件数は v0.6.0 の辞書(全 174 件)で数えた、その値を持つエントリの数です。

DOMAINS ​

辞書エントリの domain(実務の分野)がとりうる値の一覧。listByDomain の引数や getAbbreviationStats の byDomain のキーに使う。6 つの値を持つ。

値分野件数
tax税務35
labor労務28
accounting会計9
commercial商事31
civil民事23
administrative行政48

CATEGORIES ​

辞書エントリの category(法律・通達・判例など、どの種類の文書か)がとりうる値の一覧。listByCategory の引数や getAbbreviationStats の byCategory のキーに使う。13 の値を持つ。

値文書の種類本文を持つ MCP サーバー件数
constitution憲法houki-egov-mcp1
law法律houki-egov-mcp138
cabinet-order政令houki-egov-mcp8
imperial-ordinance勅令houki-egov-mcp0
ministerial-ordinance省令houki-egov-mcp16
rule規則houki-egov-mcp2
kokuji告示houki-nta-mcp・houki-mhlw-mcp など。e-Gov 法令 API は告示を持たない0
kihon-tsutatsu基本通達houki-nta-mcp など8
kobetsu-tsutatsu個別通達houki-nta-mcp など1
qa-jirei質疑応答事例houki-nta-mcp など0
tax-answerタックスアンサーhouki-nta-mcp など0
hanrei判例(未定)0
saiketsu裁決(未定)0

件数 0 の値は、辞書にまだエントリが無い種類として先に定義している。kokuji は v0.7.0 で足す。告示は law_type を持たず(LAW_TYPE_CODES に対応するキーは無い)、law_id は null(isValidLawId が受け付ける形に告示は無い)。

SOURCE_MCP_HINTS ​

辞書エントリの source_mcp_hint(そのエントリの本文をどの MCP サーバーで取得するか)がとりうる値の一覧。各 MCP サーバーは、エントリの source_mcp_hint が自分の名前でないときに管轄外と判定し、この値の MCP サーバーを案内する。listBySourceMcpHint の引数や getAbbreviationStats の bySourceMcpHint のキーに使う。6 つの値を持つ。

値本文の取得元件数
houki-egove-Gov 法令 API(憲法・法律・政令・勅令・府省令・規則)165
houki-nta国税庁の通達・告示・質疑応答事例・タックスアンサー9
houki-mhlw厚生労働省の通達・告示・通知0
houki-jaish労働安全衛生の通達(未決 3)0
houki-court裁判所サイトの判例0
houki-saiketsu国税不服審判所の裁決0

houki-egov の取得元から「告示」を外す。e-Gov 法令 API(GET /api/2/laws)は憲法・法律・政令・勅令・府省令・規則だけを持ち、告示を持たない。

LAW_TYPE_CODES ​

e-Gov の法令種別の名前と、e-Gov の法令 ID(law_id)の 4〜5 文字目に入る種別コードの対応。辞書エントリの law_type がとりうる値はこのキーの 5 つ。law_type は非推奨で、category に集約する予定。

キー(law_type の値)値(law_id の種別コード)法令種別law_type の件数
ActAC法律138
CabinetOrderCO政令8
ImperialOrdinanceIO勅令0
MinisterialOrdinanceMO省令16
RuleRU規則2

例: 消費税法の law_id 363AC0000000108 の AC が Act(法律)を表す。

STALENESS_THRESHOLDS ​

鮮度の判定(judgeStaleness)の境界の日数。family のどの MCP サーバーも同じ境界で fresh / stale / outdated を判定するために共有する。

キー値意味
fresh_days7経過日数がこの値未満なら fresh
stale_days30経過日数がこの値未満なら stale、この値以上なら outdated

7 日は週 1 回の確認、30 日は月 1 回の一括取得を想定した値(houki-nta-mcp v0.6.0 で決めた値)。違う境界が要る MCP サーバーは、この定数を書き換えずに自分の判定関数を書く。

扱わないこと ​

この機能が意図して扱わないことです。

  • 値を追加・変更する手段を持つこと(凍結されている。009。値を変えるにはこのパッケージの新しい版が要る)
  • 鮮度を判定すること(judgeStaleness)。この文書は境界の値だけを書く
  • エントリの law_id の形を検査すること(isValidLawId)
  • エントリの一覧を分野・種類・MCP サーバー別に返すこと(listByDomain・listByCategory・listBySourceMcpHint)

処理の流れ ​

定数なので呼び出しの流れは無い。辞書エントリの値と定数の関係を示します。図の中の番号は「できること」の仕様 ID の末尾 3 桁です。

仕様項目 ​

この機能の仕様項目を、仕様 ID ごとに並べています。見出しは仕様項目を 1 文で表したもので、条件・応答の細部・例は「詳細」を開くと読めます。仕様 ID はそれぞれ受入テストと対応していて、テストの無い ID があると各リポジトリの CI が止まります。

SPEC-ABBR-PUBLIC-CONSTANTS-001 STALENESS_THRESHOLDS は fresh_days 7・stale_days 30 を持つ ​

詳細

STALENESS_THRESHOLDS.fresh_days は 7、STALENESS_THRESHOLDS.stale_days は 30。fresh_days は stale_days より小さい。

SPEC-ABBR-PUBLIC-CONSTANTS-002 辞書の全エントリの domain・category・source_mcp_hint は定数の値のどれかである ​

詳細

辞書(abbreviationEntries)のどのエントリも、domain は DOMAINS の値、category は CATEGORIES の値、source_mcp_hint は SOURCE_MCP_HINTS の値のどれかを持つ。定数に無い値を持つエントリは無い。

SPEC-ABBR-PUBLIC-CONSTANTS-003 DOMAINS のどの値にも辞書のエントリがある ​

詳細

DOMAINS の 6 つの値それぞれについて、その domain を持つ辞書のエントリが 1 件以上ある。getAbbreviationStats().byDomain の 6 つの値はどれも 1 以上。

例: v0.6.0 で最も少ない accounting は 9 件。

SPEC-ABBR-PUBLIC-CONSTANTS-004 LAW_TYPE_CODES は 5 つの法令種別と種別コードの対応を持つ ​

詳細

LAW_TYPE_CODES は次の 5 つのキーと値を持ち、これ以外のキーを持たない。

キー値
ActAC
CabinetOrderCO
ImperialOrdinanceIO
MinisterialOrdinanceMO
RuleRU

例: LAW_TYPE_CODES.Act → "AC"、LAW_TYPE_CODES.MinisterialOrdinance → "MO"。

SPEC-ABBR-PUBLIC-CONSTANTS-005 law_id と law_type の両方を持つエントリは、law_id の種別コードが LAW_TYPE_CODES と一致する ​

詳細

辞書(abbreviationEntries)で law_id が null でなく law_type も持つエントリは、どれも law_id の 4〜5 文字目が LAW_TYPE_CODES[law_type] と同じ値になっている。

例: 消法 は law_id: "363AC0000000108"・law_type: "Act" で、4〜5 文字目の AC が LAW_TYPE_CODES.Act と同じ。law_type を持たない 憲(321CONSTITUTION)は対象外。

SPEC-ABBR-PUBLIC-CONSTANTS-006 DOMAINS は 6 つの値をこの順で持つ ​

詳細

DOMAINS は ["tax", "labor", "accounting", "commercial", "civil", "administrative"] で、値と順序がこのとおりになっている。

SPEC-ABBR-PUBLIC-CONSTANTS-007 CATEGORIES は 13 の値をこの順で持つ ​

詳細

CATEGORIES は ["constitution", "law", "cabinet-order", "imperial-ordinance", "ministerial-ordinance", "rule", "kokuji", "kihon-tsutatsu", "kobetsu-tsutatsu", "qa-jirei", "tax-answer", "hanrei", "saiketsu"] で、値と順序がこのとおりになっている。kokuji は rule の次(法令系の値の末尾)に置く。

例: CATEGORIES.length は 13、CATEGORIES[6] は "kokuji"、CATEGORIES.indexOf('kihon-tsutatsu') は 7(v0.6.1 では 6)。

SPEC-ABBR-PUBLIC-CONSTANTS-008 SOURCE_MCP_HINTS は 6 つの値をこの順で持つ ​

詳細

SOURCE_MCP_HINTS は ["houki-egov", "houki-nta", "houki-mhlw", "houki-jaish", "houki-court", "houki-saiketsu"] で、値と順序がこのとおりになっている。

SPEC-ABBR-PUBLIC-CONSTANTS-009 公開定数は凍結されていて、代入は TypeError になる ​

詳細

DOMAINS、CATEGORIES、SOURCE_MCP_HINTS、LAW_TYPE_CODES、STALENESS_THRESHOLDS は、どれも Object.isFrozen が true を返す。要素の追加・差し替え・削除とキーへの代入は、strict mode(ES モジュール、TypeScript の出力)では TypeError を投げ、値は変わらない。judgeStaleness の境界は実行時に変えられない。

例: DOMAINS.push('x') は TypeError を投げ、DOMAINS.length は 6 のまま(v0.6.1 では 7 になっていた)。CATEGORIES[0] = 'x' と SOURCE_MCP_HINTS.pop() も TypeError。LAW_TYPE_CODES.Act = 'XX' は TypeError で、LAW_TYPE_CODES.Act は 'AC' のまま。STALENESS_THRESHOLDS.fresh_days = 100 は TypeError で、その後の judgeStaleness(50) は 'outdated' のまま(v0.6.1 では 'fresh' になっていた)。

実装する人に向けた情報 ​

ここから下は、この機能を実装する人と、仕様の変更を追う人に向けた節です。使い方を知りたいだけなら、読まなくて構いません。

検討中のこと ​

仕様を書き起こしたときに見つかった項目のうち、扱いを Issue で検討しているものです。ここに挙げたことは、今後の版で変わることがあります。開くと、元の仕様書の記述をそのまま読めます。

仕様書の「未決」の節

初版起こしで見つけた、意図か不具合かを人が決める項目です。決まったら「できること」に ID を振るか、specs/changes/ の差分にします。

意図か不具合かの判断が要る項目は houki-abbreviations の Issue に移し、ここには題と Issue の番号だけを残します。今の振る舞いのままでよくテストが無いだけの項目は、受入テストを書いてから「できること」に ID を振ります。

  1. 定数は実行時に書き換えられる。 → SPEC-ABBR-PUBLIC-CONSTANTS-009
  2. LAW_TYPE_CODES の値を確かめるテストが無い。 → SPEC-ABBR-PUBLIC-CONSTANTS-004、SPEC-ABBR-PUBLIC-CONSTANTS-005
  3. houki-jaish の説明。 → houki-abbreviations #17
  4. 値の一覧そのものを固定するテストが無い。 → SPEC-ABBR-PUBLIC-CONSTANTS-006、SPEC-ABBR-PUBLIC-CONSTANTS-007、SPEC-ABBR-PUBLIC-CONSTANTS-008
  5. CATEGORIES の説明と e-Gov の範囲。 → SPEC-ABBR-PUBLIC-CONSTANTS-007

承認の履歴 ​

この機能の仕様が、いつ、どの変更で承認されたかを新しい順に並べています。各リポジトリの npx spec-ids history public_constants と同じ内容です。変更の名前から、変更の理由と前後の振る舞いを書いた文書(GitHub)を開けます。

承認の履歴(5 件)
承認日版変更仕様 PR
2026-09-30v0.7.0辞書のエントリと公開定数を凍結する#33
2026-09-30v0.7.0辞書の約束(名前の重なり・別名・告示)と、件数・近さの決め方#32
2026-09-27v0.6.1テストが無いだけの振る舞いに仕様 ID を振る#27
2026-09-27v0.6.1「未決」のうち判断が要る 52 件を Issue に移す#26
2026-09-27—初版#10

関連ページ ​

このページの元になった文書と、あわせて読むページです。

本サイトの内容は調査の出発点であり、法的助言ではありません。個別の事案は資格を持つ専門家に相談してください。免責事項と利用範囲