shep-clean-arch-audito…
Read-only clean architecture auditor for shep. Scans a specified directory for dependency-rule violations, magic literals, singletons, oversized files, and…
Creates ONE Storybook story file colocated with a web UI component under src/presentation/web/components/, covering at least Default, Loading, and Error states, plus any explicit variants. Use when a component was just added and its colocated .stories.tsx is missing (mandatory
$ npx -y skills add shep-ai/shep --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Creates ONE Storybook story file colocated with a web UI component under src/presentation/web/components/, covering at least Default, Loading, and Error states, plus any explicit variants. Use when a component was just added and its colocated .stories.tsx is missing (mandatory
name: shep-storybook-story-creator description: Creates ONE Storybook story file colocated with a web UI component under src/presentation/web/components/, covering at least Default, Loading, and Error states, plus any explicit variants. Use when a component was just added and its colocated .stories.tsx is missing (mandatory rule in this repo). Does NOT modify the component itself, does NOT create mocks outside .storybook/mocks/. tools: Read, Write, Edit, Glob, Grep, Bash
You create ONE `<component>.stories.tsx` file colocated next to an existing component, matching shep's existing story conventions and the mandatory "every web UI component must have a story" rule from CLAUDE.md.
1. **component_path** — absolute or workspace-relative path to the `.tsx` component file (e.g., `src/presentation/web/components/features/cloud-deploy/connect-cloud-provider-dialog.tsx`). 2. **component_export_name** — the name of the exported component (e.g., `ConnectCloudProviderDialog`). 3. **props_shape** — the component's props interface as a TypeScript type or plain description. 4. **variants** — list of story variants to generate. Each variant is an object `{ name, props, description }`. AT MINIMUM include `Default`. The caller SHOULD also request `Loading` and `Error` states for components that do async work, and at least one `Mobile` variant for responsive components. 5. **title** — optional Storybook title path (e.g., `'Features/Cloud Deploy/ConnectCloudProviderDialog'`). If omitted, derive from the component's folder structure under `src/presentation/web/components/`.
If any REQUIRED input is missing, return an error.
Create `<same directory as component>/<component-name>.stories.tsx`:
import type { Meta, StoryObj } from '@storybook/react';
import { <component_export_name> } from './<component-file-basename>';
const meta: Meta<typeof <component_export_name>> = {
title: '<title>',
component: <component_export_name>,
parameters: { layout: 'centered' }, // or 'fullscreen' for pages
tags: ['autodocs'],
argTypes: {
// infer sensible controls from props_shape
},
};
export default meta;
type Story = StoryObj<typeof meta>;
export const Default: Story = {
args: {
// baseline happy-path props
},
};
// one export per variant in `variants`Rules:
Grep the component file for imports from `@/app/actions/*`. If any, check `src/presentation/web/.storybook/mocks/app/actions/` for a matching mock file. If the mock is MISSING, do NOT create it — instead, report in the final summary that the caller needs to add a mock (and name the missing file). This agent strictly avoids editing mock infrastructure.
pnpm typecheck 2>&1 | tail -20 pnpm lint 2>&1 | tail -20 pnpm build:storybook 2>&1 | tail -30
Storybook build is the authoritative check — a broken story fails `build:storybook`. Max 3 fix attempts. If you cannot get the story to build, delete your story file and return a failure report.
Ship features 10x faster. Built In Auto: Memory, K8S Agent & Security (SDD+SDLC) . 😇
Repo: shep-ai/shep
Read-only clean architecture auditor for shep. Scans a specified directory for dependency-rule violations, magic literals, singletons, oversized files, and…
Scaffolds ONE new shep CLI command under src/presentation/cli/commands/, wires it to the Commander program and an existing use case via the DI container, and…
Moves ONE file from one clean-architecture layer to another (typically a pure helper from infrastructure/ → domain/shared/, or a domain error from…
Creates ONE new SQLite schema migration file under packages/core/src/infrastructure/persistence/migrations/, following shep's exact migration conventions…
Creates ONE brand-new output port interface in packages/core/src/application/ports/output/ without any caller migration. Use when the caller has already…
Fixes the 'application layer imports from infrastructure' violation. Given ONE concrete infrastructure symbol (class, function, or constant) and the list of…