#71スコア 4/5教育

AI に成績管理を作らせてみた — 昨日作ったコンポーネントが「見つからなくて」作り直されかけた(やってみた #71)

ルート: /gradebook
デスクトップ表示
モバイル表示

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

解説記事

AI に成績管理を作らせてみた — 昨日作ったコンポーネントが「見つからなくて」作り直されかけた(やってみた #71)

⁠やってみたシリーズ⁠: 自作のデザインシステム @gunjo/ui群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。⁠教育2枚目⁠——⁠成績管理 / 通知表⁠(生徒×教科マトリクス × 観点別評価 × 評定vs基準 × 成績分布 × 確定ロック)。

教育の2枚目は成績管理。生徒×教科のマトリクスに点数を並べ、赤点・基準未達を判定する画面。そして⁠「作ったコンポーネントが見つからない=無いのと同じ」⁠という、デザインシステムで一番怖い学びが出た回。

結果 — 4/5

tsc/build 緑・console 0・375px・生徒×教科マトリクス・観点別A/B/C→評定・得点vs合格基準メーター・成績分布・確定ロック・個人通知表。

今回の一番の学び — 昨日作った ScheduleGrid が「見つからなかった」

予備知識ゼロの AI は生徒×教科マトリクス(行=生徒・列=教科・リッチなセル)にコンポーネントを探し、こう言った:

⁠固定ヘッダ・固定した先頭列・任意のセル描画を備えた本物の「DataGrid / マトリクス」こそ、最も価値ある欠けているコンポーネントだ。⁠

——だが⁠それは前回(#70)で作ったばかりの ScheduleGrid そのもの⁠だった。行×列の軸・固定した第1列・固定ヘッダ・任意のセル描画・セルごとの tone(赤点=destructive)・onSelect(編集)——成績マトリクスに1:1で対応する。なのに予備知識ゼロの AI は見つけられなかった。⁠理由は説明の枠づけ⁠:ScheduleGrid の JSDoc/説明を「時間割用・periods×days」と⁠狭く書きすぎた⁠から。

⁠コンポーネントは在るのに見つからない=無いのと同じ。⁠ これはデザインシステムの怖い失敗の形だ。前回作ったコンポーネントが、その翌日・別画面で必要とされたのに、命名と説明が狭くて見つけてもらえなかった。

直し — ScheduleGrid を「汎用の2次元マトリクスグリッド」に説明し直す

コンポーネントを作り直すのではなく、⁠説明を直した⁠#142PR #290):

  • JSDoc(予備知識ゼロの AI が node_modules で読む)+ 合成 spec の description(docs/gunjo.jp を駆動)を、「行×列のリッチなセル・マトリクスグリッド——⁠時間割・成績表・シフト表・比較/コホート行列・空き枠/予約グリッド⁠」に拡張。
  • DataTable(ソート可能リスト)/HeatmapChart(色で値)との使い分けも明記。

挙動・API は無変更。⁠「在るのに見つからない」を、説明の枠を広げて解消する⁠——設計を一元管理(spec→メタ→docs)。

業界越えはここでも主役

  • ReferenceValue(医療ラボの基準値判定)→ ⁠得点 vs 合格基準/平均⁠「いちばんの見どころ、そのまま動く」。criticalLow=合格基準-1→赤いLLチップ→「赤点」・low=クラス平均→琥珀L→「要観察」。アイコン+コード+常時 sr-only で⁠赤点が赤だけに乗らない⁠labels で医療語を上書き。低い=悪い の反転も API が最初から対応。
  • Meter direction="higher-is-better"+target → 得点 vs 合格基準(target=合格ライン marker)。⁠また業界越え⁠(医療/物流/不動産/製造/教育…連続)。
  • DistributionBar→成績分布(赤点band=destructive)。

課題に記録だけ

  • 🟡 ⁠ReferenceValue に「良」の肯定ハイライトが無い⁠(合格/平均超えに success チップが欲しい・現状は異常時のみ tone・#291・1回目)。+ 「高い=悪い」既定+高値/低値ラベルが、医療以外の文脈で誤解を招くハマりどころ(labels で回避できるが初手で間違える)。

学び — 命名と説明の枠が「再利用されるか」を決める

#70 で「3回出た欠落からコンポーネントを作」った。だが #71 は、⁠作っただけでは足りない⁠ことを示した——⁠そのコンポーネントが"発見"されるかは、命名と説明の広さで決まる⁠。ScheduleGrid は機能的に成績マトリクスを賄えたのに、「Schedule=時間割」の枠で説明したせいで、翌日の予備知識ゼロの AI に見つけてもらえなかった。デザインシステムの価値は「正しいコンポーネントが在る」だけでなく「⁠正しいコンポーネントが見つかる⁠」こと。今回それを説明の枠を広げて直した。皮肉にも、これは予備知識ゼロの AI に作らせるテストだからこそ炙り出せた——予備知識ゼロの利用者が「探して見つけられるか」を毎回試すから。

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

  • ⁠教育をもう1枚⁠(出席管理 or 学習進捗LMS)で3枚目。広げた ScheduleGrid が今度こそ別マトリクスで発見・採用されるかも観測。

試す

まだ alpha。昨日作ったコンポーネントが「見つからず」作り直されかけ、命名の大切さを説明の枠を広げて直した回。

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

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

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

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

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

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