Token导航 LogoToken导航

Agent Skill · 研究检索

ui-mockup(用户界面样机)

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

ui-mockup 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为权限未标注;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 64,068。

总安装 306周安装 13GitHub Stars 公开资料未说明下载 107核验 2026-05-01

安装说明

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

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:ui-mockup(用户界面样机)
来源仓库:https://github.com/mounchons/agentmarketplace
仓库路径:skills/ui-mockup
安装命令:
npx skills add https://github.com/mounchons/agentmarketplace --skill ui-mockup
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/mounchons/agentmarketplace --skill ui-mockup

这个 Skill 是做什么的

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

ui-mockup 用于辅助界面设计、视觉规范和交互体验优化。适合整理页面结构、生成 UI 方案或检查视觉一致性。使用时需要结合现有品牌、设计系统和用户任务。涉及真实页面改动时应通过截图或浏览器预览检查文本溢出和对齐。ui-mockup 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/ui-mockup

上手步骤

4 步
  1. 1

    确认自己的宿主工具

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

  2. 2

    拿到安装命令

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

  3. 3

    安装后重启宿主

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

  4. 4

    按最小权限试用

    权限没有明确标注,第一次使用时只给一个无关紧要的任务,观察它到底读了哪些文件和网络。

常见问题

6 条

ui-mockup 怎么安装?

在终端执行 npx skills add https://github.com/mounchons/agentmarketplace --skill ui-mockup。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

ui-mockup 支持哪些 AI 工具?

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

ui-mockup 需要什么权限?

权限级别没有明确标注。第一次使用时建议只给无关紧要的任务,观察它实际读写了哪些内容。

ui-mockup 是免费的吗?

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

ui-mockup 用的人多吗?

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

ui-mockup 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

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

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

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

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 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调用外部服务未明确有提醒
ui-mockup

用户界面样机 · 本页

306—权限未标注未明确通过

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

SKILL.md 原文

UI Mockup Skill

Response Language: Always respond to users in Thai (ภาษาไทย)

Skill for creating and editing UI Mockup/Wireframe using ASCII art and structured specifications. Designed to connect with system-design-doc and pass output to the frontend-design skill.

🎯 Purpose

┌─────────────────────────────────────────────────────────────────────┐
│                    UI MOCKUP WORKFLOW                               │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────────────┐      ┌─────────────────┐      ┌─────────────┐ │
│  │ system-design   │      │   ui-mockup     │      │ frontend-   │ │
│  │    -doc         │  →   │     skill       │  →   │   design    │ │
│  │                 │      │   (THIS SKILL)  │      │             │ │
│  └─────────────────┘      └─────────────────┘      └─────────────┘ │
│                                                                     │
│  Input:                   Output:                  Final Output:   │
│  • Sitemap               • ASCII Wireframes       • HTML/CSS      │
│  • Screen Specs          • Component Specs        • React/Vue     │
│  • User Flows            • Design Tokens          • Tailwind      │
│  • ER Diagram            • Responsive Specs       • Production    │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

💡 Available Commands

What you needExample command
Create new Mockup/create-mockup Login page
Create from Design Doc/create-mockup from system-design-doc.md
Edit Mockup/edit-mockup Login page - add Social Login button
Change Layout/edit-mockup Dashboard page - change to 3 columns
Add Component/edit-mockup List page - add pagination
Responsive Design/create-mockup Home page - mobile first
Create HTML Mockup/create-html-mockup Dashboard page
Create HTML from list/create-html-mockup (shows pending pages)
Regenerate Master Page/create-html-mockup --regenerate-master

🏗️ Output Structure

1. Mockup Document Structure

# [Page Name] - UI Mockup

## Page Info
- Page ID: [SCR-XXX]
- URL: [/path]
- Access: [roles]

## Layout Grid
[ASCII layout grid]

## Wireframe
[ASCII wireframe]

## Components
[Component specifications]

## Design Tokens
[Colors, spacing, typography]

## Responsive Breakpoints
[Mobile, Tablet, Desktop specs]

## Interactions
[Hover, click, animations]

📐 ASCII Wireframe Patterns

Layout Grid System (12 columns)

