AI に国際輸送・通関追跡を作らせてみた — RouteStops が「多日対応」で結晶化(やってみた #166)
/intl-shipment375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
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 した:
RouteStopsにdateLabel?: ReactNodeを追加=per-stop の自由形式タイムスタンプ(5/16〜5/29・ETA 5/30・6/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 に確認。
試す
- gunjo.jp / 配送ルート RouteStops(多日 dateLabel 対応)/ 承認ステップ ApprovalSteps / メタデータ MetadataList / npm
@gunjo/ui/ GitHub / 前回まで #1〜#165 - GunjoUI by UIXHERO
cold AI が RouteStops を捨てて ApprovalSteps に逃げた——部品を捨てて代替に逃げるのは、手組みより鋭い 3-confirm シグナル。妥協の仕方が鋭くなるほど、build すべき形(RouteStops に dateLabel 1フィールド)が明確になる。
<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー -->
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import している部品です。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。