Fold demo-build learnings: Swift 2.4 profiles recipe, checkout order-field contract, order-line seeding, update backup gate, MCP no-op rows#60
Merged
Conversation
…field contract, order-line seeding, update backup gate, MCP no-op rows Folds eight learnings from two 2026-07 demo runs (a customer build dispatch and a Swift 2.4 profiles key test). dw-demo-swift gains the customer-center profiles / switch-user section (profiles-vs-impersonation disambiguation, zero-custom-code picker recipe, the 10.29+/PreRelease platform-honesty rule) and a new checkout-order-fields reference (stock EnableDeliveryDate beat, the EcomOrderField/EcomOrders column contract, the broken create_order_field tool). The staged foundational files gain the order-line price-seeding rules (currency-restart-then-seed, x100 artifacts, tier repricing, totals backfill), the in-place-update backup + ItemList content-count gate, and two silent no-op catalogue rows (patch_products_safe on variant rows echoes its input; copy_page defaults top-level copies into area 1 without areaId). dw-demo-pim canonical-setup-order step 14 now names the SQL sweep as the canonical variant-enrichment step. Version 4.11.0 (4.9.0/4.10.0 are claimed by open PRs; the CHANGELOG sequence is independent of merge order).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Folds eight learnings from two 2026-07 demo runs (a customer build dispatch and a Swift 2.4 profiles key test) into the demo and staged-foundational skills. Version 4.11.0 — 4.9.0 and 4.10.0 are claimed by open PRs #58/#59; the CHANGELOG sequence is independent of merge order.
dw-demo-swift
AccessUserrows +AccessUserIsLogin,ListUserProfiles/UserProfilesTemplate,DwSwitchUserUniqueId->StartSwitchUser) vs impersonation (AccessUserSecondaryRelation+CanImpersonate) — two mechanisms, easy to conflate; the zero-custom-code picker recipe (cloned rows,NEWID()unique ids, distinct customer numbers, masterIsLogin=1, one restart; per-profile isolation free viaPriceUserCustomerNumber+UseUserID); the?ShowProfiles=1sign-in-page picker quirk; and the platform-honesty rule — the documented 10.29+ gate does not bite on a 10.28.1-PreRelease build, so state the platform when a demo shows features the customer's GA lacks.EnableDeliveryDateposts into nativeOrderShippingDate); order-field values live in per-system-nameEcomOrderscolumns, so a definition without its matching column breaks every order read (IndexOutOfRangeExceptioninExtractOrderFieldValues); MCPcreate_order_fieldalways violatesDW_FK_EcomOrderField_EcomFieldType(upstream bug — SQL contract documented).Staged foundational (dw-demo-base/references/foundational/)
EcomPricesrows silently reprice explicit unit prices;add_productswrites only unit-price columns, so backfill line/order totals and sanity-sweep in SQL. Pointer added from the dw-demo-pim order-seeding appendix.SELECT COUNT(*) FROM ItemList+BACKUP DATABASE, post-update counts must match — an in-place update cycle has been observed to emptyItemList/ItemListRelation/child item tables with no error; protective rule only, no root-cause claim. Routing row added in dw-demo-base SKILL.md.patch_products_safeon variantEcomProductsrows echoes its input model while the row stays NULL (SQL sweep is the canonical variant-enrichment surface —canonical-setup-order.mdstep 14 updated to say so);copy_pagewithdestinationParentPageId=0lands the copy in area 1 unlessareaIdis passed.Gates
python scripts/validate-skills.pyexit 0 (0 errors, 0 warnings)ListUserProfiles/ShowProfilescoverage); order-line rules extend the existing commerce-orders seeding section; no supersedes required