┌────────────────────────────────────────────────────────────────────┐
│                           HEADER                                    │
├────────────────────────────────────────────────────────────────────┤
│         │                                                          │
│   NAV   │                    MAIN CONTENT                          │
│  (3col) │                      (9col)                              │
│         │                                                          │
├────────────────────────────────────────────────────────────────────┤
│                           FOOTER                                    │
└────────────────────────────────────────────────────────────────────┘

Common Page Layouts

1. Dashboard Layout
┌────────────────────────────────────────────────────────────────────┐
│  [Logo]              Search [________]           [User ▼] [Notif]  │
├────────┬───────────────────────────────────────────────────────────┤
│        │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐         │
│  Menu  │  │  Card 1 │ │  Card 2 │ │  Card 3 │ │  Card 4 │         │
│        │  │   KPI   │ │   KPI   │ │   KPI   │ │   KPI   │         │
│  ────  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘         │
│  Item1 │                                                           │
│  Item2 │  ┌─────────────────────────────────────────────────────┐  │
│  Item3 │  │                                                     │  │
│  ────  │  │                     CHART                           │  │
│  Item4 │  │                                                     │  │
│  Item5 │  └─────────────────────────────────────────────────────┘  │
│        │                                                           │
│        │  ┌─────────────────────────────────────────────────────┐  │
│        │  │  Table Header                              [Actions]│  │
│        │  ├─────────────────────────────────────────────────────┤  │
│        │  │  Row 1                                              │  │
│        │  │  Row 2                                              │  │
│        │  │  Row 3                                              │  │
│        │  └─────────────────────────────────────────────────────┘  │
└────────┴───────────────────────────────────────────────────────────┘
2. Form Layout
┌────────────────────────────────────────────────────────────────────┐
│                         [Page Title]                               │
│                    [Subtitle / Description]                        │
├────────────────────────────────────────────────────────────────────┤
│                                                                    │
│   ┌────────────────────────────────────────────────────────────┐   │
│   │                        FORM CARD                           │   │
│   │                                                            │   │
│   │   Label 1                                                  │   │
│   │   ┌────────────────────────────────────────────────────┐   │   │
│   │   │ Input field                                        │   │   │
│   │   └────────────────────────────────────────────────────┘   │   │
│   │   [Helper text / Error message]                            │   │
│   │                                                            │   │
│   │   Label 2                                                  │   │
│   │   ┌────────────────────────────────────────────────────┐   │   │
│   │   │ Input field                                        │   │   │
│   │   └────────────────────────────────────────────────────┘   │   │
│   │                                                            │   │
│   │   Label 3                       Label 4                    │   │
│   │   ┌──────────────────┐         ┌──────────────────┐       │   │
│   │   │ Input (half)     │         │ Input (half)     │       │   │
│   │   └──────────────────┘         └──────────────────┘       │   │
│   │                                                            │   │
│   │   ┌────────────────────┐  ┌────────────────────────────┐   │   │
│   │   │     [Cancel]       │  │      [Submit Button]       │   │   │
│   │   └────────────────────┘  └────────────────────────────┘   │   │
│   │                                                            │   │
│   └────────────────────────────────────────────────────────────┘   │
│                                                                    │
└────────────────────────────────────────────────────────────────────┘
3. List/Table Layout
┌────────────────────────────────────────────────────────────────────┐
│  [Page Title]                           [+ Add New] [Filter ▼]     │
├────────────────────────────────────────────────────────────────────┤
│                                                                    │
│  Search: [________________________] [🔍]    Showing 1-10 of 100   │
│                                                                    │
│  ┌────────────────────────────────────────────────────────────┐   │
│  │ ☐ │ Column 1    │ Column 2     │ Column 3   │ Actions     │   │
│  ├────────────────────────────────────────────────────────────┤   │
│  │ ☐ │ Data 1      │ Data 2       │ Status ●   │ [✏️] [🗑️]  │   │
│  │ ☐ │ Data 1      │ Data 2       │ Status ●   │ [✏️] [🗑️]  │   │
│  │ ☐ │ Data 1      │ Data 2       │ Status ○   │ [✏️] [🗑️]  │   │
│  │ ☐ │ Data 1      │ Data 2       │ Status ●   │ [✏️] [🗑️]  │   │
│  │ ☐ │ Data 1      │ Data 2       │ Status ●   │ [✏️] [🗑️]  │   │
│  └────────────────────────────────────────────────────────────┘   │
│                                                                    │
│  [◀ Prev]  [1] [2] [3] ... [10]  [Next ▶]                        │
│                                                                    │
└────────────────────────────────────────────────────────────────────┘
4. Login/Auth Layout
┌────────────────────────────────────────────────────────────────────┐
│                                                                    │
│                                                                    │
│                         ┌──────────────┐                           │
│                         │    [LOGO]    │                           │
│                         └──────────────┘                           │
│                                                                    │
│                    ┌─────────────────────────┐                     │
│                    │                         │                     │
│                    │      Welcome Back       │                     │
│                    │                         │                     │
│                    │   Email                 │                     │
│                    │   ┌─────────────────┐   │                     │
│                    │   │                 │   │                     │
│                    │   └─────────────────┘   │                     │
│                    │                         │                     │
│                    │   Password              │                     │
│                    │   ┌─────────────────┐   │                     │
│                    │   │                 │   │                     │
│                    │   └─────────────────┘   │                     │
│                    │   [Forgot Password?]    │                     │
│                    │                         │                     │
│                    │   ┌─────────────────┐   │                     │
│                    │   │    [LOGIN]      │   │                     │
│                    │   └─────────────────┘   │                     │
│                    │                         │                     │
│                    │   ─────── OR ───────    │                     │
│                    │                         │                     │
│                    │   [G] [f] [in]          │                     │
│                    │                         │                     │
│                    │   Don't have account?   │                     │
│                    │   [Sign up here]        │                     │
│                    │                         │                     │
│                    └─────────────────────────┘                     │
│                                                                    │
└────────────────────────────────────────────────────────────────────┘

