docs(skill): distil ssr-form-migration skill from transaction-edit reference (Phase 1)
Capture the proven whole-form hx-select swap method as a reusable skill so every
later modal migration is cheaper and consistent. No app code changes.
- SKILL.md: the per-migration playbook (classify → baseline → characterize →
consolidate render fns → templatize → wire HTMX → collapse routes → verify →
commit → feed skill) + Growth contract + non-negotiables.
- reference/swap-doctrine.md: the four swap rules, focus invariant, Alpine-survives-
swap hardening, target-selector strategy — worked from the real edit.clj swaps
(memo no-request, account→location targeted cell, amount→totals sibling-tbody,
vendor/mode/row whole-form). 0 OOB.
- reference/render-functions.md: explicit-data or top-rooted cursor; the MapCursor
fake + transaction-account-row-no-cursor* twin as the smell to remove.
- reference/form-vs-wizard.md: classification + the data-driven session-backed
(formtools SessionStorage) engine that replaces the snapshot round-trip + protocol.
- reference/selmer-conventions.md: STUB, validated in Phase 2.
- component-cookbook.md / gotchas.md / test-recipes.md / scorecard.md: seeded from
what transaction-edit proves (7 cookbook entries, caret-survival + typeahead test
recipes, scorecard baseline LOC 1608 / ~12 routes / 1 no-cursor twin / 2 faked
roots / 0 OOB).
Scorecard (Transaction Edit baseline, before Phase 2): LOC 1608, routes ~12,
no-cursor twins 1, faked-cursor roots 2, snapshot merges ~75, OOB 0, mixed hx- 8.