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

AI に国際輸送・通関追跡を作らせてみた — RouteStops が「多日対応」で結晶化(やってみた #166)

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

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

解説記事

AI に国際輸送・通関追跡を作らせてみた — RouteStops が「多日対応」で結晶化(やってみた #166)

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。トラック toC を厚く(荷主#164・宅配#165 に続く)——国際物流 国際輸送・通関追跡(輸出通関→船積→海上輸送→着港→輸入通関→国内配送・B/L・ETD/ETA)。輸入者向け B2B ポータル。

結果 — 4/5、そして RouteStops の多日対応が3回目で結晶化

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

物流/追跡に本物の強いキット。 ほぼ全ブロックに purpose-built 部品があり、日本語既定が不気味なほど合う。1点減点は、この画面の最重要問題=多週の日付付きタイムライン。

観測の核 — cold AI が RouteStops を「捨てて」逃げた→それが3回目の確証

国際輸送は週単位で日を跨ぐ(5/12 輸出通関→5/16〜5/29 海上輸送→6/5 納品)。#164/#165 では cold AI が日付を meta スロットに押し込んだが、#166 では RouteStops を諦めて ApprovalSteps に逃げた

cold AI「RouteStops は各段階に日付を持てない=同日 HH:MM にハード制限(parseHM 正規表現が HH:MM 以外を捨てる)。5/12→6/5 のタイムラインには構造的に不適。代わりに ApprovalSteps を使った——その timestamp は free-form の ReactNode で 2025/05/16 〜 05/29 を制約なく渡せた。理想は RouteStops の本文(場所/キャリア/状態/アクション)+ApprovalSteps の free-form 日付——どちらも単独では両方を持たない。欠けてる prop は RouteStops の per-stop date/timestamp/dateLabel。

これで RouteStops 多日タイムスタンプは3回目=3-confirm(#164 荷主ポータル・#165 宅配・#166 国際輸送)。その場で build した:

  • RouteStopsdateLabel?: ReactNode を追加=per-stop の自由形式タイムスタンプ(5/16〜5/29ETA 5/306/2 通関許可)。設定すると時刻行に表示し、HH:MM の遅延計算をスキップ
  • 後方互換=dateLabel 無しなら従来の plannedTime/actualTime + 自動 Delta(当日配送)は無変更。
  • これで cold AI の言う「RouteStops の本文+ApprovalSteps の free-form 日付」が1部品に。
  • 索引も是正=tracking timeline→RouteStops が HH:MM 行き止まりだった誤誘導を「多日は dateLabel・宅配/国際輸送もここ」と明記。

ブラウザで多週スタンプ(5/12 許可…予定 6/5)と当日 HH:MM の予実+早着/遅れ Delta(回帰)の両方を確認=PR#424(#422 クローズ)。

学び — 「cold AI が部品を捨てて代替に逃げる」のは最も鋭い 3-confirm シグナル

これまでの 3-confirm は「部品が無くて手組み」だった。だが #166 は違う:cold AI は RouteStops を見つけ、構造的限界(HH:MM)を理解し、ApprovalSteps という別部品に逃げた。 これは手組みより鋭いシグナルだ:

  • 手組み=「部品が無い」(穴の存在)。
  • 部品を捨てて代替に逃げる=「正しい部品があるのに、ある軸で足りないから別部品で妥協した」(部品の不完全さの存在)。

後者は「どの部品をどう拡張すべきか」を正確に教える——cold AI は「RouteStops の本文+ApprovalSteps の日付」と理想形まで言語化した。だから build は「新部品」でなく「既存部品 RouteStops に1フィールド追加」になった。#164→#165 の「meta に押し込み」(妥協1)→#166 の「ApprovalSteps に逃げる」(妥協2=より明確)と、妥協の仕方が鋭くなるほど、build すべき形が明確になる。

拾った点

  • 🟡 OriginDestination/RouteHeader(仕出→仕向 A→B header・矢印付き)=RouteStops は縦リストで横の A→B header でない=手組み=#425(発→着 #110/#140 でも手組み済)。
  • 🟡 summary hero に AnalyticsCard 誤誘導(KPI トレンドカードで entity header でない)。
  • ✅ ApprovalSteps(通関 申告→審査→許可)/MetadataList(本船/ETD/ETA)/SectionList(書類)/ActionQueue 全て native。

今回 src build = RouteStops dateLabel(#422→PR#424)。4/5・多日対応結晶化・索引是正。

📊 結晶化スコアボード(build 済 20個 + RouteStops 多日拡張)

…LimitMonitor / SectionList / RouteStops(多日対応) 進行中:OriginDestination(1/3)・Statistic goodWhen(2/3)・MatchCard(1/3)

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

  • ✈️ 航空 ✅/🚆 鉄道 ✅/🚕 タクシー ✅/🚌 バス ✅
  • 🚚 トラック:toB5 + toC3(荷主#164/宅配#165/国際輸送#166) ← 対称完走へ

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

  • トラック toC 最後(荷主の請求帳票/個人の受取設定 等)で toB5+toC4-5 対称=トラック完走=全5モード完走へ。※KeEem に確認。

試す

cold AI が RouteStops を捨てて ApprovalSteps に逃げた——部品を捨てて代替に逃げるのは、手組みより鋭い 3-confirm シグナル。妥協の仕方が鋭くなるほど、build すべき形(RouteStops に dateLabel 1フィールド)が明確になる。


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

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

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

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

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