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