自治体データ差し替えによる横展開
自治体ごとに異なるデータをJSON等の差し替えだけで、同じシステムを他自治体へ横展開する設計方針。
定義
自治体ごとに異なる制度・窓口・条例・区域データをアプリケーション本体から分離し、データファイル(JSON・SQLite・設定ファイル)を差し替えるだけで、同じシステムを別の自治体へ展開できるようにする設計方針。コードを書き換えずに横展開できることを製品の価値として明示する。
kurage-products の商品カタログでは、この方針が繰り返し「他自治体へはデータJSONを1本足すだけで広がります」「2ファイルの差し替えで他自治体へ」「設定ファイルの差し替えで他地域へ」という表現で現れる。
なぜ横展開が成立するのか
自治体向けシステムは、自治体ごとの制度・様式・窓口・条例が違うため、一般には受託開発で個別に作るしかない。Kurageの各製品はこの差分を「データ」として切り出し、self-contained-php-app(PHP1ファイル+SQLite/JSON、DBサーバー不要)と組み合わせることで、配布物そのものを自治体ごとに複製できる形にしている。
- ロジックは決定的コードとして共通(deterministic-core)
- 自治体差分はデータファイルに閉じる
- 設置はFTP、運用はself-hosting
カタログにおける具体例
| 製品 | 名古屋版の同梱 | 横展開の単位 |
|---|---|---|
| kurage-seido-navi | 名古屋市版45制度 | 制度データJSON1本 |
| kecnavi | 名古屋市16区の窓口実データ | JSON2ファイル |
| kurage-chinjo-navi | 名古屋市会の陳情様式 | データJSON1本 |
| kurage-facilities | スポーツセンター15+中学校体育館111校 | 設定ファイル差し替え |
| kminpaku | 全国102,159面・1,215市区町村 | 条例データ |
| ktoshikeikaku | 全国1,377市区町村・約41.8万区域 | 都市計画データ |
| knintei | 全国1,912市区町村 | 認定調査データ+窓口 |
| kacnavi | 全国1,912市区町村 | 手続き48件+窓口 |
| kgakudo | 全国1,741市区町村(保育所) | 自治体データ |
防災系では、kurage-flood-hazard-map が「他の自治体はShapefileを1件足すだけで同じ画面で動きます」と述べ、kurage-tsunami-map・kurage-morido-map・kurage-disaster-risk-area-map・kurage-earthquake-map・kurage-landslide-hazard-map・kurage-refuge-map などが全国データまたは名古屋版を同梱しつつ「他都市版は同種のオープンデータを差し替えて作れます」と明記する。kurage-juyo-saigai-check は愛知県32市区町村(マップあいち)を同梱し、名古屋市の7区が指定対象・残る9区が「指定対象外」と確定で出ることを示している。
介護・障害分野の事業所系(kkaigo、kghome、khoudei、kshuro)は全国データを直接収録するため、そもそも差し替えを要さない。自治体単位の差し替えが必要になるのは、制度・窓口・条例のように自治体が定める情報である。
名古屋市を起点にする理由
同一の顧客(exbridge/kurage の地元)で制度・区域・施設のデータを実地に作り込み、その作り方を型として他自治体に複製する。カタログ上、名古屋版の同梱が繰り返し登場するのはこのためである。
データ差し替えだけでは済まない部分
横展開は「データを足せば終わり」ではなく、次の制約を伴う。
- 完全性の差 — 自治体によって区域指定の進行状況が違う。盛土規制法の区域指定は都道府県ごとに進行中で、青森・香川・佐賀・沖縄は未公開。黙って「区域外」と答えると「規制が無い土地」と誤解されるため、未指定と明示する(unknown-vs-outside-distinction)。
- データ時点の差 — 市町村ごとに更新時期が違う。kurage-refuge-map は「時点が確認できないデータでは判定しません」とし、kurage-landslide-hazard-map も同様にデータ時点を必ず添える(evidence-traceability)。
- 公表形式の差 — 学童保育の国の公表はPDFのみで市区町村名が出るのは待機児童50人以上の88市町村に限られ、全国16,330人のうち31.4%はどこの市か分からない。ここでは推定せず「未公表」と書く(administrative-data-publication-gap)。
- 利用条件の差 — 商用利用を認めていない自治体・非公開の自治体は取り込まず、利用条件の一覧をコードに持ちテストで固定する(open-data-license-compliance)。
設計上の効果
- 販売代理店は、本社が作った型を別自治体へ持ち込みやすい(sales-partner-system、kappstore-ecosystem)。
- 購入者はai-modifiable-softwareとして、ai-agent にデータ追加を任せられる。施設検索には「AIエージェントに設置・地域追加を任せられる設計書」、グループウェアには「AIにアプリを書かせる手順」が同梱される。
- 窓口・制度の情報は自治体ごとに陳腐化するため、差し替え可能な形にしておくことが保守性にも直結する。
関連
- municipality-data-swap-expansion
- self-contained-php-app
- hazard-map-judgment
- facility-data-churn
- unknown-vs-outside-distinction
- config-declared-scope
- mcp
- kurage-products
Kurage.AI に質問する
