vc_005 · Degenerate label
Status: ✓ Passing · Last run: 2026-06-04T23:39:20 · Pipeline: v2
· History: 6/7 runs passed (86%)
What was tested
Target column is constant (all zeros). The pipeline must halt at label verification with a 'single-class' diagnostic rather than silently producing a meaningless model. This is the safety-floor case — the product's "no silently broken outputs" guarantee depends on this halt firing.
What we planted in the data
- 1,000 entities
- Signal strength: 0.50 (sigmoid slope multiplier)
What the system did
- Training rows built: 1,000
What we checked — all assertions passed
| Status | Assertion | Detail |
|---|---|---|
| ✓ | pipeline_halted_with |
halted with text containing 'single-class': "RuntimeError: label verification failed: single-class label (pos=0, neg=1000) — labeling is … |
| ✓ | no_model_produced |
no model produced — pipeline correctly refused to train |
How this could have gone wrong
- If
pipeline_halted_withfailed: The pipeline must surface a 'single-class' diagnostic and refuse to train. The halt is a feature, not a bug — it's the safety floor from the panel/leakage fixes that prevents silent training on degenerate labels. - If
no_model_producedfailed: No ModelArtifact should be produced — pipeline correctly refused to train. Pairs with pipeline_halted_with so a hypothetical bug that halts AND produces a stale model wouldn't slip through.
Why this case matters
Tests the safety floor. When data has a degenerate target, the system must surface the diagnostic loudly rather than producing a model the customer would mistake for a real prediction. Part of the broader "fail loud, never silently wrong" property the validation report publishes.
Reproducing
# from auto_insight_api/
python -m validation.v2 run vc_005 --pipeline v2 -v
- Case config:
validation/v2/cases/05_degenerate_label.yaml - Data shape:
degenerate_label - Analytics type:
ml_binary