区域外・未収録・判定対象外・未指定の区別
「区域外」「未収録」「未指定」「未公表」「判定不能」を潰さず分けて答える設計原則。
定義
ある地点や項目がリスク区域に「入っていない」と判定したとき、それが 本当に区域外なのか、それとも そもそもデータが存在しない(未収録)のか、あるいは 判定の対象外なのか、制度上まだ指定されていない(未指定)なのか、そもそも公表されていない(未公表)のか を必ず分けて答えるという設計原則。Kurage の防災系製品群に共通する芯であり、hazard-map-judgment を成立させる前提条件でもある。この区別は地理データにとどまらず、行政統計の公表ギャップ、制度の期限、税務・登記の登録状態、条文の「答えられない」という記録、業務の状態管理、果ては OSS 導入時の「無言の失敗」にまで及ぶ。kappstore-ecosystem の各製品が共通して持つ、数少ない普遍の不変条件でもある。
なぜ重要か
「区域外」という応答は、利用者にとって「安全」という意味に読み替えられる。しかしデータが未収録の自治体・県で黙って「区域外」と返せば、実際には危険がある土地を安全だと誤認させてしまう。これは判定ツールとしての最悪の故障であり、trust-boundary の観点からも許容できない。
同様に「未指定」を「区域外」に、「判定対象外」を「危険度なし」に、「未公表」を「ゼロ」に潰してしまうと、規制が無い・危険が無い・対象が無いという逆の意味が生まれてしまう。区別すべき状態は二つではなく、少なくとも次の型に分かれる。
状態の型
kurage-products の各製品は、次の状態を別々に答え分ける。
| 状態 | 意味 | 応答 |
|---|---|---|
| 該当(確定) | データ上、その地点は区域に入る | 「該当」と明示 |
| 区域外(確定) | データは完全に収録済みで、その地点は区域に入らない | 「区域外」と明示(ただし後述の留保付き) |
| 未収録 | その自治体・県のデータを取り込んでいない、または配布データが打ち切られている | 「データが無い/確認できない」と明示し、安全と言わない |
| 判定対象外 | そもそも判定の対象にならない値(例: 液状化の判定対象外セル) | 「危険度なし」とは別の表示にする |
| 未指定 | 制度上まだ区域指定そのものが行われていない | 「未指定」と明示し、規制が無いと誤解させない |
| 未公表 | そもそも国・自治体がその数字を公表していない | 「未公表」と書き、ゼロや推定値で埋めない |
| 非回答(記録) | 制度上「答えられない」と明示された | 「お答えすることは困難」とそのまま示し、答えが無いと書かない |
| 判定不能(規則外) | 語の一致などで機械的に判定した結果、当てはまらなかった | 「判定できませんでした」と表示し、当てずっぽうで1つ選ばない |
| 同名・曖昧 | 同じ名前の別の対象が存在する | 住所などの第2の軸で見分け、一方に潰さない |
| 想定不要 | 内陸など、そもそも想定の対象外 | 「対象外」として区域外と区別 |
| 未検証 | 利用者の環境で動くかどうかが未確認 | 事前判定ツールで確かめ、動くと言い切らない |
| 無言の失敗 | エラーを出さずに処理が壊れている | 検出して状態として示し、成功と混同しない |
最も細かい実装例:kurage-juyo-saigai-check
宅地建物取引業法施行規則 第16条の4の3 が定める災害4項目を判定する本製品は、この原則を5状態に展開している。
- 該当(確定)
- 非該当 — 収録が完全な市区町村において確定
- 確認できない — 配布データが打ち切られている市区町村。区域外という意味ではない
- 指定対象外 — その市区町村に指定が無い。確定
- 当社データなし
空欄や「該当なし」で流すと重要事項説明の誤りに直結するため、確認漏れが紙の上に残る作りにしている。第三号の津波災害警戒区域は国土数値情報に無く都道府県が個別に指定・公表しているため、愛知県32市区町村・約165万面をマップあいち(CC BY 2.1 JP・営利利用可)から取り込む手順を同梱。nagoya は7区が指定対象で、残る9区は「指定対象外」と確定で出る。第一号の造成宅地防災区域は、名古屋市の公式FAQ「名古屋市内で指定されているところはありません」を出典つきで引用する。
具体例:kurage-tsunami-map
東京都・福井県・香川県は沿岸があるにもかかわらず、国の津波浸水想定データに未収録である。ここで黙って「区域外」と返すと、海岸沿いの土地が安全であるかのように見えてしまう。本製品は「未収録」「内陸(想定不要)」「区域外」を必ず分けて答える。
具体例:kurage-flood-hazard-map
「未収録と区域外を区別する」ことを設計の芯に掲げ、判定に必ずデータ時点を添える。名古屋市版の内水データも同梱し、他自治体はShapefileを1件足すだけで同じ画面で動く。外部の有料APIは使わず追加費用0円。
具体例:kurage-morido-map
盛土規制法の区域指定は都道府県ごとに進行中で、青森・香川・佐賀・沖縄はまだ公開されていない。そこで黙って「区域外」と答えると「規制が無い土地だ」と誤解されるため、「区域外」と「未指定」を必ず区別する。国土数値情報A56から全国104,309区域・1,539市区町村・43都道府県を取り込み、区域の種別・指定主体・告示番号・施行年月日まで返す。大規模盛土造成地マップ(そこに盛土があるという土地の成り立ち)とは別物であることも明示する。
具体例:kurage-disaster-risk-area-map
指定のない自治体で黙って「区域外」と答えない。さらに区域外の場合でも「これは建築制限の指定であって、浸水の危険が無いという意味ではない」と明記する。区域外=無危険ではないという第二の区別を扱っている点で踏み込んでいる。商用利用を認めていない自治体・非公開の自治体はそもそも取り込まない設計とし、利用条件の一覧をコードに持ちテストで固定する(open-data-license-compliance)。
具体例:kurage-earthquake-map
名古屋版は「区域外」と「判定対象外」と「範囲外」を必ず分ける。とくに液状化データには判定対象外を示す値が全体の28%あり、これを「液状化しない」と表示すると利用者は誤解する。名古屋市東部の台地に多く分布することを実測で確かめたうえで、危険度なし(PL=0)とは別の表示にしている。
具体例:kurage-disaster-judgment-set
区域判定だけでなく発令情報にも同じ原則を適用する。市区町村の配信から警戒レベル・種別・対象学区の事実だけを機械的に抜き、取得できなかったときは「発令なし」とは書かずに 取得できなかったと明示する。避難先も「その場所でいちばん重い災害に対応している指定緊急避難場所」だけを返し、洪水対応の避難所を土砂災害警戒区域の人に勧めない。
具体例:kurage-seido-navi
制度ナビでは期限を過ぎた制度を自動で「受付終了」に切り替える。これは時間方向の状態区別であり、「掲載されていない=制度が無い」ではなく「かつて存在した制度がいま終わった」ことを示す。名古屋市版45制度を同梱し、区を選ぶと申請先がその区役所に置き換わる。
同じ姿勢が kseidocal(制度変更カレンダー)にもある。会社に関係する制度の変更を施行日の順に並べ、従業員数やパートの有無を選ぶと自社に関係するものと時期が分かる。日付はすべて省庁の公式ページで確認したもので、項目ごとに国会での直近の発言を毎日取得する。日付は動きうるからこそ、出典と確認時点を添える。
具体例:ktorihiki — 登録状態を真偽値に潰さない
取引先の一覧(会社名・13桁の法人番号・T+13桁の登録番号のどれでも、1行に1社)を貼ると、国税庁の法人番号とインボイス(適格請求書発行事業者)の公表データから、インボイスの登録・取消・失効と、登記の閉鎖・商号や所在地の変更をまとめて照合し、確認が要る取引先を上に並べる。単に「登録あり/なし」の二値にせず、取消や失効という中間状態を持ち込む点で、この原則の税務版である。公開デモは愛知県に本店のある法人約28万6千社。データは国税庁の全件ファイルから毎月組み直す。
具体例:kshuisho — 「答えられない」という記録された答え
衆参の質問主意書と政府答弁書を本文の中までことばで引く道具。同じ論点で過去に誰が何を聞き、政府が何と答え、どこが「お答えすることは困難」とされたかを1画面に並べる。要約も論評も文章の生成もしない。ここでは「答えが無い」(検索の失敗)と「政府が答えられないと明示した」(記録された事実)が区別される。混同すると「政府は何も答えていない」と読まれてしまう。
同じ姿勢が kurage-giin-statement-log にもある。議員が「いつ・どの会議で・何を質問したか」を日付と会議名と会議録リンクつきで引く道具で、こちらも要約も論評もしない。記録を記録のまま返すことが、判定不能を作らない設計になっている。kurage-kokkai-tracker も同様で、テーマごとに質疑と政府答弁を日付順に並べるだけで、要約も論評もしない。PHPとSQLiteだけで動きLLMを使わないため運用費がかからない。
法域を1つに潰さない
同一の土地に複数の法的な枠が重なる場合も、片方に潰さず並べて示す。
- kminpaku — 住所から用途地域(建蔽率・容積率つき)と、その自治体の民泊の上乗せ条例(区域・期間の制限)を原文のまま返す。住宅宿泊事業法・特区民泊・旅館業法の3制度の違いも1画面に示し、全国102,159面・1,215市区町村を収録する。外部のAIやAPIに住所を送らない。
- ktoshikeikaku — 住所から用途地域・建ぺい率・容積率、市街化区域か市街化調整区域か、防火地域・高度地区・地区計画・風致地区・居住誘導区域、近くの都市計画道路までを返す。全国1,377市区町村・約41.8万区域を収録し、条文は原文のまま引用する。
- kronten — 国会の発言、Xの投稿、ニュースのコメント、アンケートの自由記述から、意味の近さで話題をまとめる。国会の質疑・政府の答弁・会派・年・ネットの声を分けて見られるので、国会とネットで話題がどうずれているかが地図で分かる。2つの世界を1つに平均せず、ずれとして提示する点でこの原則の変種である。
区分をまとめない:kibasho
不登校の子どもの居場所を、「民間のフリースクール」「学校の中の居場所」「市の教育支援センター」「利用料の補助金」の4種類に分け、違いが分かる形で1つのページにまとめる。種類の違うものを一つの「居場所一覧」に混ぜると、費用も通い方も手続きも違うものが同列に並び、選ぶ側が判断できなくなる。nagoya の公表資料(連絡会の参加団体40団体・校内の居場所 中学校111校と小学校5校・なごやフレンドリーナウ4か所・利用料補助金の要件)を入れた状態で届き、他市町村のデータに差し替えて使える(municipality-data-swap-expansion)。
評価で案内を変えない:kanketo
飲食店・美容室・クリニック・宿の来店アンケートをQRコードから1分で。低い評価はその場でメールで届くが、Googleへの案内は評価に関係なく全員に同じように出すという規約を守る作りにしている。状態によって案内の内容を変えると、集めた評価の意味そのものが壊れる。ここでは「分けるべき区別」と「分けてはいけない区別」が表裏になっている。
同名を住所で見分ける:kurage-visit-nursing-navi
訪問看護ステーションの名前で検索してきた家族に、その1軒を答えるには「同じ名前の別事業所」を区別しなければならない。「ひまわり」49軒・「さくら」48軒のように同名が多数存在するため、住所を第2の軸として住所で見分け、住所から近い順にも引ける。厚生局の届出名簿を突き合わせ、24時間対応・精神科訪問看護・特別管理加算の届出有無も表示する。名前が一致したことを「その1軒に特定できた」と混同しない設計である。
「公表されていない」を「ゼロ」と読ませない
同じ原則は、災害区域だけでなく行政統計の公表ギャップにも及ぶ。国や自治体が数字を出していない項目をゼロや空欄で埋めると、利用者は「空きがある」「対象が無い」と読む。administrative-data-publication-gap として、ここでも「無い」と「未公表」を分ける。
- kgakudo — 学童保育は国の公表がPDFのみで、市区町村名で数字が出るのは待機児童50人以上の88市町村だけ。全国16,330人のうち31.4%はどこの市か分からない。公表されていない市町村は「未公表」と書き、推定した数字は出さない。
- kkaigo — 空き状況は公表がないため出さない。訪問系とケアマネにはそもそも定員が無いので、定員欄も出さない。
- kghome — 空き状況は公表がないため出さない。共同生活援助は定員も公表されていないので出さない。
- khoudei / kshuro — 空き状況も公表がないため出さない。
- kurage-visit-nursing-navi — 公開データにある住所・電話・利用可能曜日は返すが、無い情報は作らない。
- kurage-facilities — 施設ごとにばらばらの個人利用予定表(○×のPDF・お知らせ添付PDF・HTMLの文章)を取り込み、日付・時間帯・種目・区・現在地で検索する。各行に出典リンクと取得日時をつけ、読み取れなかった予定は「空き」と表示しない。
- kurage-light-chatbot —
sources/に置いたMarkdownに基づいて答えるナレッジチャット。ナレッジに無いことは答えず、あった範囲で答える。
消えた事業所を「廃止した」と書かない
公表データから消えた事業所の数は出せるが、消えた理由は公表されていない。したがって khoudei と kshuro は「廃止した」とは書かず、消えた数と定員だけを示す。一方で kkaigo と kghome は、市区町村・法人ごとに「いま何か所あって、何か所が消えたか」を並べる。これは facility-data-churn として独立した論点になる。
検索して0件は「存在しない」の証明にならない
japanese-search-gap として、検索の失敗を「無い」と読み替えないという区別がある。
- theyworkforyou — 英国議会の議事録を20年以上公開してきたOSSを日本の国会会議録で動かす導入キット。素のままでは日本語が1件も引けない(Xapianが一文を一語として索引する)という最大の関門を実測し、解き方を含む5つの修正を手順つきで収録する。2026年6月の25会議・1,397発言を取り込み、日本語で全文検索できるところまで確認した。
- paperless-ngx — 日本語の全文検索は追加設定なしで効く(「業務委託契約書」を「委託」でも「契約書」でも引ける)。一方でOCRは3か所直さないと日本語が読めず、しかも2か所は間違えてもエラーが出ない。定番とされる jpn+eng 設定は見出し「請求書」を「Ake」に壊し、縦書きの jpn_vert は無言でスキップされ、自動分類の「単語一致」は日本語では当たらず正規表現が要る。
- alaveteli / fixmystreet — 日本語既定でトップ・行政機関一覧・請求フォームが出るまで、あるいは名古屋市の地図上で日本語の通報フォームが動くまで実測し、落とし穴を番号つきで収録する。
検索して0件だったとき、それは「存在しない」ではなく「引けない」である可能性がある。両者を混ぜると、利用者は無いものを無いと信じ込む。
無言の失敗を状態として持つ
「動いている」と「壊れている」の間にも、区別すべき状態がある。measured-pitfall-catalog として、エラーを出さずに壊れる失敗を実測で拾い、番号つきで記録する。
- appsmith — 公式イメージは初回起動の最初の20秒を中断すると恒久的に壊れる。壊れると全APIが502になりログインできないのに、画面のHTMLは200を返し、コンテナだけ永久にunhealthyという極めて気づきにくい状態になる。原因(同梱MongoDBのレプリカセット未初期化、初期化済み判定がデータファイルの有無だけ)を突き止め、データを残したまま直す手順を実機で確認している。
- freescout-japanese-kit — 共有レンタルサーバーに置くと「Webインストーラーが動かない」「画面が真っ白の500」「CSSだけ403で崩れる」という、公式ドキュメントに無い失敗が連続する。部分的に動く状態を成功と読ませない。
- だから各キットは、動作判定スクリプト・
check.php(そのサーバーで動くかを10項目で判定)・要件チェックツール・環境チェックツールを同梱し、設置前に「未検証」を「検証済み」に変える手順を渡す。
複数の軸を1つのステータスに潰さない
業務システムでも、状態を1本のステータスにまとめると実態が見えなくなる。
- kurage-vibe-cart — 受注管理は「受注・入金・発送・その他」を個別にチェックする実務的な作り。単一のステータスに潰さない。
- kweborder — 商社が「受注済」にした時点で注文が成立し、出荷手配中・出荷済(出荷予定日・運送会社・送り状番号は任意)まで状態を管理する。単価は得意先別の価格・標準単価・取引先の入力の順で決まり、どれを使ったかを記録する(evidence-traceability)。
- kposting — 選挙ポスター掲示板の位置を地図に載せ、陣営の誰がいつ貼ったか、はがれていないかをその場で記録する。今いる場所から近い未貼付の掲示板、投票区ごとの回る順、チラシを配った日と部数の記録まで持つ。nagoya の町田市オープンデータに相当する掲示場513か所入りで、緯度経度の一覧があれば他市区町村に差し替えられる。
- kdealdesk — かんばんで期日切れと「止まっている商談」に色が付く。AIの答えには使ったナレッジを出典として付ける。
外部で裏取りしてから記録する
自己申告を状態として受け取らない、という変種がある。
- kbilling / kpaylink — 請求書・注文から銀行振込・PayPalで支払ってもらうが、PayPalの入金はサーバー側で裏取りしてから記録する。「払いました」という申告を入金済みにしない。
- kcheckit — RSS・API・HTMLの差分・SSL証明書の期限の4方式を併用し、どの方式で拾ったどの情報かを理由つきで通知する。
推測値を出さない
未収録・未公表の裏面として、推測した数値や日付を利用者に見せないという原則がある。埋めた瞬間、その値は確定値として読まれる。
- kurage-chinjo-navi — 陳情の締切日は名古屋市会が公表していないため表示せず、開会日を示して事務局に確認するよう案内する。推測した日付を住民に示さない。
- kgakudo — 推定した数字は出さない。
- kconsensus — 票が足りないときは数字を出さずに「足りない」と書く。判定の読み取り精度(75〜85%)と誤読の可能性を画面に表示する。
- kocrwork — AI-OCRは同じ書類を各エンジンと生成AIの使い方で読み比べ、一致率を画面に表示して誤読を隠さない。見本では印刷の注文書は生成AIなしで全項目一致、手書きFAXは生成AIに画像を見せると一致率が33%から93〜97%に上がった。取り出す項目は設定ファイル1つで請求書・納品書にも組み替えられる。
- khisai — 被害の程度は規則で先に示す。AIチャットは内閣府の資料の本文だけを材料に答え、見つからない制度を創作しない。
- kouchou-ai — アンケート自由記述・パブリックコメントなど大量の意見を構造化し、「何が何件言われているか」を俯瞰する。意見の意味を創作せず、件数として数える。
言い切らない・○×で答えないという第2の原則
状態の区別に加えて、判定精度の限界と行動の段階も明示する。
- kurage-landslide-hazard-map — 住所から求めた座標は町丁目のおおよその位置にすぎない。250m以内に区域があるときは「区域外」と言い切らず、地番での確認を促す(実測で区域の縁から14〜50mずれた例あり)。
- kurage-disaster-risk-area-map — 代表点が区域の近くなら距離を添えて言い切らない。
- kurage-morido-map — 同じく、代表点が区域の近くなら距離を添えて言い切りを避ける。
- kurage-refuge-map — 時点が確認できないデータでは判定しない。市町村ごとに更新時期が違うため、判定結果にその市町村のデータ時点を必ず併記する。さらに「近い避難所を出さない」——指定緊急避難場所は災害種別ごとに指定されており、単に最寄りを返すと、その災害では使えない場所へ人を誘導しかねない。災害種別(土砂災害67,289件/洪水71,783件/地震88,177件/津波40,393件ほか)で絞り込む。
- kurage-earthquake-map — 住所で調べた場合も、代表点が筆に乗っていればその筆で判定し、地番による判定との差を隠さない。
- kurage-tsunami-map — 0.3mと5mでは取るべき行動が違うため、浸水深の区分とそれぞれの行動指針を返す。単純な○×に潰さない。
- kurage-disaster-judgment-set — 「立退き避難か、上の階にとどまるか」を返す。自宅に留まる屋内安全確保を選べるのは洪水等と高潮に限られ、しかも3条件を満たす場合だけ。土砂災害と津波は立退き避難が基本で、洪水のデータだけでは行動を出しきれない。
- kkansen — 国の感染症発生動向調査の速報を毎週取り込み、定点当たり報告数を都道府県ごとに色分けし、警報・注意報の基準値の目安を超えた地域も示す。ただし数字は公式の値をそのまま出し、受診の判断はしない。判断を提供しないことも明示的な設計である。
- knisa — 新NISAの年間・生涯の枠と売却分の翌年復活を制度どおり計算し、上限を超える取引は指摘する。積立の試算は式を見せ、良かった場合・悪かった場合の幅と元本を下回る確率で出す。単一の予測値に潰さない。
- kshoken — 候補地の徒歩・車N分の到達圏に対し、国勢調査500mメッシュの人口・年齢構成・世帯と、経済センサスの事業所数・従業者数を1画面で示す。2候補地の比較がそのまま通るようにし、単一のスコアに潰さない。
- kronten — 「賛成か反対かを問える論点」を立てるが、どちらかに誘導しない。国会とネットのずれとして両方を見せる。
データ時点の明示とセットになる
区域の指定は改正される。整備年度は県・市町村ごとにばらばらである。したがって「区域外」という答えには必ずいつのデータに基づくかを添える。これにより、利用者は「今の指定では区域外」と正しく理解できる。
- kurage-tsunami-map — 整備年度が県ごとに違うため、その県の時点を必ず表示する。
- kurage-refuge-map — 市町村ごとに更新時期が違うため、その市町村のデータ時点を併記する。
- kurage-juyo-saigai-check — 根拠条文とデータの時点を添えた調査記録を印刷できる。
- kurage-facilities — 検索結果の各行に出典リンクと取得日時を付す。
- kecnavi — 出典と時点を画面に表示する。
- kurage-subsidy-navi — 会社の条件から、いま応募できる補助金と補助率・上限額・締切を返す。Jグランツ公開APIから日次で取り込み、規約に沿って出典表示まで実装済み。締切は時とともに変わる状態であり、取得時点が答えの一部になる。
- knyusatsu — 官公需ポータルから入札公告を毎日取り込み、発注機関ごと・都道府県ごとに一覧する。各案件は元の公告へリンクし、内容そのものは公告を正とする。
- kseidocal — 施行日はすべて省庁の公式ページで確認し、国会での直近の発言を毎日取得する。
- kcheckit — 自社サイトと監視対象のURLを登録し、官公庁の新着・補助金の締切・法令の改正・脆弱性情報を毎日拾う。どの方式で拾ったどの情報かを理由つきで通知する。
この考え方は evidence-traceability と直結している。
決定論的コードで実装する
この区別は、LLMの推測に任せると簡単に壊れる。モデルは文脈から「たぶん区域外だろう」と補完してしまうためである。そこで deterministic-core の原則に従い、状態の判定と応答の分岐はコードが決定的に処理する。
- 収録範囲(どの自治体・どの県をデータとして持っているか)をコード側のメタデータとして持つ
- 保有するデータの「値の意味」もコードが解釈する。液状化の判定対象外値のように、数値だけでは危険度なしと区別できないものをコードで分ける(kurage-earthquake-map)
- 商用利用を認めていない自治体・非公開の自治体はそもそも取り込まない設計とし、その利用条件一覧をコードに持ち、テストで固定する(kurage-disaster-risk-area-map)
- 未収録を「区域外」にフォールバックさせない
- 区域指定が進行中の制度では「未指定」を独立した状態として返す(kurage-morido-map)
- kurage-chinjo-navi — 所管委員会の判定にLLMを使わず、語の一致で選ぶ。何の語で判定したかを画面に出し、当たらなければ「判定できませんでした」と表示する。当てずっぽうで1つ選ばない。
- knintei — 要介護度は判定しない。推計方法の係数が公開されていないためである。区分の境目は省令の条文を示すが、最終判定は示さない。
- kurage-fillout — 申請書の分からない欄は空のまま残す。AIに文章を作らせず、入るのは今日の日付・保存した会社情報・記入済みの値だけ。旧形式(.doc/.xls)は元の形式へ戻す。
- kseo — 日本語サイトのSEOを実測で診断する1ファイルPHP。判定はすべて決定論的で、AIの推測は入らない。指摘ごとに実測値と対応を並べる。
- ktrackgeoseo — SEO(10カテゴリ)・AEO(7観点)・GEO(8観点)をまとめて診断し、直すことを効果の大きい順に出す。判定に生成AIは使わない。
- kchingin — 時給の一覧から下回る人数と不足額、月と年の人件費の増加、助成金の目安を計算する。改定額・発効日は厚生労働省の資料から持ち、計算はブラウザの中だけで行い、入力した時給をサーバーへ送らない。
- kkensetsu — 建設業許可の満了日・更新申請の期限(満了の30日前・休日なら翌開庁日)・決算変更届の期限(決算から4か月以内)を、許可日と決算月から計算して顧客ごとにまとめる。
- ktoriteki — 2026年1月施行の取適法(旧 下請法)について、取引の内容と資本金・従業員数(改正で加わった300人・100人の基準)から対象かを判定し、4つの義務と11の禁止行為のどこに気をつけるかを点検する。判定はブラウザの中だけで行い、入力は送信しない。
- kdbagent — 設定で宣言した「表・列・操作」だけを触らせ、宣言していない表・列・削除はブラウザからもコマンドからもMCP経由でも実行できない。答えられる範囲を宣言で閉じるという点で、この原則の操作版である(config-declared-scope)。
- kreserve — 空き枠の判定と予約の書き込みを同じロック内で行い、同時アクセスでもダブルブッキングを起こさない。「空いている」と「予約できた」を1つの状態遷移に閉じる設計である。
- ktrackgeo — 「AIに読まれる状態か」を診断し、「実際にAIが来たか」を実測する。宣言した状態と測定した状態を別々に示す。Google Analyticsがボットを除外するため見えない領域を、自前の計測で補う。
- kurage-hr-post — 職(ポジション)を主役にし、記録を職に紐づける。達成率はコードが決定的に計算し、AIに採点させない。登録画面は前任の記録を見ながらワンクリックで転記できる。
- kurage-kintai — 顔打刻と照合はサーバーの決定的コードが正。顔データは同意記録と削除機能つきで扱う。
- kurage-line-crm — 「未対応」をフラグで持たない設計。対応済みにした相手でも新しいメッセージが届けば自動で未対応に戻る。状態を導出することで「返したつもりで放置」を防ぐ。
- kvgwc — 権限を担当(自分の分だけ)/責任者(部署分+承認)/管理者(全社)の3つに分け、判定はコードの1か所だけに閉じる。
- karchitect — 会話から要件JSONとシステム設計書を組み立てる。話した内容を構造化された入力に変え、AIコーディングに渡す前に「何を作るか」を確定する。設計書そのものを成果物として残す。
- kurage-subsidy-navi / knyusatsu / kseidocal — 取り込みは標準ライブラリだけのPythonで日次。取り込みの成否を状態として持ち、取得できなかったときに「変化なし」と書かない。
規則で絞り、AIは説明だけ
無料で公開されているAI相談チャット群(kurage-ai-soudan-chat)は、取引先チェック・補助金・入札・出店商圏・土地・介護相談・給付金の7本いずれも、国や自治体の公開情報を規則で先に絞り込み、その結果をAIが質問に合わせて説明する構成になっている。規則が出した結論をAIが変えない点で、本ページの原則と同じ設計である。AIが止まっていても規則の答えは出る。
- kkyufu — いまの状況(出産・子育て・退職・介護・被災など)と住んでいる地域を入れると、申請できる給付金・手当・減免を国と自治体の公開情報から規則で絞り込み、申請先・期限・必要な書類とともにAIが説明する。
- ktochi — 住所と知りたいことを入れると、都市計画(市街化調整区域・用途地域・建ぺい率・容積率)と災害リスク(洪水・内水・土砂・津波)を国の公開データから判定し、その結果をAIが説明する。判定は規則、説明がAI。
- kshoken — 出店候補地の住所から徒歩圏の人口・世帯・事業所、地価、用途地域を集め、材料をAIが説明する。
- khisai — 被災後に使える国の支援制度約100を状況22通りで絞るシステムで、AIチャットは内閣府の資料の本文だけを材料に答え、被害の程度の扱いは規則で先に示す。支援制度は「使える/使えない」の二値ではなく罹災証明書の被害認定の区分に依存するため、その区分を規則側で確定させてから説明に入る。
AI の下書きを確定と混同させない
kurage-ai-mom(議事録)、kurage-ai-meishi-analysis(名刺)、kurage-crm-agent(日報)は、いずれも AI の出力を下書きに留め、人が原本と見比べて承認したものだけを確定とする。AI が承認できない設計をコードで強制しており、approval-workflow としてこの原則の一形態になっている。
同じ構図が kurage-bill-ai-interview にある。国会で審議中の法案を出典つきで解説し、AIインタビューで賛否・理由・暮らしへの影響を聞くが、最後に作る「意見のまとめ」は本人が確かめて同意したときだけ保存し、公開するかも本人が選ぶ。AIが作ったものをそのまま「民意」として扱わない点で、承認の関門を個々の本人に置いた設計である。
関連する設計思想
この原則は、self-contained-php-app や self-hosting の構成でこそ意味を持つ。外部の有料APIに問い合わせる構成では、APIが返す「該当なし」が未収録なのか区域外なのかを区別できないことが多い。データを自社サーバー内に持ち、収録範囲を自分で把握しているからこそ、両者を厳密に分けられる。データを外部に出さない設計(no-external-data-egress)は、この区別を可能にする前提でもある。
また、第16条の4の3の5状態のように区別すべき状態が増えるほど、「どのデータがどの状態に対応するか」を宣言的に管理する必要が出てくる。これは config-declared-scope の考え方と符合する。自治体データを差し替えて他地域へ展開する製品群(municipality-data-swap-expansion)では、差し替え後の収録範囲が変わることが状態の意味を変えるため、収録範囲の宣言がそのまま安全性の担保になる。
Kurage App Store では、この原則が個々の製品の設計方針として繰り返し現れる(kappstore-ecosystem / kurage-app-store)。「区域外」と言い切れるかどうかは、その製品が自分のデータをどこまで把握しているかの裏返しでもある。
関連ページ
- hazard-map-judgment
- deterministic-core
- evidence-traceability
- trust-boundary
- self-contained-php-app
- self-hosting
- no-external-data-egress
- open-data-license-compliance
- administrative-data-publication-gap
- facility-data-churn
- japanese-search-gap
- measured-pitfall-catalog
- municipality-data-swap-expansion
- approval-workflow
- config-declared-scope
- kappstore-ecosystem
- kurage-platform
- kurage-products
Kurage.AI に質問する
