State of UCP · Launch edition

The State of UCP: the v2026-08-25 release

The launch release is out. Here is what moves under your feet when you migrate.

An independent, data-backed read of UCP v2026-08-25, published 2026-08-25. Each claim links to the released artifact or a public thread. Part of the State of UCP tracker. Unofficial; not affiliated with or endorsed by the UCP maintainers.

A note on honesty. This is a best-effort independent read and we would rather be corrected than confident. If anything here looks off, tell us and we will check it, fix it, and note the correction.

The release in one paragraph

v2026-08-25 is the largest restructuring the spec has shipped: the documentation tree is reorganized by vertical (#723), the shared primitives and the whole payments surface moved out of shopping/ into common/ (#736, #741), capability names adopted a dotted namespace, request constraints arrived as a first-class negotiation mechanism (#655, #744), Location Search and Lookup landed (#589), and deprecated transition schemas were deleted (cleanup commit). In the schema tree alone, 36 file paths present at v2026-04-08 are gone and 74 are new; shopping/ went from 72 schema files to 42 and common/ from 1 to 64.

The migration hazards table

What an implementer moving from v2026-04-08 actually hits, in the order it will bite.

#HazardWhat breaksWhere it is decided
1Capability names are renamed and re-namespaced. dev.ucp.shopping.payment_terms is now dev.ucp.common.payment.terms; split payments is dev.ucp.common.payment.split_payments; the new families are dotted (common.location.search, amenity.*).Discovery matching and capability gates keyed on the old strings go silently inert: nothing errors, the feature just stops negotiating.payment_terms.json, profile examples
2Schema $ids and file paths moved. Payments schemas live under common/ with new names (payment_split_payments.json, payment_terms.json, payment_authentication.json).Anything keyed by $id or raw path: bundlers, validators, vendored pins, generated-code inputs.source/schemas/common/
3The docs tree is reorganized by vertical. docs/specification/checkout.md style paths are now docs/specification/shopping/checkout/index.md style; extensions live under per-vertical extensions/.Every deep link, bookmark, and doc-anchored citation 404s. Relative links between spec pages changed depth.#723
4Request validation got strict at the SDK boundary. Generated models now enforce integer line-item quantity with minimum 1 and split request/update/response classes per entity, in the published SDKs (js 0.4.5+, python 0.4.5+/0.4.6).Payloads that leaned on loose models: fractional or zero quantities, response-shaped objects passed where a request variant belongs. Fixes for exactly this class are moving through the ecosystem in launch week: the node reference quantity bounds (samples#194samples#199, in review), the conformance suite construction helpers (conformance#97, in review), and the python reference test fixture (samples#219, in review).js-sdk 0.4.5, ucp-sdk 0.4.6
5Request constraints are a new negotiation surface. Businesses can carry constraints in responses (#655) and target them by path (#744); instrument requirements are expressed through them (commit d25cce30).Platforms that ignore constraints they do not recognize will construct requests the business must reject.Request constraints
6Deprecated transition schemas are deleted. The launch cleanup removed transitional members and dead schemas (fdcf8934, account_info removal).Payloads still carrying transition-era members now fail schema validation instead of being tolerated.release diff
7A version-skew window is open. At release time the reference servers still serve v2026-04-08 and the published SDK lines (0.4.x) target it.Generating models against the new release, or testing against the references as if they already spoke it, produces mismatches that look like bugs and are not.samples at 00333a80
8Error shape is converging on the envelope. The python reference now answers rejected requests, validation failures included, with the UCP envelope, JSON carrying code and content (samples#196, merged); the node twin is in review (samples#192).Platforms parsing framework-default error bodies (flat detail arrays, plain text) should parse the envelope instead.checkout error responses

What launch week fixed underneath the release

The reference implementations went through a fast hardening cycle in the days around the cut, all in public threads. Merged: client-supplied business-owned members are no longer adopted on create (samples#193, samples#196), and the python SDK variant generation rewrites composition refs correctly (python-sdk#83, released in ucp-sdk 0.4.6). In review: line-item quantity bounds at the schema boundary (samples#199) and the node validation-error envelope (samples#192). The conformance suite is absorbing the same wave (conformance#97).

Tracking it

The live tracker pins every requirement it checks to spec lines and re-verifies against the released artifacts; the v2026-08-25 requirement register is being rebuilt against the released text now, and the next edition will carry the numbers.

spck.dev, published 2026-08-27. spck.dev is an independent, unofficial project — not affiliated with, endorsed by, or a substitute for the official UCP conformance suite; the official suite is authoritative.