Skip to content

feasibility-check:実装する前に、その仕様が法令のどこに触れるかを条文で確かめる ​

INFO

houki-research Skill v0.21.1 の skills/houki-research/workflows/feasibility-check.md から自動生成しました(ステップ 7 件・2026-10-14)。手で編集しないでください。再生成は node scripts/generate-reference.mjs specs です。

このページは、houki-research Skill の workflow(問いの形ごとの手順)「実装する前に、その仕様が法令のどこに触れるかを条文で確かめる」の説明です。Skill を読み込んだ LLM は、この順で MCP のツールを呼びます。「関連ページ」の前までは、workflow の本文を言い換えずに写しています。

houki-research-skill が想定する 実現可能性調査のワークフロー。「この機能を作ってよいか」ではなく、「この仕様の各要素が、どの法令のどの条に触れ、その条は何を求めているか」を、条文と委任先(施行令・施行規則)と施行日まで揃えて返す。判断は利用者が行う。

このワークフローを使う場面 ​

この手順を選ぶ問いと、選ばない問いです。

問いの形が 「この仕様は法令のどこに触れるか」 のとき。

  • 新しい機能の仕様を決める前に、法令上の要件(保存期間・記載事項・同意の取り方・届出の要否など)を条文で確かめたい
  • 既存の機能が参照している条文が、いまも同じ内容か、施行待ちの改正が無いかを確かめたい
  • 設計レビューや見積もりで「法令上の制約」の欄を、根拠付きで埋めたい

該当しないケース:

  • 「この仕様は適法か」「この設計で問題ないか」→ 可否の判定は返さない(docs/BUSINESS-LAW.md の応答型)。触れる条文と、その条文が求めることまでを返し、判断は利用者に返す
  • 「この取扱いの根拠と、今も有効か」(通達から入る問い)→ tax-research.md
  • 「この改正はいつから、何が変わるか」→ revision-tracking.md(予定)。本ワークフローのステップ ⑥ で施行日は見るが、改正前後の差分は扱わない
  • 「私の場合はどうなるか」(個別の事案)→ 応答型の「返さないもの」に従う

自社のシステムについて自社で調べることは、業法の独占業務の外(自己の事務)にある。ただし「適法か」に答えた時点で当てはめになるので、返すのは条文と要件までという線は変わらない。

フロー全体像 ​

Skill を読み込んだ LLM が、どの MCP のどのツールをどの順に呼ぶかを示します。

各ステップの詳細 ​

各ステップで呼ぶツールと引数、応答の読み方です。見出しを開くと、呼び出し例を読めます。

ステップ ①: 業法判定 ​

詳細

docs/BUSINESS-LAW.md の §2 に照らす。仕様の確認は 自己の事務 なので、そのまま進める。

ただし問いの中に「この仕様で問題ないか」「適法か」が含まれていたら、回答冒頭で 可否は返さないこと を 1 文で書く。触れる条文と要件は返す。

問いの形返す返さない
どの条に触れるか条文・要件・委任先・施行日—
適法か / 問題ないか上と同じ「適法です」「問題ありません」「おそらく大丈夫」

ステップ ②: 仕様の語を法令の語に置き換える ​

詳細

仕様書の語(「領収書を PDF で保存」「ユーザーの位置情報を取得」「未成年の会員登録」)は、法令の語(「電子取引」「電磁的記録」「個人情報」「要配慮個人情報」「未成年者」「法定代理人」)と一致しない。ここは LLM が埋める部分で、どの語で探したかを回答に残す。残さないと、利用者は探し漏れに気づけない。

仕様の語法令の語の候補当たりを付ける手段
領収書を PDF で保存する電子取引、電磁的記録、国税関係書類、保存resolve_abbreviation(「電帳法」→ 正式名)、search_fulltext
位置情報を取得する個人情報、個人関連情報、取得、利用目的search_fulltext { "keyword": "個人情報保護法 利用目的" }
未成年の会員登録未成年者、法定代理人、同意search_fulltext { "keyword": "民法 未成年者 法律行為" }
契約書を電子署名で結ぶ電子署名、真正な成立の推定search_law { "keyword": "電子署名" }

