- Language: TypeScript
- Package Manager: pnpm
- Add-ons: prettier, eslint, tailwindcss, mdsvex, mcp
- Always ask before launching the dev-server.
- Always ask before using the chrome-mcp
- Load skills dynamically based on the task instead of loading every available skill at the start of each session
- Treat
svelte-code-writerandsvelte-core-bestpracticesas the default baseline for work in this repository because Svelte is part of the core stack - Load
commitwhen the user asks to create a commit, draft a commit message, review a staged commit, or summarize changes into a commit message that follows the repo's commit-writing standards - Load
changesetwhen the user asks to add or review a Changeset, prepare release notes, decide whether a release-visible change needs version metadata, or create a.changeset/*.mdentry for packagedle.dev - Load
frontend-designfor design-heavy work such as UI design, layout polish, visual refinement, landing pages, dashboards, or other requests where the main goal is the look and feel - Load
ui-animationfor animation-related work such as transitions, motion polish, interaction feel, choreography, or animation review/debugging - Load the GSAP skills only when the task involves animation or motion implementation
- When loading GSAP skills, load the smallest relevant set for the task:
gsap-corefor general GSAP animation workgsap-frameworkswhen implementing GSAP in Svelte or other framework componentsgsap-scrolltriggerfor scroll-based animationgsap-timelinefor sequenced or choreographed animationsgsap-pluginswhen a GSAP plugin is neededgsap-performancewhen optimizing animation performancegsap-utilswhen GSAP utility helpers are directly relevant
- Load other skills only when their domain clearly matches the request instead of treating them as universal baseline context
When building or refactoring UI, prefer the smallest correct composition from existing component libraries before writing bespoke markup.
Always first check whether the requested UI can be built from base components already available in the project or easily addable from:
Default approach:
- Before writing any custom UI markup, first check whether an equivalent or near-equivalent shadcn component already exists locally in the repo
- If a matching local shadcn component exists, use it as the starting point instead of rebuilding the same pattern by hand
- Prefer composing from existing shadcn primitives before creating custom wrappers or one-off components
- Prefer extending a shadcn primitive with classes, slots, variants, or light composition instead of rebuilding the same behavior from scratch
- For standard UI patterns like buttons, inputs, sheets, menus, dialogs, tooltips, tabs, cards, badges, accordions, and navigation, assume a shadcn-based solution should be attempted first
- If a suitable shadcn component does not exist locally, consider whether it should be added before building a custom version
If the request involves premium interactions, richer visuals, animated UI, hero sections, marquee moments, or other components intended to impress, evaluate established inspiration or implementation patterns from:
- https://aceternity.sveltekit.io/
- https://animation-svelte.vercel.app/
- https://motion-core.dev/
- https://sv-animations.vercel.app/
Do not copy blindly. Adapt patterns to the project's design language and keep the implementation maintainable.
Prefer motion that feels deliberate, premium, and visually memorable.
- Use GSAP for component transitions, staged reveals, scroll-linked effects, and more polished choreography where appropriate
- Avoid defaulting to plain Svelte fly-in/fly-out transitions when the component is intended to feel premium
- Simple transitions are acceptable for utilitarian UI, but user-facing showcase sections should aim higher
- Favor layered motion, stagger, depth, masking, parallax, clip-path, blur, scale, and timing contrast when they improve the experience
- Motion should feel smooth and intentional, not noisy or ornamental for its own sake
Suggestions and implementations for visible UI should aim to wow and dazzle the visitor.
- Avoid generic layouts and safe, overly familiar component styling when the task allows a more expressive direction
- Prefer premium, high-contrast, well-paced interactions over bland utility styling
- Preserve usability, accessibility, and performance while still pushing toward a more striking visual result
You are able to use the Svelte MCP server, where you have access to comprehensive Svelte 5 and SvelteKit documentation. Here's how to use the available tools effectively:
Use this FIRST to discover all available documentation sections. Returns a structured list with titles, use_cases, and paths. When asked about Svelte or SvelteKit topics, ALWAYS use this tool at the start of the chat to find relevant sections.
Retrieves full documentation content for specific sections. Accepts single or multiple sections. After calling the list-sections tool, you MUST analyze the returned documentation sections (especially the use_cases field) and then use the get-documentation tool to fetch ALL documentation sections that are relevant for the user's task.
Analyzes Svelte code and returns issues and suggestions. You MUST use this tool whenever writing Svelte code before sending it to the user. Keep calling it until no issues or suggestions are returned.
Generates a Svelte Playground link with the provided code. After completing the code, ask the user if they want a playground link. Only call this tool after user confirmation and NEVER if code was written to files in their project.