AI に生産計画を作らせてみた — Meter の「保留プレビュー」が計画 UI の主役だった(やってみた #68)
/production-planning375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
AI に生産計画を作らせてみた — Meter の「保留プレビュー」が計画 UI の主役だった(やってみた #68)
やってみたシリーズ: 自作のデザインシステム
@gunjo/ui(群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。製造5枚目——生産計画 / 負荷山積み(生産ガント × 能力vs負荷 × 製造オーダ一覧 × 納期遵守 × 再計画)。
製造の5枚目はプラントの生産計画。オーダをラインに割り付け、負荷を能力に対して均す画面。前回(#67)に続き src 修正ゼロ——だが2回連続の no-build は「kit が成熟して、残る穴が大型ドメイン primitive だけになった」signal でもある。
結果 — 3.5/5
tsc/build 緑・console 0・375px・多ラインガント・負荷マトリクス(188%超過セルがライブ)・再計画 Sheet(容量プレビュー付き)・納期遵守 KPI・h1 1個。スケジューリング特化で 3.5(ダッシュボード/CRUD なら 4.5)——理由は核のガントが無いから。
今回の主役 — Meter の incoming(保留プレビュー)が、計画 UI のために生まれたみたいに効いた
倉庫充填用に作った Meter が、能力 vs 負荷にそのまま効いた。しかも保留変更のプレビュー incoming が刺さった:
Meteris the standout. Bent onto line-vs-capacity with zero fighting, and expressed the over-capacity direction out of the box:direction="higher-is-worse"(default) auto-tones destructive at/overmax;thresholds={{warning:0.8, over:1}}matches a planner's mental model; the inline188%↑carries overflow without hue. Andincoming— documented as "preview the result of a pending change, after I add this shipment" — became "after I move this job to this line" verbatim. The re-plan preview showed9h + 6h → 188%before commit. This single prop is the best thing in the library for a planning UI.
倉庫の「積んだら何%になるか」のプレビューが、計画の「このオーダを移したら能力超過するか」にそのまま化けた。DataTable(オーダ backlog・sort/filter/行tint)・Delta(余裕/超過の符号付きslack)・Badge(割付状況/優先度/納期判定)・Sheet(再計画パネル) が残り60%をカスタムコードゼロで賄った。Meter は #65/#66/#67/#68 と4回連続、別業界で野生採用。
headline gap — スケジューリングの核「ガント」が無い(#142・2回目)
- 🔴 多ライン共有軸のガント/resource-timeline が無い。最も近いのは
SegmentTimelineCardだが単行 Card 固定(独自ヘッダ/凡例・各カードが独立に min/max 再計算)で、N ラインが1つの日軸を共有する密グリッドにできない。cold AI はProductionGantt.tsxを手組み(日軸ヘッダ・ラインrow・(day/horizon)*100配置バー・今日マーカー)。これは #142(#27 週次スケジューラで起票済)の2回目 — ただし時間軸配置レイヤーは WeekView(#27) と ResourceTimeline/Gantt(#68) の2つの顔を持つ大型 primitive。cold AI 曰く "SegmentTimelineCard's internals are 80% of a ResourceTimeline already"。3回ルールで build。
起票だけ
- 🟡 山積みグラフの閾値トーンが無い(#285・1回目)。
BarChart averageValueは基準線1本のみ・per-bar 閾値トーン無し、StackedBarChartも超過セマンティクス無し。「能力線を超えたバーが赤」が描けない(cold AI は Meter マトリクスで回避)。 - 🟡 Meter に「超過!」バッジ slot 無し(tone+↑+数値で伝わるので手で
<Badge>能力超過</Badge>追加)・inline↑が aria-valuetext 未収載(数値は入るので許容)。
学び — 2回連続 no-build は「成熟の signal」
#67(多親DAGの系譜)→#68(多ライン共有軸のガント) と2回連続で src 修正ゼロ。これは手抜きじゃなく、kit が小修正フェーズを超えて「大型ドメインレイアウト primitive(グラフ/時間軸)だけが残る」フェーズに入ったことを示す。部品単体の被覆率は高く、Meter/DataTable/Delta/Badge/Sheet が大半を摩擦ゼロで賄う。残る穴は「系譜グラフ(#281)」「ガント/スケジューラ(#142)」のような、それ自体が大プロジェクトの primitive。これらは急がず、3回ルールで再出現を待って腰を据えて作る。Meter の越境(4回連続)が示すように、作法の骨格を捉えた小〜中 primitive はもう揃っている。
次回予告(やってみた #69)
- 製造6枚目(出荷/在庫引当)で製造を締め → 業界 pivot(教育/公共など)。ガント#142・系譜#281 の3回目も観測。
試す
まだ alpha。倉庫充填用 Meter の保留プレビューが生産計画の再計画にそのまま効き、2回連続で「残るは大型primitiveだけ」を確かめた回。
<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー -->
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import している部品です。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。