#106スコア 4/5運輸:鉄道

AI に鉄道の運転指令を作らせてみた — 3回目の「対応キュー」手組みで、またコンポーネントになった(やってみた #106)

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

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

解説記事

AI に鉄道の運転指令を作らせてみた — 3回目の「対応キュー」手組みで、またコンポーネントになった(やってみた #106)

⁠やってみたシリーズ⁠: 自作のデザインシステム @gunjo/ui群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。⁠運輸=モード別に回す(タクシー/バス/鉄道/航空/トラック配送)、その鉄道1枚目⁠——⁠鉄道の運転指令(運行管理)⁠(列車一覧・ダイヤ乱れ・運行図表・運転整理)。

運輸は1業界じゃなく「カテゴリ」——鉄道・バス・航空・タクシー・運送は作法が全然違うので、各モードを独立の土台として回す。今回はその鉄道。観測の核——⁠要対応の対応待ちリスト(ActionQueue)が3回目の手組みになれば、その場で作る。⁠

結果 — 4/5、そして3回目が発火(2連続で作る)

tsc/build 緑・375px・0 console error。KPI・ダイヤ乱れアラート・列車運行状況一覧・運行図表・運転整理ログ。予備知識ゼロの AI(群青を一度も触っていない設定)のレポート:

⁠ダイヤ乱れアラートキュー=手組み⁠。「⁠深刻度でソートされた、対応が必要な項目の対応待ちリストのコンポーネントが無い⁠」。索引が答えた NotificationCenter を見たが「⁠ベルアイコンの Popover で、インラインの選別リストじゃない⁠——深刻度も種類も推奨アクションも無い」。だから AlertBadge×2+Button を深刻度順に並べて自前で組んだ。「⁠これは単一で最大の、繰り返し再利用される欠落——あらゆる運用/監視/指令の画面が、まさにこれを必要とし、全員が Alert+Badge から作り直す。最も価値ある追加。⁠

⁠3回連続⁠——更新の今すぐ対応リスト #102・要対応アラート #105・ダイヤ乱れキュー #106、⁠別々の3人の予備知識ゼロの AI が独立に同じ対応待ちリストを手組み⁠。3回ルール発火。⁠その場で作った。⁠(保険で AmountBreakdown を作ったのに続き、2連続のコンポーネント化。)

作る — ActionQueue(対応キュー)

<ActionQueue
  items={[
    { severity: "critical", kind: "失効リスク", title: "田所さま — 終身保険が今月末で失効",
      detail: "失効防止コールを本日中に。", meta: "本日", actions: <Button size="sm">対応</Button> },
    { severity: "warning", kind: "更新", title: "三宅さま — 更新期限", meta: "あと7日" },
    { severity: "info", kind: "誕生日", title: "宇佐美さま — お誕生日", meta: "明日" },
  ]}
/>
  • severity(critical/warning/info/neutral)が⁠アイコン+トーン+(ソート時の)並び順⁠を決める。⁠深刻度は色だけでなく、アイコンの形+トーン+sr-only ラベルで伝える⁠
  • 末尾の actions は行ボタンに入れ子にせず兄弟として描画・onSelect で行を活性化・⁠既定でサーバー描画でも安全⁠
  • ⁠StatGroup(KPI 行)と対になる、朝のダッシュボードのもう半分⁠が揃った。
  • #350 をクローズ(PR#351)。

索引も2つ直した

  • ⁠対応待ちリスト → NotificationCenter の誤誘導⁠を是正:対応キュー(ActionQueue)vs 単発の通知(Alert)vs 常駐のベル(NotificationCenter)を分離。
  • Gantt → 運行図表 の誤誘導⁠を注記:Gantt はレーン詰めのバー=⁠交差する斜線(列車運行図表/ダイヤグラム/Marey)ではない⁠と明記し、未対応であることを索引に出した。

課題に記録 — Stringline(運行図表)

⁠運行図表(時間×距離のスジ)も手組み(SVG)⁠。「Gantt はレーン詰めのバー、スジは交差する斜線——構造的に別物。斜線そのものがデータなので SVG が正当な例外」。

#352⁠鉄道特化⁠(全業種共通の ActionQueue より優先度は下)だが、鉄道ダイヤ画面の象徴。次の交通モードで2回目が出れば固まる。RouteStops(物流の配送)が⁠車両運用・折返しに「不気味なほどぴったり」で業界越え⁠したのも収穫。

⁠今回 src で作ったもの = ActionQueue⁠(3回目)。

学び — 全業種共通の土台はまだ埋まる

保険5枚で「作り切った」と書いたが、⁠業界をまたぐ共通の欠落はまだあった⁠——ActionQueue は保険にも鉄道にも、あらゆる運用画面に出る「朝のダッシュボードのもう半分」。StatGroup(KPI)・AmountBreakdown(金額)に続き、⁠事務方の3つ目の全業種共通の土台⁠が埋まった。一方 Stringline は鉄道特化=モード固有の欠落。⁠全業種共通の土台(全業種で効く)と モード固有の土台(その業種だけ)を、3回ルールが選り分けてくれている。⁠

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

  • 鉄道2枚目(乗務員行路/車両運用 or 駅務)で ActionQueue/Stringline の再発掘を観測、あるいは次モード(バス/航空/タクシー/トラック配送)へ。

試す

3回手組みされた対応待ちリストが、その場でコンポーネントに。運輸モード初回で、全業種共通の土台がまた一段。

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

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

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

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

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

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