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