#73スコア 4.5/5教育

AI に LMS ダッシュボードを作らせてみた — 直近で作ったコンポーネントが、全部その場で再利用された(やってみた #73)

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

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

解説記事

AI に LMS ダッシュボードを作らせてみた — 直近で作ったコンポーネントが、全部その場で再利用された(やってみた #73)

⁠やってみたシリーズ⁠: 自作のデザインシステム @gunjo/ui群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。⁠教育4枚目⁠——⁠学習進捗 / LMS ダッシュボード⁠(コース進捗 × 課題提出マトリクス × 到達度 × 要支援学習者 × 活動推移)。

教育の4枚目は LMS ダッシュボード。コース進捗・課題提出・到達度を追い、要支援の学習者を見つける画面。そして⁠「直近で作ったコンポーネントが、その場で全部再利用された」⁠——複利が最高潮に達した回。

結果 — 4.5/5

tsc/build 緑・console 0・375px・コース進捗バー・課題提出マトリクス・到達度メーター・要支援リスト・週次推移。⁠手組みはゼロ⁠——全てのデータ表示に実コンポーネントがあった。

今回の主題 — 直近で作ったコンポーネントが、全部その場で効いた

予備知識ゼロの AI が使った主要コンポーネントは、⁠ほぼ全部この数ラウンドで作った/直したもの⁠:

  • ScheduleGrid(#70 で作る・#71 で説明を拡張)→ ⁠生徒×課題の提出マトリクス⁠「摩擦なし、本当に優秀」。説明の枠を広げた効果が⁠2回連続⁠で実証(#72 出欠に続き #73 提出マトリクス)。
  • Badgeicon prop⁠(#72=前ラウンドで作った #276)→ ⁠採点済/提出済/期限切れ の色に頼らないステータスピル⁠「色に依存しない要件を1つの prop で解決した」。出荷した翌ラウンドで即採用。
  • Meter direction="higher-is-better"+target(#256)→ 到達度 vs 到達ライン。⁠何ラウンド連続か数えられないほどの実戦採用⁠

⁠「他に手組みするものは無かった。どのデータ表示にも実在のコンポーネントがあった。ライブラリが明らかに想定していなかった分野にしては、際立って高い的中率だ。」⁠

#70 ScheduleGrid・#72 Badge icon を作り、#73 で⁠両方ともその場で発見・採用された⁠。「作る→翌ラウンドの別画面が使う」の複利が、教育4枚で完全に回った。だから ⁠#73 は手組みゼロ・新しいコンポーネントを作らずに済んだ回⁠——ライブラリが LMS をまるごと既存コンポーネントで賄った。

src で反映 — Grid のレスポンシブ列(3回目で作る)

新しいコンポーネントを作らずに済んだ、と言いつつ、1つ3回ルールが満ちた:

  • 🟡→✅ ⁠Grid cols が固定列のみ⁠だった欠落を修正(#114 cold-test #21・#68 生産計画・#73 LMS で⁠3回⁠)。cols={4} は 375px で溢れる、モバイルで安全なのは minItemWidth だけ、という罠。3回ルールで作る(PR #295):
    • cols がレスポンシブオブジェクト { base, sm, md, lg, xl } を受けるように(cols={{ base: 1, md: 3 }}=モバイル1列→md で3列)。固定数 cols={3} は後方互換で据え置き(リフローさせたくない用途用)。
    • Tailwind v4 は「ソースに literal で現れたクラスしか生成しない」ので、breakpoint 別の literal マップを列挙。⁠ビルド後 CSS に {sm,md,lg,xl}:grid-cols-N が全部生成されたことを確認⁠

課題に記録だけ

  • 🟡 ⁠ChartColor 型が緩い⁠color:"danger" が型チェックを通ってしまい無色で描画=見えないバグ・#296・1回目・最も深刻)。
  • 🟡 ⁠Meter の label が ReactNode だと role=meter の名前が消える⁠#297・1回目・#277/#286 と Meter の PR で束ねる)。
  • 🟡 ⁠DataTable に caption/読み上げ名の prop が無い⁠#298・1回目)。

学び — 複利のピークと、3回ルールの両立

#73 は2つを同時に示した: ①⁠直近で作ったコンポーネント(ScheduleGrid・Badge icon)が、その場の別画面で全部再利用された⁠=デザインシステムの複利が回り切った証拠(手組みゼロ)。②それでも ⁠Grid のレスポンシブ列が3回目に達したので作る⁠=「賄えてる」と「まだ欠落がある」は両立する。教育4枚で、ライブラリは LMS をほぼ完全に賄いつつ、3回ルールで残った欠落(Grid 列)を1つ埋めた。

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

  • ⁠教育5枚目(公欠/保健室・部活動・三者面談予約 など)⁠で教育を締めるか、別業界へ移る。連続時間軸スケジューラ#142残り・系譜#281 の大型も観測継続。

試す

まだ alpha。直近で作った ScheduleGrid と Badge icon が翌ラウンドで全部再利用され、Grid のレスポンシブ列を3回ルールで反映した回。

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

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

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

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

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

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