# Failure Taxonomy

A controlled vocabulary for labelling *why* a run lost points. Apply one or more labels to each run whose dimension score is below 3. Use the codes in `run.md` and in `results/scores.csv` (`failure_labels`, semicolon-separated).

Add new labels only when no existing one fits; record the addition in the changelog at the bottom.

## Visual perception (VP)

| Code | Label | Description |
|---|---|---|
| VP-01 | Missed modal | Did not notice a dialog, pop-up or splash blocking input |
| VP-02 | Wrong control | Clicked a visually similar but incorrect button, tab or icon |
| VP-03 | Wrong object | Mis-identified which object in the viewport is the target |
| VP-04 | State blindness | Failed to read current mode, active tool, selection or layer state |
| VP-05 | Small-target miss | Could not resolve a small control (gizmo handle, tree arrow, checkbox) |
| VP-06 | Text misread | Misread a label, value, unit or tooltip |
| VP-07 | Panel not found | Could not locate a panel, menu or property that was on screen or one click away |

## Spatial reasoning (SR)

| Code | Label | Description |
|---|---|---|
| SR-01 | Axis confusion | Moved, rotated or scaled along the wrong axis |
| SR-02 | Depth error | Misjudged which object is in front; selected or placed at wrong depth |
| SR-03 | Navigation oscillation | Repeated orbit/pan/zoom without converging on the target framing |
| SR-04 | Scale misjudgement | Object sized or placed at the wrong order of magnitude |
| SR-05 | View mismatch | Acted as if in a different view (e.g. treated perspective as orthographic) |
| SR-06 | Occlusion failure | Did not reorient to reveal a hidden target |
| SR-07 | Lost orientation | Could not recover a usable view after navigation |

## Action execution (AE)

| Code | Label | Description |
|---|---|---|
| AE-01 | Off-target click | Click landed near but not on the intended target |
| AE-02 | Drag failure | Drag started, ended or travelled incorrectly |
| AE-03 | Wrong input value | Typed an incorrect number, unit or name |
| AE-04 | Sequence error | Correct actions in the wrong order (e.g. value before selecting field) |
| AE-05 | Shortcut misuse | Used a wrong or non-existent keyboard shortcut |
| AE-06 | Premature done | Declared completion before the task was complete |
| AE-07 | Unintended side effect | Action changed something else (moved another object, changed a setting) |
| AE-08 | Non-GUI escape | Used a scripting console, API or macro instead of the GUI |

## Error recovery (ER)

| Code | Label | Description |
|---|---|---|
| ER-01 | Unnoticed error | Did not detect that an action failed or misfired |
| ER-02 | Wrong diagnosis | Noticed something was wrong but misattributed the cause |
| ER-03 | No undo | Did not use undo when it was the obvious fix |
| ER-04 | Loop | Repeated the same failing action three or more times |
| ER-05 | Escalation | Recovery attempt made the state worse |
| ER-06 | False success | Declared success in a verifiably failed state |
| ER-07 | Gave up | Stopped without completing and without a clear reason |

## Execution efficiency (EE)

| Code | Label | Description |
|---|---|---|
| EE-01 | Redundant verification | Excess steps re-checking state that had not changed |
| EE-02 | Long route | Used a menu path when a direct control or shortcut was visible |
| EE-03 | Exploratory wandering | Opened unrelated menus or panels before finding the right one |
| EE-04 | Step limit | Hit the task's maximum step count |
| EE-05 | Time limit | Hit the task's maximum duration |

## Environment (ENV) — not the agent's fault, but must be recorded

| Code | Label | Description |
|---|---|---|
| ENV-01 | Application crash | Application closed or froze |
| ENV-02 | Unexpected dialog | Licence, update or telemetry prompt not specified in the task card |
| ENV-03 | Operator error | The person running the study made a mistake; run is void |
| ENV-04 | Agent service error | Provider timeout or outage; run is void |

Runs labelled ENV-03 or ENV-04 are kept for transparency but excluded from `results/`.

---

## Changelog

- 0.1 (2026-10-08) — initial vocabulary
