--- name: svelte-runes description: | Provides Svelte 5 runes guidance for reactive state, props, derived values, effects, and attachments. Use when implementing reactivity, managing component props, computing derived state, handling side effects, or migrating from Svelte 4. Triggers on "reactive state", "component props", "computed value", "$state", "$derived", "$effect", "$props", or "Svelte 5 migration". Works with .svelte files using $state, $derived, $effect, $props, $bindable runes and prevents common reactivity mistakes and Svelte 4/5 syntax mixing. --- # IMPORTANT: Keep description on ONE line for Claude Code compatibility # prettier-ignore # Svelte Runes ## Quick Start **Which rune?** Props: `$props()` | Bindable: `$bindable()` | Computed: `$derived()` | Side effect: `$effect()` | State: `$state()` **Key rules:** Runes are top-level only. $derived can be overridden (use `const` for read-only). Don't mix Svelte 4/5 syntax. Objects/arrays are deeply reactive by default. ## Example ```svelte ``` ## Reference Files - [reactivity-patterns.md](references/reactivity-patterns.md) - When to use each rune - [migration-gotchas.md](references/migration-gotchas.md) - Svelte 4→5 translation - [component-api.md](references/component-api.md) - $props, $bindable patterns - [snippets-vs-slots.md](references/snippets-vs-slots.md) - New snippet syntax - [common-mistakes.md](references/common-mistakes.md) - Anti-patterns with fixes - [attachments.md](references/attachments.md) - @attach replaces use: actions ## Notes - Use `onclick` not `on:click`, `{@render children()}` in layouts - `$derived` can be reassigned (5.25+) - use `const` for read-only - **Last verified:** 2025-01-11