Svelte/SvelteKit mastery. Runes reactivity, stores, routing, form actions, SSR, adapter configuration.
From godmodenpx claudepluginhub arbazkhan971/godmodeThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
/godmode:svelte, "Svelte app", "SvelteKit"cat package.json 2>/dev/null \
| grep -E '"svelte"|"@sveltejs/kit"'
ls svelte.config.js svelte.config.ts 2>/dev/null
Svelte version: <4 / 5>
Meta-framework: SvelteKit | standalone
Reactivity: Runes ($state) | Legacy ($:) | Mixed
State: Svelte stores | Runes | external
Routing: SvelteKit file-based | custom
CSS: Tailwind | UnoCSS | SCSS | scoped
IF starting fresh: "Need SSR? Use SvelteKit."
DECISION:
IF new project + Svelte 5: use Runes
IF existing Svelte 4: keep legacy unless migrating
IF mixed codebase: plan migration, don't stay mixed
| Factor | Runes (Svelte 5) | Legacy (4) |
|--------------|-----------------|-------------|
| Explicitness | $state (explicit)| let (implicit)|
| Computed | $derived (clear) | $: (ambiguous)|
| Side effects | $effect | $: (overloaded)|
| Props | $props() (typed) | export let |
| Granularity | Signal-based | Component |
Svelte 5: reactive classes (.svelte.ts)
Svelte 4: writable/readable/derived stores
Rules:
One store per domain (cart, auth, notifications)
Expose minimal API (subscribe + methods)
Derived stores for computed values
Server-safe (no client state in global scope)
src/routes/
├── +layout.svelte Root layout
├── +layout.server.ts Root data (session)
├── +page.svelte Home (/)
├── +page.server.ts Home data loader
├── auth/login/+page.svelte
├── dashboard/+layout.server.ts Auth guard
└── blog/[slug]/+page.server.ts Dynamic
Rules:
(name) for URL-free grouping| Route | Strategy | Reason |
|----------------|----------|----------------|
| / | Prerender | Static, fast |
| /about, /pricing| Prerender| Marketing, SEO |
| /blog/[slug] | SSR+cache| Dynamic, SEO |
| /dashboard/** | CSR | Auth-gated |
| /api/** | Server | API endpoints |
// Prerender: export const prerender = true;
// CSR only: export const ssr = false;
| Platform | Adapter |
|-----------|------------------------------|
| Vercel | @sveltejs/adapter-vercel |
| Cloudflare| @sveltejs/adapter-cloudflare |
| Node.js | @sveltejs/adapter-node |
| Static | @sveltejs/adapter-static |
# Run component tests
npx vitest run
# Run e2e tests
npx playwright test
# Check types
npx svelte-check --tsconfig ./tsconfig.json
Coverage target: >80% statements, >70% branches.
| Check | Status |
|------------------------------|--------|
| Svelte 5 runes used | PASS |
| TypeScript strict | PASS |
| Server load for data | PASS |
| Form actions for mutations | PASS |
| use:enhance on forms | PASS |
| No secrets in +page.ts | PASS |
| Each {#each} has unique key | PASS |
Log to .godmode/svelte.tsv:
timestamp\taction\tcomponents\troutes\tstores\ttests\tbuild
SVELTE: {action}. Components: {N}. Routes: {N}.
Reactivity: {runes|legacy}. Build: {status}.
KEEP if: svelte-check passes AND vite build succeeds
AND all existing tests pass
DISCARD if: type errors OR build failures
OR hydration mismatches. Revert immediately.
STOP when:
- svelte-check zero errors
- vite build completes
- No $: in Svelte 5 projects (runes only)
- No secrets in +page.ts files