#65スコア 4/5製造

AI に検査成績書を作らせてみた — 臨床ラボの「基準値判定」が、製造の「公差判定」にそのまま化けた(やってみた #65)

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

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

解説記事

AI に検査成績書を作らせてみた — 臨床ラボの「基準値判定」が、製造の「公差判定」にそのまま化けた(やってみた #65)

やってみたシリーズ: 自作のデザインシステム @gunjo/ui群青)を、文脈ゼロの cold な AI に実 UI で作らせる連載。製造2枚目——品質検査 / 検査成績書(ロット検査 × 測定値 vs 公差 × 工程能力 Cp/Cpk × 不良パレート × 判定・発行)。

製造の1枚目(#64 生産工程進捗)に続き、2枚目は QC の核心——現場タブレットで寸法を測り、測定値を公差(上限 USL / 下限 LSL)に照らして合否を出し、検査成績書を発行する画面。

結果 — 4/5

tsc/build 緑・console 0・375px(現場ハンディ想定)・測定項目テーブル(規格中心/LSL/USL/実測/判定)・公差バンド判定(色だけに頼らない sr-only 付き)・Cpk 工程能力ゲージ・不良パレート・署名→ロック→是正追記。

今回の主役 — 臨床ラボの「基準値判定」が、製造の「公差判定」にそのまま化けた

血液検査の H/L 判定用に作った ReferenceValue(#56)を、製造の cold AI が公差判定にそのまま採用した:

ReferenceValue is a clinical lab component that bends almost perfectly to QC tolerance bands. Its ReferenceRange(low/high/criticalLow/criticalHigh) maps cleanly to LSL/USL, and labels let me override the medical "高値/低値" wording to "上限規格 外(NG)/下限規格 外(NG)" without touching internals. The exported pure flagValue() classifier drove the row's OK/NG verdict AND the value tone from one source of truth. The built-in sr-only flag means pass/fail never rides on colour alone — for free. The single biggest win.

臨床の「基準範囲 low/high・危険値 criticalLow/criticalHigh」と、製造の「規格 LSL/USL・限度見本」は同じ構造だった。flagValue() が pure 関数で export されているので、各セルの判定とテーブル行の OK/NG を1つの真実から駆動できた。他にも:

  • SignedRecord → 検査成績書の発行(看護記録/退院サマリ/不動産契約締結のために作った「下書き→署名→ロック→追記のみ」が、検査成績書の発行フローと法的に同じ形。摩擦ほぼゼロ)。
  • BarChart averageValue → パレートの 80% 線(平均線のつもりの破線を total×0.8 に流用=閾値線に)。
  • SegmentedGaugeCard targetValue → Cpk≥1.33 の目標マーカー

医療3業界で育てた ReferenceValue/SignedRecord が、製造QCで骨格そのまま効いた。

src で直した穴 — Meter に「higher-is-better+目標マーカー」(3回目で build)

  • 🟠→✅ Meter の方向が一方向だった。Meter のトーンは「満杯=悪」(容量/負荷向け)。だが 入居率(#60)・稼働率/良品率(#64)・Cpk工程能力(#65)は全部 higher-is-better(目標に届けば success)。cold AI は毎回 tone を手で上書きしていた。同じ穴を3回手当てしたので3回ルールで build(#256PR #272):

    • direction="higher-is-better": 目標以上=success・目標の9割まで=warning・それ未満=destructive
    • target: トラック上に目標マーカー線を描画(higher-is-better では自動トーンも駆動・既定方向では SLA 下限などの視覚参照)。
    • aria-valuetext で目標を読み上げ、マーカーは aria-hidden(色のみに依存しない)。

    これで入居率・稼働率・良品率・Cpk が <Meter direction="higher-is-better" target={...} /> 一行になった。

起票だけ / 再確認

  • 🟠 ParetoChart が2回目(#64 不良要因+#65 不良パレート・#270)。累積%曲線がどの部品でも引けない(BarChart 単系列・第2軸/折れ線オーバーレイ無)。ComboChart/二軸が無い。あと1回で build。
  • 🟡 工程能力ゲージ(針+目標線+符号付き軸)#274・1回目)。#256 は線形 Meter に target を足したが、Cpk は負値になり得る(規格外 = Cpk −0.26)。0–max のアークもクランプ。針式ダイヤル+符号付き軸は別primitive。
  • 🟡 RadioGroupItem が <fieldset disabled> 配下で aria-disabled を出さない#273)。クリックは塞がるが SR 向けに「無効」が伝わらず tab 順にも残る。disabled 明示で回避。

docs デプロイ遅延が露呈

cold AI が「ReferenceValue と Meter が gunjo.jp のナビに無い(404)」と報告。調べると live の gunjo.jp が6/23正午頃から未デプロイで、直近2日の新部品(Delta/Meter/ReferenceValue/RouteStops/ScanInput/ScanGate/SafetyBanner/CoSign/SignedRecord)が全部 live で 404 だった。コードもナビ登録も正しく、手動 vercel --prod の再デプロイ待ち。cold AI が node_modules の型を読むしかなかった真因はこれ。実ユーザーも同じく発見できない状態なので、再デプロイは優先。

学び — 「値 vs 範囲」は、検査値でも公差でも同じ判定

臨床の基準範囲(low/high・危険値 criticalLow/criticalHigh) → 製造の公差(LSL/USL・限度見本)
医療/不動産の署名記録(署名→ロック→追記のみ) → 製造の検査成績書発行
不動産の入居率メーター(higher-is-better) → 製造の稼働率/Cpk メーター(同じ)

ReferenceValue は血液検査の H/L 判定のために作ったが、その骨格(測定値を範囲に照らして旗を立てる)は製造の公差判定にそのまま効いた。flagValue() を pure 関数で出していたから、テーブルの行判定まで同じ真実で駆動できた。医療/物流/金融/会計/不動産/製造の6業界で、育てた primitive が横断することをさらに実証。Meter の higher-is-better は3回ルールで land、パレートは2回目、Cpkダイヤルは1回目——製造特有の可視化はこれから育てる。

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

  • 製造をもう1枚(設備保全/OEE ダッシュボード or トレーサビリティ)でパレート#270 を3回目=buildへ。1業界3〜5枚で製造の判断を立体化。

試す

まだ alpha。臨床の基準値判定が製造の公差判定にそのまま化け、入居率メーターが Cpk ゲージになった回。


<!-- 公開前: 相互URL差込/スクショ確定/EN(dev.to)ミラー/live再デプロイ後にナビ404解消を確認 -->

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

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

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

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