Skip to content

[design·interaction·P2] A value-bearing ask rendered as native options loses the value — the cash anchor reopens #662's extra round trip on any options-capable host #774

Description

@atomchung

Privacy boundary

Public interaction-contract leaf. No real data.

The defect

references/interaction-delivery.md and references/data-contract.md specify
what the cash-anchor ask must say and disclose, but not which surface it may
be presented on. On a host with native interactive options, the natural rendering
of "give me your balance, or skip" is an options control — and an option can
carry a choice, never a payload.

Observed on a real walkthrough: the ask was presented as native options with a
"I'll give you the amount" choice. The user selected that option and typed the
number into the accompanying free-text field
. Only the option label reached the
agent; the typed value did not. A second round trip was needed to collect a
number the user had already supplied once.

Why this is a product-contract issue, not only a host quirk

#662 exists precisely to cap this ask at a single clarification round trip, and
did so for the percentage path. Rendering the same ask as options reintroduces
the extra round trip by construction, on every options-capable host, for the
absolute-amount path. The friction that was closed on one branch is open on the
other.

The same shape applies to any ask whose answer is a value rather than a
selection: the custom-rule text at the commitment beat has the identical
structure.

Proposed rule

An ask whose answer is a value — a cash amount, a percentage, a user-authored
rule — is presented as free text on every adapter, including hosts that have
native options. Native options are for asks whose answer set is closed.

A mixed presentation (options for the closed part, free text for the value) is
acceptable only if the value is collected in its own turn; offering "supply a
value" as an option is not.

Acceptance criteria

  • references/interaction-delivery.md states the rule above, and names the
    cash-anchor ask and the custom-rule ask as instances of it.
  • The receipt's question_presented mode for a value-bearing ask is plain_text
    regardless of declared host capability, so a receipt cannot claim an
    interactive control that could not have carried the answer.
  • A run that presents a value-bearing ask as native_options is a finding, not a
    pass.

Non-goals

  • Removing native options from asks with closed answer sets. They work correctly
    there and are the better experience.
  • Any change to what the cash ask discloses, or to the percent-of-total
    conversion algebra.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions