Token导航 LogoToken导航

Agent Skill · 研究检索

kitchen-sink-design-system(厨房水槽设计系统)

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

kitchen-sink-design-system 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 43,484。

总安装 979周安装 40GitHub Stars 公开资料未说明下载 317核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:kitchen-sink-design-system(厨房水槽设计系统)
来源仓库:https://github.com/baphomet480/claude-skills
仓库路径:skills/kitchen-sink-design-system
安装命令:
npx skills add https://github.com/baphomet480/claude-skills --skill kitchen-sink-design-system
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/baphomet480/claude-skills --skill kitchen-sink-design-system

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于辅助界面设计、视觉规范和交互体验优化。适合整理页面结构、生成 UI 方案或检查视觉一致性。结合品牌和设计系统使用,不堆砌装饰元素。涉及真实页面改动时应通过截图或预览检查表现。kitchen-sink-design-system 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/kitchen-sink-design-system

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/baphomet480/claude-skills --skill kitchen-sink…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

kitchen-sink-design-system 怎么安装?

在终端执行 npx skills add https://github.com/baphomet480/claude-skills --skill kitchen-sink-design-sy…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

kitchen-sink-design-system 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

kitchen-sink-design-system 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

kitchen-sink-design-system 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

kitchen-sink-design-system 用的人多吗?

公开数据是累计安装 979 次,近一周安装 40 次,下载 317 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

kitchen-sink-design-system 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
kitchen-sink-design-system

厨房水槽设计系统 · 本页

979—接触敏感数据未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Kitchen Sink Design System

Build every component for real, wire it into a single sink page, and let the page prove the design system works.

Core Philosophy

  • Source of truth -- The sink page is the canonical reference for design direction. If it's not in the sink, it doesn't exist.
  • No placeholders -- Every component rendered on the sink page must be a real, importable module. Never use draft placeholders or TODO stubs.
  • Layered semantics -- Every component follows a base + variant architecture. Shared structure in the base, visual differences in the variant layer.
  • Progressive disclosure -- Start with core primitives, layer in app-level components, finish with data display. Each tier builds on the last.
  • Design-forward -- Define design direction in the sink first; production pages consume what the sink establishes.
  • Agent-readable -- The design system should be equally consumable by human developers and AI coding agents. Semantic tokens, typed props, and explicit contracts over implicit conventions.

Phase 0: Detect Stack & Discover Design System

Before anything else, identify the project's framework and determine whether a design system already exists.

Detection Signals

Signal file / directoryFramework
next.config.*, app/ or pages/Next.js (React)
astro.config.*, src/components/Astro
nuxt.config.*Nuxt (Vue)
svelte.config.*SvelteKit
None of the aboveStatic HTML/CSS

Strategy Table

Once detected, lock in these mappings for the rest of the workflow:

ConceptReact / Next.jsAstroStatic HTML
Component.tsx in components/.astro in src/components/Reusable HTML snippet
Component call<Button variant="primary" /><Button variant="primary" />Copy/paste or include
Props / paramsReact props (TypeScript)Astro props (TypeScript)CSS classes / data-attrs
InteractivityuseState, event handlersclient:load + framework islandsVanilla JS or Alpine.js
Sink routeapp/sink/page.tsxsrc/pages/sink.astrosink.html
Prod guardprocess.env check -> return nullimport.meta.env checkDon't deploy the file
Content authorsComponents in MDXComponents in MDX / .astroN/A
Utility helpercn() via clsx + tailwind-mergecn() or class:listInline concat

Additional Detection Checks

After identifying the framework, also detect:

  1. CSS approach -- Tailwind (which version?), vanilla CSS, CSS modules, Sass, etc.
  2. Icon library -- Lucide, Heroicons, inline SVG, icon fonts, etc.
  3. Interactivity layer -- React, Vue, Svelte, vanilla JS, none.
  4. CMS -- TinaCMS (tina/), Sanity, Contentful, plain markdown, none.
  5. Existing component patterns -- Where do components live? What naming conventions are in use? Is there an existing helper like cn()?

Tailwind Detection