略称(「電帳法」「個情法」「労基法」)は resolve_abbreviation で正式名に直してから探す(鉄則 2)。

同じ語を使う別分野の法令が当たることがある(「電子取引 電磁的記録」で関税法が当たる、など)。除外した法令と理由も「探した語」と一緒に回答に書く。

ステップ ③: 該当法令を探す ​

詳細

入口は問いに含まれる情報で選ぶ(SKILL.md 鉄則 3 の表と同じ)。

分かっていること呼ぶ tool
法令名(略称でも可)search_law { "keyword": "<法令名>" }
法令名は不確かだが、語は分かるsearch_fulltext { "keyword": "<語> <語>" }(ローカル DB が要る。DB が無い・開けないとき、また DB の版が houki-egov-mcp と合わないとき(v0.19.0 以上。v0.18.x 以前に作った DB など)は source: "api-fallback" で search_law に切り替わるので、回答で「法令名の一致で探した」と明示し、note の案内をユーザーに伝える)
分野だけsearch_fulltext { "keyword": "<分野の語> <語>" }(search_law / search_fulltext は分野で絞れない。houki-egov-mcp v0.18.0 以上は domain を渡すと INVALID_ARGUMENT。法令の種類で絞るなら law_type)

1 つの仕様が複数の法令に触れることが普通(電子取引の保存なら電子帳簿保存法と、その帳簿の元になる消費税法・法人税法)。見つかった法令ごとに以下を繰り返す。

ステップ ④: 条文を取る ​

詳細

条が分からないときは get_toc で目次を見て当たりを付け、get_law で条・項・号の単位で取る。要件は号まで下りていることが多い。

jsonc
{ "tool": "get_toc", "args": { "law_name": "電子計算機を使用して作成する国税関係帳簿書類の保存方法等の特例に関する法律" } }
{ "tool": "get_law", "args": { "law_name": "電子計算機を使用して作成する国税関係帳簿書類の保存方法等の特例に関する法律", "article": "7" } }

民法・会社法のような長い法令は、法令全体を取ってコンテキストに載せない。条が分かっているなら get_law を条の単位で呼び、章・節を通して読む必要があるときは get_law_range を使う(houki-egov-mcp v0.14.0 以上)。

jsonc
{ "tool": "get_toc", "args": { "law_name": "民法", "depth": 2 } }
// → toc[2].children[1].path = "Part3/Chapter2"(第三編 債権 第二章 契約)。truncated: true(depth で刈った印。v0.21.0 以上では truncated_by: "depth" が付く)
{ "tool": "get_law_range", "args": { "law_name": "民法", "path": "Part3/Chapter2" } }
// → 198 条のうち 186 条(第521条〜第684条、本文 29,911 文字)。range.truncated: true
{ "tool": "get_law_range", "args": { "law_name": "民法", "path": "Part3/Chapter2", "from_article": "685" } }
// → 続きの 12 条。range.next_from_article の値をそのまま渡す

get_toc の truncated: true は、自分が渡した depth で枝を刈った印で(houki-egov-mcp v0.21.0 以上では truncated_by: "depth" が付く)、応答の大きさで切れたのではなく、続きを取る操作も無い。全階層が要るなら depth を省いて呼び直す。get_law_range の range.truncated は文字数の上限で条を打ち切った印で、こちらは next_from_article で続きを取る。同じ名前でも意味が違うので取り違えない。

使い分けの目安:

読み方呼ぶ tool
要件を 1 条ずつ確かめる(条・項・号が分かっている)get_law
章・節を通して読む(制度の組み立てを見る)get_law_range
どの条にあるか探すget_toc か search_fulltext

