| src/layouts/Layout.astro + page-level <main> | Layout + local wrapper | Compose Snurble Layout under a consumer-owned wrapper so title suffixes, favicons, head tags, app CSS, and <main> semantics stay local. |
| Homepage hero + section wrappers | Hero + Section + PageShell + Stack | Keep the two catalog sections, their copy, and their independent sync timestamps while moving repeated shell and spacing structure into shared primitives. |
| Hand-written catalog tables | DataTable | Preserve the tool table's four columns and the plugin table's three-column contract; keep the generated data source untouched. |
| Detail-page panels and grouped copy | Panel + Stack + Section | Use shared surface and spacing primitives, but keep README rendering and route data flow in mattriley.tools. |
| Metadata dl + install command | MetaList + CodeSnippet | Tool detail pages can move install content into shared snippet styling; plugin pages keep metadata + README only and still do not grow an install section. |
| global.css rules | Selective handoff | Only shared shell/table/panel/meta/install chrome moves to Snurble; eyebrow rules, README markdown styling, and other site-specific CSS stay local for now. |