reconcile-takes-pool-lock (#193) and suspended-plans-stay-held (#148)
move to openspec/changes/archive/ with every task ticked, and their
deltas are synced into the main specs:
- plan-transitions: 1 requirement modified (#193).
- member-dashboard, member-entitlement-view, member-offer: 1 modified
each; member-plan-upgrade: 1 renamed ("active" to "live" ladder
attachments) and 1 modified; member-invoice-history: 2 added;
member-product-discovery, stripe-subscription-creation: 1 added each;
plan-enrollment-administration: 1 added, 3 modified;
stripe-subscription-management: 1 added, 2 modified (#148).
What #148's research and sandbox check taught, written into the pages
that own each topic:
- docs/models/plan-ladders-transitions.md: the member position's readers,
all eight, each holding a suspended position as the organization's plan.
- docs/models/payments-billing.md: pausing collection is not the paused
status, so the plan keeps delivering.
- docs/stripe.md: an expired pending upgrade's invoice is voided; a
period-end cancellation stops retrying only that subscription's open
invoice; only a subscription made outside the console reaches paused;
paying on Stripe's page leaves the subscription's own default card in
place; an uncollectible invoice's page still takes payment.
- docs/testing.md: what a break record's wanted message must be, and how
to drive a failed renewal in the Stripe sandbox.
- status/design-feedback.md: the data model delivers through a past_due
grace period, the console suspends at once (#255).
- The archived design gains three reasons: why the immediate-cancel
refusal comes first, the https-only redirect, and the paused badge's
tone.