#133スコア 3.5/5運輸:鉄道

AI に鉄道のダイヤ作成(運行図表)を作らせてみた — #106 で起票した穴が、27回後に2回目を見せた(やってみた #133)

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

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

解説記事

AI に鉄道のダイヤ作成(運行図表)を作らせてみた — #106 で起票した穴が、27回後に2回目を見せた(やってみた #133)

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。鉄道 toB を厚く(5枚目)——ダイヤ作成・運行計画コンソール(中央線快速・運行図表/ダイヤグラム・列車スジ・車両運用)。

結果 — 3.5/5、背骨は完璧。だが画面の名前そのものが手組み

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

汎用の back-office 90%(テーブル・KPI・アクションキュー・インスペクタ・chrome)は速くて opinionated に正しい。 StatGroup/DataTable/ActionQueue は zero-friction=ops コンソールを作ったことのある人が設計したように読める。 だが画面が存在する理由=運行図表(ダイヤグラム)に住所が無い。100% 手組み。

観測の核 — Stringline 2回目(#106 → #133、27回ぶり)

#106(運転指令)で運行図表を手組みして Stringline を起票した。そして #133 で——cold AI がまた、生 SVG 約190行で運行図表を手組みした。2回目(2/3)。

cold AI が「なぜ Gantt では不可能か」を精密に言語化:

  • Gantt = リソース行 × 横棒。各エンティティは1行、印は水平スパン。y は識別を運ぶ。
  • 運行図表 = 1本の連続した距離軸(y) × 時間軸(x)。1列車は全駅の行を横切る斜めのポリライン。y は距離、傾き=速度、水平の折れ=停車2本の線の交差=待避/追い抜き(読む理由そのもの)
  • Gantt には複数行をまたぐ印も傾きも無く、lane-packing が線の交差を能動的に防ぐ=欲しいものの真逆。「Gantt にスタイルを足したものじゃない。座標系が違う。

#352 Stringline / MareyChart に2回目を追記。仕様も精緻化(非等間隔の距離軸・着発/通過の自動ポリライン投影・種別別スタイル・上下双方向・フォーカス可能な線で planner が conflict を読む a11y)。

#106 で打った索引 disclaimer が、効いた

#106 で索引に「バーは行内レーン詰め=交差する斜線(運行図表/ダイヤグラム/Marey)は未対応」と書いておいた。それが27回後に:

cold AI「索引の標準=運行図表が未対応だと先に教えてくれた。この一文が、Gantt を取れない斜線形状に無理やり押し込む戦いから救った。 これが、キットが gap を扱う正しいやり方。」

「まだ無い」を正直に索引に書くことが、次の adopter を誤誘導から守る。 gap の存在を隠さない索引は、それ自体が部品の一つ。

もう一つの gap — Gantt の日解像度

車両運用(7:00–9:00 の intraday)を Gantt に載せたら:

Gantt の時間は日解像度(DAY_MS / M/D ヘッダ)。 intraday の2時間窓を1日セルに引き伸ばすため dayWidth=1100 にし、日付ヘッダは無意味な「6/29」に。segments(便→折返し→便)は良いが、時/分の刻みモードが無い=同日運用に実 gap。Gantt は形(行×時間)は合うが解像度が合わない。

#386 Gantt の intraday/時刻解像度モード(#113 機材繰り+#133 車両運用 で目撃・bus/taxi/truck 運行でも要りそう)。InspectorPanel 固定サイズ再確認・MiniTable も併記。

今回 src build なし(3.5/5・Stringline 2/3=3回ルール待ち)。

学び — 「2回目の穴」は、3回目=build の予告

Stringline は #106 で起票してから、27回ずっと「未対応」だった。その間に11部品を別の3回ルールで build してきた。今回 #133 でようやく2回目。そして cold AI が決定的な一言:

「運行図表は鉄道計画だけでなく、『経路上を時間で移動するもの』全般——バス(Marey)・コンベヤ・船舶航送——どれも要り、Gantt では絶対に作れない。

つまり bus toB(運行/Marey)が来れば、ほぼ確実に3回目=Stringline build トリガー。連載の設計(全モード toB+toC を順に回す)が、この最古の起票を回収しにいく。穴は、忘れずに、しかし急がず、3回貯まった時に結晶化する。

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

AmountBreakdown / ActionQueue / ListCard / Gantt-segments / SeatMap / LoyaltySummaryCard / RadioCard / FilterChips / PageHeader / Itinerary / TicketStub 進行中:Stringline 2/3・StatusBoard・ExpiryBadge・CheckboxCard・Gantt-intraday・StatusScreen success

📋 toB/toC 進捗 — 鉄道・航空 toB/toC 完走

  • ✈️ 航空:toC 6枚 ✅/toB 3枚 ✅
  • 🚆 鉄道:toC 6枚 ✅/toB 5枚(運行/乗務員/車両/駅務/ダイヤ作成)
  • 鉄道・航空とも toB+toC 両面 完走。次は新モード。

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

  • 新モード:バス(toB 運行管理 or toC 路線・時刻・予約)。鉄道・航空で固めた床がバスにどう効くか+運行/Marey で Stringline 3回目→build が見えるか。

試す

#106 で起票した運行図表の穴が、27回後に2回目を見せた——3回目はバスで来る。穴は、忘れず急がず、3回貯まった時に結晶化する。


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

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

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

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

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