Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA standards. Use this skill to generate semantic ARIA for Web and accessibility traits for Web and Native platforms (iOS/Android).
日本語の概要は準備中です。原文の説明を表示しています。
Design and build cohesive web pages with custom visual identity — landing pages and portfolios get rich anatomy + section archetypes; any other page type (blog, about, pricing, contact, coming-soon, dashboard, admin, e-commerce, custom) is supported through generic anatomy + skeleton. Use this skill whenever the user mentions: landing page, portfolio, personal site, hero section, marketing page, product page, sales page, splash page, blog page, about page, pricing page, contact page, coming-soon, waitlist, dashboard, admin panel, e-commerce store, redesign my site, design my portfolio, build a portfolio, work showcase, hire-me page, perfect-ui, perfect landing, or asks to create any web page surface. Two tiers: special (landing | portfolio — rich treatment) and generic (everything else — universal craft toolkit). Self-contained 8-phase pipeline: vibe discovery → visual direction (color/typography/mood) → custom icon set (NO emoji, NO icon library) → AI-generated visuals → optional shader effects layer → inline plan + implement on Next.js + Tailwind + shadcn. Always proposes effect layer as optional. No refusals; outputs distinctive sites, not AI slop.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Design and ship web pages where every visual element — icons, illustrations, 3D, copy, layout, motion — shares one coherent vibe. Built to avoid AI slop through curated direction, custom icons (zero emoji, zero icon libraries), and bespoke visuals. Landing pages and portfolios get rich type-specific treatment; every other page type uses a generic anatomy with the same universal craft toolkit.
This skill applies to any web page output — single-page sites, multi-section landings, content pages, portfolios, internal app surfaces. No refusals.
| Tier | Types | Treatment |
|---|---|---|
| Special | landing, portfolio | Rich anatomy per type + Next.js skeleton + per-vibe section archetypes + full Tier 1/2/3 anti-slop audit. Evidence-backed (12 marketing landings analyzed). |
| Generic | Any other type — blog, about, pricing, contact, coming-soon, error-page (404/500), legal, dashboard, admin, e-commerce, or any custom string | Generic anatomy + generic Next.js skeleton + universal anti-slop subset (per § Applicability Matrix in references/anti-slop-rules.md). Best-effort universal craft when evidence base doesn't directly cover the type. |
Vibe lock + palette + typography + custom SVG icons + 2D illustrations + visual effects + motion intensity scale. All apply regardless of tier.
For these, perfect-ui suggests companion skills via § Beyond perfect-ui — it does not refuse.
Activate whenever user input matches any of these:
If user says only "design a website" or "build a site" → ask via AskUserQuestion with the expanded Page Type options (see references/workflow-phases.md § Phase 0.5 Step 3). The skill no longer refuses any type — for app-surface types (dashboard / admin / e-commerce / full app) it logs an evidence-base disclosure and proceeds with the universal craft toolkit.
— metric to confirm) when user doesn't supply data, OR pick a different macrostructure, OR refuse the section entirely. Hero H1 line count per vibe (universal 4+ ban), no meta-label headers ("SECTION 01" / "CHAPTER THREE"), no hero filler text ("Scroll to explore" / "Swipe down"). Tier-filtered per § Applicability Matrix — see references/anti-slop-rules.md § Honest Copy Mandate.prefers-reduced-motion always respected. See references/motion-patterns.md.generic-page-anatomy.md + generic-page-skeleton.md with sections driven by the Page-Purpose Exercise. Phase 1 brief always asks page-purpose; Phase 6 plan branches by tier; Phase 8 audit honors [universal] / [marketing-only] / [landing/portfolio-only] tags from § Applicability Matrix per --type..perfect-ui/log.json, macrostructure pick at Phase 2.5 must NOT match any of the last 3 entries (hard rule). Vibe / dials / motion personality should differ from last entry (soft warnings; override OK). Read at Phase 0.5; written at Phase 7-end. See references/macrostructure-catalog.md § Diversification rule + references/anti-slop-rules.md § Diversification Rule.<design_plan> verification (v2.5.0+) — at Phase 7 entry, before any code emission, populate the 10-field <design_plan> block (macrostructure_diversification / vibe_validity / dial_alignment / motion_personality / hero_math / bento_density / label_sweep / button_contrast / honest_copy / gsap_decision) per references/preemit-design-plan.md. Collect-all-errors validation — any FAIL routes user back to the relevant phase; do NOT proceed until all PASS. Block stamped in BOTH the generated CSS AND plans/{slug}/plan.md § Pre-emit verification. Component-scope runs minimal 4-field subset (vibe_validity / motion_personality / button_contrast / honest_copy).flowchart TD
M[Phase 0: Detect Mode: new vs redesign] --> SM{Phase 0a: --study URL?}
SM -->|Yes| ST[Study mode: URL safety + fetch + DNA extraction + 3-way branch]
SM -->|No| P[Phase 0.1: Pre-flight scan — auto-detect existing tokens]
ST --> P
P --> T[Phase 0.5: Detect Type → tier route + read log.json]
T --> CS{Phase 0.5b: Component-scope signals?}
CS -->|2+ signals| CB[Component-scope branch: skip macrostructure / hero / log.json]
CS -->|0-1 signals| MC[Phase 2.5: Macrostructure pick — diversification check]
MC --> BM[Phase 2.6: Brand Motion Identity — pick personality]
T --> B[Phase 1: Discovery — inline brainstorm protocol, branched per type]
B --> C[Phase 2: Visual Direction — palette/typo/spatial/effect/motion]
C --> D[Phase 3: Custom Icon Set]
D --> E[Phase 4: 2D Visual Assets — illustration / static 3D render / photo / SVG]
E --> F{Phase 5: Visual Effect Layer?}
F -->|Yes| G[Shader / Particle / Atmospheric via React Three Fiber or CSS]
F -->|No| PE[Phase 7 entry: Pre-emit design_plan block — 10 fields verified]
G --> PE
CB --> PE
PE --> H[Phase 6: Plan — inline plan protocol, type-aware]
H --> I[Phase 7: Implement — inline protocol, apply locked motion intensity]
I --> J[Phase 8: Anti-Slop Review + Polish — component-scope runs subset]
J --> K[Done]
If prose conflicts with this diagram, follow the diagram.
| Input signal | Mode | Next phase |
|---|---|---|
--new flag, or user describes content with no existing site | new | Phase 0.5 |
--redesign flag, or user provides URL / screenshot / existing repo | redesign | Run audit (see references/redesign-audit-checklist.md), then Phase 0.5 |
| Ambiguous | — | AskUserQuestion to disambiguate |
Routes to one of two tiers. See references/workflow-phases.md § Phase 0.5 for the full 5-step logic.
| Input signal | Type | Tier | Action |
|---|---|---|---|
--type landing flag, or "landing page", "marketing page", "sales page", "product launch", "funnel" | landing | special | Proceed with landing flow |
--type portfolio flag, or "portfolio", "work showcase", "hire-me", "personal site" (work-focused) | portfolio | special | Proceed with portfolio flow |
| Keyword detected: blog, about, pricing, contact, coming-soon, 404, legal, dashboard, admin, e-commerce, store | matched keyword | generic | Proceed with generic flow; log evidence-base disclosure for dashboard/admin/e-commerce/app-surface |
--type {anything-else} flag passed | as supplied | generic | Accept the string verbatim, proceed with generic flow |
| Ambiguous, or just "website" / "site" | — | — | AskUserQuestion with expanded Page Type options (9 presets + "Other (free text)") |
Carry chosen type AND tier AND marketing-intent flag into ALL downstream phases. Tier controls: brief template (Phase 1), plan template (Phase 6), implementation skeleton (Phase 7), audit subset (Phase 8 — see anti-slop-rules.md § Applicability Matrix).
We are about to design a landing page. Brainstorm with the user, produce
plans/{date}-{slug}/brief.md with:
1. Product (one sentence: what + who + why now)
2. Primary audience (specific role)
3. Single conversion goal (signup / demo / buy / waitlist)
4. Vibe: pick 1 from {minimal, editorial, brutalist, retro-futuristic, organic,
luxury, playful, industrial, art-deco, glass-tech, hand-crafted} + 1 wildcard
5. Inspirations (3 reference URLs)
6. Anti-references (2 to avoid)
7. Constraints
DO NOT propose colors, fonts, or code yet.
We are about to design a portfolio. Brainstorm with the user, produce
plans/{date}-{slug}/brief.md with:
1. Owner one-liner (you + what you do)
2. Audience (hiring managers / agency clients / freelance leads / fellow craft community)
3. Single goal (hire me / book a call / freelance inquiry / "available from {date}")
4. Work focus (project types featured + count: 4 / 6 / 8 / 12)
5. Case study depth (gallery thumbnails vs deep case studies vs hybrid)
6. Vibe: pick 1 from {minimal, editorial, brutalist, retro-futuristic, organic,
luxury, playful, industrial, art-deco, glass-tech, hand-crafted} + 1 wildcard
7. Inspirations (3 portfolio URLs you admire)
8. Anti-references (2 to avoid)
9. Constraints
DO NOT propose colors, fonts, or code yet.
Brief approved by user before Phase 2.
Lock palette + typography + spatial language before any pixels.
3 candidate palettes derived from vibe → user picks one. Required: 3 core (bg, surface, ink) + 1 accent (max). Off-black / off-white only. See references/visual-direction-guide.md.
3 candidate display+body pairs from vibe → user picks. Refuse Inter/Roboto/Arial/Open Sans/Space Grotesk unless overridden twice.
Pick one: Asymmetric editorial / Minimal grid / Brutalist density / Atmospheric.
AskUserQuestion: shader background / particle field / scroll-driven distortion / cursor-reactive accent / CSS-only atmosphere / none.
Note: This is NOT a 3D-model decision. 3D models as hero subjects are forbidden (see Hard Rule 4). Effects use geometry only as canvas for shader/atmosphere.
AskUserQuestion with header "Motion Budget":
Default suggestion = vibe matrix from references/motion-patterns.md § Vibe × Motion Intensity. User can override; if mismatch with vibe (e.g., 3/3 for minimal vibe), log override.
Save to plans/{date}-{slug}/visual-direction.md. Detailed: references/visual-direction-guide.md + references/motion-patterns.md.
After motion intensity locked, apply the smooth-scroll 5-tier ladder per references/smooth-scroll-flow.md § Decision matrix.
Default = type-gated (v2.5.1+) — landing AND portfolio auto-get Lenis regardless of vibe. Generic tier remains vibe-gated.
Landing OR Portfolio (special tier):
| Motion intensity | Tier |
|---|---|
| 0/3 | Tier 1 (native — hard guard fires first) |
| 1/3 | Tier 3 (Lenis) — minimal smooth |
| 2/3 | Tier 3 (Lenis) — default landing/portfolio surface |
| 3/3 | Tier 4 (Lenis + ScrollTrigger sync) — check Tier 5 escalation |
Vibe is NOT gated — editorial landing, brutalist portfolio, minimal landing all get Lenis. Coffee + luxury landing examples both demo Lenis Tier 3.
Generic tier (blog / about / pricing / contact / dashboard / admin / e-commerce / legal / coming-soon / custom):
| Motion intensity | Vibe set | Tier |
|---|---|---|
| 0-1/3 | any | Tier 1 (native) — Tier 2 CSS if anchor-heavy |
| 2/3 | atmospheric (luxury / glass-tech / organic / retro-futuristic / art-deco / playful) | Tier 3 (Lenis) |
| 2/3 | restraint (minimal / editorial / brutalist / industrial / hand-crafted) | Tier 1 (native) — dashboards/admin/data tables benefit from native momentum |
| 3/3 | atmospheric | Tier 4 (Lenis + ScrollTrigger sync) |
| 3/3 | restraint | Tier 1 (override required) |
Hard guards (force Tier 1 at runtime regardless of authored tier): prefers-reduced-motion: reduce, touch-primary (hover: none AND pointer: coarse), motion intensity 0/3, CDN failure.
Tier 5 (GSAP ScrollSmoother, PAID) auto-suggested ONLY when ≥2 of: 3+ parallax data-speed/data-lag sections planned, 4+ pinned scroll-scrub sections planned, Club GreenSock license confirmed. Always logged in plans/{slug}/overrides.md.
Override path: --scroll=native|css|lenis|lenis-st|smoother flag OR inline brief mention OR mid-phase AskUserQuestion when mismatch detected. All overrides logged.
Save tier choice to plans/{date}-{slug}/visual-direction.md § Smooth Scroll. Full decision tree + per-tier setup + guards + audit checklist: references/smooth-scroll-flow.md.
Type affects icon inventory, not pipeline:
Landing inventory: nav-logo-mark, feature icons (3-6), CTA arrow, social marks (footer), testimonial-quote, status indicators.
Portfolio inventory: nav-logo-mark (often = monogram), category/tag glyphs (project tagging), social/contact marks, "available" indicator, project-link arrow, optional process-step icons.
Same cohesion rules apply: single stroke weight, single corner family, single fill style, single metaphor language. Detail + decision tree: references/custom-icon-pipeline.md.
2D craft is the default. Pick illustration style from references/2d-illustration-catalog.md (11 vibes × 11 styles) — silkscreen, hand-drawn ink, geometric flat, cut-paper collage, risograph, watercolor, engraved line-art, schematic, static 3D render → 2D, photographic, synthwave gradient.
Type affects asset list:
Landing: hero illustration/scene, section dividers, background texture, OG image, testimonial avatars.
Portfolio: hero portrait OR abstract intro visual, project cover images (per featured project), background texture, OG image, optional process-illustration.
Critical rule: AI-generated 3D models are forbidden as hero subjects. If a 3D look is desired, use the static 3D render → 2D image pattern: render in Blender/Spline, export PNG/WebP, use as <Image>. Never import as .glb (Augen pattern).
Asset cohesion rule: ALL 2D assets in a site share one illustration style + locked palette + line weight + composition language. See references/2d-illustration-catalog.md § Asset Cohesion Rules.
Tool routing + prompt templates: references/visual-asset-prompt-library.md.
Scope: Shaders, particles, atmospheric layers, scroll-driven motion. NOT 3D models.
If Phase 2d returned "none", skip this phase. Patterns: references/visual-effect-patterns.md.
Forbidden in this phase:
Allowed:
User-provided real-product GLB exception: if user explicitly has a GLB of a real shippable product, allow with logged override in plans/{date}-{slug}/overrides.md.
Type-specific effect guidance:
Plan a Next.js 14+ App Router landing implementation.
Inputs: brief.md, visual-direction.md, app/components/icons/, public/landing/
Phases: scaffold → tokens → primitives → hero → social-proof → features →
how-it-works → testimonials → pricing? → faq → final-cta → footer →
3D? → animations → responsive/a11y polish.
Plan a Next.js 14+ App Router portfolio implementation.
Inputs: brief.md, visual-direction.md, app/components/icons/, public/portfolio/
Phases: scaffold → tokens → primitives → hero (intro) → selected-work-grid →
featured-case-study(s) → about/bio → process? → contact-cta → footer →
per-project page template (if case studies) → 3D? → animations →
responsive/a11y polish.
Plan a Next.js 14+ App Router {type} page implementation.
Inputs: brief.md (includes Page-Purpose Exercise), visual-direction.md,
app/components/icons/, public/{type}/
Reference: references/generic-page-anatomy.md,
assets/nextjs-skeleton/generic-page-skeleton.md
Sections: driven by Page-Purpose Exercise (from brief.md) — pick from the
Section Pattern Library; do NOT default to hero+features+CTA stack.
Phases: scaffold → tokens → primitives → page-purpose section selection →
implement chosen sections in dependency order → 3D? → animations
(locked Phase 2e intensity) → responsive/a11y polish → tier-filtered audit.
Example section stacks by type:
- blog → nav + hero + article-list + footer
- pricing → nav + hero + pricing-tiers + FAQ + final-CTA + footer
- about → nav + hero + team-grid + values + contact-cta + footer
- contact / coming-soon → minimal nav + hero + form + footer
- dashboard → app-shell (sidebar + topbar) + filter-bar + data-grid + empty-state
- 404 → minimal banner + return-home link
- legal → nav + long-form-prose + footer
User reviews plan before Phase 7.
Implement directly from plan.md + phase-XX-*.md. See references/workflow-phases.md § Phase 7 for the full inline implement protocol. Skeleton reference per tier:
assets/nextjs-skeleton/landing-skeleton.mdassets/nextjs-skeleton/portfolio-skeleton.mdassets/nextjs-skeleton/generic-page-skeleton.mdConstraints to enforce throughout (all types):
npm install lucide-react etc.)next/fontreferences/2d-illustration-catalog.md style mapping.glb / .gltf imports unless user-override loggedssr: false<p> text. prefers-reduced-motion MUST be respected via FM useReducedMotion or CSS @media. See references/motion-patterns.md.references/anti-slop-rules.md)Final gate. Run references/anti-slop-rules.md § Final Audit through the § Applicability Matrix filter — rules are tagged [universal] / [marketing-only] / [landing/portfolio-only] and the audit runs only the subset applicable to current --type + marketing-intent flag.
[universal] + [marketing-only] rules[universal] rules only[landing/portfolio-only] rules (e.g. "Hi I'm passionate" opener, skill bars) never apply to generic tierType-specific extras still flagged when applicable:
Run the audit inline (see references/workflow-phases.md § Phase 8) with --type + tier + marketing-intent flag from session context. Do NOT mark complete with open items.
| Phase | Method | Purpose |
|---|---|---|
| 0a | --study <URL> mode (see references/study-mode.md) — URL safety refusal + WebFetch + DNA extraction + diagnosis + 3-way branch | Extract live-site DNA (fonts, palette, macrostructure, nav/footer archetypes); suspend diversification rule when build-with-DNA chosen |
| 0.1 | Auto-detect pre-flight scan (see references/preflight-scan.md) | Read existing tokens / fonts / motion lib; preserve found tokens, introduce only what's missing |
| 0.5 | Type detection + read .perfect-ui/log.json for diversification check | Surface last 3 macrostructures; hard rule blocks repeat |
| 0.5b | Component-scope detection (see references/component-scope.md) — multi-signal check: brief ≤30 words + UI element keyword + --component flag (2+ signals → component scope) | Skip macrostructure / hero / nav-footer / Phase 8 visual / log.json; keep vibe / palette / typography / motion personality; emit component + .preview.* 8-state wrapper |
| 1 | Inline brainstorm protocol (see references/workflow-brainstorm.md) | Vibe + type-branched brief |
| 2 | Inline + AskUserQuestion | Lock palette/typo/effect-layer |
| 3 | Direct SVG OR vector icon design pipeline (text-to-SVG, or text-to-image + vector trace) | Custom icons |
| 4 | Text-to-image (style control / photorealism) + image post-processing | 2D visual assets (illustration / static 3D render → 2D / photo / SVG) |
| 5 | React Three Fiber as shader runner (shaders only) OR CSS / Lottie | Visual Effect Layer — shaders, particles, atmospheric |
| 2.5 | Macrostructure pick (see references/macrostructure-catalog.md) | Type-independent page shape (one of 7 macros); diversification check against .perfect-ui/log.json |
| 2.6 | Brand Motion Identity (see references/motion-patterns.md § Motion Personalities) | Lock 3 motion constants — signature easing + duration palette + entrance pattern |
| 6 | Inline plan protocol (see references/workflow-plan.md) | Type-aware implementation plan |
| 7 entry | Pre-emit <design_plan> verification (see references/preemit-design-plan.md) — 10-field block; collect-all-errors validation; minimal 4-field subset for component-scope | Gate code emission until all locked picks consistent; stamp block in CSS + plan.md |
| 7 | Inline implement protocol (see references/workflow-implement.md) — writes log.json at end + auto-detects GSAP need (see references/gsap-integration.md) + component-scope short-circuit when detected | Build the site (page) OR component + .preview.* 8-state wrapper (component-scope) |
| 8 | Inline tier-filtered audit (see references/workflow-audit.md) | Anti-slop audit |
Outputs land in: plans/{date}-{slug}/, app/components/icons/, public/{landing|portfolio}/, app/components/effects/.
| Topic | File |
|---|---|
| Detailed phase walkthrough | references/workflow-phases.md |
Study mode (--study <URL> — URL safety + DNA extraction + diagnosis + 3-way branch) | references/study-mode.md |
| Component-scope branch (multi-signal detection + skipped vs kept phases + 8-state preview wrapper) | references/component-scope.md |
Pre-emit <design_plan> verification (10-field block + collect-all-errors validation) | references/preemit-design-plan.md |
| Pre-flight scan (auto-detect existing tokens before Phase 2) | references/preflight-scan.md |
| Macrostructure catalog (7 page-shape archetypes — Marquee Hero / Bento Grid / Long Document / Manifesto / Stat-Led / Workbench / Letter) | references/macrostructure-catalog.md |
| GSAP skill integration (intensity 3/3 + keyword detection → optional gsap-* skill triggering with inline fallback) | references/gsap-integration.md |
| Smooth scroll flow (5-tier ladder Native→CSS→Lenis→Lenis+ScrollTrigger→ScrollSmoother + vibe-gated decision matrix + per-tier setup + guards + Phase 8 audit) | references/smooth-scroll-flow.md |
| Workflow — Phase 1 brainstorm protocol (inline) | references/workflow-brainstorm.md |
| Workflow — Phase 6 plan protocol (inline) | references/workflow-plan.md |
| Workflow — Phase 7 implement protocol (inline) | references/workflow-implement.md |
| Workflow — Phase 8 audit protocol (inline) | references/workflow-audit.md |
| Visual direction patterns + commitment audit | references/visual-direction-guide.md |
| Custom icon pipeline | references/custom-icon-pipeline.md |
| 2D illustration catalog (11 vibes × styles) | references/2d-illustration-catalog.md |
| Visual asset prompt library | references/visual-asset-prompt-library.md |
| Visual effect patterns (shaders, particles — NO models) | references/visual-effect-patterns.md |
| Motion patterns (entrance / hover / scroll / smooth — vibe-scaled) | references/motion-patterns.md |
| Landing anatomy / sections (special tier) | references/landing-anatomy.md |
| Portfolio anatomy / sections (special tier) | references/portfolio-anatomy.md |
| Generic page anatomy (generic tier — any other type) | references/generic-page-anatomy.md |
| Anti-slop forbidden patterns + Applicability Matrix | references/anti-slop-rules.md |
| Loading UI / splash patterns | references/loading-ui-patterns.md |
| Redesign audit checklist | references/redesign-audit-checklist.md |
| Generic Next.js skeleton (generic tier) | assets/nextjs-skeleton/generic-page-skeleton.md |
This skill no longer refuses any page type. But for a few specific cases, another skill is genuinely a better fit. perfect-ui suggests these — it does not force-redirect:
| Need | Suggested approach |
|---|---|
| Full app architecture, complex client-side state, deep multi-page IA | General frontend engineering workflow (state management, routing framework, type-safe API layer) |
| Full e-commerce backend (products, cart, checkout, inventory, payment integration) | Dedicated e-commerce platform workflow with backend orchestration |
| Exact design replication from screenshot / Figma reference | Vision-driven design-to-code workflow (multimodal model + visual diff loop) |
For everything else — pricing pages, blog landings, about pages, dashboards, admin panels, storefront homepages, custom page types — proceed inside perfect-ui. The visible page surface is in scope regardless of what the rest of the product is.
references/workflow-phases.md) and proceed with universal craft toolkit — do not refuse| Thought | Reality |
|---|---|
| "Just one Lucide icon, it's faster" | One library import = vibe broken. Always custom. |
| "Inter is fine here" | Inter is the AI-default fingerprint. Pick from references/anti-slop-rules.md. |
| "User didn't ask about effects, skip it" | Always propose Visual Effect Layer — user can decline. |
| "Let me drop a rotating GLB in the hero, looks impressive" | NO. 0/7 human-crafted landings used real-time 3D models. Use static 3D render → PNG, OR shader effect, OR 2D illustration. |
| "AI-generated 3D model is a quick visual win" | NO. Default Octane render aesthetic = AI fingerprint. Pick a 2D style from references/2d-illustration-catalog.md. |
| "Lorem Ipsum is just placeholder" | Real draft copy reveals layout issues Lorem hides. |
| "Skip the brief, I know what they want" | Skip the brief = build wrong vibe = redo everything. |
| "AI purple gradient looks modern" | It looks generated. Pick a desaturated single accent. |
| "User said 'website', default to landing" | NO. Ask via Phase 0.5 — landing, portfolio, and generic-tier types differ in anatomy and audit. |
| "Portfolio just needs an 'About me' opener" | NO. Lead with work, not personality. See portfolio-anatomy.md. |
| "User wants a dashboard, refuse them like the old SKILL said" | NO. Open scope as of v2.1.0; self-contained as of v2.2.0. Log evidence-base disclosure and proceed with generic tier. |
| "Dashboard / admin doesn't need vibe lock, it's just a UI" | NO. Universal toolkit applies to every type. Vibe lock + custom icons + motion intensity + applicability-matrix audit still run. |
| "Apply full anti-slop tier 1-3 to a 404 page" | NO. Phase 8 filters by [universal] / [marketing-only] / [landing/portfolio-only] tag. A 404 has no hero CTA — that rule shouldn't trigger. |
| "User pasted a URL — let me just clone its layout pixel-for-pixel" | NO. --study runs URL safety refusal first (themeforest / framer-templates / dribbble shots are blocked). If safe, extract DNA (palette + fonts + macrostructure) NOT pixel layout. Emit diagnosis report; user picks build-with-DNA / lock-to-design.md / stop. |
| "It's just a button — skip the whole 8-phase pipeline" | YES, that's exactly what component-scope is for. Multi-signal detect (brief ≤30 words + UI element keyword + --component). Keep vibe / palette / typography / motion personality. Skip macrostructure / hero / Phase 8 visual / log.json. Emit component + .preview.* 8-state wrapper. |
| "All Phases 1-6 picks look fine, let me start emitting code now" | NO. Phase 7 ENTRY runs the 10-field <design_plan> pre-emit verification (references/preemit-design-plan.md). Collect-all-errors — any FAIL routes back to the relevant phase. Block stamped in CSS + plan.md before any code. |
| "Add Lenis to every page type — dashboard, blog, admin too" | NO. Type gate (v2.5.1+) — landing AND portfolio auto-get Lenis regardless of vibe (per Phase 2e.1). Generic tier (blog / dashboard / admin / pricing / etc.) is still vibe-gated; restraint vibes (editorial / brutalist / minimal / industrial / hand-crafted) on generic surfaces default to Tier 1 native because data tables + app surfaces feel better with native momentum. See references/smooth-scroll-flow.md § Step 2b. Hard guards (reduced-motion / touch / intensity 0/3) always force Tier 1 regardless of type. |
| "User wants ScrollSmoother, just ship it" | NO. ScrollSmoother is PAID Club GreenSock plugin. Skill cannot assume license. Tier 5 escalation requires ≥2 of: 3+ parallax data-speed sections, 4+ pinned scroll-scrub sections, license explicitly confirmed at brief. All Tier 5 picks logged in plans/{slug}/overrides.md with criteria checklist + license confirmation date. |
Remember: A perfect page is one where icons, copy, color, type, motion, and effects feel made by the same hand. 2D illustration is the default visual language; effects are atmospheric layers; 3D models are forbidden as hero subjects. The whole point of this skill is enforcing that cohesion regardless of page type, with rich anatomy reserved for landing/portfolio and universal craft for everything else.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA standards. Use this skill to generate semantic ARIA for Web and accessibility traits for Web and Native platforms (iOS/Android).
日本語の概要は準備中です。原文の説明を表示しています。
Whole site or product — a full web accessibility (a11y) audit against WCAG 2.2, following the WCAG-EM methodology. Defines scope, samples representative pages and flows, runs the automated tier (`accessibility-scan`) and the hands-on manual tier (`accessibility-inspect`), and produces one conformance report. Grades each finding by severity and evidence basis, and states per-criterion conformance as pass, fail, or undetermined (needs a human). Use it for 'audit my site for accessibility', 'is this product accessible', 'a11y audit', 'WCAG or Section 508 conformance report', or any multi-page assessment. Assesses; does not fix (use `accessibility-fix`) or diff (use `accessibility-diff`). For a single page use `accessibility-scan`; for hands-on keyboard and screen-reader checks use `accessibility-inspect`.
日本語の概要は準備中です。原文の説明を表示しています。
Regression check — diff a live page's web accessibility (a11y) violations against a baseline. By default it compares your uncommitted changes (stash-based); pass `--branch [<name>]` to compare against a branch. Reports the new WCAG violations introduced, the ones fixed, and the count of pre-existing ones. Use it for 'did my change break accessibility', 'what a11y issues did this PR add', or as a CI gate. For a full scan of one page use `accessibility-scan`; for a whole site use `accessibility-audit`.
日本語の概要は準備中です。原文の説明を表示しています。
Remediation only — repair web accessibility (a11y) violations against WCAG 2.2 with a baseline, edit, and verify loop. Takes a target (URL, files, directory) or a findings worklist from `accessibility-scan`/`accessibility-inspect`/`accessibility-audit`, applies mechanical fixes as given, leaves TODOs for visual or contextual judgment, and verifies by re-running the baseline check. It only fixes. To find issues use `accessibility-scan` (one page, automated), `accessibility-inspect` (one page, manual), or `accessibility-audit` (whole site, WCAG-EM); to check for regressions use `accessibility-diff`. Use it for 'fix the a11y issues in X', 'make this accessible', 'add missing alt text and labels', 'apply these accessibility fixes', 'remediate these violations'.
日本語の概要は準備中です。原文の説明を表示しています。
One page, hands-on manual tier — drive a live page through the web accessibility (a11y) checks a rule engine can't decide: keyboard operation and focus order, screen-reader names, roles and states from the accessibility tree, reflow and zoom, reduced motion, form errors, and target size. Grades each finding by evidence basis (verified / confirm-with-a-human / human-required) and severity, and closes every criterion in a ledger: verified, flagged, not exercised, or N/A. Locates and assesses; does not fix (use `accessibility-fix`). Use it for keyboard testing, focus-order checks, screen-reader or a11y-tree review, reflow and zoom at 200%, or 'is this operable, not just lint-clean'. The automated tier is `accessibility-scan`; `accessibility-audit` runs both across a sampled site.
日本語の概要は準備中です。原文の説明を表示しています。
One page, automated tier — run the web accessibility (a11y) rule engine against a live page and locate every violation it can detect mechanically. Pass a URL, a config target name (e.g. `accesslint:accessibility-scan dev`), or nothing to use the default target from `accesslint.config.json`. Ensures a debuggable Chrome, runs the @accesslint/core engine over CDP, and returns a worklist of live-DOM WCAG 2.2 violations, each grounded to its DOM selector and source `file:line`. Locates; doesn't edit. Use it for 'is this page accessible', 'check a11y on this URL', 'find contrast and alt-text issues', or to verify a UI change. For hands-on keyboard and screen-reader checks use `accessibility-inspect`; for a whole site or product use `accessibility-audit`; to diff against uncommitted changes or a branch use `accessibility-diff`.
日本語の概要は準備中です。原文の説明を表示しています。