SIGIL

Skill · svelte/svelte-5-runes · v1.0.0 · MIT

Svelte 5 Runes and Migration

Correct Svelte 5 runes components, shared state modules and mount() code, and Svelte 4 ports that keep bindings, events and timing intact.

Teaches an agent the current Svelte 5 API (checked against svelte 5.57.3) and how to port Svelte 3/4 code without silent behaviour changes. It concentrates on what agents trained on Svelte 4 get wrong: export let and $: versus $props, $derived and $effect (and why syncing state in effects breaks reads outside components), missing $bindable that silently stops bind: from reaching the parent, createEventDispatcher versus callback props, slots versus snippets, runes outside .svelte.ts files, exporting reassigned module state, Map and Set inside $state, proxies that structuredClone and postMessage reject, mount() deferring onMount and bind:this until flushSync, $set replaced by a $state props object, intro transitions on mount, and testing all of it with Vitest and jsdom.

  • Frontend
  • Migration
  • Testing
  • build
  • maintain
  • test
  • svelte
  • typescript
  • javascript
  • vite
  • vitest

uplift

Untested

No runs exist for this digest.

Not measured for this digest.

Untested is not the same as useless: nobody has measured it yet. Proof comes from A/B runs on hidden tests:

npx sigil prove catalog/skills/svelte/svelte-5-runes --suite <suite> --runs 6

trust level · submitted

Submitted
  • in the catalog: met
Validated
  • structure check: not met
  • static scan, no high findings: not met
Verified
  • canary sandbox passed: not met
  • maintainer approved: not met

canary sandbox

Not run for this digest.

static scan

Not run for this digest.

compatibility · targeted, compiled and evaluated are separate claims

agenttargeted by authorcompiledevaluated in the labnotes
Claude Codetargeted: yesno record for compiledno record for evaluated
Codextargeted: yesno record for compiledno record for evaluated
Cursortargeted: yesno record for compiledno record for evaluated
GitHub Copilottargeted: yesno record for compiledno record for evaluated
Gemini CLItargeted: yesno record for compiledno record for evaluated
OpenCodetargeted: yesno record for compiledno record for evaluated

declared permissions

network
none
shell
node, npm ls, npm test, npm run check, rg
filesystem
write
env
none

Undeclared access is a finding in the scan and a tripwire in the canary.

source

path
catalog/skills/svelte/svelte-5-runes
authors
dgesteves
entry
SKILL.md (agent-skill)
registry
2026-11-02 · 5cb851d

install

$ npx sigil add svelte/svelte-5-runes --agent claude-code

No compile record for Claude Code on this digest. Install never runs capability scripts, and refuses on any digest mismatch.

known limitations

  • Written and verified against svelte 5.57.3 with @sveltejs/vite-plugin-svelte 7.3.1 and vitest 5.0.5. Later 5.x releases may add runes or promote experimental features; check the changelog when the installed version is newer.
  • Covers Svelte itself. SvelteKit routing, load functions, form actions and remote functions are out of scope; SvelteKit 3.0 is mentioned only for its version requirements.
  • Async Svelte (await in components, $state.eager, hydratable, fork) is still behind experimental.async in 5.57.3 and is described, not taught or measured.
  • The proof suite runs in jsdom, which has no layout and no Element.animate, so transitions, animations and SSR hydration are covered by guidance only.
  • Custom elements (customElement, $host) and Svelte Native are not covered.