Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
日本語の概要は準備中です。原文の説明を表示しています。
Use when designing or building any screen, section or component that a user sees — visual hierarchy, typography, colour, spacing, states, forms and how to avoid the generic AI look.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Visual design is not decoration bolted on at the end — hierarchy, spacing, and states are load-bearing parts of the UI. The two most common failures are structural sameness (every screen reads as the same generic SaaS template) and a happy-path-only build (no loading/empty/error states).
Core principle: Decide the mode first — Marketing or App — then build to the quality floor: one primary action, systematic spacing, semantic tokens, and every state designed, never just the happy path.
| Marketing / landing | App / product UI | |
|---|---|---|
| Visitor wants to | decide and act | complete a task |
| Optimise for | one strong idea per section, a visual direction grounded in the product's actual subject matter, generous whitespace, real imagery | density appropriate to the task, predictability, consistency over novelty |
| Call to action | a single primary CTA, repeated | no persuasion chrome — tables/forms/filters done right |
Ground the direction in the real subject (industry, materials, audience) — a toy brand's landing page and a financial dashboard should never default to the same look.
gap-1 gap-2 gap-3 gap-4 gap-6 gap-8 gap-12 gap-16 gap-24 (4px steps).text-xs … text-6xl; body is text-base (16px); line-height 1.5–1.7 for body, 1.1–1.25 for display.max-w-prose); max two font families; weights 400/500/600/700 only.text-balance on headings, text-pretty on body paragraphs; tabular-nums on prices and stats.bg-primary, text-muted-foreground, border-border) — never raw palette classes or hex.dark: override. On a coloured surface, tint secondary text from that hue — never grey-on-colour.--radius, rounded-md/rounded-lg/rounded-full); a nested radius is ≤ its parent's.shadow-sm/shadow-md/shadow-lg); borders use border-border.focus-visible, active, disabled, and pending.AlertDialog or an undo window — never a silent delete.<label> for every field — a placeholder is not a label. Helper text under the field, not hidden in a tooltip, unless the field is self-explanatory.aria-invalid + aria-describedby pointing at it.type/inputmode/autocomplete; on submit, focus the first invalid field.Spinner, don't swap the text to "Loading…").Intl.NumberFormat, dates through Intl.DateTimeFormat, both locale-aware.lucide-react); consistent size and stroke width.aria-hidden on decorative icons; never emoji standing in for an icon.transform/opacity; ≤200ms for interaction feedback; never transition-all.motion-reduce: respected. Prefer no animation over a gratuitous one; at most one purposeful moment per marketing page, not a fade-up on every section.rgba(0,0,0,.1) shadow under everything, as the whole page's structure.border-left/border-right on cards or alerts; no nested cards; no decorative glassmorphism/blur.#F4F1EA) + terracotta accent, or near-black + a single acid-green/vermilion accent, are defaults, not a direction you chose.// ❌ generic hero: centred everything, eyebrow label, gradient text,
// no real hierarchy beyond font-size, no states considered
<section className="text-center py-24">
<p className="text-sm uppercase tracking-widest text-muted-foreground">Welcome</p>
<h1 className="text-5xl font-bold bg-gradient-to-r from-purple-500 to-pink-500 bg-clip-text text-transparent">
The best way to manage tasks
</h1>
<p className="mt-4 text-muted-foreground">Get started today.</p>
<Button className="mt-6">Submit</Button>
</section>
// ✅ one idea, real copy, clear hierarchy, semantic tokens, named action
<Container className="py-16 sm:py-24">
<div className="flex max-w-prose flex-col items-start gap-4">
<h1 className="text-balance text-4xl font-semibold text-foreground sm:text-5xl">
Plan the sprint in the time it takes to make coffee
</h1>
<p className="text-pretty text-lg text-muted-foreground">
Turn a backlog into a week your team can actually run.
</p>
<div className="flex flex-wrap gap-3 pt-4">
<Button size="lg">Start planning</Button>
<Button size="lg" variant="ghost">See how it works</Button>
</div>
</div>
</Container>
The rewrite drops the eyebrow and gradient, picks one hierarchy path (size → weight → colour), names each action, keeps one primary CTA with a quieter secondary, and spaces everything with gap from the token scale — the atoms carry no margins of their own.
bg-blue-500, text-gray-600) or hex instead of semantic tokens.<label>.bg-gradient-to-r on text, or a palette colour class, anywhere in a component.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
日本語の概要は準備中です。原文の説明を表示しています。
Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping
日本語の概要は準備中です。原文の説明を表示しています。
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
日本語の概要は準備中です。原文の説明を表示しています。
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
日本語の概要は準備中です。原文の説明を表示しています。
How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.
日本語の概要は準備中です。原文の説明を表示しています。
Use when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation
日本語の概要は準備中です。原文の説明を表示しています。