Failure taxonomy
Two categories below pass and still fail, on and on . That is the empirical case for the vector: a scalar pass bit files both under success.
Which question this taxonomy answers
Section titled “Which question this taxonomy answers”There is more than one thing a failure taxonomy can be a taxonomy of, and conflating them is how two incompatible vocabularies end up in one report.
| Axis | Answers | Assigned by |
|---|---|---|
| This page | How did the run fail, as a behavior | A rule over the trace |
| Verdict attribution | Which scoring condition the judge found violated | The judge, per condition |
| Scoring unavailability | Why a score could not be produced at all | The envelope, as an abstention cause |
These are orthogonal. A run can carry a category from this page, an attribution from the judge, and an abstention cause, all at once, and none of them substitutes for another. A count of one axis is not a count of another, and pooling them produces a total that means nothing.
Categories by dimension
Section titled “Categories by dimension”Thirteen categories, each landing on exactly one dimension. Nine land on , the expected shape: most ways to fail a task are ways to not finish it.
| Category | Dimension | Condition |
|---|---|---|
| Stuck on a picker, never confirmed | A selection control was opened, no choice confirmed | |
| Item in cart, never checked out | Target added, checkout or save step absent | |
| Wrong date or time set | Terminal value violates the task’s temporal constraint | |
| Wrong target or item selected | Action applied to the wrong photo, item, person, or option | |
| Action not committed | Correct state reached, no final save, confirm, or send | |
| Filter or sort not applied | Requested constraint absent from the terminal list state | |
| Never left the initial screen | No meaningful progress off the start state | |
| Partial completion | At least one required sub-step skipped | |
| Misunderstood the task | Pursued goal does not match the requested one | |
| Extra or unsolicited action | An action the task did not call for | |
| Navigation loop, control not found | Cycles between screens without locating the control | |
| Passed but repetitive | passes, avoidable repetition on the path | |
| Passed but unconfirmed payment | passes, required confirmation skipped |
A rule-based trajectory classifier
Section titled “A rule-based trajectory classifier”Worked example of the second approach, on a touch interface. Three signals per failing run: terminal action verb , agent step count , and the largest tap cluster , taken over tap actions quantized onto a 40-pixel grid:
Let be the finish verbs, message_user, needs_confirmation, need_login_details the handoff verbs, and the step ceiling. The category is the first rule that fires in priority order:
| Fires when | |
|---|---|
repeated_tap_finish | and |
premature_finish | and |
wrong_state_finish | and neither rule above fires |
step_limit_timeout | and |
stuck_handoff | |
other_mixed | and |
‘s threshold, the premature ceiling, and are tuned parameters of the rule, exposed as settings rather than fixed to one dataset.
Two categories are residual by construction, wrong_state_finish and other_mixed, both defined as the complement of the rules beside them. The trajectory alone cannot pin the mechanism there.
Named gap. The order is pinned only for those two. Whether repeated_tap_finish precedes premature_finish, or step_limit_timeout precedes stuck_handoff, is unspecified, so is not well defined for a trace satisfying two conditions at once. Closing it means fixing the order in the specification, not reading it off one implementation.
Density clustering
Section titled “Density clustering”research method Surfaces anomalous traces for inspection. Not the method of record for either taxonomy above.
Clusters runs by plus features of the score sequence rather than by verb. OPTICS gives a density-reachability ordering rather than a partition, which is what makes it usable when the right number of clusters is unknown and the density varies across the space (Ankerst et al. 1999). Hierarchical density-based clustering, which HDBSCAN implements, then extracts clusters with explicit noise handling, so an unassignable run is marked noise rather than forced to the nearest cluster (Campello, Moulavi and Sander 2013). Noise handling is the property that matters here: a taxonomy that assigns every run to some cluster cannot tell you it has met a failure it has no category for. A diversity filter samples each cluster’s spread, not its centroid. Matched filters cross-correlate a trace’s score sequence against a registered known-bad template, detecting a pattern shifted in time:
Spectral band power, the real FFT of each per-dimension sequence, exposes periodic looping that a mean over the sequence flattens away.
Embeddings are over semantic state, not pixels: two screens can be near-identical in pixel space and far apart in meaning.
The diversity filter feeds a paraphrase mutator. A centroid seed yields near-duplicate restatements; a spread seed yields a distinct trace family. Coverage comes from the edges.
References
Section titled “References”| Work | Bears on |
|---|---|
| Ankerst, M., Breunig, M. M., Kriegel, H.-P. and Sander, J. (1999). OPTICS: ordering points to identify the clustering structure. ACM SIGMOD Record 28, 49-60. DOI | Density-reachability ordering when cluster count and density are unknown |
| Campello, R. J. G. B., Moulavi, D. and Sander, J. (2013). Density-based clustering based on hierarchical density estimates. Advances in Knowledge Discovery and Data Mining (PAKDD), 160-172. DOI | Hierarchical density clustering with explicit noise, the basis of HDBSCAN |