Svelte is different from every other frontend framework — no virtual DOM, compiled output, reactivity that's a language feature rather than a runtime. That difference is exactly what trips up Claude Code: it defaults to React-style thinking, uses patterns that make sense in Vue or Angular but are wrong in Svelte, and ignores the compiler's superpowers entirely.
These 13 rules fix that.
Rule 1: Reactivity — no useState, no ref(), just assignment
Reactive state uses plain variable assignment. No reactive() wrapper, no useState(), no signal(). Mutate arrays and objects directly — Svelte's compiler tracks assignments, not mutations. Correct: items = [...items, newItem] Incorrect: items.push(newItem) without reassignment
Enter fullscreen mode
Exit fullscreen mode
Claude trained on React and Vue will reach for hooks or composables.…