#161スコア 4/5運輸:トラック

AI にトラックの労務コンプライアンス画面を作らせてみた — value-vs-X 家系の4番目が結晶化(やってみた #161)

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

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

解説記事

AI にトラックの労務コンプライアンス画面を作らせてみた — value-vs-X 家系の4番目が結晶化(やってみた #161)

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。トラック toB を厚く(配車#159・求貨求車#160 に追加)——車両・労務管理(車検・デジタコ運転傾向・改善基準告示 拘束時間/連続運転/休息)。運行管理者向けの情報密度コンソール。

結果 — 4/5、そして「value-vs-X 家系」が4人になった

tsc 緑・デスクトップ情報密度。cold AI(群青を一度も触っていない設定):

このキットはまさにこのドメインのために作られたかのよう(suspiciously)。 ExpiryBadge の docstring は車検を名指し、StatusBoard は配車盤、ActionQueue は失効防止。generic shadcn を曲げたのでなく、誰かが既に日本のフリート/労務コンソールを出荷した感触。唯一の穴は拘束時間の上限モニター——それがこれが5点でない理由。

観測の核 — LimitMonitor が3回目で結晶化(家系の4番目)

拘束時間/連続運転/休息を改善基準告示の上限と比べる——Meter を当てたくなる。だが:

cold AI「Meter の target は『参照のみ・トーンを駆動しない』と docstring が書く=上限線は描けるが超過状態は自分で分類が要る。しかも閾値が max の割合なので『13h 上限の90%で警告』が 13×0.9/16 と back-compute になり脆い。ReferenceValue は超過状態の意味論はあるがバーも上限線も無い=『どれだけ近いか』を見せられない。

cold AI が LimitMonitor.tsx を手組みした。これは #154(営業係数=Meter の max 割合問題)・#159(拘束時間=Meter+ReferenceValue で composite)に続く3回目=3-confirm。その場で build した

  • LimitMonitor=値 vs 名前付きソフト/ハード上限(実単位そのまま・基準13h/上限16h)・超過トーンをそこから導出(ok/near/over/critical)・上限を線で描画・どれだけ近い/超過かのバー。direction="floor" で下限(休息11h)。
  • value-vs-X 家系の4番目ExpiryBadge(値 vs 期限)・ReferenceValue(値 vs 範囲)・Meter(値 vs 容量)・LimitMonitor(値 vs 名前付き上限)。それぞれ純関数のペア(classifyExpiry / flagValue / … / classifyLimit)を持つ。
  • Meter の罠を根治:target が参照のみ+閾値が max 割合、という cold AI が walked the dead-end path を、実単位の上限+導出トーンで解消。索引も value-vs-limit → ReferenceValue/Meter の誤誘導を是正。

ブラウザで 拘束12.5h(基準13h・1h 前から near)→基準間近・休息9.5h(下限11h・floor)→下限まで1.5h不足 を確認=PR#420(#417 クローズ)。結晶化 19個目。

学び — cold AI が「自分で指摘した罠」に自分で落ちた

面白い事件があった。cold AI はレポートで**「SSR 境界は型システムに守られていない=function prop を server component に import しても tsc は通り next build だけが捕まえる」と自ら警告**した。そして、まさにその罠に自分で落ちた——手組みの classifyLimit"use client"LimitMonitor.tsx に置き、それを server の page.tsx から呼んで 実行時 500tsc は緑だった)。

これは2つのことを教える:

  1. 「知っている」と「やる」は別=cold AI は SSR 境界を正しく説明できたのに、純関数を client ファイルに同居させて踏んだ。型で守られない規約は、説明できても破られる。
  2. だから shipped 版が効く=群青の LimitMonitor/classifyLimitRSC-safe 設計("use client" 無し・純関数は server 呼び可)。cold AI の手組みは spurious な "use client" で500したが、shipped 版を adopt すれば設計でこの罠が消える。これが「部品を build する」価値の核=正しい a11y/SSR 規約を部品に焼き込み、adopter が知らなくても守られる

(※ギャラリー用に、cold AI 画面の spurious な "use client" 1行を削除して描画を回復=純コンポーネントなので挙動不変。)今回 src build = LimitMonitor(#417→PR#420)。4/5・家系完成・SSR 規約の焼き込み。

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

…Leaderboard / SegmentedControl / LineChip / LimitMonitor 進行中:MatchCard/PairingPanel(1/3)・SectionList(2/3)・ValidityTimer(1/3)

📋 モード進捗 — トラック toB3

  • ✈️ 航空 ✅/🚆 鉄道 ✅/🚕 タクシー ✅/🚌 バス ✅
  • 🚚 トラック:toB3(配車#159/求貨求車#160/車両労務#161) ← toB を厚く中

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

  • トラック toB をさらに(運賃・請求/運送原価)/その後 toC(荷主の集荷依頼・貨物追跡)。※KeEem に確認。

試す

value-vs-X 家系の4番目が結晶化した——そして cold AI が自分で指摘した SSR 罠に自分で落ちた。型で守られない規約は説明できても破られる。だから shipped 版が、正しい規約を部品に焼き込んで効く。


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

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

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

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

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