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

AI に鉄道の定時性ダッシュボードを作らせてみた — ストック深掘りで Statistic goodWhen がコンポーネント化(やってみた #169)

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

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

解説記事

AI に鉄道の定時性ダッシュボードを作らせてみた — ストック深掘りで Statistic goodWhen がコンポーネント化(やってみた #169)

⁠やってみたシリーズ⁠: 自作のデザインシステム @gunjo/ui群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。運輸5モード完走後、⁠残った進行中のストックを深掘り⁠して 3回確認へ運ぶ回——⁠鉄道 路線別 運行実績・定時性ダッシュボード⁠(定時運行率・遅延率・輸送障害・混雑率)。

結果 — 4/5、狙い通り Statistic goodWhen が3回目でコンポーネント化

tsc 緑・デスクトップ密。予備知識ゼロの AI(群青を一度も触っていない設定):

⁠本物の強い分析/運用のライブラリ。⁠ ほぼ全ボックスに用途向けに作られたコンポーネントがあり、難しい意味づけのケース(反転した『低いほど良い』指標・値 vs 名前付き上限・下位路線ランキング)は API 設計者が先回りしていた——ただ1か所、KPI の帯の主役 Statistic を除いて。

観測の核 — Statistic goodWhen が3回目でコンポーネント化(ストックを狙い撃ち)

定時運行率(高いほど良い)・遅延件数/混雑率(低いほど良い)——上昇=悪い/良いが指標で逆になる:

予備知識ゼロの AI「⁠Statistic は trend(矢印)と tone(色)を別 prop に持ち、tone は trend から既定(up→緑)。goodWhen/direction prop も 符号ごとの tones も無い。遅延件数/混雑率は『上昇=悪化』なのに既定は緑=誤り。directionProps(delta, goodWhen) を手組みした。最大の欠落——しかもライブラリは明らかにこのパターンを知っている:兄弟の Delta は tones={{positive:destructive,negative:success}} を持ち、Leaderboard.deltaTones も Meter.direction も反転を解く。Statistic/StatGroup だけ同じ扱いを受けなかった。修正は明白で範囲も明確:符号ごとの tones か goodWhen の enum を Statistic に足せ。⁠

⁠Statistic goodWhen は #154 営業係数・#163 原価率/実車率・#169 遅延件数/定時率 で3回目=3回確認。その場で作った⁠

  • StatisticgoodWhen?:"higher"|"lower" を追加⁠=矢印は trend のまま・⁠色だけ反転⁠"lower" で 上昇=destructive(赤)・下降=success(緑)。明示 tone は優先・既定は無変更・StatGroup の items にも波及。
  • ブラウザで ⁠直帰率(下降+goodWhen=lower)→緑(改善)・遅延件数(上昇+goodWhen=lower)→赤(悪化)⁠ を確認=PR#427(#412 クローズ)。
  • これで定時率 goodWhen="higher"・遅延件数 goodWhen="lower"⁠指標ごとの tone 手管理ゼロ⁠で正しく色づく。

学び — 「ストック深掘り」は狙った 3回確認を確実に踏ませる

運輸5モード完走後、残った進行中のストック(Statistic goodWhen 2/3・OriginDestination 1/3・document-download 1/3 …)を 3回確認へ運ぶには、⁠それらを自然に踏む画面を選ぶ⁠のが効く。鉄道の路線別ダッシュボードは:

  • 反転 KPI(定時率/遅延件数)=goodWhen を3回目に踏む → ⁠作る⁠
  • 起点→終点の見出し=OriginDestination を2回目に踏む → 2/3。
  • 月次レポートDL=document-download を2回目に踏む → 2/3。

⁠1画面でストックを3つ同時に進めた。⁠ 深掘りは「新しい欠落を探す」より「⁠溜まった候補を確実に 3回確認へ運ぶ画面を設計する⁠」段階に入った。土台が成熟した連載の、もう一つの定常運転だ。

拾った点(良好な検証ラッシュ)

  • ⁠NavRow(前回 #168 で作った)が月次レポート行で同セッション自力発見⁠=作る→検証の距離が1回に。
  • ✅ Delta(反転 tones)/Leaderboard(deltaTones up=bad)/LimitMonitor(混雑率 vs 150% 値単位)/LineChart(referenceValue 目標線)/LineChip(自動コントラスト)全て そのまま合う。
  • 🟡 ⁠OriginDestination 2/3⁠(起点→終点 A→B の見出し=#166 に続く・索引が Itinerary に誤誘導)=#425・あと1回で作る。
  • 🟡 帳票ダウンロード行 2/3(月次レポート行=#168 に続く)。

⁠今回 src で作ったもの = Statistic goodWhen(#412→PR#427)⁠。4/5・goodWhen コンポーネント化・ストックを3つ前進。

📊 コンポーネント化スコアボード(作成済 ⁠22個⁠

…SectionList / RouteStops(複数日) / NavRow / ⁠Statistic(goodWhen)⁠(このセッションで9コンポーネントを作成/拡張) 進行中:⁠OriginDestination(2/3)⁠・帳票ダウンロード(2/3)・MatchCard(1/3)

📋 モード進捗

  • ✈️ 航空 ✅/🚆 鉄道 ✅/🚕 タクシー ✅/🚌 バス ✅/🚚 トラック ✅(運輸5モード完走)
  • ストック深掘り中:goodWhen コンポーネント化・OriginDestination/帳票ダウンロード を 2/3 に

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

  • ストック深掘り継続(OriginDestination/帳票ダウンロード を3回目→作る)or 新業種へ。※次回までに決める。

試す

ストック深掘りで Statistic goodWhen がコンポーネント化した——深掘りは溜まった候補を確実に 3回確認へ運ぶ画面を設計する段階。1画面でストックを3つ進めた。

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

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

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

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

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

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