🎨 Component Library

Form Components

Text Input:
┌────────────────────────────────────┐
│ Placeholder text                   │
└────────────────────────────────────┘

Text Input with Icon:
┌────────────────────────────────────┐
│ 🔍 Search...                       │
└────────────────────────────────────┘

Password Input:
┌────────────────────────────────────┐
│ ●●●●●●●●                       👁 │
└────────────────────────────────────┘

Textarea:
┌────────────────────────────────────┐
│                                    │
│                                    │
│                                    │
└────────────────────────────────────┘

Select/Dropdown:
┌────────────────────────────────────┐
│ Select option                    ▼ │
└────────────────────────────────────┘

Checkbox:
☐ Unchecked option
☑ Checked option

Radio:
○ Unselected option
● Selected option

Toggle:
[○────] Off
[────●] On

Button Components

Primary Button:
┌────────────────────────────────────┐
│           Primary Action           │
└────────────────────────────────────┘

Secondary Button:
┌────────────────────────────────────┐
│          Secondary Action          │
└────────────────────────────────────┘

Icon Button:
┌──────┐
│  +   │
└──────┘

Button Group:
┌──────────┐┌──────────┐┌──────────┐
│  Opt 1   ││  Opt 2   ││  Opt 3   │
└──────────┘└──────────┘└──────────┘

Navigation Components

Navbar:
┌────────────────────────────────────────────────────────────────────┐
│  [Logo]    Menu1   Menu2   Menu3           [Search] [User ▼]      │
└────────────────────────────────────────────────────────────────────┘

Sidebar:
┌──────────┐
│  [Logo]  │
├──────────┤
│ ▸ Menu 1 │
│ ▾ Menu 2 │
│   └ Sub1 │
│   └ Sub2 │
│ ▸ Menu 3 │
│ ▸ Menu 4 │
├──────────┤
│ [Logout] │
└──────────┘

Breadcrumb:
Home > Category > Subcategory > Current Page

Tabs:
┌──────────┬──────────┬──────────┐
│  Tab 1   │ [Tab 2]  │  Tab 3   │
└──────────┴──────────┴──────────┘

Pagination:
[◀ Prev]  [1] [2] [3] ... [10]  [Next ▶]

Data Display Components