Detect which Tailwind version is in use, then read the appropriate source:

  • Tailwind v3 -- Read tailwind.config.js / tailwind.config.ts for theme.extend (custom colors, spacing, fonts, breakpoints).
  • Tailwind v4 -- No config file required. Read globals.css, app.css, or the project's main CSS entry for @theme blocks and CSS custom properties (--color-*, --spacing-*, --font-*). Also check for @import "tailwindcss" as a v4 indicator.
  • Detection heuristic: If tailwind.config.* exists -> v3. If the CSS entry contains @theme or @import "tailwindcss" -> v4.
  • No Tailwind -- Read the project's main CSS for custom properties, Sass variables, or hardcoded values.
Tailwind v4 Token Example
/* app/globals.css -- Tailwind v4 */
@import "tailwindcss";

@theme {
  --color-primary: oklch(0.45 0.15 260);
  --color-primary-foreground: oklch(0.98 0.01 260);
  --color-secondary: oklch(0.92 0.02 260);
  --color-secondary-foreground: oklch(0.2 0.05 260);
  --color-destructive: oklch(0.55 0.2 25);
  --color-muted: oklch(0.95 0.01 260);
  --color-muted-foreground: oklch(0.55 0.02 260);
  --color-accent: oklch(0.93 0.02 260);

  --font-sans: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;

  --radius-sm: 0.25rem;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
}

In v4, components reference these tokens as utility classes directly: bg-primary, text-muted-foreground, rounded-lg. No theme.extend config needed.

Design System Discovery

Scan the project root (and common subdirectories like docs/, .github/, .cursor/, .agent/) for any of these files:

Brand & style guides:

  • GEMINI.md, CLAUDE.md, AGENTS.md, COPILOT.md
  • .cursorrules, .cursor/rules
  • .github/copilot-instructions.md
  • brand-guide.md, STYLE.md, BRAND.md
  • design-tokens.json, tokens.css, tokens.json
  • CONTENT_GUIDELINES.md, VOICE.md, BRAND_VOICE.md

