Task visual · Ingredient correction
Correct an ingredient without leaving the recipe.
The full ingredient list remains visible. A flagged row opens one compact, culinary chooser. Choosing an option saves immediately, recalculates, and returns the chef to the same list position.
Interaction rule: tap the ingredient once, then tap the intended interpretation once. No separate Select and Confirm steps.
Chef flow
One correction, four visible states.
1. Tap the flagged rowAttention rows stay at the top of the complete Seafood Paella ingredient list.
2. Choose the meaningShow package or culinary interpretations—not vendors, internal identities, or raw conversion paths.
3. Recalculate onceThe selection commits immediately and triggers one deterministic cost computation.
4. Return with a receiptRestore the same list position, show the changed row, and keep Undo available.
Product target · full list · D4 merged, Gate B pending
Recipe review
Seafood Paella
Ready to add with open items.
$2.54+ known ingredient cost / servingPricing guidance policy pending · yield 6
Ingredients2 priced · 3 decisions · 8 other open
! changes result✓ costed— open
The chef sees the entire recipe before correcting anything. The attention mark is also the direct entry point; there is no intermediate detail page.
Product target · contextual chooser · D4 merged, Gate B pending
Recipe review
Seafood Paella
2 priced · 3 decisions · 8 other open
Clarify an ingredient
What kind of seafood stock?
This changes how 6 cups are costed. Choose the form used in this recipe.
Choosing an option saves immediately. No second confirmation.
The chef chooses the culinary meaning. Product names, vendor rows, tenant identities, and conversion equations remain evidence behind the decision—not options on this screen.
D4 merged · receipt and Undo · Gate B pending
Recipe review
Seafood Paella
Ready to add with open items.
Seafood stock updated
Recipe cost recalculatedShow the exact before, after, and difference only when returned by the deterministic engine.
Ingredients3 priced · 2 decisions · 8 other open
! changes result✓ costed— open
Saffron threads · 1 pinch!
Frozen peas · 1 cup!
Bomba rice · 2 cups—
Large shrimp · 1 lb—
Mussels · 1 lb—
Calamari · 0.5 lb✓
Yellow onion · 1 each—
The chef lands where they started. The changed row remains visible, the next attention item is nearby, and Undo restores the prior row, cost, decision count, and remembered scope. If the chosen meaning still lacks eligible price evidence, the row becomes matched-but-uncostable rather than falsely costed.
Something else
Keep the escape hatch in context.
Search chef languageLet the chef type a culinary term or product description. Results still group into meaningful interpretations before exposing a trade item.
Enter a priceIf the right ingredient has no eligible price, allow the chef to state the price and package. The line remains honestly attributed to chef-stated evidence.
Add a sub-recipeFor house-made stock, link an existing recipe or start a sub-recipe. Do not pretend a purchased market benchmark represents a kitchen-made component.
Leave it openThe chef can dismiss the chooser. The line remains open or assumed, retains its evidence state, and is never silently converted to $0.00.
Implementation contract
The write, recost, memory, and Undo are one event.
Chooser inputStable recipe, content-version, and line references; current presentation state; culinary decision type; eligible options with stable option IDs.
Commit responseSelected interpretation, refreshed line state, canonical projection reference, receipt/event ID, memory scope, and next material attention item.
Money responseBefore cost, after cost, and exact delta come only from the deterministic engine. If unavailable, show “Recipe cost recalculated” without inventing a number.
One choice, one writeThe option tap commits immediately and performs exactly one deterministic computation. The client does not recalculate money or require a second confirmation.
Same-scroll returnStore the list scroll offset and focused line before the overlay opens. Restore both after success or Undo.
Memory is visibleDefault the choice to this recipe/session. If the chef explicitly remembers it for the kitchen, echo that scope in the receipt and include it in Undo.
Fail closedReject foreign-tenant or stale options before mutation. If recosting fails, preserve the prior line and projection, show the failure, and offer retry—never display invented economics.