New Story
SkillDev toolsGenerate a Storybook story for a component using real components and project CSS classes
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the New Story skill
What this skill tells your AI
The instructions your AI receives, as published by luxury-yacht/app in .agents/skills/new-story/SKILL.md and read by ahel’s review.
Generate a Storybook story for a given component.
Arguments
/new-story <ComponentPath> — path to the component (e.g. frontend/src/ui/modals/MyModal.tsx)
Rules
- Use real components. Import and render the actual component. Never approximate with inline styles.
- Use real CSS classes. If you need wrapper markup, use the project's actual CSS classes — never inline styles that mimic them.
- Mock only data, not rendering. Mock Go backend calls via
window.__storybookGoOverrides, mock props with realistic data. Never mock the component's visual output. - Trace ALL hook dependencies before writing. Read the component and every hook it uses. Identify which providers are needed. Don't discover them one crash at a time.
- Use existing decorators. Check
frontend/.storybook/decorators/for providers:SidebarProvidersDecorator— KubeconfigProvider + NamespaceProviderAppearanceModeProviderDecorator— appearance mode contextKeyboardProviderDecorator— keyboard shortcutsKubeconfigProviderDecorator— kubeconfig onlyZoomProviderDecorator— zoom context
- Use existing mocks. Check
frontend/.storybook/mocks/for Go backend mocks (wailsBackendApp.ts,wailsBackendSettings.ts,wailsModels.ts). - Story file location. Place the
.stories.tsxfile next to the component it tests. - Multiple stories per file. Create stories for the main states: default, loading, error, empty, and any interesting prop variations.
Template
/**
* <file path>
*
* Storybook stories for the <ComponentName> component.
*/
import type { Meta, StoryObj } from '@storybook/react';
import <ComponentName> from './<ComponentName>';
// import decorators as needed
const meta: Meta<typeof <ComponentName>> = {
title: '<Category>/<ComponentName>',
component: <ComponentName>,
// decorators: [SidebarProvidersDecorator],
};
export default meta;
type Story = StoryObj<typeof <ComponentName>>;
/** Default state. */
export const Default: Story = {
args: {
// realistic props
},
};
Verification
After creating the story, run
mise exec -- npm run typecheck --prefix frontend to confirm it compiles without
errors.
Signals
- GitHub stars
- 435
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
new-story- Source
- github.com/luxury-yacht/app