Card:
┌────────────────────────────────────┐
│ Card Title              [Actions] │
├────────────────────────────────────┤
│                                    │
│ Card content goes here             │
│                                    │
└────────────────────────────────────┘

Table:
┌──────────┬──────────┬──────────┐
│ Header 1 │ Header 2 │ Header 3 │
├──────────┼──────────┼──────────┤
│ Cell 1   │ Cell 2   │ Cell 3   │
│ Cell 1   │ Cell 2   │ Cell 3   │
└──────────┴──────────┴──────────┘

Badge/Tag:
[Active]  [Pending]  [Inactive]

Status Indicator:
● Active (green)
○ Inactive (gray)
◐ Pending (yellow)
✕ Error (red)

Avatar:
┌───┐
│ U │  User Name
└───┘

Progress Bar:
[████████░░░░░░░░] 50%

Stats Card:
┌────────────────┐
│     1,234      │
│    Revenue     │
│    ↑ 12.5%     │
└────────────────┘

Feedback Components

Alert - Success:
┌────────────────────────────────────────────────────────────────────┐
│ ✓  Success! Your changes have been saved.                    [×] │
└────────────────────────────────────────────────────────────────────┘

Alert - Error:
┌────────────────────────────────────────────────────────────────────┐
│ ✕  Error! Something went wrong. Please try again.            [×] │
└────────────────────────────────────────────────────────────────────┘

Alert - Warning:
┌────────────────────────────────────────────────────────────────────┐
│ ⚠  Warning! This action cannot be undone.                    [×] │
└────────────────────────────────────────────────────────────────────┘

Toast Notification:
                              ┌─────────────────────────────┐
                              │ ✓ Changes saved       [×]  │
                              └─────────────────────────────┘

Modal:
┌────────────────────────────────────────────────────────────────────┐
│                                                                    │
│      ┌────────────────────────────────────────────────────┐       │
│      │ Modal Title                                   [×] │       │
│      ├────────────────────────────────────────────────────┤       │
│      │                                                    │       │
│      │ Modal content goes here...                         │       │
│      │                                                    │       │
│      ├────────────────────────────────────────────────────┤       │
│      │                      [Cancel]  [Confirm]          │       │
│      └────────────────────────────────────────────────────┘       │
│                                                                    │
└────────────────────────────────────────────────────────────────────┘

🎨 Design Tokens

Colors

colors:
  primary:
    50: "#f0f9ff"
    100: "#e0f2fe"
    500: "#0ea5e9"   # Main
    600: "#0284c7"   # Hover
    700: "#0369a1"   # Active

  secondary:
    500: "#6366f1"
    600: "#4f46e5"

  success:
    500: "#22c55e"

  warning:
    500: "#f59e0b"

  error:
    500: "#ef4444"

  neutral:
    50: "#fafafa"    # Background
    100: "#f5f5f5"   # Card bg
    200: "#e5e5e5"   # Border
    500: "#737373"   # Placeholder
    700: "#404040"   # Body text
    900: "#171717"   # Headings

Typography

typography:
  fontFamily:
    sans: "'Inter', -apple-system, sans-serif"
    mono: "'JetBrains Mono', monospace"

  fontSize:
    xs: "0.75rem"    # 12px
    sm: "0.875rem"   # 14px
    base: "1rem"     # 16px
    lg: "1.125rem"   # 18px
    xl: "1.25rem"    # 20px
    2xl: "1.5rem"    # 24px
    3xl: "1.875rem"  # 30px
    4xl: "2.25rem"   # 36px

  fontWeight:
    normal: 400
    medium: 500
    semibold: 600
    bold: 700

Spacing

spacing:
  0: "0"
  1: "0.25rem"   # 4px
  2: "0.5rem"    # 8px
  3: "0.75rem"   # 12px
  4: "1rem"      # 16px
  5: "1.25rem"   # 20px
  6: "1.5rem"    # 24px
  8: "2rem"      # 32px
  10: "2.5rem"   # 40px
  12: "3rem"     # 48px
  16: "4rem"     # 64px

Border Radius

borderRadius:
  none: "0"
  sm: "0.125rem"   # 2px
  default: "0.25rem"  # 4px
  md: "0.375rem"   # 6px
  lg: "0.5rem"     # 8px
  xl: "0.75rem"    # 12px
  2xl: "1rem"      # 16px
  full: "9999px"   # Pill

