#173スコア 3.5/5金融

AI に補助金マッチングを作らせてみた — MatchCard が結晶化、「会社×制度」が entity-agnostic を証明した(やってみた #173)

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

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

解説記事

AI に補助金マッチングを作らせてみた — MatchCard が結晶化、「会社×制度」が entity-agnostic を証明した(やってみた #173)

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。MatchCard 狙いの3回目(金融)——補助金・助成金マッチング(自社プロフィール ⟷ 補助金制度・適合度・要件適合)。中小企業向け補助金 SaaS。

結果 — 3.5/5、二者間ペアリングが最後まで穴

tsc 緑・モバイル/デスクトップ両対応。cold AI(群青を一度も触っていない設定):

強い KPI/ランキング/キュー/identity 面を実部品で速く組めた。だが画面の核(自社×制度の二者間マッチ詳細)に primitive が全く無く、索引が指す唯一の物(RelationshipRow)が能動的に間違った道具。 この穴は、これが推薦コンソールである理由そのものなので、コストが大きい。

観測の核 — MatchCard が3回目で結晶化+「会社×制度」が entity-agnostic を証明

自社 × 補助金制度のマッチ詳細(2つを左右に並べ+適合度+要件 factor)——3回目の手組み(MatchDetail.tsx・~250行)だった:

cold AI「MatchCard/PairingPanel/entity-agnostic な二者間 primitive が無い。RelationshipRow は欲しい形**(left+connector+relationshipLabel+right)だが from/to が PersonCellProps 固定で両側に PersonCell をレンダー=people-shaped で会社×制度 にパラメタライズ不能・型も通らない・score/factor 領域も無し。CompanyCell も無く PersonCell(人)だけ。追加すべきは entity-agnostic な MatchCard+CompanyCell=この画面は ~250行手組みが composition に落ち 3.5→4.5+ に上がる。**」

MatchCard は #160 求貨求車(荷物×空車)・#172 M&A(売り手×買い手)・#173 補助金(自社×制度) で3回目=3-confirm。その場で build した——しかも**#173 が決定打**だった:

  • #160/#172 は「同種×同種」(荷物×空車、会社×会社)だったが、#173 は「会社×制度」=異なる種類のエンティティ。これが MatchCard が entity-agnostic(people でも company でもなく任意のエンティティ)である必要を証明した。
  • build した部品(2つ・連結ペア)
    • MatchCardleftright(任意の identity ノード・異なる種類でも可)+中央 scorefactors[](要件 breakdown)+actions。RelationshipRow(2つの PersonCell 固定・score/factor 無し)とは別物。
    • CompanyCell=組織版 PersonCell(四角ロゴ+名前+業種/所在地)。会社/制度/取引先 を人のアバター/presence に強制しない。
  • 索引も是正=マッチ/ペアリング→MatchCard、組織 identity→CompanyCell、RelationshipRow は人専用と明記。
  • ブラウザで 協栄精密工業(会社)×ものづくり補助金(制度) の MatchCard 内に CompanyCell が2つ・score 92%・要件 factor を確認=PR#430(#419 クローズ)。結晶化 25・26個目。

学び — 「3つ目の sighting」が仕様を最終確定させる

MatchCard の3つの sighting は、毎回 spec を鋭くした

  • #160 求貨求車(荷物×空車・同種)=「二者間ペアリングが要る」(穴の発見)。
  • #172 M&A(会社×会社・同種)=「people 固定の RelationshipRow は誤り・CompanyCell も要る」(people でないと判明)。
  • #173 補助金(会社×制度・異種)=「任意の異種エンティティ=entity-agnostic」(最終仕様の確定)。

もし #173 が無ければ、MatchCard を「CompanyCell × CompanyCell 固定」で作ってしまったかもしれない。会社×制度 という異種ペアが、left/rightCompanyCellProps型付けせず** generic な ReactNode にする決断を強制した**。これは #172 RelationshipRow の逆の教訓=「型を固く付けすぎると(PersonCellProps)別の異種ペアで詰む」。3-confirm の3回目は、build の数合わせでなく仕様を最終確定させる検証だ。

→ そして CompanyCell も build した=PersonCell(人)↔CompanyCell(組織)の対。「人の部品があるなら組織の部品も要る」(#150「表示があるなら入力も要る」の組織版)。

拾った点(陽性)

  • ✅ Leaderboard(適合度ランキング)/Meter(適合度 higher-is-better+target)/StatGroup/ActionQueue/FilterChips/MetadataList 全て native=dashboard の8割は速く組めた。

今回 src build = MatchCard + CompanyCell(#419→PR#430)。3.5/5・二者間ペアリング結晶化・entity-agnostic 確定・索引是正。

📊 結晶化スコアボード(build 済 26個

…DocumentRow / MatchCard / CompanyCell(このセッションで13部品 build/拡張) 進行中:在庫ほぼ枯渇(SimpleDialog 1/3 のみ)

📋 進捗 — 在庫を掘り切った

  • 運輸5モード完走 ✅/在庫深掘りで goodWhen/OriginDestination/DocumentRow/MatchCard/CompanyCell を結晶化
  • 3-confirm 待ちの在庫はほぼ枯渇(残 SimpleDialog 1/3)。新業種で床の頑健性を試す段階へ。

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

  • 新業種へ(運輸/会計/金融以外=エネルギー/通信/建設/医療/官公庁 等=新ドメインで床がどう保つか・新しい穴が出るか)。※KeEem に確認。

試す

MatchCard が結晶化した——「会社×制度」という異種ペアが entity-agnostic を証明した。3-confirm の3回目は数合わせでなく、仕様を最終確定させる検証だ。


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

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

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

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

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