AI に航空乗員のスケジュール管理を作らせてみた — 鉄道の乗務員交番の床が、また航空で効いた(やってみた #131)
/crew-scheduling375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
AI に航空乗員のスケジュール管理を作らせてみた — 鉄道の乗務員交番の床が、また航空で効いた(やってみた #131)
やってみたシリーズ: 自作のデザインシステム
@gunjo/ui(群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。航空 toB の床埋め3枚目——乗員スケジュール管理(パイロット/CA 乗務割・FTL 飛行時間制限・資格管理)。鉄道 乗務員#107 の、ちょうど航空版。これで航空 toB が3枚=鉄道と対称の床に。
結果 — 4.5/5、toB床 越境テスト2回目も合格
tsc 緑・デスクトップ密度。cold AI(群青を一度も触っていない設定):
back-office の primitive は、戦わされるのでなく、本当にこのために作られていた。 乗務割グリッド(
ScheduleGrid)・FTL の消費vs限度メーター(Meter)・要対応キュー(ActionQueue)・署名記録(SignedRecord)・人セル(PersonCell)——全部 zero-friction。一つも戦わなかった。 docstring が "shift rosters / dispatch / ops" を名指ししていて、このキットは明らかにこの面を狙っている。
前回 #130(航空 MRO)に続き、鉄道 乗務員#107 で結晶化した「交番/乗務時間 toB 床」が、FTL も資格規程も違う航空乗員に構造的手組みゼロで横展開。toB床 越境の地力テスト、2回目も合格。
越境した床(鉄道#107 → 航空乗員)
- 乗務割の交番 →
ScheduleGrid(docstring が文字通り "shift rosters (staff×days)"・乗員×日・セルごとに tone+conflict ring・矢印キー・横スクロール contained)。鉄道の交番#107 がそのまま。 - FTL / 乗務時間 →
Meter(higher-is-worse既定で限度超過=legality 問題が配線不要・size="sm"で乗務時間/勤務時間の2本を行に・cold AI「kit で最良フィット」)。鉄道の拘束時間#107 が FTL に。 - 要対応(FTL超過接近・審査期限・不適格アサイン・レスト不足) →
ActionQueue(severity 自動ソート・docstring が "失効防止/更新/満期" を例示)。 - 乗務指示の確認 →
SignedRecord(draft→signed ロック・追記・canSignを「未解決 FLAG 無し」に配線・CoSignも2人確認用に控えていた)。 - 乗員 →
PersonCell(アバター+役職+基地+presence)。
今回 src build なし(4.5/5・toB床 越境2回目合格=床の成熟の再確認)。
観測の核 — 唯一「住所が無い」もの=資格カレンシー
クルー固有で良い住所が無いのは、資格カレンシーのマトリクスだけ。 型式限定・路線資格・審査の「有効期限→有効/期限間近/失効」を
ScheduleGrid(汎用マトリクス)の上に自前のcurrencyOf()分類器+Badge で手組みした。索引は「資格期限→ReferenceValue」に誘導したがこれは数値レンジ分類器で日付の期限には無力=誤誘導。
→ 起票 #383 ExpiryBadge / CurrencyMatrix:expiresAt+しきい値→有効/期限間近/失効/未保持を色のみに非依存の Badge +日付計算込みで。乗員(型式限定/路線資格/審査)だけでなく、医療免許・各種認証・車検・点検・契約期限で繰り返す。 索引も是正 #384(ReferenceValue は数値専用・期限は別)。
期限カレンシーの目撃:#123 渡航書類(パスポート/ビザ期限・CheckList)・#130 MRO(AD/SB/部品寿命・ActionQueue)・#131 乗員資格(手組み)=named gap として1回目。
学び — 「toB床は new domain でも揺らがない」を2回連続で確認
#130(MRO)に続き #131(乗員)も、鉄道で結晶化した toB床が、機番も FTL も資格規程も違う航空の専門領域でそのまま立った。2回連続で「構造的手組みゼロ」。toC が深掘るほど gap を噴き、11部品を結晶化させたのと真逆——toB床は新しい業種/領域を当ててももう揺らがない=成熟しきっている。残る gap は「汎用マトリクス上に毎回書き直す date-expiry の意味論」のような、薄い・横断的なものだけ。
📊 結晶化スコアボード(build 済 11個)
AmountBreakdown / ActionQueue / ListCard / Gantt-segments / SeatMap / LoyaltySummaryCard / RadioCard / FilterChips / PageHeader / Itinerary / TicketStub 進行中:ExpiryBadge/CurrencyMatrix・CheckboxCard・StatusScreen success・StatusLevel・asset-row
📋 toB/toC 進捗 — 航空 toB も床達成
- ✈️ 航空:toC 全6枚 ✅ / toB 3枚(OCC#113・MRO#130・乗員#131)=床達成・鉄道と対称 ✅
- 🚆 鉄道:toC 全6枚 ✅ / toB 3枚(運行/乗務員/車両)=床達成 ✅
次回予告(やってみた #132)
- 鉄道 toB を厚く(KeEem の「3」):駅務・出改札/ダイヤ作成・輸送計画 のどれかで鉄道 toB を床→厚く。その後 新モード(バス toB+toC) へ。
試す
- gunjo.jp / スケジュールグリッド ScheduleGrid / メーター Meter / 署名記録 SignedRecord / npm
@gunjo/ui/ GitHub / 前回まで #1〜#130 - GunjoUI by UIXHERO
鉄道の乗務員交番の床が、FTL も資格規程も違う航空乗員にそのまま効いた——toB床は2回連続で「新領域でも揺らがない」を見せた。
<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー -->
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import している部品です。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。