get_law_range は既定で本文 30,000 文字までを条の単位で返す。民法の章はほとんどが 1 回で収まり、会社法・所得税法の大きい章は 2〜3 回に分かれる。range.truncated が true のときは range.next_from_article を from_article に渡して続きを取る。truncated: true のまま「この章にはこれしか無い」と書かない。

章番号は編ごとに振り直される(民法には第一章が 5 つある)。chapter だけを渡して複数に当たると候補のパス付きで INVALID_ARGUMENT が返るので、next_actions の path を選び直す。

ステップ ⑤: 委任先へ下りる ​

詳細

法律の条文に「政令で定める」「財務省令で定める」「厚生労働省令で定める」「別表」とあれば、要件の実体はそこにある。法律の条だけで止めると、保存期間や記載事項のような数字が抜ける。

houki-egov-mcp v0.10.1 以上には、委任先へ下りるためのツールが 2 つある。3 手で下りる。

手呼ぶ tool見るフィールド意味
1get_related_laws { "law_name": "<法律名>" }related[](relation / title / law_id / abbr)、not_found[]法律名の末尾に「施行令」「施行規則」を付けた名前で e-Gov に実在するものだけが返る。not_found に候補が残っていれば、その名前の下位法令は無い
2get_article_references { "law_name": "<法律名>", "article": "<条>" }delegations[](raw / count / target_law)、references[]、coverage.note「政令で定める」「財務省令で定める」が何回あり、どの施行令・施行規則を指すか(法令単位。条は決めない)。他法令・同一法令内の参照は references[] に条・項・号付きで入る
3get_law(next_actions[].example をそのまま渡す)本文引用先の条を取る。example は引数だけなので、そのまま渡せる
jsonc
{ "tool": "get_related_laws", "args": { "law_name": "電帳法" } }
// → related: [ { relation: "enforcement_order", law_id: "503CO0000000128", title: "…法律施行令" },
//              { relation: "enforcement_rule",  law_id: "410M50000040043", title: "…法律施行規則" } ]
{ "tool": "get_article_references", "args": { "law_name": "電帳法", "article": "7" } }
// → references: [](7 条は他の条を引いていない)
//   delegations: [ { raw: "財務省令で定める", count: 1, target_law: { title: "…法律施行規則", law_id: "410M50000040043" } } ]
//   next_actions: [ { action: "search_fulltext", example: { keyword: "…法律施行規則 法第七条" } } ]

委任先の 条 は 2 つの方法で探す。ローカル DB があれば next_actions の search_fulltext(施行規則の本文で「法第七条」を引いている条が当たる)、無ければ get_toc { "law_name": "<施行規則名>" } で見出し(「(電子取引の取引情報に係る電磁的記録の保存)」のように法律の条と同じ見出しが付く)から当たりを付ける。

規則の条が、さらに同じ規則の別の条を準用していることがある(電帳法施行規則 4 条 1 項が 2 条 2 項 2 号と 6 項 5 号を準用する、など。二段目の委任)。施行規則の条に対しても get_article_references を呼ぶと、準用先が references[] に入る。

jsonc
{ "tool": "get_article_references", "args": { "law_name": "…法律施行規則", "article": "4", "paragraph": 1 } }
// → references: [
//     { kind: "external", raw: "法第七条", law_name: "…法律", law_id: "410AC0000000025", article: "7" },   // 「法」は親の法律に解決される
//     { kind: "internal", raw: "第二条第二項第二号", article: "2", paragraph: 2, item: "2" },
//     { kind: "internal", raw: "第六項第五号", article: "2", paragraph: 6, item: "5", article_from: "第二条第二項第二号" },
//     { kind: "relative", raw: "同項第六号", resolved: false }, …
//   ]
//   next_actions: [ { action: "get_law", example: { law_name: "…法律施行規則", article: "2", paragraph: 6, item: "5" } }, … ]

references[].kind の読み方:

