peach-gen-ui
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFrontend 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生成的典型老套视觉模式,比如过度渐变、紫色系配色、模板化布局等
핵심 원칙
核心规则
- 프로젝트 테마 준수: Primary , Pretendard 폰트
#287dff - NuxtUI 컴포넌트 우선: 커스텀 스타일링 최소화
- 단순함 유지: 불필요한 장식 요소 배제
- 遵守项目主题:主色,使用Pretendard字体
#287dff - 优先使用NuxtUI组件:尽量减少自定义样式
- 保持简洁:移除不必要的装饰元素
금지 패턴
禁止使用的模式
| 유형 | 금지 예시 | 이유 |
|---|---|---|
| 그라데이션 | | AI 전형적 패턴 |
| 과도한 그림자 | | 백오피스와 부적합 |
| 애니메이션 | | 업무용 UI 불필요 |
| 확대 효과 | | 과잉 인터랙션 |
| 과도한 둥근 모서리 | | 전문적이지 않음 |
| 类型 | 禁止示例 | 原因 |
|---|---|---|
| 渐变 | | AI典型生成模式 |
| 过度阴影 | | 不适合中后台系统 |
| 动画 | | 业务类UI无需这类效果 |
| 悬停放大效果 | | 属于多余交互 |
| 过度圆角 | 按钮使用 | 不够专业 |
권장 패턴
推荐使用的模式
- NuxtUI 컴포넌트: ,
UButton,UCard,UModalUTable - 테마 변수: ,
primary,neutral,errorsuccess - 간격: 4px 배수 (,
p-2,p-4)gap-4 - 그림자: ,
shadow-sm(최대)shadow - 둥근 모서리: ,
rounded-md(최대)rounded-lg
상세 가이드: visual-guide.md 참조
- NuxtUI组件:、
UButton、UCard、UModalUTable - 主题变量:、
primary、neutral、errorsuccess - 间距:4px倍数(、
p-2、p-4)gap-4 - 阴影:最多使用、
shadow-smshadow - 圆角:最多使用、
rounded-mdrounded-lg
详细指南:参考visual-guide.md
⚠️ 절대 필수 패턴 (모든 UI 패턴 공통)
⚠️ 强制通用规则(所有UI模式都必须遵守)
경고: 아래 패턴은 모든 UI 패턴에서 반드시 적용해야 합니다. 누락 시 검색, 페이징, URL 상태관리가 동작하지 않습니다.
警告:以下规则必须在所有UI模式中应用,缺失会导致搜索、分页、URL状态管理功能失效。
필수 체크리스트
强制检查清单
| # | 패턴 | 적용 위치 |
|---|---|---|
| 1 | | list-search.vue |
| 2 | | list-search.vue, list-table.vue |
| 3 | | list-search.vue |
| 4 | | list-table.vue |
| 5 | watch 패턴 (route → listParams) | list-search.vue |
| 6 | watch 패턴 (route → getList) | list-table.vue |
| 7 | | 각 컴포넌트 |
🔴 상세 코드와 금지 패턴: common-patterns.md 참조 (필수)
| # | 规则 | 应用位置 |
|---|---|---|
| 1 | | list-search.vue |
| 2 | | list-search.vue、list-table.vue |
| 3 | | list-search.vue |
| 4 | | list-table.vue |
| 5 | 监听路由变化更新listParams的watch逻辑 | list-search.vue |
| 6 | 监听路由变化触发getList的watch逻辑 | list-table.vue |
| 7 | 实现 | 对应组件 |
🔴 详细代码与禁止规则:必须参考common-patterns.md
입력 방식
使用方式
/peach-gen-ui [모듈명] [옵션]/peach-gen-ui [模块名] [选项]옵션
选项
| 옵션 | 기본값 | 설명 |
|---|---|---|
| excel | N | 엑셀 다운로드/업로드 기능 |
| file | N | 파일 업로드 기능 |
| 选项 | 默认值 | 说明 |
|---|---|---|
| excel | N | 新增Excel下载/上传功能 |
| file | N | 新增文件上传功能 |
예시
示例
/peach-gen-ui notice-board
/peach-gen-ui member-manage excel=Y
/peach-gen-ui product file=Y excel=YUI 패턴은 실행 후 대화형으로 선택 (1단계)
/peach-gen-ui notice-board
/peach-gen-ui member-manage excel=Y
/peach-gen-ui product file=Y excel=YUI模式将在命令执行后通过交互式选择(第一步)
워크플로우
工作流程
1단계: UI 패턴 필수 선택
第一步:必须选择UI模式
이 단계는 생략 불가! 개발자에게 반드시 UI 패턴을 질문하고 선택을 받은 후 진행합니다. 선택 없이 코드 생성을 시작하면 안 됩니다.
개발자에게 반드시 아래 질문을 하고 선택을 받으세요:
undefined本步骤不可跳过! 必须先询问开发者选择UI模式后再继续,未选择不能开始生成代码。
请务必向开发者询问以下问题并获取选择:
undefinedUI 패턴 선택 (필수)
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 | 파일 업로드 |
| 选项 | 说明 |
|---|---|
| excel | Excel下载/上传 |
| 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.tsbash
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封装组件(条件判断)
대상 프로젝트에디렉토리가 존재하면 NuxtUI 직접 사용 대신 래퍼 컴포넌트를 우선 사용합니다._common/components/
| NuxtUI | _common 래퍼 (있는 경우 우선) |
|---|---|
| |
| |
| |
| |
- 없으면 → NuxtUI 직접 사용 (기존 방식 유지)
_common/components/
如果目标项目存在目录,优先使用封装组件,不直接调用NuxtUI_common/components/
| NuxtUI组件 | 优先使用的_common封装组件 |
|---|---|
| |
| |
| |
| |
- 无→ 直接使用NuxtUI(保持原有逻辑)
_common/components/
2.5단계: 도메인 분석 (Analyze)
2.5步:领域分析(Analyze)
Store 인터페이스와 test-data UI를 비교 분석합니다:
- Store 액션 비교: test-data 대비 액션 수, 특수 동작, 파일/엑셀 기능
- UI 복잡도 판단: 필드 수, 검색 조건, 테이블 컬럼 구성
- 적응 결정:
- Must Follow → 그대로 (script setup, 필수 패턴, AI Slop 금지)
- May Adapt → 도메인 맞춤 (테이블 컬럼, 검색 폼, 모달 폼 구성)
对比分析Store接口与test-data UI:
- Store动作对比:对比test-data的动作数量、特殊逻辑、文件/Excel功能
- 判断UI复杂度:字段数量、搜索条件、表格列配置
- 适配决策:
- 必须遵守(Must Follow)→ 完全沿用(script setup、强制规则、禁止AI Slop)
- 可适配(May Adapt)→ 根据业务调整(表格列、搜索表单、弹窗表单配置)
3단계: 코드 생성
第三步:生成代码
선택된 패턴의 가이드 코드를 기준 골격으로 참조 후 도메인에 맞게 적응:
| 패턴 | 가이드 코드 경로 | 참조 문서 |
|---|---|---|
| crud | | page-pattern.md + modal-pattern.md |
| page | | page-pattern.md |
| two-depth | | two-depth-pattern.md |
| infinite-scroll | | infinite-scroll-pattern.md |
| select-list | | select-list-pattern.md |
| batch-process | | batch-process-pattern.md |
필수 표준 패턴: common-patterns.md 참조
- Selectbox 패턴 (전체 옵션 value='')
- Router 동기화 패턴 (listAction, resetAction, watch)
- Date 검색 패턴 (초기값: 5년 전 ~ 오늘)
以选择模式的引导代码为基础框架,适配业务需求:
| 模式 | 引导代码路径 | 参考文档 |
|---|---|---|
| crud | | page-pattern.md + modal-pattern.md |
| page | | page-pattern.md |
| two-depth | | two-depth-pattern.md |
| infinite-scroll | | infinite-scroll-pattern.md |
| select-list | | select-list-pattern.md |
| batch-process | | 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校验schemaBounded Autonomy (자율 적응 규칙)
Bounded Autonomy(自主适配规则)
Must Follow (절대 준수)
Must Follow(必须严格遵守)
- 필수
<script setup> - NuxtUI 컴포넌트 우선, AI Slop 금지
- 필수 패턴: ,
listAction,resetAction, watch 패턴listMovePage - ,
@submit.prevent="listAction"패턴@change="listAction" - 모듈 경계: 만 import
_common
- 必须使用
<script setup> - 优先使用NuxtUI组件,禁止AI Slop
- 强制规则:、
listAction、resetAction、watch逻辑listMovePage - 必须遵循、
@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 devUI组件生成完成。
📁 **生成的文件**:
- 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"
패턴별 참조 매핑
模式对应参考文件
| 선택 패턴 | 읽어야 할 파일 |
|---|---|
| crud | basic/page-pattern.md + basic/modal-pattern.md |
| page | basic/page-pattern.md |
| two-depth | basic/two-depth-pattern.md |
| infinite-scroll | basic/infinite-scroll-pattern.md |
| select-list | basic/select-list-pattern.md |
| batch-process | basic/batch-process-pattern.md |
| adv-search | advanced/adv-search-pattern.md |
| calendar | advanced/calendar-pattern.md |
| kanban | advanced/kanban-pattern.md |
| mega-form | advanced/mega-form-pattern.md |
| tab-list | advanced/tab-list-pattern.md |
| 选择的模式 | 需要读取的文件 |
|---|---|
| crud | basic/page-pattern.md + basic/modal-pattern.md |
| page | basic/page-pattern.md |
| two-depth | basic/two-depth-pattern.md |
| infinite-scroll | basic/infinite-scroll-pattern.md |
| select-list | basic/select-list-pattern.md |
| batch-process | basic/batch-process-pattern.md |
| adv-search | advanced/adv-search-pattern.md |
| calendar | advanced/calendar-pattern.md |
| kanban | advanced/kanban-pattern.md |
| mega-form | advanced/mega-form-pattern.md |
| tab-list | advanced/tab-list-pattern.md |
옵션별 추가 참조
选项对应额外参考文件
| 옵션 | 읽어야 할 파일 |
|---|---|
| excel=Y | options/excel-pattern.md |
| file=Y | options/file-upload-pattern.md |
| validator 필요 | options/validator-pattern.md |
| 选项 | 需要读取的文件 |
|---|---|
| excel=Y | options/excel-pattern.md |
| file=Y | options/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 |
| 场景 | 需要读取的文件 |
|---|---|
| 无Store | core/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范围内根据业务特性适配