Shadows

shadows:
  sm: "0 1px 2px rgba(0,0,0,0.05)"
  default: "0 1px 3px rgba(0,0,0,0.1)"
  md: "0 4px 6px rgba(0,0,0,0.1)"
  lg: "0 10px 15px rgba(0,0,0,0.1)"
  xl: "0 20px 25px rgba(0,0,0,0.1)"

📱 Responsive Breakpoints

breakpoints:
  sm: "640px"    # Mobile landscape
  md: "768px"    # Tablet
  lg: "1024px"   # Desktop
  xl: "1280px"   # Large desktop
  2xl: "1536px"  # Extra large

layouts:
  mobile:
    columns: 4
    gutter: "16px"
    margin: "16px"

  tablet:
    columns: 8
    gutter: "24px"
    margin: "32px"

  desktop:
    columns: 12
    gutter: "24px"
    margin: "auto"
    maxWidth: "1280px"

📋 Pre-Generation Validation (v1.1.0 — MANDATORY)

Background: Audit found mockups used nested URLs (/financial/bills) when project uses flat URLs (/bills), and used :id instead of [id]. Alert library was not synced with CLAUDE.md when project switched libraries. These all happened because mockups were generated without reading CLAUDE.md first.

Before creating ANY mockup, read these sources:

Step 0: Read Project Conventions (MANDATORY)
─────────────────────────────────────────────────
1. Read CLAUDE.md → extract:
   □ Frontend framework (Next.js → [id] syntax, Express → :id syntax)
   □ URL convention (flat vs nested modules)
   □ Alert/Dialog library (default: SweetAlert2, override if CLAUDE.md specifies otherwise)
   □ Toast library (for success/error notifications)
   □ Component library (Shadcn/ui, MUI, Ant Design, etc.)
   □ CSS framework (Tailwind, styled-components, etc.)

2. Read Design Doc (if exists) → extract:
   □ Entity properties for Field Mapping table
   □ Enums for select/dropdown options
   □ FK relationships for linked fields

3. Apply to mockup template:
   □ Alert Library = SweetAlert2 (default) OR override from CLAUDE.md if specified
   □ URL syntax = framework-specific ([id] for Next.js, :id for Express)
   □ URL prefix = from CLAUDE.md conventions (flat vs nested)
   □ Design tokens = from Tailwind/CSS framework config (NOT custom tokens file)
─────────────────────────────────────────────────

Post-Generation Validation

After creating mockup, verify:
─────────────────────────────────────────────────
□ URLs match CLAUDE.md convention (flat vs nested)
□ Alert/Dialog library matches CLAUDE.md (not outdated library)
□ Route parameter syntax matches framework ([id] vs :id)
□ Field names map to entity properties (Field Mapping table present)
□ mockup_list.json updated with new mockup entry
□ No duplicate mockup IDs (check existing files first)
─────────────────────────────────────────────────

Change Propagation Rule

When CLAUDE.md changes (library replacement, URL convention change):
1. Scan all mockups for references to the old library/convention
2. Report: "N mockups reference [old library/convention]"
3. Offer bulk update via /edit-mockup

🔄 Workflow

Creating a New Mockup

0. Read CLAUDE.md (MANDATORY — extract conventions, libraries, URL syntax)

1. Receive Input
   ├── From system-design-doc (Sitemap, Screen Specs)
   └── Or from user requirements

2. Define Layout
   ├── Choose appropriate layout pattern
   ├── Define grid system
   └── Specify responsive behavior

3. Create Wireframe
   ├── Draw ASCII wireframe
   ├── Specify components used
   └── Define spacing

4. Create Component Specs
   ├── List components used
   ├── Specify states (default, hover, active, disabled)
   └── Define interactions

5. Define Design Tokens
   ├── Reference from Tailwind/CSS framework config
   ├── Do NOT create separate _design-tokens.json unless project requires it
   └── Use Tailwind classes as source of truth (if Tailwind project)

6. Create Field Mapping Table (NEW v1.1.0)
   ├── Map UI labels (Thai/English) to entity property names
   ├── Include type and validation rules
   └── Reference Design Doc Data Dictionary

