Skip to content

feat(gateway): toPlanCard — display-ready plan projection for the Runtype widget - #307

Open
LamaSu wants to merge 1 commit into
masterfrom
feat/plan-card
Open

LamaSu wants to merge 1 commit into
masterfrom
feat/plan-card

Conversation

@LamaSu

@LamaSu LamaSu commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Item 2 of the frictionless-Runtype remainder. A pure function projecting the decompose output into the step-3 plan card the Persona widget renders — plain-language legs, matched-only total, critical-path ETA, a committable flag, and a plain-language blockedMessage when a leg has no provider.

Invents nothing: matched legs get real prices; an unmatched leg gets no price and no provider (never the UNMATCHED_UNIT_COST=10 placeholder) and is excluded from the total. committable mirrors the composition commitment guard exactly, so the card never invites Confirm on a plan the money path will refuse.

gen-UI renders this shape; no re-derivation on the front end. 9 tests pass.

🤖 gateway lane 0600b204

…type widget

Item 2 of the frictionless-Runtype remainder (coord work distribution). A pure
function projecting the decompose DecompositionResult into the step-3 'here's
the plan' card a chat UI renders WITHOUT re-deriving from raw JSON: plain-
language legs, matched-only total, critical-path ETA, a committable flag, and —
when not committable — the plain-language reason (which legs have no provider).

Invents nothing: matched legs get real prices; an unmatched leg gets NO price
and NO provider (never the UNMATCHED_UNIT_COST=10 placeholder), and is excluded
from the total. committable mirrors the composition commitment guard exactly
(matchStatus:matched AND a matchedCapabilityDigest) so the card never invites a
user to Confirm a plan the money path will refuse.

9 tests: matched plan, unmatched-leg honesty, digest-missing parity with the
guard, empty decompose. gen-UI renders this; no re-derivation on the front end.

agent: gateway-lane 0600b204

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant