#75スコア 4/5公共・行政

AI に自治体の窓口業務を作らせてみた — 規制の重い部分が「組み立て」で済んだ/DataTable の実バグも出た(やってみた #75)

ルート: /application-intake
デスクトップ表示
モバイル表示

375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。

解説記事

AI に自治体の窓口業務を作らせてみた — 規制の重い部分が「組み立て」で済んだ/DataTable の実バグも出た(やってみた #75)

⁠やってみたシリーズ⁠: 自作のデザインシステム @gunjo/ui群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。⁠新業界・公共/自治体1枚目⁠——⁠窓口業務 / 申請受付管理⁠(申請受付一覧 × 処理ワークフロー × 本人確認/書類チェック × 手数料計算 × 交付/証明書発行)。

教育を5枚で締めて、⁠公共/自治体⁠へ移る。1枚目は市区町村役所の窓口——証明書の申請を受け、受付→本人確認→審査→承認→交付 と処理する画面。⁠規制が重い部分(監査できる交付・2人承認・手数料・色に頼らない状態)が、ゼロから作るのではなく"組み立て"で済んだ⁠——一方で DataTable の実バグも炙り出した。

結果 — 4/5

tsc/build/eslint 緑・console 0・375px・申請受付一覧・処理ワークフロー(advance/差戻し)・本人確認+必要書類チェック・手数料計算・CoSign 承認・SignedRecord 交付ロック。

今回の主役 — 規制の重い部分が「ゼロから作らず、組み立て」で済んだ

予備知識ゼロの AI が医療/金融のために作ったコンポーネントを、公共の規制ワークフローにそのまま当てた:

  • SignedRecord(臨床記録/退院サマリ用)→ ⁠交付記録⁠⁠カタログ全体で最も合った⁠、摩擦ゼロ」。下書き→署名ロック→署名者+時刻の監査行→追記のみ=監査できる交付に1:1。labels で交付の語彙に、children({readOnly}) で証明書/手数料/申請者の MetadataList を本文に。
  • CoSign(与薬ダブルチェック/出納の二重承認用)→ ⁠責任者承認⁠。同一人物ガード・必須確認項目・タイムスタンプ付き CoSignValue が自治体の承認に。既定ラベルが既に日本語。
  • ApprovalSteps(経費/稟議用)→ 処理ワークフロー(差戻しは marker+「差戻し」ラベルで色だけに頼らない)。
  • Badge icon⁠(#72 で反映)→ 状態ピル・formatCurrency(¥600/¥0)→ 手数料。

⁠「難しく規制の重い部分(監査できる交付・2人承認・円建て手数料・色だけに頼らない状態)は、ゼロから作るのではなく、既存の組み合わせで済んだ。」⁠

医療・金融で育てた SignedRecord/CoSign が、公共の窓口で骨格そのまま効いた。

src で反映 — DataTable の実バグ(マウスで行クリックが効かない)

  • 🔴→✅ onRowClick がマウスクリックで発火しない⁠実バグを修正(PR #302)。予備知識ゼロの AI が⁠最初の操作⁠で踏んだ:
    • 症状: 行に cursor-pointer が出てるのに、行をクリックしても詳細 Sheet が開かない。⁠キーボード Enter だけ⁠効く。
    • 原因: クリック可能な行は tabIndex=0/role="button" になる。一方「行内のボタンを押したら行クリックを抑制する」ガード isInteractiveTargetclosest('…, [tabindex]:not([tabindex="-1"])') を使っていて、⁠行自身がこのセレクタにマッチ⁠→本文クリックが全部「操作可能な要素」扱いで握り潰されていた。利用者は自分でコードを分岐(fork)しないと直せない。
    • 直し: ガードに行の境界(event.currentTarget)を渡し、⁠マッチが行の内側の要素のときだけ抑制⁠match !== null && match !== boundary)。行内ボタン/リンク/入力は今まで通り抑制。テーブル行・renderCard カード両方に適用。
    • ブラウザ実証: 行本文クリック→onRowClick 発火(青井 花)・行内の詳細ボタン→ボタンのみ発火(行クリックは不変)。⁠onRowClick のデモも追加⁠(prop に例が無かった=docs ギャップも同時に解消)。

課題に記録だけ

  • 🟠 ⁠操作できる処理ステッパーが無い、が2回目⁠(#63 賃貸審査+#75 自治体窓口・#267)。ApprovalSteps/Stepper は表示専用で、予備知識ゼロの AI が状態遷移を~120行手組み(advance/差戻し/承認連動/交付ロック)。「事務方/行政の画面で最大の欠落」。あと1回で作る。
  • 🟡 ⁠Alert に icon/title/description の prop が無い⁠(svg を第1子で渡す暗黙のルールが型から見つけられない・#303)。

学び — 業界越えの複利は「規制の重い領域」でも効く/予備知識ゼロのテストは実バグも掘る

医療の SignedRecord・CoSign が、公共の交付・承認に骨格そのまま効いた——⁠規制の重い部分ほど、作法の骨格(署名ロック/二重承認)が業界を越える⁠。同時に #75 は、予備知識ゼロの利用者が⁠最初の操作⁠(行クリック)で踏む実バグ(onRowClick が反応しない)を炙り出した。これは既存デモが onRowClick を使っていなかったため埋もれていた欠落で、「実際に操作する」性質がなければ見つからなかった。修正+デモ追加で解消。

次回予告(やってみた #76)

  • ⁠公共をもう1枚⁠(生活保護/給付金審査・施設予約・税申告 など)で2枚目。操作できる処理ステッパー#267 を3回目=作る へ近づける。系譜#281・連続時間軸#142残りも観測継続。

試す

まだ alpha。医療の署名/2人承認が公共の交付/承認に業界を越え、DataTable のマウス行クリック実バグを直した回。

この連載は、作者が AI(Claude と Codex)と協働で制作しています。実験・検証の設計、判断、公開前の事実確認は人間が行い、実作業と下書き執筆は AI が担っています。

使用した @gunjo/ui コンポーネント

この画面のソースが直接 import しているコンポーネントです。

cold AI が組み上げた実コード

ファイル名をクリックでソースを展開できます。

業界別「AI指示書パック」、先行登録を受付中です。