#71スコア 4/5教育

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

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

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

解説記事

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

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。教育2枚目——成績管理 / 通知表(生徒×教科マトリクス × 観点別評価 × 評定vs基準 × 成績分布 × 確定ロック)。

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

結果 — 4/5

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

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

cold AI は生徒×教科マトリクス(行=生徒・列=教科・リッチなセル)に部品を探し、こう言った:

a real "DataGrid / matrix" with sticky headers, a frozen first column, and arbitrary cell renderers is the single most valuable missing component.

——だがそれは前回(#70)で作ったばかりの ScheduleGrid そのものだった。行×列の軸・固定первый列・sticky ヘッダ・任意セルレンダラ・per-cell tone(赤点=destructive)・onSelect(編集)——成績マトリクスに1:1で対応する。なのに cold AI は見つけられなかった。理由は framing:ScheduleGrid の JSDoc/説明を「時間割用・periods×days」と狭く書きすぎたから。

部品は在るのに見つからない=無いのと同じ。 これはデザインシステムの怖い失敗モードだ。前回 build した primitive が、その翌日・別画面で必要とされたのに、命名と説明が狭くて発見されなかった。

直し — ScheduleGrid を「汎用2Dマトリクスグリッド」に再 framing

部品を作り直すのではなく、説明を直した#142PR #290):

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

挙動・API は無変更。「在るのに見つからない」を framing で解消する——SSOT完結(spec→メタ→docs)。

越境はここでも主役

  • ReferenceValue(医療ラボの基準値判定)→ 得点 vs 合格基準/平均「the standout, out of the box」。criticalLow=合格基準-1→赤いLLチップ→「赤点」・low=クラス平均→琥珀L→「要観察」。アイコン+コード+常時 sr-only で赤点が赤だけに乗らないlabels で医療語上書き。LOW=bad の反転も API がネイティブ対応。
  • Meter direction="higher-is-better"+target → 得点 vs 合格基準(target=合格ライン marker)。また越境(医療/物流/不動産/製造/教育…連続)。
  • DistributionBar→成績分布(赤点band=destructive)。

起票だけ

  • 🟡 ReferenceValue に「良」肯定ハイライト無(合格/平均超えに success チップが欲しい・現状は異常時のみ tone・#291・1回目)。+ high=bad 既定+高値/低値ラベルが非医療文脈で誤誘導する footgun(labels で回避可だが初手で間違える)。

学び — 命名と framing が「再利用されるか」を決める

#70 で「3回出た穴を build」した。だが #71 は、build しただけでは足りないことを示した——その primitive が"発見"されるかは、命名と説明の広さで決まる。ScheduleGrid は機能的に成績マトリクスを賄えたのに、「Schedule=時間割」の枠で説明したせいで、翌日の cold AI に見つけてもらえなかった。デザインシステムの価値は「正しい部品が在る」だけでなく「正しい部品が見つかる」こと。今回それを framing の拡張で直した。皮肉にも、これは cold-test だからこそ炙り出せた——文脈ゼロの利用者が「探して見つけられるか」を毎回試すから。

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

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

試す

まだ alpha。昨日作った部品が「見つからず」作り直されかけ、命名の大切さを framing 拡張で直した回。


<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー -->

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

この画面のソースが直接 import している部品です。

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

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