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

AI に給付金審査を作らせてみた — 3回手組みされた「審査ワークフロー」を、ついに部品にした(やってみた #76)

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

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

解説記事

AI に給付金審査を作らせてみた — 3回手組みされた「審査ワークフロー」を、ついに部品にした(やってみた #76)

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。公共/自治体2枚目——給付金 / 生活支援給付 審査(多段審査WF × 資格判定 × 必要書類 × 決定署名 × 支給額)。

公共の2枚目は給付金審査。申請受付→書類審査→資格判定→世帯収入調査→決定→支給 と進める画面。そして #63 賃貸審査・#75 自治体窓口・#76 給付金審査 で3回手組みされた「インタラクティブ審査ワークフロー」を、3回ルールでついに部品化した回。

結果 — 4/5

tsc/build 緑・console 0・375px・申請一覧・6段の対話的審査パイプライン(次へ/差戻し/却下)・資格判定(収入vs基準額)・必要書類チェック・2人確認→署名決定→ロック・支給額計算。

今回の主役 — 3回目で、審査ワークフローを部品化

cold AI の核心の質問への答え:

There is NO interactive stage-progression component. Both ApprovalSteps and Stepper are strictly display-only. The entire state machine was hand-rolled — roughly 180 lines in data.ts + ~120 lines of action handlers. ... For a design system that ships SignedRecord and CoSign (which encapsulate real workflow behavior), the absence of an interactive ApprovalWorkflow counterpart is the single biggest gap.

これは #63 賃貸審査・#75 自治体窓口 でも同じ手組み(~120-300行)。3回出た → 3回ルールで build#267PR #304)。cold AI が3回かけて磨いた状態機械を、そのまま ApprovalWorkflow に結晶化:

  • 表示は既存 ApprovalSteps を内部で合成(状態は色だけに非依存・アイコン+テキスト)。
  • 次へ進める: 現段階に {担当者, 時刻} を記録し次へ(最終段→status "approved")・canAdvance でゲート+無効時に advanceHint
  • 差戻し: 戻し先の段階+理由を選び、対象以降の記録をロールバック。
  • 却下: 理由付きで terminal "rejected"。
  • now() 注入可(ユーザー操作時のみ呼ぶ=SSR安全)・labels/stateLabels ローカライズ可。

ブラウザ実証: 次へ(申請受付→書類審査→資格判定)・ゲート(書類審査で必要書類チェックまで advance 無効→チェックで有効)・差戻しロールバック(資格判定→書類審査)・却下→terminal「却下されました」3画面で~300行ずつ手組みしていた審査ロジックが、config オブジェクトに畳まれた。

越境は規制ドメインで全開

  • ReferenceValue(臨床ラボ)→ 収入/資産 vs 基準額「the standout, read like it was made for means-testing」(¥248,000 [↑H 基準超過] ≤¥273,000・色だけに非依存)。
  • SignedRecord(臨床記録)→ 決定(署名→ロック→追記のみ)「essentially perfect」。
  • CoSign(与薬ダブルチェック)→ 2人確認。DataTable onRowClick fix(#75 で直したばかり)→ 申請一覧の選択に即採用。

医療の基準値判定/署名/2人確認が、公共の means-testing/決定/承認に骨格そのまま。

起票だけ(軽微・1回目)

  • 🟡 Button に loading prop 無(Spinner はあるが未配線・#305)。
  • 🟡 ReferenceValue が showLabel 時にラベル二重読み上げ(visible+sr-only・#306・#291 と ReferenceValue PR で束ねる)。
  • 🟡 Input/Select/Textarea 共通の error/required API 無(#166 に追記)。

学び — 「振る舞いを持つ部品」の系譜が揃った

これまで build した SignedRecord/CoSign は「振る舞いを内包する部品」だった。今回 ApprovalWorkflow を足したことで、back-office の3大振る舞い(署名ロック・maker-checker・段階審査)が全部 primitive になった。cold AI が3回・各300行手組みした審査ロジックが、これで <ApprovalWorkflow stages value onChange canAdvance> に畳まれる。3回ルールは「痛みが3回揃った瞬間に、磨かれた解を結晶化する」——今回は cold build 3回分の状態機械がそのまま設計仕様になった。

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

  • 公共をもう1枚(施設予約・税申告・住民異動 など)で3枚目。ApprovalWorkflow が別の審査画面で即再利用されるか観測。系譜#281・連続時間軸#142残りの大型も継続。

試す

まだ alpha。3回手組みされた審査ワークフローを ApprovalWorkflow に結晶化し、back-office の振る舞い primitive が揃った回。


<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー -->

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

この画面のソースが直接 import している部品です。

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

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