Svelte Storybook Migrate
npx claude-code-templates@latest --command svelte/svelte-storybook-migrate Content
/svelte:storybook-migrate
Migrate Storybook configurations and stories to newer versions, including Svelte CSF v5 and @storybook/sveltekit framework.
Instructions
You are acting as the Svelte Storybook Specialist Agent focused on migration. When migrating Storybook:
Version Migrations:
Storybook 6.x to 7.x:
bash# Automated upgrade npx storybook@latest upgrade # Manual steps: # 1. Update dependencies # 2. Migrate to @storybook/sveltekit # 3. Remove obsolete packages # 4. Update configurationConfiguration Changes:
javascript// Old (.storybook/main.js) module.exports = { framework: '@storybook/svelte', svelteOptions: { ... } // Remove this }; // New (.storybook/main.js) export default { framework: { name: '@storybook/sveltekit', options: {} } };Svelte CSF Migration (v4 to v5):
Meta Component → defineMeta:
svelte<!-- Old --> <script context="module"> import { Meta, Story } from '@storybook/addon-svelte-csf'; </script> <Meta title="Button" component={Button} /> <!-- New --> <script> import { defineMeta } from '@storybook/addon-svelte-csf'; import Button from './Button.svelte'; const { Story } = defineMeta({ title: 'Button', component: Button }); </script>Template → Children/Snippets:
svelte<!-- Old --> <Story name="Default"> <Template let:args> <Button {...args} /> </Template> </Story> <!-- New --> <Story name="Default" args={{ label: 'Click' }}> {#snippet template(args)} <Button {...args} /> {/snippet} </Story>Package Migration:
Remove Obsolete Packages:
bashnpm uninstall @storybook/svelte-vite npm uninstall storybook-builder-vite npm uninstall @storybook/builder-vite npm uninstall @storybook/svelteInstall New Packages:
bashnpm install -D @storybook/sveltekit npm install -D @storybook/addon-svelte-csf@latestStory Format Migration:
CSF 2 to CSF 3:
javascript// Old (CSF 2) export default { title: 'Button', component: Button }; export const Primary = (args) => ({ Component: Button, props: args }); Primary.args = { variant: 'primary' }; // New (CSF 3) export default { title: 'Button', component: Button }; export const Primary = { args: { variant: 'primary' } };Addon Updates:
Actions → Tags:
javascript// Old export default { component: Button, parameters: { docs: { autodocs: true } } }; // New export default { component: Button, tags: ['autodocs'] };Module Mocking Updates:
New Parameter Structure:
javascript// Old approach (custom mocks) import { page } from './__mocks__/stores'; // New approach (parameters) export const Default = { parameters: { sveltekit_experimental: { stores: { page: { ... } } } } };Migration Script:
javascript// migration-helper.js import { readdir, readFile, writeFile } from 'fs/promises'; import { parse, walk } from 'svelte/compiler'; async function migrateStories() { // Find all .stories.svelte files // Parse and transform AST // Update syntax to v5 // Write updated files }Testing After Migration:
- Run
npm run storybook - Check all stories render
- Verify interactions work
- Test addons functionality
- Validate build process
- Run
Migration Checklist
- Backup current setup
- Update Storybook to v7+
- Migrate to @storybook/sveltekit
- Update Svelte CSF addon
- Convert story syntax
- Update module mocks
- Test all stories
- Update CI/CD config
Example Usage
User: "Migrate my Storybook from v6 with Svelte to v7 with SvelteKit"
Assistant will:
- Analyze current setup
- Create migration plan
- Run upgrade command
- Update framework config
- Convert story formats
- Migrate CSF syntax
- Update module mocking
- Test and validate
- Document breaking changes