svelte
Skill275 starsChanged 36 days agoApache-2.0View on GitHub
Modern Svelte 5 and SvelteKit development covering runes-based reactivity, snippets, SSR/SSG, and state management, including migration notes from legacy Svelte 4 syntax. Use when writing or reviewing Svelte components, deciding between runes and legacy reactive statements, building SvelteKit routes and load functions, or migrating a Svelte 4 codebase to Svelte 5.
9 other projects use a version of this.
Adopted by
Most recently taken up by
- vercel-labs/json-rendertheir own version, first seen Oct 29, 2026
- G1Joshi/Agent-Skillstheir own version, first seen Oct 13, 2026
- epicenter-md/epicentertheir own version, first seen Oct 8, 2026
- EpicenterHQ/epicentertheir own version, first seen Oct 8, 2026
- conjure-3301/skillstheir own version, first seen Aug 17, 2026
- hawk-digital-environments/ai-skillstheir own version, first seen Aug 13, 2026
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- vercel-labs/json-render★ 19ksame name
- epicenter-md/epicenter★ 4.8ksame name
- EpicenterHQ/epicenter★ 4.8ksame name
- dylantarre/design-system-skills★ 50same name
- G1Joshi/Agent-Skills★ 15same name
- ffsshhttiikk/opencode-agents-skills★ 2same name
- hawk-digital-environments/ai-skills★ 1same name
- conjure-3301/skills★ 0same name
- mae616/ai-tech-knowledge★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository264 other files it gives its agents.
- accessibility-a11ySkill
- alpine-jsSkill
- analytics-data-analysisSkill
- android-developmentSkill
- angular-developmentSkill
- angularSkill
- anime-jsSkill
- anthropic-claude-developmentSkill
- api-developmentSkill
- apollo-graphqlSkill
- aspnet-coreSkill
- astroSkill
- auth0-authenticationSkill
- autogen-developmentSkill
- automl-hyperparameter-optimizationSkill
- aws-developmentSkill
- azureSkill
- backend-developmentSkill
- bash-scriptingSkill
- beautifulsoup-parsingSkill
- bitbucket-workflowSkill
- blazorSkill
- blender-python-addonSkill
- blockchainSkill
- bootstrapSkill
- business-central-developmentSkill
- cheerio-parsingSkill
- chrome-extension-developmentSkill
- ci-cd-best-practicesSkill
- clean-architectureSkill
- clean-codeSkill
- clerk-authenticationSkill
- cloudflare-developmentSkill
- computer-vision-opencvSkill
- convexSkill
- cppSkill
- c-sharpSkill
- cssSkill
- cypressSkill
- data-analysis-jupyterSkill
- data-analystSkill
- data-jupyter-pythonSkill
- deep-learning-pythonSkill
- deep-learning-pytorchSkill
- deep-learningSkill
- deno-typescriptSkill
- design-systemsSkill
- devopsSkill
- django-pythonSkill
- django-rest-api-developmentSkill
- dockerSkill
- dotnetSkill
- drizzle-ormSkill
- drupal-developmentSkill
- elasticsearch-best-practicesSkill
- electron-developmentSkill
- elixirSkill
- embedded-stm32Skill
- esbuild-bundlerSkill
- ethereumSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 9 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Write concise, technical components with accurate SvelteKit examples
- Distinctive: line 17
Use TypeScript with proper naming conventions
- Distinctive: line 19
Follow functional and declarative programming patterns
- Very specific: line 25
Use $state for reactive state (replaces plain let bindings that needed reactivity)
- Very specific: line 26
Use $derived for computed values (replaces $: computed = ...)
- Very specific: line 27
Use $effect for side effects (replaces $: { ...
- Very specific: line 28
Use $props for component properties (replaces export let prop)
- Very specific: line 29
Use $bindable for two-way bindable props (replaces implicit bind: support on exported props)
- Very specific: line 30
Use $inspect during development to log reactive value changes
- Very specific: line 64
Component props: use let { propName } = $props() instead of multiple export let propName declarations.
- Very specific: line 67
When maintaining an existing Svelte 4 codebase, keep using export let, on:event, and $: reactive statements consistently within that …
- Very specific: line 71
Use scoped styling via Svelte's <style> tags
- Distinctive: line 73
Keep styles co-located with components
- Very specific: line 77
Use Svelte stores (or exported $state in .svelte.js/.svelte.ts modules under Svelte 5) for shared state
- Distinctive: line 86
Use form actions for mutations
- Distinctive: line 93
Use preloading for faster navigation
- Very specific: line 98
Use Paraglide.js for i18n support
- Distinctive: line 103
Use Vitest for unit testing
- Distinctive: line 104
Use Lighthouse for performance auditing
- Distinctive: line 105
Write comprehensive component tests
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Svelte / SvelteKit
This skill covers Svelte and SvelteKit development with deep knowledge of SSR, SSG, and modern web patterns, including the Svelte 5 runes system and how it differs from legacy Svelte 4 reactivity.
Core Principles
- Write concise, technical components with accurate SvelteKit examples
- Emphasize SSR/SSG capabilities and performance optimization
- Use TypeScript with proper naming conventions
- Prioritize minimal client-side JavaScript through server-side rendering
- Follow functional and declarative programming patterns
Svelte 5 Runes
Svelte 5 introduces runes — compiler-level primitives that make reactivity explicit, replacing Svelte 4's implicit let/$: reactivity.
- Use
$statefor reactive state (replaces plainletbindings that needed reactivity) - Use
$derivedfor computed values (replaces$: computed = ...) - Use
$effectfor side effects (replaces$: { ... }blocks) - Use
$propsfor component properties (replacesexport let prop) - Use
$bindablefor two-way bindable props (replaces implicitbind:support on exported props) - Use
$inspectduring development to log reactive value changes - Runes are compiler syntax, not imports — never
import { $state } from 'svelte'. Only import genuine utilities that still require it, such astick,untrack,mount, orunmount.
Svelte 4 vs. Svelte 5
Svelte 4 (legacy reactivity):
<script>
let count = 0;
$: double = count * 2;
$: {
if (count > 10) alert('Too high!');
}
</script>
<button on:click={() => count++}>{count} / {double}</button>Svelte 5 (runes):
<script>
let count = $state(0);
let double = $derived(count * 2);
$effect(() => {
if (count > 10) alert('Too high!');
});
</script>
<button onclick={() => count++}>{count} / {double}</button>Key differences to apply when writing or reviewing components:
- Reactivity is explicit —
$state()marks reactive variables,$derived()replaces$:for computed values,$effect()replaces$: {}blocks for side effects. - Event handling is standardized — Svelte 5 treats event handlers as ordinary HTML properties (
onclick={handler}) instead of Svelte-specific directives (on:click={handler}). There are no more event modifiers like|preventDefault; calle.preventDefault()inline instead:onclick={e => { e.preventDefault(); handler(e); }}. - Component props use
let { propName } = $props()instead of multipleexport let propNamedeclarations. Mark a prop bindable from the parent with$bindable(). - Snippets replace slots for most reusable markup —
{#snippet name(params)}...{/snippet}and{@render name(args)}reduce duplication and are more composable than named slots. Existing<slot>usage still works but prefer snippets in new Svelte 5 code.
When maintaining an existing Svelte 4 codebase, keep using export let, on:event, and $: reactive statements consistently within that codebase rather than mixing paradigms — full-file migrations to runes should be deliberate, not incidental.
Styling
- Use scoped styling via Svelte's
<style>tags - Integrate Tailwind CSS without
@applydirectives - Keep styles co-located with components
State Management
- Use Svelte stores (or exported
$statein.svelte.js/.svelte.tsmodules under Svelte 5) for shared state - Implement state management via classes for complex scenarios, using
$statefields for reactive class properties - Leverage Svelte's reactivity system effectively rather than reaching for external state libraries by default
SvelteKit Features
- Use file-based routing
- Implement proper load functions
- Handle errors appropriately
- Use form actions for mutations
- Leverage server-side data loading
Performance
- Focus on Web Vitals optimization
- Minimize client-side JavaScript
- Use preloading for faster navigation
- Implement lazy loading where appropriate
Internationalization
- Use Paraglide.js for i18n support
- Implement proper locale handling
Testing
- Use Vitest for unit testing
- Use Lighthouse for performance auditing
- Write comprehensive component tests
Accessibility
- Ensure accessibility compliance
- Use semantic HTML
- Implement proper ARIA attributes
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

