lonja-lists-and-tableslisted
Install: claude install-skill zakariaf/CatchLaw
# Lonja Lists and Tables
A CatchLaw list is a **ruled column of a printed register**, not a stack of cards: rows sit shoulder to shoulder, a hairline is the only thing between them, and the page — never the row — carries the margin. This skill owns row anatomy, the ledger table, the divider ladder, swipe actions, and the four non-happy states every list must author. It does not own how the list is *constructed*.
Read the reference for the task at hand:
- `references/row-and-table-anatomy.md` — species/log/settings row slots, ledger column classes, divider ladder, numeric alignment and RTL mirroring, glove and sunlight density.
- `references/the-four-states.md` — empty, loading skeleton, error, stale; state precedence, ochre bar geometry, copy rules, golden coverage matrix.
Run `scripts/check_lonja_lists.sh` before a PR.
Lazy `.builder` construction, `Key` policy and sized image decode live in `widget-composition` and `flutter-performance`; keyset pagination lives in `persistence-drift`. This skill governs what a row and a table LOOK like, and what a list does when it has nothing to show.
## Non-negotiable rules
1. **The whole row is ONE tap target.** Wrap the entire row in a single `InkWell` sized to the full row rect at `rowMinHeight` (64dp paper, 76dp glove); a trailing chevron is inert decoration and NEVER carries its own `onTap`. **WHY:** Khalid taps with a wet neoprene finger at 05:40 — a 15dp chevron hit box means the row silently does nothing, and he taps twice m