Agent configuration files:

  • .clinerules, .windsurfrules
  • .agent/skills/*/SKILL.md
  • README.md (check for design system or brand sections)

If any of these contain design direction (colors, typography, voice, component patterns), enter Adopt mode. Otherwise, enter Establish mode.

Adopt Mode -- Existing Brand Guide

When the project already has documented design direction:

  1. Ingest -- Read all discovered guide files. Extract:

- Color palette (named tokens with hex/HSL values) - Typography scale (font families, sizes, weights) - Spacing system (if documented) - Voice & tone adjectives - Component patterns already specified

  1. Map -- For every extracted token, identify:

- The corresponding Tailwind config value or CSS custom property - Whether it's a primitive token (raw color: --blue-500) or semantic token (purpose: --color-interactive)

  1. Audit -- Scan existing components for drift:

- Hardcoded hex values instead of tokens - Arbitrary Tailwind values (w-[37px]) instead of design scale - Inconsistent naming conventions - Missing dark mode support

  1. Surface gaps -- Report what the guide documents vs. what actually exists in code

Establish Mode -- No Guide Exists

When the project has no documented design system:

  1. Extract -- Scan existing CSS/Tailwind for de-facto tokens:

- Run through globals.css, tailwind.config.*, component files - Catalog every color, font, and spacing value actually in use - Identify the implicit palette and type scale

  1. Propose -- Generate a design-tokens.md with:

- Discovered palette organized as primitive -> semantic layers - Recommended additions to fill gaps (e.g., missing destructive color, no muted variant) - Type scale (H1-H6, body, caption) with sizes and weights - Spacing ramp mapped to Tailwind's scale (or CSS custom properties for non-Tailwind projects)

  1. Voice -- Define initial voice & tone:

- Propose 3-5 voice adjectives based on the project's domain - Draft tone map for common UI states - Apply the project's franchise placeholder convention (per user rules)

  1. Approve -- Present the proposal to the user. Do NOT proceed to Phase 1 until tokens and voice are approved.

Automated option: Run bash scripts/scan-components.sh [component_dir] from the skill directory to get a Phase 0 discovery report + EXISTING / MISSING inventory against the tiered checklist.

Reference: design-system-discovery.md

Phase 1: Inventory & Plan

Compare existing components against the tiered checklist. Mark each:

  • EXISTING -- import from codebase as-is
  • MISSING -- create the component, then wire it into the sink
  • MDX CANDIDATE -- if a component is meant for content authors (not just the sink), also export it from the project's MDX component registry

Tier 1: Core Primitives (mandatory)

  • Typography: H1-H6, paragraph, list (ol/ul), inline code, blockquote
  • Buttons: primary, secondary, outline, ghost, destructive; sizes sm/md/lg; disabled state
  • Badges / Tags: color variants, dismissible
  • Avatars: image, initials fallback, sizes, status indicator
  • Icons: render a sampler grid from the project's icon library
  • Cards: basic, with header/footer, interactive (hover lift)
  • Modals / Dialogs: trigger + overlay + close behavior
  • Alerts / Toasts: info, success, warning, error variants
  • Form controls: text input, textarea, select, checkbox, radio, toggle/switch, with label + error states

Tier 2: Navigation & Layout (include when app-level complexity exists)

  • Tabs: horizontal, with active/disabled states
  • Breadcrumbs: with separator and current-page indicator
  • Sidebar / Nav: collapsible, with active link
  • Dropdown menu: trigger + item list + keyboard nav
  • Accordion / Collapsible: expand/collapse with animation
  • Tooltip / Popover: hover and click triggers
  • Navigation patterns: header, sidebar, mobile menu
  • Footer variants

Tier 3: Content-Author Components (CMS-dependent)

Include when the site has a CMS or content authors who write MDX:

  • Callout / admonition (info, warning, tip, caution)
  • Figure / image with caption
  • Button / CTA (link styled as button)
  • Embed (YouTube, etc.)
  • Card grid (n-up layout of cards from content)

For React/Astro, the component serves both sink and content-author roles via MDX.

Tier 4: Data Display (include when data-heavy views exist)

  • Table: sortable headers, striped rows, responsive scroll
  • Stats / KPI cards: value, label, trend indicator
  • Charts: placeholder pattern using the project's chart library (Recharts, Chart.js, etc.)
  • Progress bar / Skeleton loaders: determinate and indeterminate states

Phase 2: Layered Component Architecture

Every component -- whether EXISTING or newly created -- must follow the base + variant pattern. This makes components predictable for both humans and AI agents.

React / Next.js -- CVA Pattern

Use class-variance-authority (CVA) or an equivalent pattern to separate structural base classes from variant-specific classes:

import { cva, type VariantProps } from "class-variance-authority";
import { cn } from "@/lib/utils"; // clsx + tailwind-merge wrapper

// -- Base + Variants --------------------------------------------------------
const buttonVariants = cva(
  // Base: shared structure (always applied)
  "inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50",
  {
    variants: {
      variant: {
        primary:     "bg-primary text-primary-foreground hover:bg-primary/90",
        secondary:   "bg-secondary text-secondary-foreground hover:bg-secondary/80",
        outline:     "border border-input bg-transparent hover:bg-accent",
        ghost:       "hover:bg-accent hover:text-accent-foreground",
        destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
      },
      size: {
        sm: "h-8 px-3 text-sm",
        md: "h-10 px-4 text-sm",
        lg: "h-12 px-6 text-base",
      },
    },
    compoundVariants: [
      { variant: "destructive", size: "lg", class: "font-semibold" },
    ],
    defaultVariants: {
      variant: "primary",
      size: "md",
    },
  }
);

// -- Component --------------------------------------------------------------
interface ButtonProps
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
    VariantProps<typeof buttonVariants> {}

export function Button({ className, variant, size, ...props }: ButtonProps) {
  return (
    <button className={cn(buttonVariants({ variant, size }), className)} {...props} />
  );
}

Astro -- Props Interface Pattern

Astro components define a TypeScript Props interface in frontmatter with defaults via destructuring. Build classes from variant/size, use class:list for merging. Pattern mirrors React CVA but uses Astro's native Props + <slot />.

Static HTML -- BEM + Data-Attribute Pattern

Use BEM class conventions (.btn, .btn--primary, .btn--sm) and document the contract in an HTML comment at the top of the file listing available classes and data attributes.

Rules (All Frameworks)

  1. Base layer -- Shared structural classes: layout, border-radius, font-size, focus ring, transitions, disabled state. These NEVER change between variants.
  2. Variant layer -- Only what differs: colors, borders, shadows, backgrounds. Defined as named variants.
  3. Type / param export -- Always export the variant types (React: VariantProps<>, Astro: Props interface) so consumers (including AI agents) can discover available variants.
  4. Escape hatch -- Accept an additional class prop and merge it last so consumers can override when necessary.
  5. No raw conditionals -- Never use isDestructive? "bg-red-500": "bg-blue-500" inline. All visual branching goes through the variant API.

Semantic Design Tokens

Components should reference semantic token names, not primitive color names:

Primitive (avoid)Semantic (use)
bg-blue-500bg-primary
text-gray-500text-muted-foreground
border-red-500border-destructive
bg-gray-100bg-muted

The semantic layer means dark mode, theme changes, and brand pivots only require updating the token definitions -- component code stays unchanged.

Utility Fallback

If the project lacks a class-merging utility: React -- add cn() via clsx + tailwind-merge. Astro -- use built-in class:list. Static -- inline concat or a tiny JS helper.

Phase 3: Voice, Tone & Illustration

Every design system needs content guidance and a visual identity.

Voice & Tone

The sink page includes a Voice & Tone section covering:

  • Voice definition -- 3-5 adjectives defining the brand's consistent personality. Extract from existing guides or propose based on domain.
  • Tone map -- How tone adapts to user emotional states (pleased, neutral, confused, frustrated, first-time).
  • Content patterns -- Standard copy for empty states, error messages, success confirmations, loading states, destructive actions.
  • Franchise placeholders -- A pop-culture franchise for all placeholder content (form labels, sample data, empty states). Document in the sink header.

Reference: voice-and-tone.md -- full templates, examples, and writing checklist.

Image & Illustration

Photography sourced from the web cannot be used directly (copyright, brand inconsistency). Define an illustration style and a reinterpretation pipeline to transform reference photos into brand-safe assets.

  • Define style -- Set rendering, palette, detail level, stroke, texture, and mood keywords during discovery. Document in the brand guide.
  • Reinterpretation pipeline -- Describe subject -> strip photographer style -> compose prompt with brand tokens -> generate via the openai-image skill -> validate against sink samples -> optimize & store prompt.
  • Sink page section -- Include an Illustration Gallery with 3-5 canonical illustrations, a style definition card, and the generation prompt template.
  • Rules -- Never use unmodified photos. Always store the generation prompt alongside the asset. Every illustration gets descriptive alt text.

Reference: image-reinterpretation.md -- full pipeline, prompt templates, validation checklist, and sink page integration code.

Phase 4: Motion & Interaction

Animation is the body language of the product. Define motion patterns in the sink for consistent, purposeful animation.

  • Principles -- Purposeful (no decorative animation), informative, consistent, respectful of prefers-reduced-motion.
  • Duration scale -- Define named tokens: --duration-instant (100ms), --duration-fast (200ms), --duration-normal (300ms), --duration-slow (500ms).
  • Easing curves -- --ease-out for entrances, --ease-in for exits, --ease-in-out for state changes.
  • Common patterns -- Hover lift, fade in, slide in, expand/collapse, skeleton shimmer, modal entrance/exit.
  • Reduced motion -- Always include prefers-reduced-motion media query or use Tailwind motion-safe:/motion-reduce: modifiers.
  • Sink section -- Include an interactive Motion Sampler demonstrating all patterns with their duration/easing tokens displayed.

Reference: motion-guidelines.md -- full CSS/Tailwind code, keyframe definitions, Framer Motion patterns, and reduced-motion implementation.

Phase 5: Build Components

For every MISSING item from Phase 1, create the component using the framework's native patterns.

File Location & Naming

FrameworkLocationConvention
React / Next.jscomponents/ or components/ui/Button.tsx, card.tsx -- match existing project convention
Astrosrc/components/Button.astro, Card.astro
Static HTMLcomponents/ or includes/button.html, card.html

Component Creation Standard

  1. Create the component in the project's established component location with a stable export/interface.
  2. Document the interface at the top of the file:

- React: TypeScript interface or JSDoc props comment. - Astro: TypeScript Props interface in frontmatter. - Static: Comment block describing expected classes/data attributes.

  1. Use design tokens from the project's Tailwind config or CSS custom properties; avoid arbitrary/magic values.
  2. Keep components self-contained -- rely only on dependencies already in the project.
  3. Make interactive components actually interactive using whatever the project's interactivity layer is:

- React: useState, event handlers - Astro: client:load + framework islands - Static: vanilla JS, Alpine.js, or <details>/<summary>

  1. Apply the variant pattern from Phase 2 (CVA for React, Props for Astro).
  2. Apply voice & tone patterns from Phase 3. Error messages answer what/why/fix. Empty states guide the user.
  3. Apply motion patterns from Phase 4. Use the defined duration and easing tokens.
  4. Wire the component into the sink page immediately. No placeholders.

Content-Author Wrappers

When a component is marked as an MDX CANDIDATE in Phase 1:

  • React / Astro -- The component itself is usable in MDX. Ensure it's exported from the project's MDX component registry.
  • Static -- Document usage instructions for copy/paste inclusion.

Phase 6: Assemble Sink Page

Create the sink route file based on the framework detected in Phase 0.

Sink Route Creation

React / Next.js -- app/sink/page.tsx

  • Add "use client" directive.
  • Return null when process.env.NEXT_PUBLIC_VERCEL_ENV === "production".
  • Use examples/minimal-sink.tsx as a starter template.

Astro -- src/pages/sink.astro

  • Check import.meta.env.PROD and return redirect or empty page.

SvelteKit -- src/routes/sink/+page.svelte

  • Use $app/environment to check for production.

Nuxt -- pages/sink.vue

  • Use useRuntimeConfig() to check environment.

Static HTML -- sink.html

  • Simply don't include in production deployment.

Architecture Rules

  • Never import other page/route files -- only import components or define helpers locally.
  • The sink page is a dev tool -- exclude it from production, sitemap, RSS, search indexes, and navigation.

Sink Page Layout

The sink page follows the same section structure regardless of framework. Adapt the syntax to match.

Sections (in order):

  1. Header -- Title, description, last-updated timestamp, franchise declaration
  2. Design Tokens -- Color palette (primitive -> semantic), typography scale, spacing ramp
  3. Voice & Tone -- Voice definition, tone map, content pattern examples
  4. Illustration Gallery -- Canonical illustrations, reinterpretation examples, prompt template
  5. Site Header -- Rendered inline to test responsive breakpoints and nav states
  6. Site Footer -- Rendered inline to test link columns and brand consistency
  7. Typography -- H1-H6, body, caption, lists, blockquote, inline code
  8. Buttons -- All variants x sizes x states (variant grid)
  9. Badges -- Color variants, dismissible
  10. Cards -- Basic, with header/footer, interactive
  11. Form Controls -- All input types with label + error states
  12. Modals & Dialogs -- Working open/close demo
  13. Alerts -- All severity variants
  14. Motion Sampler -- Interactive demos of hover lift, fade, slide, expand/collapse
  15. Content-Author Specimens -- How MDX components render (if applicable)
  16. Tier 2 components -- Tabs, breadcrumbs, accordion, tooltip, dropdown (if applicable)
  17. Tier 4 components -- Table, stats cards, progress, skeleton (if applicable)
  18. Chaos Laboratory -- Token visualization, state matrix, dark/light side-by-side, responsive stubs

Chaos Laboratory

  1. Token visualization -- Programmatically render design tokens (colors, spacing).

- React: Import resolved config via resolveConfig (v3) or read CSS custom properties (v4). - Astro: Import config in frontmatter. - Static: Maintain a JSON file manually or generate with a script.

  1. State matrix -- Render variants side by side (default, hover, focus, disabled, active).
  2. Theme test -- Light and dark columns, forced via wrapper class.
  3. Responsive stubs -- iframe containers with fixed widths (320px, 768px) to verify mobile layouts.

Phase 7: Verify

Run these checks before considering the sink complete.

Automated Checks

# Build
pnpm build

# Lint
pnpm lint

# Accessibility audit
pnpm dlx @axe-core/cli http://localhost:3000/sink

CI Integration

For continuous verification, add to your CI pipeline:

  • Visual regression -- Playwright screenshot comparison against baseline images of the sink page. Catches unintended visual drift.
  • Accessibility -- Run @axe-core/cli or playwright-axe against /sink and fail on violations.
  • Build health -- The sink page compiles with no TypeScript errors and no build warnings.
# Example Playwright visual regression test
pnpm dlx playwright test sink.spec.ts --project=chromium

Manual Checklist

  • A. Completeness -- Every Tier 1 item is present. Tier 2/3/4 items included where relevant.
  • B. Real components -- Every rendered element is imported from the project's component location (no inline-only markup pretending to be a component).
  • C. Layered architecture -- Every component uses CVA (React) or the framework-appropriate variant pattern.
  • D. Semantic tokens -- No hardcoded hex values or primitive color names in component code.
  • E. Interactivity -- Modals open, toggles toggle, tabs switch, dropdowns expand. Every stateful component works.
  • F. Voice & tone -- Content patterns documented. Error messages answer what/why/fix. Empty states guide the user.
  • G. Motion -- Animations use defined duration/easing tokens. prefers-reduced-motion respected.
  • H. Theming -- Dark/light columns render correctly. No hard-coded colors bypassing tokens.
  • I. Production guard -- Sink page is excluded from production via the framework's native mechanism.
  • J. No import cycles -- Sink page does not import any page/route file.
  • K. Content-author wrappers -- MDX exports pass through all relevant parameters (if applicable).

CMS Notes

The sink page is never CMS-managed -- it's a developer tool.

However, when a CMS is present, content-author-facing components (Tier 3) should respect the CMS content model:

  • TinaCMS -- Component params should align with the fields defined in tina/config.ts collections.
  • MDX-based CMS (Contentful, Sanity, etc.) -- Exported components should match the expected props shape from the CMS schema.

AI Agent Readiness

Ensure the design system is consumable by AI agents: use semantic tokens over primitives, store tokens in CSS custom properties and/or JSON, export typed props as the API contract, use purpose-based naming (text-muted-foreground not gray-light), reference tokens in the project's rules file (CLAUDE.md, .cursorrules, etc.), and treat the sink page as the single source of truth.

Companion Skills

When available, leverage: design-lookup for CSS components, SVG icons, and design inspiration during Establish mode. openai-image for illustration reinterpretation and brand-safe asset generation. deep-research for evaluating design system approaches from scratch. This skill acts as the integrator -- consuming companion skill outputs and codifying them into the component library and sink page.

Agentic Workflow & Vibe Coding

  • Iterative Design: Do not expect a perfect, comprehensive component on the first pass. Draft the base structure, review it in the sink page, isolate specific layout or styling issues, refine exactly ONE variant or token mapping at a time, and re-check until the component is robust.
  • Vibe Coding: Commit your working component files and sink page updates locally before moving on to the next tier of components or attempting complex interactive logic.

Anti-patterns

  • Draft placeholders -- {/* TODO: add button */} is never acceptable. Build the real component.
  • Arbitrary Tailwind values -- w-[35px] or text-[#ff0000] instead of using config tokens.
  • Raw conditional classes -- isDestructive? "bg-red-500": "bg-blue-500" instead of using variants.
  • Importing page files -- import X from "../other-page/page" creates coupling and build issues.
  • Skipping tiers -- Don't jump to Tier 4 charts before Tier 1 buttons exist.
  • Static mockups -- A modal that doesn't open, a toggle that doesn't toggle, a tab bar that doesn't switch.
  • One-off inline components -- If it's rendered in the sink, it belongs in the component directory as an importable module.
  • Appearance-based token names -- blue-primary instead of color-interactive. Semantic names survive brand pivots.
  • Missing voice guidance -- A sink without content patterns is only half a design system.
  • Decorative animation -- Motion without purpose. Every animation should inform or guide.

Reference

For detailed per-component specs (expected props, variants, states, accessibility), the sink page section template, and concrete code examples:

平台分布

Codex

33.71%
按下载量换算107

Claude

32.75%
按下载量换算104

Cursor

19.88%
按下载量换算63

Gemini CLI

10.54%
按下载量换算33

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills