tiers-need-an-entitlement-set (#153) moves to openspec/changes/archive/.
Item 5.3, the same counts on a running deployment, stays open: it reads
production data and is done by hand. Its deltas are synced into the
main specs:
- plan-ladder-management: 1 requirement added (every plan tier's
product has an entitlement set), 1 modified (tier management).
- product-management: 1 modified (product editing).
- member-console-demo-seed: 1 modified (the reference catalog's shape).
What #153's research and reviews taught, written into the pages that
own each topic:
- docs/models/product-catalog.md: invariant 13 gives its reason (the
conferral refuses a product with no set for every source), and the
purchasability paragraph says a member can still buy an add-on with
no set and receive nothing (#272).
- docs/go-conventions.md: a trigger that checks a rule after its
statement waited for a row lock needs READ COMMITTED and a VOLATILE
function.
- docs/design-system.md: a field line whose text depends on the record
is a declared Slot written in form-text markup, which the registry's
hint checks do not read.
- docs/testing.md: an UPDATE OF trigger fires only for a statement whose
SET names the column; a check that ends the test hides later checks'
messages from a break; a break record cannot add an import; a break of
migration SQL resets the test database first.
- The archived design gains two rulings with their reasons: the tier
trigger has no WHEN, and a refused add of the ladder's last candidate
shows the panel's empty state.