svelte · mindrally — скилл для Claude Code: что делает и как установить
Инструкция для ИИ-агентов по разработке на Svelte 5 и SvelteKit с рунами, сниппетами, SSR и правилами миграции со Svelte 4.
npx skills add Mindrally/skills --skill svelte -a claude-codeЧто делает svelte
Скилл задаёт правила генерации кода под Svelte 5 и SvelteKit. Он учит модель использовать явные руны вместо реактивности прошлого поколения: $state вместо обычных объявлений let, $derived для вычисляемых значений и $effect для сайд-эффектов. Обработка событий переводится на стандартные HTML-свойства вроде onclick без модификатора |preventDefault, логику которого теперь нужно вызывать вручную внутри функции.
Шаблоны строятся на сниппетах {#snippet} и тегах {@render}, которые заменяют устаревшие слоты <slot>. В архитектуре SvelteKit упор сделан на серверную загрузку данных через функции load, серверные действия для форм и сокращение клиентского JavaScript. Для глобального состояния скилл рекомендует использовать модули .svelte.js с рунами или реактивные классы, избегая лишних сторонних библиотек.
Руны — это синтаксис компилятора, поэтому попытка написать import { $state } from 'svelte' сломает сборку. В старых проектах скилл требует сохранять стиль Svelte 4 до полной осознанной миграции файла, не смешивая две системы реактивности в одном компоненте.
Какие задачи решает
- переписать компоненты со слотов и
export letна сниппеты и$props - настроить серверную загрузку данных и действия форм в SvelteKit
- мигрировать реактивные конструкции
$:на руны$derivedи$effect - организовать общее состояние приложения через классы и реактивные модули
Примеры запросов агенту
- Перепиши этот компонент со старого синтаксиса Svelte 4 на руны Svelte 5
- Создай маршрут SvelteKit с функцией load и серверным действием формы
- Сделай переиспользуемый сниппет для карточки товара вместо слотов
Как установить svelte
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill svelte -a claude-code2Вручную: положить файлы
~/.claude/skills/svelte/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/svelte/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill svelte -a codex2Вручную: положить файлы
.agents/skills/svelte/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill svelte -a cursor2Вручную: положить файлы
.cursor/skills/svelte/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills svelte2Вручную: положить файлы
.github/skills/svelte/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill svelte -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path svelteВручную: положить файлы
.devin/skills/svelte/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill svelte -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о svelte
Как установить svelte в Claude Code?
Выполните команду npx skills add Mindrally/skills --skill svelte -a claude-code. Файл инструкции сохранится по пути ~/.claude/skills/svelte/SKILL.md.
Что делает скилл svelte?
Он направляет ИИ-ассистента на применение синтаксиса Svelte 5 с рунами и сниппетами, предотвращая появление устаревших конструкций Svelte 4.
Нужно ли импортировать руны из пакета svelte?
Нет, руны встроены в компилятор Svelte 5. Импортировать из пакета нужно только служебные функции вроде tick, untrack, mount или unmount.
Исходный текст
SKILL.md · Apache-2.0
---
name: svelte
description: "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."
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# 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 `$state` for reactive state (replaces plain `let` bindings that needed reactivity)
- Use `$derived` for computed values (replaces `$: computed = ...`)
- Use `$effect` for side effects (replaces `$: { ... }` blocks)
- Use `$props` for component properties (replaces `export let prop`)
- Use `$bindable` for two-way bindable props (replaces implicit `bind:` support on exported props)
- Use `$inspect` during 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 as `tick`, `untrack`, `mount`, or `unmount`.
### Svelte 4 vs. Svelte 5
**Svelte 4 (legacy reactivity):**
```svelte
<script>
let count = 0;
$: double = count * 2;
$: {
if (count > 10) alert('Too high!');
}
</script>
<button on:click={() => count++}>{count} / {double}</button>
```
**Svelte 5 (runes):**
```svelte
<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:
1. **Reactivity is explicit** — `$state()` marks reactive variables, `$derived()` replaces `$:` for computed values, `$effect()` replaces `$: {}` blocks for side effects.
2. **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`; call `e.preventDefault()` inline instead: `onclick={e => { e.preventDefault(); handler(e); }}`.
3. **Component props** use `let { propName } = $props()` instead of multiple `export let propName` declarations. Mark a prop bindable from the parent with `$bindable()`.
4. **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 `@apply` directives
- Keep styles co-located with components
## State Management
- Use Svelte stores (or exported `$state` in `.svelte.js`/`.svelte.ts` modules under Svelte 5) for shared state
- Implement state management via classes for complex scenarios, using `$state` fields 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
© Mindrally · Apache-2.0 · Mindrally/skills
Похожие скиллы
Всё по теме «Фронтенд и UI» →Сначала — svelte от других авторов.