7. Save Mockup
   ├── Create .mockup.md file in .mockups/ folder
   ├── Update mockup_list.json
   └── Check for duplicate IDs before saving

Editing a Mockup

1. Read Existing Mockup
   └── From .mockups/[page-name].mockup.md

2. Receive Change Request
   ├── Add/remove component
   ├── Change layout
   ├── Adjust design tokens
   └── Add responsive breakpoint

3. Edit Mockup
   ├── Update ASCII wireframe
   ├── Update component specs
   └── Update design tokens

4. Save Version
   └── Update file + version history

📁 Output Files

When creating a mockup, files are saved at:

project-root/
└── .mockups/
    ├── _design-tokens.yaml       # Shared design tokens
    ├── _component-library.md     # Project component library
    ├── login.mockup.md           # Login page mockup
    ├── dashboard.mockup.md       # Dashboard mockup
    ├── user-list.mockup.md       # User list mockup
    └── ...

⚙️ Commands

CommandDescription
/create-mockup [page]Create a new page mockup
/edit-mockup [page] - [changes]Edit an existing mockup
/list-mockupsView all mockups
/export-mockupsExport mockups as summary

⚠️ CRITICAL RULES (MUST FOLLOW)

Wireframe Rules

  1. ALL 3 breakpoint wireframes mandatory — Desktop (12 columns), Tablet (8 columns), Mobile (4 columns)
  2. No abbreviation — every wireframe must have actual ASCII art content, not "[wireframe here]" placeholders
  3. No placeholder text — "[TBD]", "[TODO]", "will be added" is forbidden in wireframe content

Design Token Rules

  1. Reference tokens from SKILL.md — use the design tokens defined in this skill (colors, typography, spacing)
  2. Include "Design Tokens Used" section — every mockup must list which tokens it uses

Component Rules

  1. Use Component Library symbols — use the standard ASCII symbols defined in the Component Library section above
  2. List all components — every mockup must have a "Components Used" table listing all components

CRUD Rules

  1. Match complexity — simple entities (< 10 fields) use modal pattern, complex entities (>= 10 fields) use page pattern
  2. Action column first — in data tables, the action column (View/Edit/Delete) must be the leftmost column
  3. Alert/Dialog library: SweetAlert2 (default), override from CLAUDE.md — default to SweetAlert2 for all confirmations and alerts. If CLAUDE.md explicitly specifies a different library (e.g., Sonner + Shadcn AlertDialog), use that instead. Never use browser native popups (alert/confirm/prompt).
  4. Enabled actions only — only show action icons for CRUD operations that are enabled

🔍 Self-Check Checklist (MANDATORY before submitting output)

Before completing the mockup, verify EVERY item:

  • CLAUDE.md read? Alert library, URL convention, framework extracted? (v1.1.0)
  • Desktop wireframe (12 columns) drawn with actual ASCII art?
  • Tablet wireframe (8 columns) drawn with actual ASCII art?
  • Mobile wireframe (4 columns) drawn with actual ASCII art?
  • Design tokens referenced in "Design Tokens Used" section?
  • All components listed in "Components Used" table?
  • Field Mapping table present? (for form/list pages) (v1.1.0)
  • Action column is first (leftmost) in data tables?
  • Alert library = SweetAlert2 (default) OR overridden by CLAUDE.md? Never browser native popup (v1.1.0)
  • URL syntax matches framework? ([id] for Next.js) (v1.1.0)
  • No duplicate mockup ID? (v1.1.0)
  • CRUD pattern matches entity complexity (modal vs page)?
  • All required sections present (Page Info, Description, Layout Grid, Wireframe, Components, Interactions, Field Mapping, Design Tokens, Responsive, Version History)?

If ANY checkbox is unchecked, DO NOT submit. Fix the issue first.

❌ Output Rejection Criteria

