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
Privacy boundary
Public interaction-contract leaf. No real data.
The defect
references/interaction-delivery.mdandreferences/data-contract.mdspecifywhat 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.mdstates the rule above, and names thecash-anchor ask and the custom-rule ask as instances of it.
question_presentedmode for a value-bearing ask isplain_textregardless of declared host capability, so a receipt cannot claim an
interactive control that could not have carried the answer.
native_optionsis a finding, not apass.
Non-goals
there and are the better experience.
conversion algebra.
Related