Complete fixture copy deck
cold-open.cue
This way in
walk.gate.explainer.v2
Name the blocking work, hand off the task, define what happens
next.
walk.forum.explainer.v4
State the default, target exceptions, make the governing terms
unambiguous.
walk.trust.explainer.v3
Reuse a trusted Buyer identity without another sign-in; every
request stays scoped and signed.
walk.maproom.explainer.v2
Virtual when you want it, physical when you need it — stores
became searchable.
walk.money.explainer.v3
Gift card, points, and card on one checkout; terms too — deposit
now, pay later.
walk.weighhouse.explainer.v2
Transact in any unit and precision — and when reality differs, it
settles provably.
walk.cartroom.explainer.v2
Capture purchase intent in a durable URL — QR it, text it, email
it; it opens filled.
walk.index.explainer.v1
Every improvement in the release, itemized, each linked to the
receipt behind it.
cold-open.title.1
The Manifest
cold-open.title.2
A Decade, Itemized
cold-open.title.4
The Ledger
cold-open.kicker
April → August 2026 · 142 commits · 263 files · 40 contributors ·
24 features, 14 breaking
cold-open.headline.v3a
88 improvements. Itemized.
cold-open.headline.v3b
Count what shipped since April.
cold-open.whisper.v3
A decade, itemized.
stop-b.skim.kicker
THE GATE · ACTIONS
stop-b.skim.headline.v3a
Name the next steps,
eliminate dead ends.
stop-b.cruise.common.label
ACTIONS: PAUSE → TASK → CONTINUE
stop-b.cruise.common.claim
An extension names the work blocking a flow, hands the Platform a
structured task, and defines what happens next.
stop-b.cruise.common.shape
actions[<type>] → [{ id, config? }]
stop-b.cruise.common.intro
Each entry names one occurrence of outstanding work.
stop-b.cruise.common.surface
Some Actions need no Buyer-facing surface. A concrete Action type
can ask the Platform to present one.
stop-b.cruise.common.anatomy.type
what kind of work
stop-b.cruise.common.anatomy.id
unique Action identifier
stop-b.cruise.common.anatomy.config
instructions owned by its extension
stop-b.cruise.common.body
The extension owns processing and fallback; the parent capability
owns the lifecycle.
stop-b.cruise.common.receipt
#582 · MERGED · 2026-07-22
stop-b.dive.artifact.label
PAYMENT AUTHENTICATION · 3-D SECURE (3DS)
stop-b.dive.artifact.title
Navigate the payment challenge. Then confirm the outcome.
stop-b.dive.artifact.body
Payment Authentication gives the Platform a Buyer-facing 3DS
surface. When it closes, Get Checkout returns the Business's
authoritative payment result.
stop-b.dive.artifact.key
dev.ucp.common.payment.three_ds_challenge
stop-b.dive.artifact.receipt
#458 · MERGED · 2026-08-04
stop-b.dive.artifact.stage.1
BUSINESS NAMES THE CHALLENGE
stop-b.dive.artifact.stage.2
3DS SURFACE → FINISH
stop-b.dive.artifact.stage.3
BUSINESS RETURNS THE OUTCOME
stop-b.dive.artifact.takeaway.1
Checkout cannot complete yet; the response names the 3DS work.
stop-b.dive.artifact.takeaway.2
The Platform renders the issuer challenge. Finishing that surface
does not prove payment succeeded.
stop-b.dive.artifact.takeaway.3
Get Checkout returns the Business's authoritative result.
stop-b.dive.control
OPEN 3DS
stop-b.dive.reconcile-control
GET CHECKOUT
stop-c.skim.kicker
POLICY FORUM · POLICIES[]
stop-c.skim.headline.v4a
Structured policies,
down to the item.
stop-c.cruise.common.label
POLICIES · OPEN CONTAINER
stop-c.cruise.common.claim
Every purchase can carry the terms that govern it — from
purchase-wide defaults to line-level resolution.
stop-c.cruise.common.shape
policies[] → [{ type, description, applies_to? }]
stop-c.cruise.common.intro
Each entry carries one typed policy with a human-readable
description.
stop-c.cruise.common.boundary
The container is universal. Understanding every custom policy type
is not.
stop-c.cruise.common.anatomy.type
open policy identifier
stop-c.cruise.common.anatomy.description
terms any Platform can present
stop-c.cruise.common.anatomy.applies-to
exact response targets; omitted means the whole response
stop-c.cruise.common.body
For same-type overlaps, the more specific target governs. It
replaces the broader policy; Platforms never merge their bodies.
stop-c.cruise.common.receipt
#572 · MERGED · 2026-07-23
stop-c.dive.artifact.label
RETURN POLICY · DEFAULT + ITEM OVERRIDE
stop-c.dive.artifact.title
Thirty-day returns — except for the engraved item.
stop-c.dive.artifact.body
One Checkout response carries its line items and the policies that
govern them.
stop-c.dive.artifact.key
dev.ucp.shopping.policy.return
stop-c.dive.artifact.explanation
applies_to uses JSONPath to point into the response. policies[0]
omits it, so its 30-day terms cover the whole Checkout response.
policies[1] targets $.line_items[1] — the Engraved Luggage Tag.
Because both policies have the same type and the second has a
narrower target, it replaces the default there: the Weekender Pack
keeps 30-day returns; the engraved tag is final sale. The policies
do not merge.
stop-d.skim.kicker
MONEY CHANGER · PAYMENT PRIMITIVES
stop-d.skim.headline.v3a
Split the payment.
Choose the terms.
stop-d.common.label
PAYMENT PRIMITIVES · WHAT PAYS / WHEN DUE
stop-d.common.axis-pays.label
WHAT PAYS?
stop-d.common.axis-pays.name
SPLIT PAYMENTS
stop-d.common.axis-pays.body
Defines which instruments can fund the checkout and what each one
contributed.
stop-d.common.axis-due.label
WHEN IS IT DUE?
stop-d.common.axis-due.name
PAYMENT TERMS
stop-d.common.axis-due.body
Defines how much is due, and when, across one or more payment
schedules.
stop-d.pays.label
WHAT PAYS? · SPLIT PAYMENTS
stop-d.pays.title
Allowed combination → ordered instruments → actual contributions
stop-d.pays.receipt
#409 · VIEW PR ↗
stop-d.pays.stage-rules.label
BUSINESS ALLOWS
stop-d.pays.stage-rules.path
allowed_combinations
stop-d.pays.stage-submit.label
BUYER ORDERS
stop-d.pays.stage-submit.path
payment.instruments[]
stop-d.pays.stage-result.label
BUSINESS REPORTS
stop-d.pays.stage-result.path
payment.instruments[].amount
stop-d.due.label
WHEN DUE? · PAYMENT TERMS
stop-d.due.title
Offered terms → Buyer selection → authoritative Checkout →
accepted term
stop-d.due.receipt
#602 · VIEW PR ↗
stop-d.due.stage-offer.label
BUSINESS OFFERS
stop-d.due.stage-offer.path
payment.terms[]
stop-d.due.stage-select.label
BUYER SELECTS
stop-d.due.stage-select.path
payment.selected_term_id
stop-d.due.stage-recompute.label
BUSINESS RETURNS
stop-d.due.stage-recompute.path
totals[] · messages[] · payment_handlers
stop-d.due.stage-order.label
ORDER REMEMBERS
stop-d.due.stage-order.path
payment.accepted_term
stop-e.skim.kicker
TRUST QUARTER · IDENTITY
stop-e.skim.headline.v3a
Know the agent.
Recognize the Buyer.
stop-e.cruise.card1.label
BUYER AUTHORIZATION
stop-e.cruise.card1.title
Choose a sign-in both support
stop-e.cruise.card1.body
The merchant advertises its OAuth options and commerce
permissions. The agent discovers the overlap and selects a
compatible path for the Buyer—either the merchant’s own sign-in or
a supported third-party provider. The resulting token is limited
to the selected permission.
stop-e.cruise.card2.label
AGENT AUTHENTICATION
stop-e.cruise.card2.title
One signature binds the agent to the transaction
stop-e.cruise.card2.body
The agent’s UCP profile doubles as a valid JWK Set. Web Bot Auth
interoperability lets the merchant use one RFC 9421 signature to
authenticate the agent and verify the integrity of the transaction
request.
stop-e.dive.artifact.label
IDENTITY · OAUTH + WEB BOT AUTH
stop-e.dive.artifact.key
dev.ucp.common.identity_linking · RFC 9421
stop-e.dive.artifact.title
Find a supported sign-in. Verify the agent.
stop-e.dive.artifact.body
Merchants publish the sign-in providers and commerce permissions
they support. Agents discover a compatible path for the Buyer.
stop-e.dive.profile.label
WHAT THIS MERCHANT SUPPORTS
stop-e.dive.profile.explanation
The merchant advertises its own OAuth service, supported
third-party sign-in providers, and available commerce permissions.
The agent discovers the options and selects a compatible path for
the Buyer.
stop-e.dive.request.label
END-TO-END REQUEST
stop-e.dive.request.title
Buyer authorized. Agent authenticated.
stop-e.dive.request.buyer
BUYER AUTHORIZATION
stop-e.dive.request.agent
AGENT AUTHENTICATION
stop-e.dive.request.payoff
One request carries both proofs: the OAuth token carries the
Buyer’s granted permission, while the RFC 9421 signature
authenticates the agent and covers the transaction request.
stop-f.skim.kicker
THE CART EXCHANGE · PERMALINKS
stop-f.skim.headline.v3a
Cart to URL.
URL to cart.
stop-f.rail.permalink.label
BROWSER-ADDRESSABLE SHOPPING INTENT
stop-f.rail.permalink.claim
Compress the entire shopping intent — items, quantities,
discounts, and more — into a URL or QR code.
stop-f.rail.permalink.travels.label
TRAVELS THROUGH
stop-f.rail.permalink.travels.channels
EMAIL · SMS · SOCIAL · ADS · LANDING PAGES · PRINT · PACKAGING ·
QR
stop-f.rail.permalink.shape
{endpoint}/{items}?{field_paths}
stop-f.rail.permalink.economy
One control parameter: continue_to. Zero shopping-state fields of
its own.
stop-f.rail.permalink.anatomy.endpoint
the absolute HTTPS browser endpoint declared by the Business
stop-f.rail.permalink.anatomy.items
purchasable item IDs paired with positive integer quantities
stop-f.rail.permalink.anatomy.field-path
recognized, applicable inputs in the Business’s active Cart or
Checkout schema, including active profiles and extensions
stop-f.rail.permalink.anatomy.continue-to
an untrusted same-origin path preference; the Business validates
and canonicalizes it, and it is never shopping state
stop-f.rail.permalink.receipt
#523 · MERGED · 2026-07-17
stop-f.artifact.label
TWO-ITEM PERMALINK · DECLARATIVE CART
stop-f.artifact.title
A declarative cart travels anywhere a URL can go.
stop-f.artifact.body
Preconfigure any cart. A click or tap becomes a fast path to a
purchase flow with shopping state already in place.
stop-f.artifact.key
dev.ucp.shopping.permalink
stop-f.artifact.endpoint.label
BUSINESS-DECLARED HTTPS ENDPOINT
stop-f.artifact.url.label
COMPLETE PERMALINK · ANNOTATED
stop-f.artifact.url.part.endpoint
BUSINESS ENDPOINT · WHERE THE URL BEGINS
stop-f.artifact.url.part.items
ITEMS + QUANTITIES · TWO COMPACT PAIRS
stop-f.artifact.url.part.field-path
SUPPORTED PREFILL INPUTS · DISCOUNT + POSTAL CODE
stop-f.artifact.url.part.continue-to
DESTINATION PREFERENCE · continue_to=/checkout
stop-f.artifact.url.prefill
Field paths can prefill any supported, permalink-safe Cart or
Checkout input, including inputs defined by active profiles and
extensions.
stop-f.artifact.playground.label
EXPLORE THE PERMALINK PLAYGROUND
stop-f.artifact.initialized.label
INITIALIZED CHECKOUT CREATE REQUEST · PARTIAL EXCERPT
stop-f.artifact.initialized.takeaway
Two compact item pairs become line items; supported field paths
place SAVE10 and postal code 94105 into the create request.
stop-f.artifact.initialized.disclosure
<>
stop-f.artifact.initialized.disclosure-label
View the full initialized Checkout create request
stop-f.artifact.opens.label
WHEN THE LINK OPENS
stop-f.artifact.opens.business-label
BUSINESS APPLIES THE INTENT
stop-f.artifact.opens.business
In this fixture, the Business validates the inputs and runs
Checkout create; the permalink itself does not require a durable
resource.
stop-f.artifact.opens.browser-label
BUYER LANDS READY
stop-f.artifact.opens.browser
The browser follows the Business’s redirect to the validated
/checkout destination.
stop-f.artifact.response.label
WIRE REDIRECT RECEIPT
stop-f.artifact.response.disclosure
<>
stop-f.artifact.response.disclosure-label
View the full wire redirect response
stop-map.skim.kicker
THE MAP ROOM · LOCATIONS
stop-map.skim.headline.v2a
The physical world,
unlocked.
stop-map.rail.search.label
SEARCH THE PHYSICAL WORLD
stop-map.rail.search.claim
Ask for a product, radius, opening time, and service. Get back
matching Locations.
stop-map.rail.search.step.request
SEARCH REQUEST
stop-map.rail.search.step.response
SEARCH RESPONSE
stop-map.rail.search.connector.match
match
stop-map.rail.search.value.request
distance + filters
stop-map.rail.search.value.response
locations[]
stop-map.rail.search.anatomy.distance
how far away?
stop-map.rail.search.anatomy.item
is the product there now?
stop-map.rail.search.anatomy.hours
is it open when you need it?
stop-map.rail.search.anatomy.amenities
what does the place offer?
stop-map.rail.search.body
Matching Locations include an ID, name, address, coordinates,
hours, timezone, and amenities.
stop-map.rail.journey.claim
Find where it's available. Choose where to pick it up.
stop-map.rail.journey.step.search
SEARCH RESPONSE
stop-map.rail.journey.step.request
CHECKOUT REQUEST
stop-map.rail.journey.step.response
CHECKOUT RESPONSE
stop-map.rail.journey.connector.choose
choose
stop-map.rail.journey.connector.revalidate
revalidate
stop-map.rail.journey.found
locations[0].id
stop-map.rail.journey.chosen
selected_destination_id
stop-map.rail.journey.accepted
destinations[0].id
stop-map.rail.journey.body
Checkout carries the chosen Location into pickup. The Business
validates it again before accepting.
stop-map.artifact.label
RUNNING SHOE PICKUP · LOCATION SEARCH → CHECKOUT
stop-map.artifact.title
Find the right product at the right place.
stop-map.artifact.body
Search nearby inventory and locations by proximity, amenities,
hours, and more.
stop-map.artifact.key
dev.ucp.common.location.search
stop-map.artifact.stage.1
FIND LOCATIONS
stop-map.artifact.stage.2
CHOOSE A LOCATION FOR PICKUP
stop-map.artifact.takeaway.request
The request asks for the exact shoe to be available within 8 km,
at a place that offers pickup and is open at 6 PM Pacific time
(PDT, UTC−07:00).
stop-map.artifact.takeaway.response
Market Street Running matches all four requirements.
stop-map.artifact.takeaway.checkout
Pass the found Location to Checkout for pickup.
stop-map.artifact.transition.match
MATCH LOCATIONS
stop-map.artifact.transition.1
CHOOSE THIS LOCATION
stop-map.search.request-label
LOCATION SEARCH · REQUEST
stop-map.result.wire-label
LOCATION SEARCH · RESPONSE · locations[0]
stop-map.handoff.request-label
UPDATE CHECKOUT · REQUEST · fulfillment.methods[0]
stop-map.handoff.response-label
UPDATE CHECKOUT · RESPONSE · fulfillment.methods[0]
stop-weigh.skim.kicker
THE WEIGH HOUSE · UNITS & QUANTITIES
stop-weigh.skim.headline.v2a
Sell in any unit.
Settle to the penny.
stop-weigh.cruise.receipt
#653 · MERGED · BREAKING · 2026-08-12
stop-weigh.cruise.common.label
QUANTITY · SALE BASIS
stop-weigh.cruise.common.claim
Sell by weight, length, or time — at whatever precision the goods
need.
stop-weigh.cruise.common.shape
quantity_unit → { unit, scale, increment? }
stop-weigh.cruise.common.intro
quantity counts steps, not units: 150 × 0.01 lb = 1.50 lb.
stop-weigh.cruise.common.anatomy.unit
what you sell by; a Rec 20 code where one fits, or your own
stop-weigh.cruise.common.anatomy.scale
how fine one step is; scale 2 means hundredths
stop-weigh.cruise.common.anatomy.increment
how Buyers may order it; advisory, never a limit
stop-weigh.cruise.common.body
Correct by construction, not by convention: every number on the
wire is an integer plus a declared interpretation. 120 is cents of
USD; 150 is hundredths of a pound.
stop-weigh.dive.artifact.label
BANANAS BY WEIGHT · PURCHASE TO SETTLEMENT
stop-weigh.dive.artifact.key
quantity_unit
stop-weigh.dive.artifact.title
Order 1.50 lb. Ship 0.50. Return 0.25. Nothing drifts.
stop-weigh.dive.artifact.body
Per-item units and precision, tracked from catalog to cart to
order to fulfillment. Each surface inherits the basis it was
handed rather than re-deriving it.
stop-weigh.dive.artifact.stage.1
THE PURCHASE
stop-weigh.dive.artifact.stage.2
THE SETTLEMENT
stop-weigh.dive.artifact.takeaway.1
Price is per whole pound, quantity is in steps: 80 × 150 × 10⁻² =
120 cents. Exactly $1.20 — no rounding, and no decimal anywhere in
the arithmetic.
stop-weigh.dive.artifact.takeaway.2
Ordered 1.50 lb, short-picked to 0.50, then 0.25 returned. Both
adjustments move quantity with money — and the 25 steps still owed
are exactly 20 cents.
stop-weigh.dive.control
COMPLETE · SHIP 0.50 · RETURN 0.25 · GET ORDER
stop-weigh.whisper
The arithmetic holds — through the warehouse, the partial
shipment, the refund.
billboard.kicker
THE BILLBOARD · INTERMISSION
billboard.lede
Want the design philosophy? It's 47 minutes, one click away.
billboard.caption
Tobi Lütke × Ilya Grigorik: Building the Universal Commerce
Protocol — Shopify, 2026-05-19 · 47:18.
billboard.wit
At 20:01, Tobi says he'd love to see the bazaar actually
visualized. You're standing in it.
billboard.link
youtube.com/watch?v=uNOFaCq8RZQ
inspector.footer
Every payload on this page validates against the release schemas —
the same CI that keeps the spec's own examples honest.
ng+.kicker
RELEASE LEDGER · EVERY RECEIPT