kind意味扱い
external(resolved: true)他法令の条。law_id 付き。施行令・施行規則の本文の「法第N条」は親の法律に解決されているnext_actions の get_law で取る
external(resolved: false)法令名の候補(law_name)は切り出せたが、e-Gov に完全一致する名前が無かった「未確認」に書く。law_name を search_law で探し直してもよい
internal同一法令内の条・項・号。article_from があるときは、「第二条第二項第二号及び第六項第五号」の後半のように直前の参照の条を引き継いだものnext_actions の get_law で取る
suppl本文の「附則第N条」(houki-egov-mcp v0.18.0 以上。v0.17.x は本則の条への internal になっていた)。resolved: false で、どの附則(制定時か、どの改正法か)の条かは決まっていないget_toc の suppl_provisions[].index で附則を選び、get_law に suppl_index と article を渡して取る。決められなければ「未確認」に書く
relative「前項」「同条第六項第五号」「同法第N条」。解決されない本文を読んで指す先を決める。取るなら自分で get_law の引数を組む

external で条を持たない参照(法令名だけを引いている参照)には、next_actions に参照先の法令の get_toc が入る(houki-egov-mcp v0.18.0 以上。v0.17.x は呼んだ条の番号で参照先の get_law を案内していたので、その案内には従わない)。delegations[].target_law は houki-egov-mcp v0.18.0 以上では常にあり、委任先が無い・確かでないときは null になる。

coverage.note が付いていることを前提に読む。取れた参照だけが返るので、references が空でも「この条は他の条を引いていない」とは言い切らず、本文で確かめる。取らなかったものは「未確認」に書く。

別表・様式が図のとき (houki-egov-mcp v0.15.0 以上) ​

別表・様式・別記の中身が図 (jpg / pdf) のとき、get_law / get_law_range の Markdown には入らない (e-Gov の XML で Fig 要素になっている部分)。届書の書式や記載欄、旗の寸法図のように 図そのものが要件の実体 のときは、次の 2 手で取る。

手呼ぶ tool見るフィールド
1list_attachments { "law_name": "<法令名>" }attachments[] の location.title(「別表第一」「附録第十一号様式」)と location.related_article(「(第五十九条関係)」)で目当ての図を選び、その url を取る
2pdf なら pdf-reader-mcp の read_url { "url": "<attachments[].url>" }。ディスクに置くなら get_attachment { "law_name", "src": "<attachments[].src>", "save": true } → saved.path を read_text に渡す図の本文
jsonc
{ "tool": "list_attachments", "args": { "law_name": "戸籍法施行規則" } }
// → count: 42, attachments: [ …, { src: "./pict/2FH00000076885.pdf", file_type: "pdf",
//     url: "https://laws.e-gov.go.jp/api/2/attachment/322M40000010094_20260626_508M60000010043?src=…",
//     location: { tag: "AppdxStyle", title: "附録第十一号様式", related_article: "出生の届書(日本産業規格A列四番)(第五十九条関係)" } }, … ]

url は認証なしで開ける。count: 0 なら、その法令の別表・様式は文字列で書かれているので get_toc → get_law で読める。図は法令履歴ごとに付くので、at を付けたときは list_attachments にも同じ at を渡す。citation には location.title と関係条文を書き、「図を読んだ」ことが分かるようにする。

法令全体を Word や HTML で手元に置きたいときだけ get_law_file { "law_name", "file_type": "docx", "save": true }。条文を読むのに使う道ではない (民法の xml は 1.6 MB)。

houki-egov-mcp が v0.10.0 より前のときは、上の 2 ツールが無い(UNKNOWN_TOOL)。名称の規則と law_type で引く。

条文の語引き方
政令で定めるsearch_law { "keyword": "<法律名>", "law_type": "CabinetOrder" } → 「<法律名>施行令」
〜省令で定めるsearch_law { "keyword": "<法律名>", "law_type": "MinisterialOrdinance" } → 「<法律名>施行規則」
別表 / 様式get_toc で別表の位置を確認してから get_law。図のときは v0.15.0 以上の list_attachments(上記)

別表・様式は v0.10.x でも get_article_references の対象外なので、get_toc で探す。

