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

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

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

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

解説記事

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

⁠やってみたシリーズ⁠: 自作のデザインシステム @gunjo/ui群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。⁠鉄道の事業者向けを厚く⁠(5枚目)——⁠ダイヤ作成・運行計画コンソール⁠(中央線快速・運行図表/ダイヤグラム・列車スジ・車両運用)。

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

tsc 緑・デスクトップ密度。予備知識ゼロの AI(群青を一度も触っていない設定):

⁠汎用の事務方の部分90%(テーブル・KPI・アクションキュー・インスペクタ・枠)は速くて、方針が明確で正しい。⁠ StatGroup/DataTable/ActionQueue は 摩擦ゼロ=⁠運用コンソールを作ったことのある人が設計したように読める。⁠ ⁠だが画面が存在する理由=運行図表(ダイヤグラム)に置き場所が無い。100% 手組み。⁠

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

⁠#106(運転指令)で運行図表を手組みして Stringline を課題に記録した⁠。そして #133 で——予備知識ゼロの AI がまた、手書きの SVG 約190行で運行図表を手組みした。⁠2回目(2/3)。⁠

予備知識ゼロの AI が「なぜ Gantt では不可能か」を精密に言語化:

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

#352 ⁠Stringline / MareyChart⁠ に2回目を追記。仕様も精緻化(等間隔でない距離軸・着発/通過の自動の折れ線への投影・種別ごとのスタイル・上下双方向・⁠フォーカスできる線⁠で計画担当者が競合を読むアクセシビリティ)。

#106 で打った索引の注意書きが、効いた

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

予備知識ゼロの AI「⁠索引が、標準では運行図表が未対応だと先に教えてくれた。この一文が、Gantt に、取れない斜線の形状を無理やり押し込む戦いから救った。⁠ これが、ライブラリが欠落を扱う正しいやり方。」

⁠「まだ無い」を正直に索引に書くことが、次の採用者を誤誘導から守る。⁠ 欠落の存在を隠さない索引は、それ自体がコンポーネントの一つ。

もう一つの欠落 — Gantt の日単位の解像度

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

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

#386 ⁠Gantt の日中/時刻の解像度モード⁠(#113 機材繰り+#133 車両運用 で目撃・バス/タクシー/トラックの運行でも要りそう)。InspectorPanel の固定サイズを再確認・MiniTable も併記。

⁠今回 src の新規コンポーネントなし⁠(3.5/5・Stringline 2/3=3回ルール待ち)。

学び — 「2回目の欠落」は、3回目=作るの予告

Stringline は #106 で課題に記録してから、27回ずっと「未対応」だった。その間に11個のコンポーネントを別の3回ルールで作ってきた。今回 #133 で⁠ようやく2回目⁠。そして予備知識ゼロの AI が決定的な一言:

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

つまり ⁠バスの事業者向け(運行/Marey)が来れば、ほぼ確実に3回目=Stringline を作る合図⁠。連載の設計(全モード 事業者向け+利用者向け を順に回す)が、この最古の課題を回収しにいく。欠落は、忘れずに、しかし急がず、3回貯まった時に固まる。

📊 コンポーネント化スコアボード(作成済 ⁠11個⁠

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

📋 事業者向け/利用者向け 進捗 — 鉄道・航空 事業者向け/利用者向け 完走

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

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

  • ⁠新モード:バス⁠(事業者向け 運行管理 or 利用者向け 路線・時刻・予約)。鉄道・航空で固めた土台がバスにどう効くか+⁠運行/Marey で Stringline 3回目→作る⁠ が見えるか。

試す

#106 で課題に記録した運行図表の欠落が、27回後に2回目を見せた——3回目はバスで来る。欠落は、忘れず急がず、3回貯まった時に固まる。

この連載は、作者が AI(Claude と Codex)と協働で制作しています。実験・検証の設計、判断、公開前の事実確認は人間が行い、実作業と下書き執筆は AI が担っています。

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

この画面のソースが直接 import しているコンポーネントです。

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

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

業界別「AI指示書パック」、先行登録を受付中です。