When one function has direct and indirect paths, both must produce the same result
Aliases: dual-path consistency · hybrid interface · operation contract
What it is
Hybrid interfaces often offer drag/select together with filters, commands, or scripts. Users assume these are two ways to invoke one capability: the same objects, parameters, and state changes. If the paths write different logs, trigger different validations, or produce different ordering and permissions, the mixed interaction becomes unpredictable rather than convenient.
Why it happens
The paths often come from different components and historical implementations: direct manipulation keeps local state, the command layer reconstructs a query, and automation batches data. Without a shared operation contract, defaults, time base, permission checks, ordering rules, and failure handling diverge. Users may verify with direct manipulation and then run a script, or inspect a command result back on the canvas; any divergence breaks transferred trust and makes it hard to know which path is the source of truth.
Studying it
Construct an equivalent-task matrix: perform the same operation through direct, command, rule, and automation paths, then compare resulting objects, timestamps, logs, notifications, permissions, and undo effects. Measure users’ predictions of equivalence, order of mixed use, duplicate-operation rate, and conflict recovery. Pay special attention to boundaries: empty sets, concurrent edits, time zones, rounding, and half-failed batches.
Where it stops holding
Consistency does not require identical interfaces. An indirect path may show a summary, scheduled execution, or permission-limited version, but the final data effect and traceability must be explicitly equivalent—or explicitly not equivalent. Some automation delays or batches writes for performance; that must be visible to users, or the two entry points should not be called paths to the same function.
Applying it
- Define a contract for every hybrid operation: input objects, parameters, defaults, time base, permissions, output, log events, and failure semantics.
- Put business rules in a shared service layer called by direct, command, and automation entries; interfaces only express them.
- Provide path-switching views: a dragged selection becomes editable conditions, and command results highlight the corresponding objects on canvas.
- Test three scenarios—direct action then script, script edit then canvas undo, and concurrent editing—to verify there is no duplication or silent overwrite.
Related
- Same group: B2.26.1 Direct manipulation lowers the threshold for expression but struggles with batch, conditional, and repeated actions · B2.26.2 Indirect commands and syntax are reusable and automatable, but must be learned first · B2.26.3 Frequent precise single-object operations fit direct manipulation; infrequent batch operations fit indirection
- Nearby: B2.06 Feedback · L3 Intelligent System Interaction
- Search terms:
mixed-initiative interaction·operation equivalence·shared service layer
Cards in the same group
- B2.26.1Direct manipulation lowers the threshold for expression but struggles with batch, conditional, and repeated actions
- B2.26.2Indirect commands and syntax are reusable and automatable, but must be learned first
- B2.26.3Frequent precise single-object operations fit direct manipulation; infrequent batch operations fit indirection