Repository navigation
5.1.3
A patch release that folds the measured learnings of the 5.1 experiment into the corpus. One
validator rule now refuses client-exclusivity wording in a dynamo: true skill, so the rule
5.1.1 stated in prose holds at every model tier. The rest is measurement written down where the
work that hits it reads it: the data-access verb and tool traps a live DW 10.28 host produced,
and the Swift 2 storefront traps a measured rebrand hit, both as table rows. It adds and
sharpens rules; it changes no skill contract and no worksOn axis.
- The validator refuses client-exclusivity wording in a
dynamo: trueskill. "Dynamo only",
"stops here", "external client stops", "cannot run this skill", or acompatibility:value
naming a client is an error, never baselined. The rule 5.1.1 stated in prose now holds at every
model tier: a skill states a precondition and how to test it (tools/list); it never tells a
client to stop because of who it is, and an unmeasured claim never lands as instruction. - Row-file order is stated as what it is. The deserializer ignores the manifest's
files[]
list, reads a table directory in culture-sensitive file-name order (a convention, not a
contract), and merges two documents of one identity with the later file winning; on a blank
host a partial row with no full row beside it inserts a row holding only its columns. - The theme-after-layer upload is stated with its workaround. Every edition theme's
files/
lands after every composed layer'sfiles/, last writer wins per path; a brand layer that must
win a theme path is listed as a theme after the default, with atheme.jsonbinding equal to
the default's so the binding writes nothing. - A listed tool can still be refused.
mcp-setup.md's triage table gains the
Required permission: none. Allowed permission: none.row: the grant is the MCP configuration's
permission preset, not the client; check the preset, fall back to the Management API read, and
read a name missing fromtools/listas a grant to check rather than a tool that does not exist. - Verb and tool traps measured on a live 10.28 host land as table rows in the
dw-data-access
recipes. Six product fields are master-only by default, so a master save throughProductSave,
patch_products_safeorupdate_productsoverwrites every variant while echoing success, and the
unlock (ProductAttributeSettingsSavewithVariantEditing) comes first (recipes-pim.md, beside
ProductAssetByProductKeyignoring the variant id, the category-field lists answering 0 and the
group sort list 500ing);save_pagesmetaTitlepersisting nothing andPageSavetaking
Unpublished, notHidden(recipes-content.md);OrderLineSave500ing on its own round-tripped
OrderTypeandGetOrderLineByIdneedingOrderId(recipes-commerce-orders.md);CountryByCode
bindingCountryCode(recipes-commerce.md);get_product_index_statusreporting a default index
the host need not have (recipes-search.md); and the round-trip rule by what the call answers
(management-api-and-sql.md).dw-pim-modelling's structural model says, in MCP terms, that a
variant value needs the field to allow changes across variants first. - The storefront traps a measured rebrand hit are written down where the storefront work reads them.
dw-demo-swiftcarries them as rows and bullets in the files that own each surface: the customer centre (an account group with no type and no CSR relation never lists, the order list printing the product id, the accounts search that does not narrow), the pricing cascade (a variant's own price row never outranks a lower master or contract row), the deserialize obligation (bind the shop only after every browsable group is related to it, or subgroup product pages render adw-error), the mobile pass (the header's action links on one row at 390 in both auth states, and the logo width that pushes the cart link down), the theme tier (the per-edge fills the edge motif needs when both sides match), the rebrand recipe (the image handler answering JPEG forwebpand for no format, the page-properties icon sentinel drawingNO ICON, the gallery and logoaltdefects as tripwire rows), the cheat sheet (verify a variant by its own URL, not the selector click) and the button contract (a page link drops its query string, so a group link is a URL).dw-swift-page-blocksgains the same button gotcha in MCP terms, anddw-demo-base's trap list sharpens four rows with the measured symptom.
🤖 Generated with Claude Code