AI に航空の就航計画・スロット管理を作らせてみた — 「出なかった穴」が予想を裏取りした(やってみた #135)
/network-planning375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
AI に航空の就航計画・スロット管理を作らせてみた — 「出なかった穴」が予想を裏取りした(やってみた #135)
やってみたシリーズ: 自作のデザインシステム
@gunjo/ui(群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。航空 toB を厚く(5枚目)——就航計画・ダイヤ/スロット管理コンソール(路線・便数・発着スロット・機材ローテーション)。これで航空 toB が5枚=鉄道と完全対称に。
結果 — 4/5、背骨は near-complete
tsc 緑・デスクトップ密度。cold AI(群青を一度も触っていない設定):
データテーブルと worklist のコンソールとしては near-complete。
DataTable(路線便数・L/F にMeter target=損益分岐で赤)・ActionQueue(要対応・docstring が ダイヤ乱れ/運休 を名指し)・StatGroup・Meterは ops/dispatch で battle-tested。a11y baseline も大半のチームが手書きするより良い。
観測の核 — 「出なかった穴」が、予想を裏取りした
前回 #133(鉄道ダイヤ作成)で、cold AI が「運行図表は鉄道だけでなく経路上を時間で移動するもの全般(バス Marey/コンベヤ/船舶)に要り、Gantt では作れない」と言い、bus toB で Stringline 3回目→build を予告した。
今回 #135 は、その予告の負の側を確かめる回でもあった——航空の就航計画に運行図表(Stringline)は出るのか?
cold AI「train-diagram/stringline は要らなかった——そしてその穴は鉄道固有。 航空のスロット/ローテーションは resource-vs-time(時計の上の行)で、Gantt/ScheduleGrid が既に狙う形。固定軌道の時間×距離の次元が無いから、stringline に手を伸ばすことが一度も無かった。無いことが正しく、見落としではない。」
実測でも TrainDiagram の手組み=0個(鉄道#106/#133 では各1個)。つまり——Stringline は「経路上を移動するもの」固有の穴で、航空就航計画には構造的に出ない。 これで「Stringline 3回目はバス(運行/Marey)」という予告が、出なかったことで裏取りされた。穴の地図は、出る場所だけでなく「出ない場所」も確定して初めて正確になる。
もう一つの核 — Gantt の intraday 解像度が、1画面で2度刺さった
cold AI「機材ローテーション:Gantt は分単位で正しく bar を置くが、ヘッダが日付(7/15)のまま=06:00/12:00/18:00 の時刻ティックが無い。
resolution/tickIntervalprop が要る唯一の部品。発着スロット:ScheduleGrid は離散マトリクスで時刻軸も容量概念も無く、16時間列を自前で作り混雑を計算した。」
2つの ask が1つの primitive に収束:Gantt の resolution="hour" モード or ResourceTimeGrid(resource×時刻軸+セルごとの容量トーン)。→ #386 を再確認(#133車両運用+#135機材ローテ/スロット=explicit 2-3回目)。機材繰り/車両運用/スロットは全部 intraday=この穴は near build。 PageHeader の desktop 誤記も3回目(mobile app bar を desktop で使い続け手組み <header> に逃げる)として併記。
今回 src build なし(4/5・Gantt-intraday 再確認・Stringline 不在確認)。
学び — 「出ない場所」を確定するのも、地図作りの一部
deep-dive の価値は「穴を見つける」だけじゃない。#135 は1枚も新部品を要さなかったが、2つの重要な確定をした:
- Stringline は航空に出ない=鉄道/バス(固定経路)固有と確定=「3回目はバス」予告の裏取り。
- Gantt-intraday は航空でも刺さる=鉄道#133 と航空#135 で同じ穴=モード横断の near-build と確定。
穴は「3回貯まったら build」だが、その3回がどのモードで来るか/来ないかを事前に地図化できると、build の優先順位とタイミングが読める。#135 は新部品ゼロでも、地図の解像度を上げた回。
📊 結晶化スコアボード(build 済 11個)
AmountBreakdown / ActionQueue / ListCard / Gantt-segments / SeatMap / LoyaltySummaryCard / RadioCard / FilterChips / PageHeader / Itinerary / TicketStub 進行中:Gantt-intraday/ResourceTimeGrid(near)・StatusBoard 2/3・Stringline 2/3(次=バス)・ExpiryBadge・CheckboxCard
📋 toB/toC 進捗 — 鉄道・航空とも toB 5 + toC 6 で完全対称
- ✈️ 航空:toC 6枚 ✅/toB 5枚(OCC/MRO/乗員/グラハン/就航計画) ✅
- 🚆 鉄道:toC 6枚 ✅/toB 5枚(運行/乗務員/車両/駅務/ダイヤ作成)✅
- → 2モードとも toB+toC 完全対称で完走。
次回予告(やってみた #136)
- 新モード:バス。toB 運行管理(Stringline 3回目→build の本命・運行図表/Marey+Gantt-intraday も同時に刺さる公算)or toC 路線・接近・運賃。鉄道・航空の床が3モード目でどう効くか。
試す
- gunjo.jp / ガント Gantt / スケジュールグリッド ScheduleGrid / データテーブル DataTable / npm
@gunjo/ui/ GitHub / 前回まで #1〜#134 - GunjoUI by UIXHERO
航空就航計画に運行図表は出なかった——「出ない場所」を確定することも、穴の地図を正確にする。次のバスで、3つの穴(Stringline/Gantt-intraday/StatusBoard)が一気に動くかもしれない。
<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー -->
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import している部品です。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。