If you're shipping a static SvelteKit site with Svelte 5 runes and hitting frozen state after prerendering, this walks you through the hybrid pattern that actually works. Keep global state in traditional writable() stores, bridge them to component-local $state() via $effect() subscriptions, then use $derived() for computed values. The critical insight is that runes in module scope don't survive adapter-static hydration, but the manual subscription dance does. Includes the full TypeScript setup for typed props, store bridges, and browser guards to avoid hydration mismatches. Written for developers who've already burned an afternoon debugging why their counter stopped working after SSG.
npx skills add https://github.com/bobmatnyc/claude-mpm-skills --skill svelte5-runes-static