Run WCAG 2.2 Level AA accessibility audits against generated UI. Use when a story has ui:true or when asked to audit accessibility.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate a complete component file tree wired to design tokens with tests and Gherkin spec. Use when scaffolding a new UI component.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Generate a complete component file tree wired to design tokens. Each component gets an implementation file, Storybook story, unit test, and Gherkin spec file. Skeletons are runnable with TODO stubs — not empty files. Stack is auto-detected from project.config.yaml.
| Field | Source | Example |
|---|---|---|
component_name | PascalCase | PasswordResetForm |
story_id | story frontmatter id | auth-reset-0001 |
tokens_file | docs/design/identity/tokens.json | required |
stack | project.config.yaml | react-mantine | react-tailwind | html |
mockup_file | approved mockup | docs/design/mockups/auth-reset-0001.mockup.tsx |
For PasswordResetForm with stack react-mantine:
app/
└── components/
└── PasswordResetForm/
├── index.tsx ← component implementation
├── PasswordResetForm.stories.tsx ← Storybook story
├── PasswordResetForm.test.tsx ← unit tests (Vitest / Jest)
└── PasswordResetForm.spec.ts ← Gherkin step binding
app/components/{ComponentName}/index.tsx:
// {ComponentName} — generated from story {story_id}
// Tokens: docs/design/identity/mantine.theme.ts
// TODO: implement from mockup docs/design/mockups/{story_id}.mockup.tsx
import { Stack, TextInput, Button } from '@mantine/core';
import { useState } from 'react';
export interface {ComponentName}Props {
// TODO: define props from story acceptance criteria
onSubmit?: (data: Record<string, unknown>) => void;
}
export function {ComponentName}({ onSubmit }: {ComponentName}Props) {
// TODO: implement
return (
<Stack>
{/* TODO: build from approved mockup */}
</Stack>
);
}
export default {ComponentName};
app/components/{ComponentName}/{ComponentName}.stories.tsx:
import type { Meta, StoryObj } from '@storybook/react';
import { {ComponentName} } from '.';
const meta: Meta<typeof {ComponentName}> = {
title: 'Components/{ComponentName}',
component: {ComponentName},
parameters: {
layout: 'centered',
},
tags: ['autodocs'],
};
export default meta;
type Story = StoryObj<typeof {ComponentName}>;
export const Default: Story = {
args: {},
};
export const WithError: Story = {
args: {
// TODO: add error props
},
};
app/components/{ComponentName}/{ComponentName}.test.tsx:
import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { {ComponentName} } from '.';
describe('{ComponentName}', () => {
it('renders without crashing', () => {
render(<{ComponentName} />);
// TODO: assert presence of key elements from wireframe
expect(document.body).toBeTruthy();
});
it('calls onSubmit when form is submitted', () => {
// TODO: implement interaction test
});
it('shows validation error when input is invalid', () => {
// TODO: implement error state test
});
});
app/components/{ComponentName}/{ComponentName}.spec.ts:
// Gherkin step bindings for story {story_id}
// Feature file: tests/features/{epic}/{story_slug}.feature
import { Given, When, Then } from '@cucumber/cucumber';
// TODO: copy matching steps from cucumber-automation output
// Example:
// Given('the user is on the {string} page', async (page: string) => {
// throw new Error('Pending');
// });
For stack=python (e.g., Django / HTMX):
app/
└── components/
└── password_reset_form/
├── __init__.py
├── template.html
├── test_password_reset_form.py
└── password_reset_form_steps.py
COMPONENT="PasswordResetForm"
STORY_ID="auth-reset-0001"
STACK="react-mantine"
DIR="app/components/$COMPONENT"
mkdir -p "$DIR"
# Check for existing files — never overwrite
for f in "index.tsx" "${COMPONENT}.stories.tsx" "${COMPONENT}.test.tsx" "${COMPONENT}.spec.ts"; do
if [ -f "$DIR/$f" ]; then
echo "[component-scaffold] SKIP $DIR/$f (already exists)"
else
echo "[component-scaffold] CREATE $DIR/$f"
# write the appropriate template (see above)
fi
done
After scaffold, inject token import into index.tsx:
# Verify mantine.theme.ts exists
[ -f "docs/design/identity/mantine.theme.ts" ] || \
echo "[component-scaffold] WARN mantine.theme.ts missing — run design-tokens skill"
| Condition | Action |
|---|---|
ComponentName not PascalCase | Warn and convert: password-reset-form → PasswordResetForm. |
app/components/ does not exist | Create it. Log the creation. |
| File already exists | Skip with SKIP log — never overwrite existing implementations. |
tokens.json missing | Scaffold without token import. Add // TODO: wire to design tokens comment. |
Stack unknown | Default to react-mantine. Log warning. |
[component-scaffold] CREATE app/components/PasswordResetForm/index.tsx
[component-scaffold] CREATE app/components/PasswordResetForm/PasswordResetForm.stories.tsx
[component-scaffold] CREATE app/components/PasswordResetForm/PasswordResetForm.test.tsx
[component-scaffold] CREATE app/components/PasswordResetForm/PasswordResetForm.spec.ts
[component-scaffold] SKIP app/components/PasswordResetForm/index.tsx (already exists)
[component-scaffold] WARN mantine.theme.ts missing
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Run WCAG 2.2 Level AA accessibility audits against generated UI. Use when a story has ui:true or when asked to audit accessibility.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Extract Gherkin scenarios from story markdown files into runnable .feature files and generate step definition stubs. Use when syncing stories to test suites.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Read and write design tokens in W3C DTCG format (tokens.json) and emit CSS, Tailwind, and Mantine outputs. Use when modifying or generating design tokens.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Apply Docker and Docker Compose best practices for containerising services. Use when writing or reviewing Dockerfiles and compose configs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Identify and annotate cloud cost implications of architectural decisions. Use when reviewing infrastructure changes or designing new services.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create, read, update, and link GitHub Issues as story artifacts throughout the story lifecycle. Use when managing issues for stories.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.