Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Storybook Pro

ASecurity

Develop UI in isolation with Storybook: stories, args, controls, decorators, and interaction/visual testing. Use for component-driven development.

2 stars
0 votes
0 copies
0 views
Added 9/29/2026
ai-agentsgobashreacttestingapidocumentation

Works with

cliapi

Security Analysis

A100/100

Scanned 9/29/2026

$npx -y skills add aicodedecode/awesome-muse-skills --skill storybook-pro --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Storybook Pro?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Storybook Pro
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aicodedecode-storybook-pro/badge)](https://www.skillsdirectory.com/skills/aicodedecode-storybook-pro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: storybook-pro
description: Develop UI in isolation with Storybook: stories, args, controls, decorators, and interaction/visual testing. Use for component-driven development.
category: web-development
---

# Storybook Pro

A practical guide to Storybook: component-driven development — writing stories, args/controls, decorators, documentation, and using stories as the basis for visual and interaction testing.

## Overview

Storybook renders components in isolation, outside the app: each **story** is a component in a specific state (default, loading, error, long-text). This gives you a **living component catalog** for development, design review, and QA — build the UI states without navigating the app into them. Stories then double as test fixtures (interaction tests) and visual regression baselines.

## When to use

- Building/maintaining a component library or design system.
- Developing complex component states (empty, error, loading) without app setup.
- Design review and QA of UI in isolation.
- Visual regression and interaction testing via stories.

## Core concepts

- **Stories (CSF).** `export const Primary = { args: { variant: 'primary', children: 'Save' } }` — Component Story Format: stories as objects with args. One file per component (`Button.stories.tsx`).
- **Args & controls.** Args are story inputs; controls auto-generate a UI panel to tweak them (text, boolean, select, color). Great for explorative QA.
- **Decorators.** Wrappers applied to stories: theme providers, router context, padding, locale. Global decorators in `.storybook/preview.tsx`.
- **Parameters.** Per-story config: layout (`centered`, `fullscreen`), backgrounds, viewport sizes, a11y rules.
- **Docs.** Autodocs generates prop tables and docs pages from stories + TSDoc. Stories *are* the documentation — write them to be read.
- **Interaction testing.** `play` functions simulate user flows inside stories (click, type, assert) — run in CI with the test runner.
- **Visual testing.** Chromatic (or similar) snapshots every story on every PR — pixel-level regression detection across the whole catalog.

## Practical workflow

**1. Setup.**
```bash
npx storybook@latest init   # detects framework, scaffolds .storybook/
npm run storybook
```

**2. Write stories for states, not just the happy path.**
```tsx
// Button.stories.tsx
import type { Meta, StoryObj } from '@storybook/react';
import { Button } from './Button';

const meta: Meta<typeof Button> = { component: Button, tags: ['autodocs'],
  argTypes: { onClick: { action: 'clicked' } } };
export default meta;
type Story = StoryObj<typeof Button>;

export const Primary: Story = { args: { variant: 'primary', children: 'Save' } };
export const Loading: Story = { args: { loading: true, children: 'Save' } };
export const Disabled: Story = { args: { disabled: true, children: 'Save' } };
export const LongLabel: Story = { args: { children: 'Save all changes to the shared workspace' } };
```

**3. Decorators for context.**
```tsx
// .storybook/preview.tsx
export const decorators = [
  (Story) => <ThemeProvider><div style={{ padding: 16 }}><Story /></div></ThemeProvider>,
];
```

**4. Interaction test.**
```tsx
export const Toggles: Story = {
  play: async ({ canvasElement }) => {
    const canvas = within(canvasElement);
    await userEvent.click(canvas.getByRole('switch'));
    await expect(canvas.getByRole('switch')).toHaveAttribute('aria-checked', 'true');
  },
};
```

**5. CI.** Build Storybook, run test-runner (interaction + a11y), publish to Chromatic for visual review on PRs.

## Common pitfalls

- **Stories only for happy path.** The value is in states: loading, error, empty, overflow, RTL. If a story doesn't exist for a state, that state isn't designed.
- **Stories duplicating app logic.** Stories with complex setup replicating app state become maintenance burdens. Keep stories presentational; mock at the props boundary.
- **No decorators for providers.** Stories crashing on missing context (theme, router, store). Global decorators once, not per story.
- **Stale stories.** Component API changes, stories not updated → catalog lies. Treat stories as code: update in the same PR.
- **Over-mocking.** Stories so mocked they don't resemble real usage. Use realistic data (long names, edge values).
- **Ignoring visual review.** Chromatic diffs rubber-stamped. Assign reviewers; diffs are design QA.
- **Slow Storybook.** Hundreds of stories with heavy decorators = sluggish. Code-split stories, keep decorators light, lazy-load where possible.
- **Docs rot.** Autodocs only works if props are typed and commented. Write TSDoc on props — the docs page is your API reference.

Attribution

aicodedecodeaicodedecode
View sourceSee grades on GitHubMore from aicodedecode →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698461 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →