بنقرة واحدة
start-feature
Start a new design feature — creates a branch, prototype scaffold, and opens Storybook
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Start a new design feature — creates a branch, prototype scaffold, and opens Storybook
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Use when you have a written plan, spec, or design proposal that needs adversarial pressure-testing to surface flaws, ambiguities, hidden assumptions, and missing details before implementation.
Execute Figma Console MCP code safely with timeout sizing, auto-layout guards, minimal-error retries, and compact failure reporting. Use when creating or editing Figma nodes via figma_execute or debugging figma_console errors.
استنادا إلى تصنيف SOC المهني
| name | start-feature |
| description | Start a new design feature — creates a branch, prototype scaffold, and opens Storybook |
| argument-hint | [feature description in plain language] |
A designer wants to start working on: $ARGUMENTS
Help them get a branch, a scaffold, and a live Storybook preview. Be friendly and skip all technical jargon — they don't need to know what git is doing.
Run these steps silently using your bash tools, then give the designer a single friendly summary at the end.
git checkout main && git pull --ff-only
If this fails, tell the designer in plain language and stop.
gh api user --jq .login
Store as GH_USER.
Slugify the feature name: lowercase, spaces → hyphens, strip special characters, prefix feat/.
Example: "nav card hover state" → feat/nav-card-hover-state
Also derive a short slug without the feat/ prefix for file/directory names.
git checkout -b <branch-name>
git commit --allow-empty -m "feat: start <branch-name>"
git push -u origin <branch-name>
Create the component directory and files:
packages/components/src/prototyping/<GH_USER>/<feature-slug>/
<feature-slug>.js ← Lit component scaffold
<feature-slug>.css ← CSS scaffold (semantic tokens only)
apps/storybook/stories/prototyping/<GH_USER>/
<feature-slug>.stories.js ← Storybook story
Component JS scaffold (packages/components/src/prototyping/<GH_USER>/<feature-slug>/<feature-slug>.js):
import { html } from "lit";
import "./<feature-slug>.css";
/**
* <FeatureName> — Prototype
* Designer: <GH_USER>
* Branch: <branch-name>
*/
export const <FeatureName> = (args = {}) => {
const { label = "<FeatureName>" } = args;
return html`
<div class="<feature-slug>">
<span class="<feature-slug>__label">${label}</span>
</div>
`;
};
Component CSS scaffold (packages/components/src/prototyping/<GH_USER>/<feature-slug>/<feature-slug>.css):
/* <FeatureName> — Prototype
Designer: <GH_USER>
Use semantic tokens only — never hardcode values.
Token reference: packages/tokens/css/ */
.<feature-slug> {
display: flex;
align-items: center;
padding: var(--s2a-spacing-md);
background: var(--s2a-color-background-default);
color: var(--s2a-color-content-default);
}
.<feature-slug>__label {
font: var(--s2a-typography-body-lg);
}
Storybook story (apps/storybook/stories/prototyping/<GH_USER>/<feature-slug>.stories.js):
import { html } from "lit";
import { <FeatureName> } from "../../../../../packages/components/src/prototyping/<GH_USER>/<feature-slug>/<feature-slug>.js";
export default {
title: "Prototyping/<GH_USER>/<FeatureName>",
tags: ["autodocs"],
argTypes: {
label: { control: "text" },
},
};
export const Default = {
args: { label: "<FeatureName>" },
render: (args) => <FeatureName>(args),
};
Then stage and commit the scaffold:
git add packages/components/src/prototyping/ apps/storybook/stories/prototyping/
git commit -m "feat: add <feature-slug> prototype scaffold"
git push
gh pr create --title "feat: <feature-slug> prototype" --draft --body "## Prototype: <feature-name>
Scaffold created via \`/start-feature\`.
**Story:** \`Prototyping/<GH_USER>/<FeatureName>\`
**Preview:** Will be posted automatically once CI runs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)"
Store the returned PR URL and extract the PR number for the summary.
Check if Storybook is already running on port 6006. If not, start it:
lsof -i:6006 -t || npm run storybook &
Wait until it responds (poll with curl, max 60s):
until curl -s http://localhost:6006 > /dev/null 2>&1; do sleep 2; done
Then open the browser at the specific story:
open "http://localhost:6006/?path=/story/prototyping-<gh_user>-<feature-slug>--default"
(Story ID format: title segments lowercased and hyphenated, -- before the story name.)
Give them one clean message — no terminal output, no git details:
You're set up and Storybook is open in your browser.
Your prototype lives at:
packages/components/src/prototyping/<GH_USER>/<feature-slug>/
The story is at:
apps/storybook/stories/prototyping/<GH_USER>/<feature-slug>.stories.js
Your draft PR is open at:
<PR URL>
Once CI runs, a shareable preview will also be posted there at:
https://adobecom.github.io/consonant/pr-preview/pr-<number>/
What should this component look like? Describe it — layout, states, interactions, anything — and I'll build it out.
Do not show raw command output. Do not explain git. Just give them the summary above and wait for their next message.