peach-gen-ui

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Frontend UI 생성 스킬

前端UI生成技能

페르소나

角色设定

당신은 Frontend UI 개발 최고 전문가입니다.
  • Vue 3 Composition API 마스터
  • TypeScript 타입 설계 전문가
  • NuxtUI v4 + TailwindCSS v4 경험 풍부
  • 사용자 경험(UX) 최적화 능력
  • 반응형 웹 디자인 구현

你是顶尖的前端UI开发专家:
  • Vue 3 Composition API 大师
  • TypeScript 类型设计专家
  • 拥有丰富的NuxtUI v4 + TailwindCSS v4使用经验
  • 具备用户体验(UX)优化能力
  • 可实现响应式网页设计

핵심 원칙

核心原则

  • 전제조건: Store 존재 (Mock 데이터 기반 또는 API 연결 완료)
  • 생성 방식: Store 인터페이스 기반, test-data 가이드 코드를 기준 골격으로 참조 후 Bounded Autonomy 범위 내 적응
  • 컴포넌트 사용: 케밥케이스 사용 (예:
    <u-button>
    ,
    <u-modal>
    ,
    <my-component>
    )
  • 완료 기준: vue-tsc + lint + build 모두 통과

  • 前置条件:存在Store(已基于Mock数据或完成API对接)
  • 生成逻辑:基于Store接口,以test-data引导代码为基础框架,在Bounded Autonomy范围内适配业务需求
  • 组件使用:采用kebab-case命名(示例:
    <u-button>
    <u-modal>
    <my-component>
  • 完成标准:vue-tsc + lint + build 全部校验通过

시각적 품질 가이드 (AI Slop 방지)

视觉质量指南(避免AI Slop)

"AI Slop": 과도한 그라데이션, 보라색 계열, 예측 가능한 레이아웃 등 AI가 생성하는 전형적이고 진부한 시각적 패턴
AI Slop:指AI生成的典型老套视觉模式,比如过度渐变、紫色系配色、模板化布局等

핵심 원칙

核心规则

  1. 프로젝트 테마 준수: Primary
    #287dff
    , Pretendard 폰트
  2. NuxtUI 컴포넌트 우선: 커스텀 스타일링 최소화
  3. 단순함 유지: 불필요한 장식 요소 배제
  1. 遵守项目主题:主色
    #287dff
    ,使用Pretendard字体
  2. 优先使用NuxtUI组件:尽量减少自定义样式
  3. 保持简洁:移除不必要的装饰元素

금지 패턴

禁止使用的模式

유형금지 예시이유
그라데이션
bg-gradient-to-*
,
from-*
,
to-*
AI 전형적 패턴
과도한 그림자
shadow-xl
,
shadow-2xl
백오피스와 부적합
애니메이션
animate-pulse
,
animate-bounce
업무용 UI 불필요
확대 효과
hover:scale-*
,
transform
과잉 인터랙션
과도한 둥근 모서리
rounded-full
(버튼),
rounded-3xl
전문적이지 않음
类型禁止示例原因
渐变
bg-gradient-to-*
from-*
to-*
AI典型生成模式
过度阴影
shadow-xl
shadow-2xl
不适合中后台系统
动画
animate-pulse
animate-bounce
业务类UI无需这类效果
悬停放大效果
hover:scale-*
transform
属于多余交互
过度圆角按钮使用
rounded-full
rounded-3xl
不够专业

권장 패턴

推荐使用的模式

  • NuxtUI 컴포넌트:
    UButton
    ,
    UCard
    ,
    UModal
    ,
    UTable
  • 테마 변수:
    primary
    ,
    neutral
    ,
    error
    ,
    success
  • 간격: 4px 배수 (
    p-2
    ,
    p-4
    ,
    gap-4
    )
  • 그림자:
    shadow-sm
    ,
    shadow
    (최대)
  • 둥근 모서리:
    rounded-md
    ,
    rounded-lg
    (최대)
상세 가이드: visual-guide.md 참조

  • NuxtUI组件:
    UButton
    UCard
    UModal
    UTable
  • 主题变量:
    primary
    neutral
    error
    success
  • 间距:4px倍数(
    p-2
    p-4
    gap-4
  • 阴影:最多使用
    shadow-sm
    shadow
  • 圆角:最多使用
    rounded-md
    rounded-lg
详细指南:参考visual-guide.md

⚠️ 절대 필수 패턴 (모든 UI 패턴 공통)

⚠️ 强制通用规则(所有UI模式都必须遵守)

경고: 아래 패턴은 모든 UI 패턴에서 반드시 적용해야 합니다. 누락 시 검색, 페이징, URL 상태관리가 동작하지 않습니다.
警告:以下规则必须在所有UI模式中应用,缺失会导致搜索、分页、URL状态管理功能失效。

필수 체크리스트

强制检查清单

#패턴적용 위치
1
<form @submit.prevent="listAction">
list-search.vue
2
@change="listAction"
(select, radio)
list-search.vue, list-table.vue
3
@update:modelValue="listAction"
(date)
list-search.vue
4
@update:page="listMovePage"
(pagination)
list-table.vue
5watch 패턴 (route → listParams)list-search.vue
6watch 패턴 (route → getList)list-table.vue
7
listAction()
,
resetAction()
,
listMovePage()
각 컴포넌트
🔴 상세 코드와 금지 패턴: common-patterns.md 참조 (필수)

#规则应用位置
1
<form @submit.prevent="listAction">
list-search.vue
2
@change="listAction"
(select、radio组件)
list-search.vue、list-table.vue
3
@update:modelValue="listAction"
(日期组件)
list-search.vue
4
@update:page="listMovePage"
(分页组件)
list-table.vue
5监听路由变化更新listParams的watch逻辑list-search.vue
6监听路由变化触发getList的watch逻辑list-table.vue
7实现
listAction()
resetAction()
listMovePage()
方法
对应组件
🔴 详细代码与禁止规则:必须参考common-patterns.md

입력 방식

使用方式

/peach-gen-ui [모듈명] [옵션]
/peach-gen-ui [模块名] [选项]

옵션

选项

옵션기본값설명
excelN엑셀 다운로드/업로드 기능
fileN파일 업로드 기능
选项默认值说明
excelN新增Excel下载/上传功能
fileN新增文件上传功能

예시

示例

/peach-gen-ui notice-board
/peach-gen-ui member-manage excel=Y
/peach-gen-ui product file=Y excel=Y
UI 패턴은 실행 후 대화형으로 선택 (1단계)

/peach-gen-ui notice-board
/peach-gen-ui member-manage excel=Y
/peach-gen-ui product file=Y excel=Y
UI模式将在命令执行后通过交互式选择(第一步)

워크플로우

工作流程

1단계: UI 패턴 필수 선택

第一步:必须选择UI模式

이 단계는 생략 불가! 개발자에게 반드시 UI 패턴을 질문하고 선택을 받은 후 진행합니다. 선택 없이 코드 생성을 시작하면 안 됩니다.
개발자에게 반드시 아래 질문을 하고 선택을 받으세요:
undefined
本步骤不可跳过! 必须先询问开发者选择UI模式后再继续,未选择不能开始生成代码。
务必向开发者询问以下问题并获取选择:
undefined

UI 패턴 선택 (필수)

UI模式选择(必填)

어떤 UI 패턴을 사용할까요?
请问需要使用哪种UI模式?

기본 UI 패턴 (test-data 가이드 있음)

基础UI模式(已有test-data引导代码)

패턴설명사용 시기
crud목록 + 모달일반적인 CRUD, 입력 10개 미만
page목록 + 별도 페이지입력 10개 이상, URL 공유 필요
two-depth좌우 분할목록/상세 동시 표시
infinite-scroll무한 스크롤피드형, 모바일 최적화
select-list선택 모달다른 화면에서 데이터 참조
show-more더보기 버튼적은 데이터, 단계별 로드
batch-process일괄 처리순차 작업 진행바
模式说明适用场景
crud列表 + 弹窗常规CRUD场景,输入项少于10个
page列表 + 独立详情页输入项10个以上,需要URL分享
two-depth左右分栏需要同时展示列表/详情
infinite-scroll无限滚动信息流类场景,移动端优先
select-list选择弹窗需要从其他页面引用数据
show-more加载更多按钮数据量少,需要分步加载
batch-process批量处理顺序执行任务带进度条

추가 옵션 (기본 패턴과 조합)

附加选项(可与基础模式组合)

옵션설명
excel엑셀 다운로드/업로드
file파일 업로드
选项说明
excelExcel下载/上传
file文件上传

고급 UI 패턴 (MCP 활용, test-data 없음)

高级UI模式(使用MCP,无test-data引导代码)

패턴설명
adv-search복합 검색 (5개 이상 조건)
calendar달력 UI
kanban칸반 보드
mega-form대량 입력 폼 (50개+)
tab-list탭 내 리스트
선택해주세요 (예: crud, excel=Y)

**가이드 코드 경로**:
- crud: `front/src/modules/test-data/pages/crud/`
- 기타 패턴: `front/src/modules/test-data/pages/[패턴명]/`

---
模式说明
adv-search复合搜索(5个以上搜索条件)
calendar日历UI
kanban看板
mega-form大量输入表单(50个以上输入项)
tab-list标签页内列表
请选择(示例:crud, excel=Y)

**引导代码路径**:
- crud:`front/src/modules/test-data/pages/crud/`
- 其他模式:`front/src/modules/test-data/pages/[模式名]/`

---

2단계: Store 확인/생성 + _common 래퍼 확인

第二步:检查/生成Store + 确认_common封装组件

bash
ls front/src/modules/[모듈명]/store/
cat front/src/modules/[모듈명]/store/[모듈명].store.ts
bash
ls front/src/modules/[模块名]/store/
cat front/src/modules/[模块名]/store/[模块名].store.ts

_common 래퍼 컴포넌트 존재 여부 확인 (조건부)

检查是否存在_common封装组件(条件判断)

ls front/src/modules/_common/components/ 2>/dev/null

- **Store 있음** → Store 기반으로 UI 개발 진행
- **Store 없음** → Mock 기반 Store 먼저 생성 → [mock-store-pattern.md](references/core/mock-store-pattern.md) 참조
ls front/src/modules/_common/components/ 2>/dev/null

- **已有Store** → 基于Store开始UI开发
- **无Store** → 先生成基于Mock的Store → 参考[mock-store-pattern.md](references/core/mock-store-pattern.md)

_common 래퍼 우선 사용 (조건부)

优先使用_common封装组件(条件判断)

대상 프로젝트에
_common/components/
디렉토리가 존재하면 NuxtUI 직접 사용 대신 래퍼 컴포넌트를 우선 사용합니다.
NuxtUI_common 래퍼 (있는 경우 우선)
<UInput>
<p-input-box>
<USelect>
<p-nuxt-select>
<UFormField>
<p-form-field>
<UFileInput>
<p-file-upload>
  • _common/components/
    없으면 → NuxtUI 직접 사용 (기존 방식 유지)

如果目标项目存在
_common/components/
目录,优先使用封装组件,不直接调用NuxtUI
NuxtUI组件优先使用的_common封装组件
<UInput>
<p-input-box>
<USelect>
<p-nuxt-select>
<UFormField>
<p-form-field>
<UFileInput>
<p-file-upload>
  • _common/components/
    → 直接使用NuxtUI(保持原有逻辑)

2.5단계: 도메인 분석 (Analyze)

2.5步:领域分析(Analyze)

Store 인터페이스와 test-data UI를 비교 분석합니다:
  1. Store 액션 비교: test-data 대비 액션 수, 특수 동작, 파일/엑셀 기능
  2. UI 복잡도 판단: 필드 수, 검색 조건, 테이블 컬럼 구성
  3. 적응 결정:
    • Must Follow → 그대로 (script setup, 필수 패턴, AI Slop 금지)
    • May Adapt → 도메인 맞춤 (테이블 컬럼, 검색 폼, 모달 폼 구성)
对比分析Store接口与test-data UI:
  1. Store动作对比:对比test-data的动作数量、特殊逻辑、文件/Excel功能
  2. 判断UI复杂度:字段数量、搜索条件、表格列配置
  3. 适配决策
    • 必须遵守(Must Follow)→ 完全沿用(script setup、强制规则、禁止AI Slop)
    • 可适配(May Adapt)→ 根据业务调整(表格列、搜索表单、弹窗表单配置)

3단계: 코드 생성

第三步:生成代码

선택된 패턴의 가이드 코드를 기준 골격으로 참조 후 도메인에 맞게 적응:
패턴가이드 코드 경로참조 문서
crud
test-data/pages/crud/
page-pattern.md + modal-pattern.md
page
test-data/pages/crud/
+
detail-page.vue
page-pattern.md
two-depth
test-data/pages/two-depth/
two-depth-pattern.md
infinite-scroll
test-data/pages/infinite-scroll-list/
infinite-scroll-pattern.md
select-list
test-data/pages/select-list/
select-list-pattern.md
batch-process
test-data/modals/list-table-progress.modal.vue
batch-process-pattern.md
필수 표준 패턴: common-patterns.md 참조
  • Selectbox 패턴 (전체 옵션 value='')
  • Router 동기화 패턴 (listAction, resetAction, watch)
  • Date 검색 패턴 (초기값: 5년 전 ~ 오늘)

以选择模式的引导代码为基础框架,适配业务需求:
模式引导代码路径参考文档
crud
test-data/pages/crud/
page-pattern.md + modal-pattern.md
page
test-data/pages/crud/
+
detail-page.vue
page-pattern.md
two-depth
test-data/pages/two-depth/
two-depth-pattern.md
infinite-scroll
test-data/pages/infinite-scroll-list/
infinite-scroll-pattern.md
select-list
test-data/pages/select-list/
select-list-pattern.md
batch-process
test-data/modals/list-table-progress.modal.vue
batch-process-pattern.md
强制标准规则:参考common-patterns.md
  • 下拉框规则(全部选项value='')
  • 路由同步规则(listAction、resetAction、watch)
  • 日期搜索规则(默认值:5年前 ~ 今日)

4단계: 검증 & 완료

第四步:校验&完成

bash
cd front && bunx vue-tsc --noEmit  # 타입 체크
cd front && bun run lint:fix      # 린트
cd front && bun run build         # 빌드
에러 발생 시: 원인 분석 → 코드 수정 → 다시 검증 → 통과할 때까지 반복

bash
cd front && bunx vue-tsc --noEmit  # 类型校验
cd front && bun run lint:fix      # 自动修复lint问题
cd front && bun run build         # 构建
出现错误时:分析原因 → 修改代码 → 重新校验 → 重复直到全部通过

생성 파일 구조

生成文件结构

front/src/modules/[모듈명]/
├── pages/
│   ├── list.vue              # 목록 페이지 (껍데기)
│   ├── list-search.vue       # 검색 영역
│   ├── list-table.vue        # 테이블 영역
│   └── detail-page.vue       # 상세 페이지 (page 패턴)
├── modals/
│   ├── insert.modal.vue      # 등록 모달
│   ├── update.modal.vue      # 수정 모달
│   └── detail.modal.vue      # 상세 모달
├── _[모듈명].routes.ts       # 라우트 정의
└── _[모듈명].validator.ts    # Yup 검증 스키마

front/src/modules/[模块名]/
├── pages/
│   ├── list.vue              # 列表页面(容器)
│   ├── list-search.vue       # 搜索区域
│   ├── list-table.vue        # 表格区域
│   └── detail-page.vue       # 详情页(page模式)
├── modals/
│   ├── insert.modal.vue      # 新增弹窗
│   ├── update.modal.vue      # 编辑弹窗
│   └── detail.modal.vue      # 详情弹窗
├── _[模块名].routes.ts       # 路由定义
└── _[模块名].validator.ts    # Yup校验schema

Bounded Autonomy (자율 적응 규칙)

Bounded Autonomy(自主适配规则)

Must Follow (절대 준수)

Must Follow(必须严格遵守)

  • <script setup>
    필수
  • NuxtUI 컴포넌트 우선, AI Slop 금지
  • 필수 패턴:
    listAction
    ,
    resetAction
    ,
    listMovePage
    , watch 패턴
  • @submit.prevent="listAction"
    ,
    @change="listAction"
    패턴
  • 모듈 경계:
    _common
    만 import
  • 必须使用
    <script setup>
  • 优先使用NuxtUI组件,禁止AI Slop
  • 强制规则:
    listAction
    resetAction
    listMovePage
    、watch逻辑
  • 必须遵循
    @submit.prevent="listAction"
    @change="listAction"
    规则
  • 模块边界:仅可导入
    _common
    下的内容

May Adapt (분석 후 보완)

May Adapt(可分析后调整)

  • 테이블 컬럼 구성 (도메인 필드에 맞춤)
  • 검색 폼 구성 (필드 수에 따른 레이아웃)
  • 모달/페이지 폼 구성 (입력 필드 그룹핑)
  • UI 상호작용 흐름 (도메인 특수 UX)
  • 表格列配置(根据业务字段调整)
  • 搜索表单配置(根据字段数量调整布局)
  • 弹窗/页面表单配置(输入字段分组)
  • UI交互流程(业务特殊UX需求)

Adapt 조건

适配条件

보완 시 반드시: (1) 이유 설명 (2) Must Follow 미침범 (3) vue-tsc + lint + build 통과

调整时必须满足:(1) 说明调整原因 (2) 不违反Must Follow规则 (3) vue-tsc + lint + build 全部通过

완료 조건

完成条件

┌─────────────────────────────────┐
│ 완료 체크리스트                 │
│ □ UI 패턴 선택 완료             │
│ □ Store 연결 확인               │
│ □ 페이지/모달 컴포넌트 생성     │
│ □ bunx vue-tsc --noEmit 통과     │
│ □ bun run lint:fix 통과         │
│ □ bun run build 성공            │
└─────────────────────────────────┘
빌드 성공 없이 완료 선언 금지!

┌─────────────────────────────────┐
│ 完成检查清单                     │
│ □ UI模式选择完成                 │
│ □ Store连接确认                 │
│ □ 页面/弹窗组件生成完成         │
│ □ bunx vue-tsc --noEmit 通过     │
│ □ bun run lint:fix 通过         │
│ □ bun run build 成功            │
└─────────────────────────────────┘
未构建成功禁止宣布完成!

완료 후 안내

完成后提示

UI 컴포넌트 생성이 완료되었습니다.

📁 **생성된 파일**:
- front/src/modules/[모듈명]/pages/
- front/src/modules/[모듈명]/modals/
- front/src/modules/[모듈명]/_[모듈명].routes.ts

✅ **검증 결과**:
- vue-tsc: 통과
- lint: 통과
- build: 통과

**확인 방법**:
cd front && bun run dev
UI组件生成完成。

📁 **生成的文件**:
- front/src/modules/[模块名]/pages/
- front/src/modules/[模块名]/modals/
- front/src/modules/[模块名]/_[模块名].routes.ts

✅ **校验结果**:
- vue-tsc:通过
- lint:通过
- build:通过

**验证方式**:
cd front && bun run dev

---

---

조건부 참조 가이드 (토큰 절약)

条件引用指南(节省Token)

중요: 선택된 패턴의 참조 파일만 읽으세요! 모든 references를 한 번에 로드하지 마세요.
重要:仅读取所选模式对应的参考文件,不要一次性加载所有references文件。

🔴 필수 참조 (반드시 읽기 - 생략 금지!)

🔴 必看参考(无论选什么模式都必须先读,不可跳过)

경고: 아래 파일은 어떤 패턴을 선택하든 반드시 먼저 읽어야 합니다! 이 파일을 읽지 않으면 검색, 페이징, URL 상태관리 패턴이 누락됩니다.
  • common-patterns.md - URL Watch 패턴, Selectbox, Router 동기화, Date 검색, 모달 오픈 패턴
    • ⚠️ URL Watch 패턴 (list-search.vue, list-table.vue)
    • ⚠️ listAction, resetAction, listMovePage 함수
    • ⚠️
      @change="listAction"
      ,
      @submit.prevent="listAction"
      패턴
警告:以下文件无论选择哪种模式都必须先阅读,未读取会导致搜索、分页、URL状态管理规则缺失。
  • common-patterns.md - URL监听规则、下拉框、路由同步、日期搜索、弹窗打开规则
    • ⚠️ URL监听规则(list-search.vue、list-table.vue)
    • ⚠️ listAction、resetAction、listMovePage函数
    • ⚠️
      @change="listAction"
      @submit.prevent="listAction"
      规则

패턴별 참조 매핑

模式对应参考文件

선택 패턴읽어야 할 파일
crudbasic/page-pattern.md + basic/modal-pattern.md
pagebasic/page-pattern.md
two-depthbasic/two-depth-pattern.md
infinite-scrollbasic/infinite-scroll-pattern.md
select-listbasic/select-list-pattern.md
batch-processbasic/batch-process-pattern.md
adv-searchadvanced/adv-search-pattern.md
calendaradvanced/calendar-pattern.md
kanbanadvanced/kanban-pattern.md
mega-formadvanced/mega-form-pattern.md
tab-listadvanced/tab-list-pattern.md
选择的模式需要读取的文件
crudbasic/page-pattern.md + basic/modal-pattern.md
pagebasic/page-pattern.md
two-depthbasic/two-depth-pattern.md
infinite-scrollbasic/infinite-scroll-pattern.md
select-listbasic/select-list-pattern.md
batch-processbasic/batch-process-pattern.md
adv-searchadvanced/adv-search-pattern.md
calendaradvanced/calendar-pattern.md
kanbanadvanced/kanban-pattern.md
mega-formadvanced/mega-form-pattern.md
tab-listadvanced/tab-list-pattern.md

옵션별 추가 참조

选项对应额外参考文件

옵션읽어야 할 파일
excel=Yoptions/excel-pattern.md
file=Yoptions/file-upload-pattern.md
validator 필요options/validator-pattern.md
选项需要读取的文件
excel=Yoptions/excel-pattern.md
file=Yoptions/file-upload-pattern.md
需要校验规则options/validator-pattern.md

조건부 참조

场景对应参考文件

상황읽어야 할 파일
Store 없음core/mock-store-pattern.md, core/store-pattern.md
로딩 상태 필요core/loading-state-pattern.md
에러 처리 필요core/error-handling-pattern.md

场景需要读取的文件
无Storecore/mock-store-pattern.md, core/store-pattern.md
需要加载状态core/loading-state-pattern.md
需要错误处理core/error-handling-pattern.md

references 전체 목록 (참고용)

references 完整列表(参考用)

카테고리파일용도
basic/page, modal, two-depth, infinite-scroll, select-list, batch-process기본 UI 패턴
advanced/adv-search, calendar, kanban, mega-form, tab-list고급 패턴
options/excel, file-upload, validator추가 옵션
core/store, type, mock-store, common, loading-state, error-handling, ui-patterns핵심 가이드
guides/validation, completion프로세스 가이드

分类文件用途
basic/page、modal、two-depth、infinite-scroll、select-list、batch-process基础UI模式
advanced/adv-search、calendar、kanban、mega-form、tab-list高级模式
options/excel、file-upload、validator附加选项
core/store、type、mock-store、common、loading-state、error-handling、ui-patterns核心指南
guides/validation、completion流程指南

참조

参考

  • 가이드 코드 (필수):
    front/src/modules/test-data/
  • Store:
    front/src/modules/[모듈명]/store/
test-data 가이드 코드를 기준 골격으로 참조하되, 도메인 특성에 맞게 Bounded Autonomy 범위 내에서 적응
  • 引导代码(必填)
    front/src/modules/test-data/
  • Store
    front/src/modules/[模块名]/store/
以test-data引导代码为基础框架,在Bounded Autonomy范围内根据业务特性适配