AI に鉄道の定時性ダッシュボードを作らせてみた — ストック深掘りで Statistic goodWhen がコンポーネント化(やってみた #169)
/line-performance375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
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回確認。その場で作った:
-
StatisticにgoodWhen?:"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 新業種へ。※次回までに決める。
試す
- gunjo.jp / 統計 Statistic(goodWhen 対応)/ ランキング Leaderboard / 上限監視 LimitMonitor / npm
@gunjo/ui/ GitHub / 前回まで #1〜#168 - GunjoUI by UIXHERO
ストック深掘りで Statistic goodWhen がコンポーネント化した——深掘りは溜まった候補を確実に 3回確認へ運ぶ画面を設計する段階。1画面でストックを3つ進めた。
この連載は、作者が AI(Claude と Codex)と協働で制作しています。実験・検証の設計、判断、公開前の事実確認は人間が行い、実作業と下書き執筆は AI が担っています。
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import しているコンポーネントです。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。