⑤': 税に関わる仕様のとき ​

保存・記載・申告に関わる仕様なら、houki-nta-mcp で通達・Q&A・タックスアンサーを引き、legal_status を付けて別の行に置く。通達は税務職員を拘束するが国民を拘束しないので、法律の要件と同じ列に混ぜない。

houki-nta-mcp v0.18.x の基本通達は消基通・所基通・法基通・相基通の 4 種で、電子帳簿保存法の取扱通達は入っていない。電帳法の Q&A(一問一答)はタックスアンサー・質疑応答事例に部分的にある。無いときは「houki-nta-mcp の対象外」と回答に書き、国税庁サイトの URL を案内する。nta_get_tsutatsu で 4 種以外の通達を求めると TSUTATSU_NOT_FOUND が返る(houki-nta-mcp v0.27.0 以上は hint が この通達(<正式名>)は、今は取り込めません。 で始まる。v0.26.x 以前は投入のコマンドを案内するが、実行しても終了コード 2 で止まるので実行させない。../docs/ERROR-HANDLING.md)。

ステップ ⑥: 施行日と未施行の改正 ​

詳細

get_law_revisions で、いま取った条文が 実装時点で有効な版か、施行待ちの改正が無いか を見る。

jsonc
{ "tool": "get_law_revisions", "args": { "law_name": "<法令名>", "latest": 5 } }
見るもの意味
current_revision_status: "UnEnforced"公布済みで未施行。実装が稼働する時期によっては、こちらの版に合わせる
amendment_enforcement_date施行日。amendment_enforcement_comment に「政令で定める日」とあれば、この日付は上限の見込みで確定日ではない
amendment_law_titleどの改正法か。改正前後の差分が要るなら revision-tracking.md(予定)へ

revisions は施行日の新しい順に並び、まだ施行されていない改正も含む。latest はこの順の先頭から数えるので、先頭が現行の版とは限らない。いま効力のある版は current_revision_status が "CurrentEnforced" の要素で見る(houki-egov-mcp v0.17.0 以上。並べ替えはツールが行う)。v0.17.0 以上では revisions[] の 8 つのキーは常にあり、e-Gov に値が無いキーは null になる。

未施行の改正があるときは、get_law の at にその施行日を入れると、その版の条文が取れる({ "law_name": "電帳法", "article": "7", "at": "2027-01-01" })。取った条が現行と同じなら「この条は変わらない」と書ける。どの条が変わるかは本ワークフローでは追わない(revision-tracking.md)。

ステップ ⑦: 制約の一覧を返す ​

詳細

回答の中心は 仕様の要素ごとの表 にする。散文で条文を並べない。

仕様の要素触れる条文条文が求めること(引用)委任先通達・Q&A(legal_status)施行日 / 未施行の改正未確認
領収書を PDF で保存電子帳簿保存法 第7条「電子取引を行った場合には…電磁的記録を保存しなければならない」施行規則 第4条(真実性・可視性の要件)一問一答(対象外。国税庁 URL)現行。未施行の改正なし(2026-09-19 取得)取引先から紙で届いた場合の扱いは別条

各列の決まり:

  • 触れる条文: 法令名 + 条・項・号。get_law の応答の law_num と url を Sources に置く
  • 条文が求めること: 本文の引用。言い換えない。長ければ号だけ引く
  • 委任先: 施行令・施行規則の条。⑤ で引けなかったら「未確認」に回す
  • 通達・Q&A: 法律と同じ列に入れない。legal_status を添える
  • 施行日: get_law_revisions の値と、取得日時
  • 未確認: 探したが見つからなかったもの、houki family の対象外のもの、探すべきだが探していないもの

表の後ろに、探した語と探せなかった語 を書く(ステップ ②)。最後に docs/CITATION.md の形で ## Sources を置く。

返さないもの(応答型):

  • 「この仕様は適法です」「問題ありません」「おそらく〜でしょう」
  • 「こう直せば通ります」のような設計の指示(要件を示すまで。どう満たすかは利用者が決める)

