Skip to content

[design·process] Cash-anchor ask has no format contract — a percentage answer needs three round-trips to resolve #662

Description

@atomchung

Trigger

/fomo-qa dogfood today (2026-07-31, main@e58fef9, mock persona sample_ai_holder, first_review, zh-TW) hit real friction at the cash-anchor ask (input.cash_anchor.status: "absent" → step 6's "what's your current cash balance" question). The user's first answer to "現在的現金餘額(USD 數字)" was 30% — not a dollar amount. A first clarification round re-stated "這題要的是實際美元數字,不是百分比" and got a second still-ambiguous answer (30% 部位是美元). A third, more constrained multiple-choice clarification was needed before the user's actual intent surfaced: cash is roughly 30% of the current position market value, not a literal $30.

Three question/answer round-trips to resolve one pre-card input is exactly the friction #357 and #507 are trying to keep out of this beat — it happened on the one input this product still asks as free-form prose rather than a structured contract, and it burned turns on a mock persona where nothing was actually at stake.

Why this is a wording/contract gap, not user error

The prompt asks for "current cash balance" but portfolio apps commonly express cash both ways — an absolute balance, or a percentage of total account value ("30% cash") — and nothing in the ask disambiguates which one is wanted or offers the second as a first-class path. A user thinking in percentage terms (which is a completely normal way to reason about an account) has no signal that the field wants dollars until they get corrected.

Proposal (for discussion, not decided)

At the cash-anchor ask (flows/first-review.md step 6 / flows/weekly-review.md equivalent), do one of:

  1. Wording fix only: make the ask explicit that it wants an absolute currency amount, with a short example in the same sentence (e.g. "現在的現金餘額大概是多少(美元金額,例如 8000;不是百分比)"). Cheapest, no schema change.
  2. Accept both, convert to a stored amount: let the user answer either an absolute amount or "N% of the current position value," and have the agent (or a small engine helper) compute the dollar figure from the already-known position market value before calling add-cash — but the engine should own the arithmetic and disclose the derivation, not have the agent silently do unverified mental math.
  3. Leave it as free text but add one clarification turn to the fixed budget specifically for this ask, so a wrong-format answer doesn't have to compete with the question's normal max_clarifications.

Evidence

Mock-only session, no real account data. Session id and exact Q&A available in this dogfood's ux_receipt trace under the isolated dogfood coach root if needed for follow-up.

Privacy

No real trade data — mock persona sample_ai_holder.csv only.

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