UX-ML-003 — Make target and clustering modes explicit
| Field | Value |
|---|---|
| Status | Open product and UX finding; source-verified |
| Severity | Medium |
| Components | sparqd/oqullus, sparqd/agent-based-ml-platform |
| Associated issues | Not opened pending finding review |
Concrete observed case
Oqullus labels Target Column as optional. Selecting a target starts supervised classification or regression; leaving it empty does not infer a target and instead starts unsupervised clustering. The distinction is visible only as a None (Unsupervised) dropdown option and is not explained as the primary choice of workflow goal.
The backend also retains labeling in the no-target pipeline. On the normal
request path, the deterministic YAML generator receives no schema-column list
and emits the fallback rule 1 == 1 -> default_label. That scalar condition
does not produce the row mask expected by the Labeling agent. The agent records
the rule error internally, returns success with zero labels, and passes the data
through unchanged. Model Building later selects clustering and model validation
writes a separate result containing cluster. Showing Labeling as a successful,
meaningful pipeline stage is therefore misleading in this path.
Expected condition
Ask the user to choose the task before configuration:
- Predict an outcome requires a target and explains whether the resulting task is classification or regression.
- Discover groups requires no target, states that only numeric features are
used, and explains that clustering creates a
clusterresult.
The submitted request should carry an explicit task type instead of using a missing target as the mode switch. Pipeline progress should contain only stages that perform work. Labeling should appear only when rules or another real label creation operation are configured.
Why it matters
Optional normally implies that omitting a field preserves the same operation or allows the system to infer it. Here omission changes the ML problem entirely. Users can unintentionally train a clustering model, misunderstand its metrics, or wait for a Labeling stage that does not create anything.
Existing controls and workarounds
The target dropdown includes None (Unsupervised), and results identify the eventual learning and problem type. A knowledgeable user can deliberately leave the target empty for clustering. The distinction is not clear before the run, and the displayed stage plan remains inaccurate.
Alternatives considered
- Recommended: explicit Predict an outcome versus Discover groups task selection, with mode-specific fields, validation, help text, and stage plan.
- Keep one form but rename the field to Prediction target and add persistent no-target help. This is smaller but still encodes mode through omission.
- Automatically infer a target. Rejected because choosing what to predict is a user intent and governance decision, not a safe schema inference.
Component involvement
- Oqullus owns task selection, explanation, mode-specific validation, and the visible stage sequence.
- AutoML backend owns the explicit task contract and conditional workflow plan; it should not schedule Labeling when no labeling operation is configured.
Reproduction and verification
Follow ML-S015.
Resolution conditions
Close when users choose prediction or clustering explicitly before starting, the API records that intent, validation matches the chosen task, and every visible pipeline stage performs the operation its label describes.
Validation and blockers
The frontend request behavior, backend mode selection, clustering candidates,
and ineffective default Labeling behavior are source-verified. Backend claims
were reverified against
sparqd/agent-based-ml-platform@3112ee9f7e721a5ad730073bca26bbb755218dd3;
see the backend evidence map.
A representative no-target live run remains pending.