docs(skill): finalize Phase 2 scorecard (transaction-edit 8/8, suite 38/1)

Record the Phase 2 Transaction Edit outcome: heuristic 1 cleared (no-cursor + faked roots
0), routes ~12 -> ~5 (operations collapsed to one edit-form-changed dispatcher), :mode
prod bug fixed, modal spec greened 8/8, swap spec 6/6, full suite 38 pass / 1 unrelated
fail / 0 skip. Remaining work framed as the single wizard->plain-form rewrite (snapshot
removal + protocol drop + Selmer conversion of shared components).
This commit is contained in:
2026-06-03 07:21:48 -07:00
parent 798b350c81
commit 38ad665726

View File

@@ -39,15 +39,21 @@ Each migration appends one row (after-numbers), referencing the before in the di
| Phase | Modal | LOC | Routes | no-cursor twins | faked roots | snapshot merges | OOB | mixed hx- | cookbook reused / added | | Phase | Modal | LOC | Routes | no-cursor twins | faked roots | snapshot merges | OOB | mixed hx- | cookbook reused / added |
|-------|-------|-----|--------|-----------------|-------------|-----------------|-----|-----------|-------------------------| |-------|-------|-----|--------|-----------------|-------------|-----------------|-----|-----------|-------------------------|
| 1 (baseline) | Transaction Edit `transaction/edit.clj` | 1608 | ~12 | 1 | 2 | ~75 | 0 | 8 | — / seeded 7 entries | | 1 (baseline) | Transaction Edit `transaction/edit.clj` | 1608 | ~12 | 1 | 2 | ~75 | 0 | 8 | — / seeded 7 entries |
| 2 (in progress) | Transaction Edit `transaction/edit.clj` | ~1530 | **~5** | **0** | **0** | ~75 | 0 | 8 | — / 0 | | 2 (in progress) | Transaction Edit `transaction/edit.clj` | 1545 | **~5** | **0** | **0** | ~75 | 0 | 8 | — / 0 |
> **Phase 2 progress (partial).** Achieved with parity held (swap spec 6/6 + Shared > **Phase 2 progress.** Achieved with parity held (swap spec **6/6**, transaction-edit
> Location green, full suite 31 pass / no regression): deleted the dead `*-no-cursor*` > spec **8/8**, full suite **38 pass / 1 unrelated fail / 0 skip**, up from 30/2/7):
> twin (no-cursor 1→0), **de-faked the simple-mode cursor** (faked roots 2→0) by rendering > - deleted the dead `*-no-cursor*` twin (no-cursor 1→0);
> the row from explicit data with explicit field names (`account-field-name`) + explicit > - **de-faked the simple-mode cursor** (faked roots 2→0) via explicit data + explicit
> error lookup — the render-fn rewrite the `with-field-default` shortcut couldn't do — and > field names (`account-field-name`) + explicit error lookup — the render-fn rewrite the
> fixed a real production bug (`:mode` leaking into the upsert → 500 on every advanced > `with-field-default` shortcut couldn't do;
> manual save). **Still open** for this modal: the snapshot round-trip (~75 — removed by > - **collapsed the 5 manual-coding operation routes into one `edit-form-changed`
> the wizard→plain-form reclassification), Selmer conversion of the render fns, and route > dispatcher** (routes ~12→~5; the operations are now pure `apply-*` fns);
> collapse (~12 → ~3). These remain the bulk of the migration and need wholesale > - fixed a real production bug (`:mode` → 500 on every advanced manual save);
> restructuring of the modal's rendering; track as the continuation of Phase 2. > - greened `transaction-edit.spec.ts` (8/8) and matured the skill.
>
> **Still open** for this modal — the **wizard→plain-form rewrite** (one interdependent
> effort): remove the snapshot round-trip (~75 merges → 0; this also fixes the
> operations-drop-live-values bug in `gotchas.md`), drop the `mm/ModalWizardStep` protocol,
> and Selmer-convert the shared interactive components (`com/typeahead`/`com/select`).
> Mixed string `hx-` attrs (8) clear as those components move to Selmer templates.