Your output will be REJECTED and you must REDO the entire mockup if:

  • Any breakpoint wireframe is missing or contains only placeholder text
  • "Design Tokens Used" section is missing
  • "Components Used" table is missing
  • "Field Mapping" table is missing (for form/list pages)
  • Action column is not first in data tables
  • CRUD pattern doesn't match entity complexity
  • Uses browser native popup (alert/confirm/prompt) instead of SweetAlert2 or CLAUDE.md library (v1.1.0)
  • URL syntax wrong for framework (e.g., :id in Next.js project) (v1.1.0)
  • Duplicate mockup ID exists (v1.1.0)

⚠️ Penalty

Violating these rules means the task is FAILED. Your output will be REJECTED and you must redo the ENTIRE mockup from scratch. There are no partial passes.


📚 References

FileDescription
references/ascii-patterns.mdAdditional ASCII wireframe patterns
references/component-library.mdFull component library
references/responsive-patterns.mdResponsive design patterns
templates/mockup-template.mdTemplate for mockup files
templates/mockup_list.jsonTemplate for mockup tracking

🎯 Entity Complexity Classification

Simple vs Complex Entities

ComplexityData CharacteristicsUI PatternExamples
simpleMaster data, fields < 10, no complex relationsModal popupDepartment, Status, Category, Position
complexFields >= 10, has complex relations, needs wizardSeparate pageUser, Order, Product, Employee

UI Pattern Decision

Entity Analysis
      │
      ├── Fields < 10 && No complex relations
      │   └── complexity: "simple"
      │       └── UI Pattern: Modal
      │           • View → Modal
      │           • Create → Modal
      │           • Edit → Modal
      │           • Delete → SweetAlert2 (default) or CLAUDE.md override
      │
      └── Fields >= 10 || Complex relations
          └── complexity: "complex"
              └── UI Pattern: Page
                  • View → Detail Page
                  • Create → Form Page
                  • Edit → Form Page
                  • Delete → SweetAlert2 (default) or CLAUDE.md override

📊 CRUD Page Patterns

Complex Entity (3 pages)

For complex entities, 3 pages will be created:

Page TypeFilenameDescription
List[NNN]-[entity]-list.mockup.mdTable showing all records
Form[NNN]-[entity]-form.mockup.mdCreate/edit form
Detail[NNN]-[entity]-detail.mockup.mdRecord detail view

Simple Entity (1 page with modals)

For simple entities (Master Data), 1 page will be created:

Page TypeFilenameDescription
List[NNN]-[entity]-list.mockup.mdTable + Modal for View/Create/Edit

📁 File Naming Convention

Format: [NNN]-[page-name].mockup.md

ComponentDescriptionExample
NNN3-digit number from page ID001, 004, 015
page-namePage name in kebab-caselogin, user-list, department-list

Examples:

.mockups/
├── mockup_list.json
├── 001-login.mockup.md
├── 002-register.mockup.md
├── 003-dashboard.mockup.md
├── 004-user-list.mockup.md
├── 005-user-form.mockup.md
├── 006-user-detail.mockup.md
├── 010-department-list.mockup.md    # simple entity (modal pattern)
└── _design-tokens.json

📋 Action Column Position

The action column must be at the front (leftmost) of the table:

┌────────┬─────┬────────────────────┬─────────────────┬──────────┐
│ Action │ ID  │ Name               │ Email           │ Status   │
├────────┼─────┼────────────────────┼─────────────────┼──────────┤
│ 👁 ✏️ 🗑 │ 001 │ John Doe           │ john@email.com  │ Active   │
│ 👁 ✏️ 🗑 │ 002 │ Jane Smith         │ jane@email.com  │ Active   │
└────────┴─────┴────────────────────┴─────────────────┴──────────┘

Action Icons

IconActionSimple EntityComplex Entity
👁ViewOpen View ModalNavigate to Detail Page
✏️EditOpen Edit ModalNavigate to Edit Page
🗑DeleteSweetAlert2 (default)SweetAlert2 (default)

🔔 Alert/Dialog Library (v1.1.0)

Default: SweetAlert2 — ใช้ SweetAlert2 เป็นค่าเริ่มต้นสำหรับทุก mockup Override: ถ้า CLAUDE.md ระบุ library อื่นอย่างชัดเจน (เช่น Sonner + Shadcn AlertDialog) ให้ใช้ตาม CLAUDE.md ห้ามใช้ browser native popups (alert/confirm/prompt) เด็ดขาด

