Skip to content
Agentmart
Submit a tool

create-storybook

Applies only to work in the quantum-box/tachyon-apps repository.

Skill by quantum-box

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/quantum-box-create-storybook

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Applies only to work in the quantum-box/tachyon-apps repository. Create Storybook stories when the user asks, a new component needs stable visual or interaction coverage, or the requested UI change explicitly requires story coverage. Do not trigger for every UI edit or before every commit.

Use cases: design, frontend, testing, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/create-storybook

What's inside

Skill name
create-storybook
Description
Applies only to work in the quantum-box/tachyon-apps repository. Create Storybook stories when the user asks, a new component needs stable visual or interaction coverage, or the requested UI change explicitly requires story coverage. Do not trigger for every UI edit or before every commit.
License
MIT
Instructions
274 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Create Storybook

Create stories for React components following project conventions.

## REQUIRED: Tags and Interaction Tests

Every story MUST have:
1. **Tags** - For filtering and categorization
2. **Interaction tests (play function)** - For interactive components

### Interaction Tests Must Test BEHAVIOR, Not Just Display

**NG**: Only checking if element is displayed
```tsx
// BAD: Just checking display
play: async ({ canvasElement }) => {
  const canvas = within(canvasElement)
  expect(canvas.getByRole('button')).toBeInTheDocument() // Not enough!
}
```

**OK**: Testing actual user behavior and results
```tsx
// GOOD: Testing form submission flow
play: async ({ canvasElement }) => {
  const canvas = within(canvasElement)

  // 1. Fill form fields
  await userEvent.type(canvas.getByLabelText(/name/i), 'Test')

  // 2. Submit form
  await userEvent.click(canvas.getByRole('button', { name: /submit/i }))

  // 3. Verify result (success message, redirect, state change)
  await waitFor(() => {
    expect(canvas.getByText(/saved/i)).toBeInTheDocument()
  })
}
```

### What to Test
- **Forms**: Input → Submit → Success/Error states
- **Buttons**: Click → Action result (dialog opens, data updates)
- **Tabs/Views**: Click → Content switches correctly
- **Dialogs**: Open → Interact → Close
- **Validation**: Invalid input → Error message displayed

## Workflow

After creating/updating a story:

```bash
# 1. Start Storybook (background or separate terminal)
pnpm exec turbo run storybook --filter=<app>

# 2. Wait for Storybook to be ready (port 6006)

# 3. Run tests
pnpm exec turbo run test-storybook --filter=<app>

# 4. Run specific tags only
pnpm exec turbo run test-storybook --filter=<app> -- --includeTags=<tag>
```

## File Naming

```
component-name.stories.tsx  # kebab-case, same directory as component
```

## Basic Template (with REQUIRED tags)

```tsx
import type { Meta, StoryObj } from '@storybook/react'
import { expect, userEvent, waitFor, within } from '@storybook/test'
import { ComponentName } from './component-name'

const meta = {
  title: 'Category/ComponentName',
  component: ComponentName,
  parameters: {
    layout: 'centered', // or 'fullscreen'
  },
  tags: ['autodocs', 'feature-name'],  // REQUIRED: always add tags
} satisfies Meta<typeof ComponentName>

export default meta
type Story = StoryObj<typeof ComponentName>

export const Default: Story = {
  args: {
    // component props
  },
}

// REQUIRED for interactive components: add play function
export const WithInteraction: Story = {
  args: { /* ... */ },
  play: async ({ canvasElement }) => {
    const canvas = within(canvasElement)

    // Wait for render
    await waitFor(() => {
      expect(canvas.getByRole('button')).toBeInTheDocument()
    })

    // User action
    await userEvent.click(canvas.getByRole('button', { name: /submit/i }))

    // Verify result
    await waitFor(() => {
      expect(canvas.getByText('Success')).toBeInTheDocument()
    }, { timeout: 5000 })
  },
}
```

## Title Conventions

From quantum-box/tachyon-skills, MIT.

More from quantum-box/tachyon-skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 29, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from quantum-box

Cite this page

create-storybook skill. Agent Mart. https://agentmart.dev/skills/quantum-box-create-storybook (last updated 2026-10-24)