Cropwright — Labeling Loop

Cropwright — Labeling Loop A workflow diagram generated by Archify. 01 / Data in 02 / Curation 03 / Model lifecycle Ingest + assist Curate Ship a model Ingest · upload, batch or import · Data in › Ingest + assist Ingest upload, batch or import Cluster + VLM · clustering + VLM sweep · Data in › Ingest + assist Cluster + VLM clustering + VLM sweep Clusters · /clusters, /clusters/[id] · Curation › Curate Clusters /clusters, /clusters/[id] Review · /review queues · Curation › Curate Review /review queues Classes + Export · finalize + YOLO export · Curation › Ship a model Classes + Export finalize + YOLO export Train → Promote · train, bake-off, promote · Model lifecycle › Ship a model Train → Promote train, bake-off, promote frozen test split confirm / discard / move region-drain gate new-class proposals probe feeds Model Disagreements Legend User UI Agent logic Context / trace

The loop closes through the probe, not the export

  • • A promoted checkpoint's probe predictions populate probe_pred_* fields, which the Uncertainty and Model Disagreements review queues need
  • • Re-running auto_label after a promote is what actually surfaces the next cycle's high-signal candidates

Test-holdout crops never re-enter labeling

  • • test_holdout=true crops are filtered out at the API level — the UI never receives them, and the VLM/cluster auto-suggest can't touch them
  • • Export freezes the holdout by a deterministic SHA1-of-crop-id selection, not a client-picked seed

Every stage is thin on the frontend

  • • Clustering, scoring, purity, and promote-gate checks are all server-computed and rendered verbatim — the UI never re-derives a decision
  • • Bake-off's ranked results, mappings, and winners are entirely served, never computed client-side