How to determine the alert library:

1. Read CLAUDE.md → look for "Alert", "Dialog", "Toast", "Notification" in libraries section
2. If CLAUDE.md explicitly specifies a replacement → use that library
3. If CLAUDE.md does NOT specify or SweetAlert2 is listed → use SweetAlert2 (default)
4. NEVER use browser native popups (window.alert, window.confirm, window.prompt)

Default: SweetAlert2

// Delete Confirmation (default: soft delete)
Swal.fire({
  icon: 'warning',
  title: 'Are you sure?',
  text: "This item will be deactivated.",
  showCancelButton: true,
  confirmButtonColor: '#d33',
  cancelButtonColor: '#3085d6',
  confirmButtonText: 'Yes, deactivate it!',
  cancelButtonText: 'Cancel'
})
// For hard delete: text: "This action cannot be undone.", confirmButtonText: "Yes, delete it!"

// Success
Swal.fire({
  icon: 'success',
  title: 'Success!',
  text: 'Your record has been saved.',
  confirmButtonText: 'OK'
})

// Error
Swal.fire({
  icon: 'error',
  title: 'Error!',
  text: 'Something went wrong.',
  confirmButtonText: 'OK'
})

Override: When CLAUDE.md specifies a different library

If CLAUDE.md saysUse insteadConfirmationSuccess/Error
Sonner + Shadcn AlertDialogShadcn AlertDialog + Sonner toast<AlertDialog>toast.success() / toast.error()
React Hot ToastReact Hot Toast + custom dialogCustom <ConfirmDialog>toast.success() / toast.error()
MUIMUI Dialog + Snackbar<Dialog><Snackbar>
*(not specified)*SweetAlert2 (default)Swal.fire()Swal.fire()

In mockup Page Info table:

| Alert Library | SweetAlert2 |                    ← default
| Alert Library | Sonner + Shadcn AlertDialog |     ← if CLAUDE.md overrides

📋 Field Mapping Table (v1.1.0 — MANDATORY for form/list pages)

Background: Audit found developers had to guess the mapping between Thai UI labels and English entity property names. This table eliminates ambiguity.

Every mockup with form fields or table columns MUST include a Field Mapping table:

## Field Mapping

| UI Label | Entity Property | Type | Validation | Notes |
|----------|----------------|------|------------|-------|
| ชื่อบริษัท | Customer.CompanyName | string | required, max 200 | |
| เลขภาษี | Customer.TaxId | string | pattern: \d{13} | |
| ที่อยู่ | Customer.Address | string | required | |
| สถานะ | Customer.IsActive | boolean | | default: true |

How to create:

  1. Read Design Doc Data Dictionary for the entity
  2. Map each form field / table column to entity property
  3. Include type and validation from DD
  4. Use entity's English property name (not Thai)

🔄 Versioning & Conflict Detection (v1.1.0)

Rules:

  1. 1 mockup ID = 1 file — no duplicate IDs (e.g., 005-job-form.mockup.md and 005-job-form_gemini.mockup.md)
  2. Before creating a new mockup, check if a file with the same ID already exists
  3. If duplicate found: replace the old version or increment the version number
  4. Use version field in the mockup header, not filename suffixes (_v2, _gemini, etc.)
Before creating mockup:
  ls .mockups/[NNN]-*.mockup.md
  If exists → ask user: replace or skip?
  If not exists → create normally

🔗 Related Documents

Every page in mockup_list.json can have related_documents:

{
  "related_documents": [
    {"type": "system-design", "path": "system-design.md#user-management"},
    {"type": "api", "path": "docs/api/users.md"},
    {"type": "requirements", "path": "requirements.md#FR-001"}
  ]
}

Supported Document Types:

  • system-design - System Design Document
  • api - API Specification
  • requirements - Requirements Document
  • figma - Figma Design
  • erd - ER Diagram
  • flow - Flow Diagram
  • data-dict - Data Dictionary

平台分布

Codex

36.26%
按下载量换算39

Claude

30.93%
按下载量换算33

Cursor

17.04%
按下载量换算18

Gemini CLI

9.6%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限未标注

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

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

继续浏览同类 Skills