この手順で使うツール ​

上のステップに出てくる houki-hub family のツールと、そのツールのページ・仕様のページです。houki-hub の外のツール(pdf-reader-mcp など)は載せていません。

ツールMCP サーバーツールのページ仕様
resolve_abbreviationhouki-egov-mcpresolve_abbreviationresolve_abbreviation の仕様
resolve_abbreviationhouki-nta-mcpresolve_abbreviationresolve_abbreviation の仕様
search_fulltexthouki-egov-mcpsearch_fulltextsearch_fulltext の仕様
search_lawhouki-egov-mcpsearch_lawsearch_law の仕様
get_tochouki-egov-mcpget_tocget_toc の仕様
get_lawhouki-egov-mcpget_lawget_law の仕様
get_law_rangehouki-egov-mcpget_law_rangeget_law_range の仕様
get_related_lawshouki-egov-mcpget_related_lawsget_related_laws の仕様
get_article_referenceshouki-egov-mcpget_article_referencesget_article_references の仕様
list_attachmentshouki-egov-mcplist_attachmentslist_attachments の仕様
nta_get_tsutatsuhouki-nta-mcpnta_get_tsutatsunta_get_tsutatsu の仕様
get_law_revisionshouki-egov-mcpget_law_revisionsget_law_revisions の仕様

例 ​

実際のやり取りの例です。

../examples/electronic-bookkeeping.md — 「メールで届いた領収書の PDF を保存する機能」を題材にした実測(2026-09-19、egov 0.6.1 / nta 0.18.1)。電帳法 7 条 → 施行規則 4 条 → 準用先の 2 条 6 項 5 号 → 法人税法施行規則 59 条(保存期間)→ 2027-01-01 施行の未施行改正、まで 12 回の呼び出しで揃える。同じ ⑤ を egov 0.10.1 の get_related_laws / get_article_references で通した再実測を末尾に置いた。

アンチパターン ​

この手順でしてはいけない呼び方と、その理由です。

  • ❌ 法律の条だけで止める → 保存期間・記載事項・要件の実体は施行規則にある。⑤ を飛ばさない
  • ❌ get_article_references の references が空だから「他の条を引いていない」と書く → 正規表現で取れた範囲だけが返る(coverage.note)。本文で確かめる
  • ❌ relative(「前項」「同条第六項第五号」)を解決済みとして citation に書く → resolved: false。指す先は本文を読んで決め、決められなければ「未確認」
  • ❌ 探した語を回答に書かない → 利用者が探し漏れに気づけない。設計語と法令語の置き換えは LLM の推測なので、必ず見せる
  • ❌ 「適法です」「問題ありません」と書く → 当てはめ。応答型の「返さないもの」
  • ❌ 通達の要件を法律の要件と同じ行に書く → legal_status が消える。別の列か別の行にする
  • ❌ get_law_revisions を省く → 施行待ちの改正を見落とす。実装が稼働するのは数か月先なので、現行だけ見ても足りない
  • ❌ search_fulltext が api-fallback のまま「本文に無かった」と答える → 本文検索ができていない。「法令名の一致で探した」と書き、note の案内(next_actions に bulk_download_everything があればそのコマンド、無ければ note の続きの文が案内する houki-egov-mcp の更新や DB のパスの確認)をユーザーに伝える
  • ❌ 民法・会社法を get_law で丸ごと取る → 応答が長すぎる。条が分かっていれば get_law、章・節を通して読むなら get_law_range
  • ❌ get_law_range の range.truncated が true なのに、返った条だけで「この章の規定はこれだけ」と書く → range.next_from_article を from_article に渡して続きを取る
  • ❌ houki-nta-mcp に無い通達(電帳法取扱通達など)を「通達は無い」と答える → 対象外なだけ。「houki-nta-mcp の対象外」と書いて国税庁の URL を案内する

関連ページ ​

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

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