peach-team-ui-proto
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePeach Team UI Proto
Peach Team UI Proto
ui-proto 화면을 만들고 검증하는 기획 구체화 산출물 스킬.
이 스킬의 핵심은 팀 자동화가 아니라, 사람의 의도를 화면/액션/상태로 구체화해 현업이 실제 프로그램처럼 검토할 수 있는 산출물을 만드는 것이다.
这是一款用于创建和验证ui-proto页面的策划具体化成果Skill。
本Skill的核心并非团队自动化,而是将人的意图转化为页面/操作/状态,生成可供业务人员像使用实际程序一样进行审核的成果。
핵심 원칙
核心原则
- Backend 없음: 모든 API는 Mock interceptor 경유 (useApi() 호출 유지)
- 생성 방식: test-data 가이드 코드를 기준 골격으로 참조 후 Mock 특화 적응
- 컴포넌트 사용: 케밥케이스 사용 (예: ,
<u-button>,<u-modal>)<my-component> - 완료 기준: vue-tsc + lint + build 모두 통과
- 프로덕션 전환 대비: API 시그니처 유지, Mock 교체만으로 실서버 연동 가능
- 저장소 분리 (2026-04-27 결정): 본 프로젝트가 아닌 별도 ui-proto 저장소의 에 누적
src/modules-task/{년월}/{태스크폴더}/ - Spec 원천 자료: Vue 화면 + Mock 데이터 + overview 설명 페이지가 후속 의 입력이 됨
peach-gen-spec - 1차 완성도 지원: 화면 목록, 주요 액션, 완료/오류 상태를 남겨 이 확정 Spec을 만들 수 있게 함
peach-gen-spec - 기획 구체화 우선: Spec 없이 기획자가 직접 구체화하는 경우에는 단독/대화형 흐름을 우선하고, AI 팀이 임의로 요구를 증폭하지 않는다
- 无Backend:所有API请求均通过Mock拦截器处理(保留useApi()调用)
- 生成方式:以test-data指导代码为基础框架,适配Mock特性进行调整
- 组件使用:采用短横线命名法(例如:,
<u-button>,<u-modal>)<my-component> - 完成标准:vue-tsc + lint + build全部通过
- 生产环境转换准备:保持API签名一致,仅替换Mock即可实现与真实服务器的联动
- 仓库分离(2026-04-27决定):不存于本项目,而是累积在独立ui-proto仓库的路径下
src/modules-task/{年月}/{任务文件夹}/ - Spec原始资料:Vue页面 + Mock数据 + overview说明页面将作为后续的输入
peach-gen-spec - 一级完成度支持:保留页面列表、主要操作、完成/错误状态,使能够生成确定的Spec
peach-gen-spec - 优先策划具体化:无Spec时由策划人员直接具体化的场景,优先采用独立/对话式流程,AI团队不得随意扩大需求范围
역할 경계
职责边界
| 스킬 | 책임 |
|---|---|
| Mock 기반 기획 검토용 화면 + 태스크 메타 + overview + 화면/액션/상태 생성·검증 |
| 준비된 DB/Spec/ui-proto 기준 본 프로젝트 코드 구현 |
| 본 개발 완료 후 실제 브라우저 흐름과 기획 부합 검증 |
| 실제 API/Store 기반 UI 단독 생성 |
ui-proto는 본 개발 코드가 아니다. 프로덕션 코드 수정, 실제 API 연동, E2E 최종 판정, 완전한 E2E 시나리오 설계는 이 스킬에서 처리하지 않는다.
| Skill | 职责 |
|---|---|
| 基于Mock的策划审核用页面 + 任务元数据 + overview + 页面/操作/状态的生成与验证 |
| 根据准备好的DB/Spec/ui-proto实现本项目代码 |
| 开发完成后验证实际浏览器流程与策划要求的一致性 |
| 基于真实API/Store独立生成UI |
ui-proto并非正式开发代码。本Skill不负责处理生产代码修改、实际API联动、E2E最终判定、完整E2E场景设计等工作。
ui-proto 저장소 구조
ui-proto仓库结构
이 스킬은 별도 ui-proto 저장소에서 실행한다 (예: ).
본 프로젝트가 아닌 시점이면 사용자에게 저장소 위치를 확인한다.
peach-ui-proto-backofficepeach-ui-proto-{도메인}/ ← 별도 저장소
└── src/modules-task/
└── {년월}/ 예: 2604
└── {년월일-이니셜-태스크명}/ 예: 260427-{이니셜}-goods
├── _task-meta.ts 메타 (날짜/담당자/제목/modules)
├── _routes.ts overview + 서브모듈 라우트
├── layout/
│ ├── task-layout.vue 서브모듈용 (배너+사이드바)
│ └── task-overview-layout.vue 기획서용 (배너+전체)
├── overview/pages/overview.vue 기획서 화면
└── {서브모듈}/ 실제 UI 화면
├── pages/
├── store/
└── type/새 태스크 생성 시 기존 태스크 폴더(예: )를 통째로 복사 후 메타·라우트·서브모듈명만 수정하는 게 빠르다. 상세는 ui-proto 저장소의 참조.
2603/260320-{이니셜}-board/AGENTS.md本Skill在独立ui-proto仓库中执行(例如:)。
若当前不在目标项目中,需向用户确认仓库位置。
peach-ui-proto-backofficepeach-ui-proto-{域名}/ ← 独立仓库
└── src/modules-task/
└── {年月}/ 示例: 2604
└── {年月日-缩写-任务名}/ 示例: 260427-{缩写}-goods
├── _task-meta.ts 元数据(日期/负责人/标题/模块)
├── _routes.ts overview + 子模块路由
├── layout/
│ ├── task-layout.vue 子模块专用(横幅+侧边栏)
│ └── task-overview-layout.vue 策划书专用(横幅+整体布局)
├── overview/pages/overview.vue 策划书页面
└── {子模块}/ 实际UI页面
├── pages/
├── store/
└── type/创建新任务时,直接复制现有任务文件夹(例如:),仅修改元数据、路由和子模块名称会更高效。详情请参考ui-proto仓库的。
2603/260320-{缩写}-board/AGENTS.md조건부 팀화 (2026-04-27 결정, 2026-05-04 방향 보강)
条件式团队协作(2026-04-27决定,2026-05-04补充方向)
이 스킬은 요청 복잡도에 따라 팀 모드/단독 모드로 자동 분기한다. 단, 팀 모드의 목적은 자율 개발이 아니라 후속 개발/검증 기준의 품질을 높이는 것이다.
本Skill会根据请求复杂度自动切换团队模式/独立模式。但团队模式的目的并非自主开发,而是提升后续开发/验证标准的质量。
모드 결정 트리
模式判定流程
화면/흐름 요구가 충분히 주어짐?
│
├─ Yes + 복잡 화면 → 자동 팀 모드
│ (proto-ui-dev + proto-ui-qa)
│ 목적: 화면/액션/상태/overview 품질 보강
│ 랄프루프: 5회(단순) / 10회(복잡)
│
├─ Yes + 단순 화면 → 단독 모드
│ 기획자가 직접 빠르게 구체화하는 경우
│ 랄프루프: 5회 (단독 검증만)
│
└─ No → 요구사항 구체화 요청
team=Y만 있고 화면/흐름 요구가 없으면 진행하지 않음team=Yteam=N页面/流程需求是否明确给出?
│
├─ 是 + 复杂页面 → 自动进入团队模式
│ (proto-ui-dev + proto-ui-qa)
│ 目的:提升页面/操作/状态/overview的质量
│ 循环次数:5次(简单场景)/10次(复杂场景)
│
├─ 是 + 简单页面 → 独立模式
│ 适用于策划人员直接快速具体化场景
│ 循环次数:5次(仅独立验证)
│
└─ 否 → 请求补充需求细节
仅指定team=Y但无页面/流程需求时,不执行操作可通过强制进入团队模式,但必须提供页面/流程需求;也可通过参数强制启用独立模式。
team=Yteam=N팀 모드 (복잡 화면/흐름 요구 입력 시)
团队模式(输入复杂页面/流程需求时)
입력 형태
输入格式
bash
/peach-team-ui-proto [모듈명] "화면/흐름 요구사항" [옵션]
/peach-team-ui-proto [모듈명] req=<요구사항 파일 경로> [옵션]
/peach-team-ui-proto [모듈명] spec=<Spec 파일 경로> [옵션]spec=peach-gen-specbash
/peach-team-ui-proto [模块名] "页面/流程需求" [选项]
/peach-team-ui-proto [模块名] req=<需求文件路径> [选项]
/peach-team-ui-proto [模块名] spec=<Spec文件路径> [选项]spec=peach-gen-spec팀 구성
团队组成
| 역할 | 책임 |
|---|---|
| proto-ui-dev | 화면/흐름 요구 기반 화면 구현 (modules-task 폴더 생성) |
| proto-ui-qa | 시각/UX 검증 + 후속 gen-spec 입력 적합성 검증 (독립 worktree, 읽기전용) |
| 角色 | 职责 |
|---|---|
| proto-ui-dev | 根据页面/流程需求实现页面(创建modules-task文件夹) |
| proto-ui-qa | 视觉/UX验证 + 验证是否适合作为后续gen-spec的输入(独立工作树,只读) |
proto-ui-qa 검증 항목
proto-ui-qa验证项
- 사용자의 화면/흐름 요구가 모두 반영되었는가
- NuxtUI v4 컴포넌트 사용 규칙 준수 여부
- 본 프로젝트()의 컴포넌트 패턴과 일치 여부
peach-{도메인} - AI Slop 패턴(그라데이션, 보라색 등) 회피 여부
- modules-task 폴더 구조 규칙 준수 (,
_task-meta.ts, layout 분리 등)_routes.ts - 라우트 통합 규칙 준수 (의 taskDetailRoutes에 추가)
_task.routes.ts - DESIGN.md가 있을 경우 디자인 시스템 규칙(색상, 컴포넌트 네이밍, 타이포그래피) 준수 여부
- 화면 목록과 주요 기능이 overview에서 설명되어 있는가
- 주요 액션(검색/저장/승인/반려/업로드/다운로드 등)의 완료 상태와 오류 상태가 화면에 표현되어 있는가
- 후속 이 E2E 시나리오 후보를 정리할 수 있도록 화면 전환 흐름의 단서가 충분한가
peach-gen-spec - 후속 이 개발용 Spec을 만들 수 있도록 화면/Store/API 기대가 충분히 드러나는가
peach-gen-spec
- 是否完整反映用户的页面/流程需求
- 是否遵守NuxtUI v4组件使用规则
- 是否与本项目()的组件模式一致
peach-{域名} - 是否避免AI Slop模式(渐变、紫色调等)
- 是否遵守modules-task文件夹结构规则(、
_task-meta.ts、布局分离等)_routes.ts - 是否遵守路由整合规则(添加至的taskDetailRoutes)
_task.routes.ts - 若存在DESIGN.md,是否遵守设计系统规则(颜色、组件命名、排版)
- overview中是否说明页面列表和主要功能
- 主要操作(搜索/保存/审批/驳回/上传/下载等)的完成状态和错误状态是否在页面上体现
- 是否有足够的页面跳转线索,使后续能够整理E2E场景候选
peach-gen-spec - 是否充分体现页面/Store/API预期,使后续能够生成开发用Spec
peach-gen-spec
랄프루프 5/10 판단 기준
循环次数5/10判定标准
| 모드 | 최대 반복 |
|---|---|
| 단순 화면 (목록만, 단일 모달) | 5회 |
| 복잡 화면 (멀티탭, 다중 모달, 차트, 다단계 폼) | 10회 |
상한 도달 시 사용자에게 보고하고 중단.
| 模式 | 最大循环次数 |
|---|---|
| 简单页面(仅列表、单模态框) | 5次 |
| 复杂页面(多标签、多模态框、图表、多步骤表单) | 10次 |
达到上限时,向用户报告并终止操作。
단독 모드 (단순 화면 또는 team=N)
独立模式(简单页面或指定team=N)
기획자가 직접 구체화하는 경우. 자체 검증만 수행 (별도 QA 에이전트 없음).
랄프루프 5회 (vue-tsc + lint + build 통과 시도).
适用于策划人员直接具体化的场景,仅执行自主验证(无独立QA Agent)。
循环次数为5次(尝试通过vue-tsc + lint + build)。
모듈명/태스크 폴더명 자동 생성
模块名/任务文件夹名自动生成
요구사항 문서 또는 자연어 입력이 주어졌을 때:
- 요구사항 본문과 사용자 입력에서 ,
planner,date후보를 추출title - 태스크 폴더명: 형식 (한글 금지)
{YYMMDD}-{planner}-{영문슬러그} - 확정된 메타로 를 생성한다. 이후
_task-meta.ts는 이 메타와 화면 파일을 읽어 개발용 Spec을 생성한다peach-gen-spec proto=<경로> - 사용자에게 자동 추출 결과 보여주고 확정 받기
자연어 입력으로 들어온 경우:
- AI가 1~3개 후보 제안 → 사용자 선택
当提供需求文档或自然语言输入时:
- 从需求正文和用户输入中提取、
planner、date候选title - 任务文件夹名格式:(禁止使用韩文)
{YYMMDD}-{planner}-{英文slug} - 根据确定的元数据生成。后续
_task-meta.ts将读取该元数据和页面文件生成开发用Specpeach-gen-spec proto=<路径> - 向用户展示自动提取结果并确认
若为自然语言输入:
- AI提供1~3个候选选项 → 由用户选择
프로토타입 특성
原型特性
- Backend 없이 Mock interceptor로 호출을 처리한다.
useApi() - Mock 데이터는 에 분리하고, 실제 API 전환 시 시그니처를 유지한다.
mock/ - 시각 품질과 AI Slop 방지 상세는 를 따른다. 공유 UI 패턴은
peach-gen-ui/references/core/visual-guide.md가 SoT다.peach-gen-ui
- 无需Backend,通过Mock拦截器处理调用。
useApi() - Mock数据存于目录,切换至真实API时保持签名一致。
mock/ - 视觉质量和AI Slop规避细节遵循。共享UI模式以
peach-gen-ui/references/core/visual-guide.md为单一可信源(SoT)。peach-gen-ui
1차 완성도 산출물
一级完成度成果
overview와 화면 파일에는 다음 정보가 드러나야 한다. 이 정보는 완전한 E2E 시나리오가 아니라 이 개발용 Spec을 만들기 위한 화면/액션/상태 기준이다.
peach-gen-specmarkdown
undefinedoverview和页面文件需包含以下信息。这些信息并非完整的E2E场景,而是生成开发用Spec所需的页面/操作/状态基准。
peach-gen-specmarkdown
undefinedUI Proto 검증 매핑
UI Proto验证映射
화면 목록
页面列表
| 화면 | 경로 | 목적 |
|---|
| 页面 | 路径 | 目的 |
|---|
주요 액션
主要操作
| 액션 | 시작 화면 | 결과 화면/상태 |
|---|
| 操作 | 起始页面 | 结果页面/状态 |
|---|
완료/오류 상태
完成/错误状态
| 상태 | 표시 위치 | 메시지/피드백 |
|---|
| 状态 | 显示位置 | 消息/反馈 |
|---|
결정 필요 항목
需要决策的事项
| 항목 | 모호한 이유 | 후속 처리 |
|---|
작성 규칙:
- Mock 데이터 한계로 실제 데이터 정확성을 검증할 수 없는 항목은 결정 필요 항목으로 남긴다.
- 권한/상태/오류 규칙이 화면만으로 확정되지 않으면 `peach-gen-spec`에서 사용자 확인할 수 있도록 기록한다.
- 시나리오의 세부 셀렉터, fixture, suite 조합은 `peach-team-e2e` 책임으로 남긴다.
---| 事项 | 模糊原因 | 后续处理 |
|---|
编写规则:
- 因Mock数据限制无法验证实际数据准确性的事项,列为需要决策的事项。
- 若权限/状态/错误规则无法仅通过页面确定,需记录下来以便`peach-gen-spec`向用户确认。
- 场景的详细选择器、fixture、suite组合由`peach-team-e2e`负责处理。
---절대 필수 패턴 (모든 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 | | 각 컴포넌트 |
상세 코드와 금지 패턴:참조 (필수, 공유 SoT)peach-gen-ui/references/core/common-patterns.md
| # | 模式 | 应用位置 |
|---|---|---|
| 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 | | 各组件 |
详细代码与禁用模式: 请参考(必需,共享单一可信源)peach-gen-ui/references/core/common-patterns.md
입력 방식
输入方式
/peach-team-ui-proto [모듈명] [옵션]/peach-team-ui-proto [模块名] [选项]옵션
选项
| 옵션 | 기본값 | 설명 |
|---|---|---|
| excel | N | 엑셀 다운로드/업로드 기능 (Mock) |
| file | N | 파일 업로드 기능 (Mock) |
| req | (없음) | 화면/흐름 요구사항 파일 경로. 복잡하면 팀 모드 자동 진입 |
| spec | (없음) | 이미 작성된 Spec 또는 요구사항 문서 경로. 복잡하면 팀 모드 자동 진입 |
| team | (자동) | |
| 选项 | 默认值 | 说明 |
|---|---|---|
| excel | N | Excel下载/上传功能(Mock) |
| file | N | 文件上传功能(Mock) |
| req | (无) | 页面/流程需求文件路径。若需求复杂,将自动进入团队模式 |
| spec | (无) | 已编写的Spec或需求文档路径。若需求复杂,将自动进入团队模式 |
| team | (自动) | |
예시
示例
undefinedundefined단독 모드 (기획자 직접 작업)
独立模式(策划人员直接操作)
/peach-team-ui-proto notice-board
/peach-team-ui-proto member-manage excel=Y
/peach-team-ui-proto product file=Y excel=Y
/peach-team-ui-proto notice-board
/peach-team-ui-proto member-manage excel=Y
/peach-team-ui-proto product file=Y excel=Y
복잡 화면 팀 모드
复杂页面团队模式
/peach-team-ui-proto product team=Y "상품 목록, 검색, 등록, 수정, 삭제, 엑셀 다운로드, 상태별 승인 흐름이 필요함"
/peach-team-ui-proto product req=docs/prd/product.md
/peach-team-ui-proto product team=Y "需要商品列表、搜索、新增、修改、删除、Excel下载、按状态审批流程"
/peach-team-ui-proto product req=docs/prd/product.md
팀 모드 강제 비활성화
强制禁用团队模式
/peach-team-ui-proto product team=N
> UI 패턴은 실행 후 대화형으로 선택 (1단계)
> 복잡 화면은 요청 분석 후 자동으로 proto-ui-dev + proto-ui-qa 팀 모드로 전환한다.
---/peach-team-ui-proto product team=N
> UI模式在执行后通过对话方式选择(第1步)
> 复杂页面将在需求分析后自动切换至proto-ui-dev + proto-ui-qa团队模式。
---워크플로우
工作流程
Step 0. 디자인 시스템 확인
Step 0. 设计系统确认
bash
cat DESIGN.md 2>/dev/null | head -200- 있으면: 컴포넌트 규칙·색상·타이포그래피를 컨텍스트에 주입하여 이후 단계에 반영
- 없으면: 아래 경고 출력 후 계속 진행
⚠️ DESIGN.md 없음 — 디자인 시스템 문서가 없습니다. 작성을 권장합니다.
참고: peach-harness/templates/DESIGN-template.md (또는 /peach-gen-design)bash
cat DESIGN.md 2>/dev/null | head -200- 若存在: 将组件规则、颜色、排版注入上下文,在后续步骤中应用
- 若不存在: 输出以下警告后继续执行
⚠️ 无DESIGN.md — 缺少设计系统文档。建议创建。
参考: peach-harness/templates/DESIGN-template.md(或/peach-gen-design)1단계: UI 패턴 필수 선택
第1步:必需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 | 엑셀 다운로드/업로드 (Mock 로컬 생성) |
| file | 파일 업로드 (Mock UUID 반환) |
| 选项 | 说明 |
|---|---|
| excel | Excel下载/上传(Mock本地生成) |
| file | 文件上传(Mock返回UUID) |
고급 UI 패턴 (MCP 활용, test-data 없음)
高级UI模式(使用MCP,无test-data)
| 패턴 | 설명 |
|---|---|
| adv-search | 복합 검색 (5개 이상 조건) |
| calendar | 달력 UI |
| kanban | 칸반 보드 |
| mega-form | 대량 입력 폼 (50개+) |
| tab-list | 탭 내 리스트 |
선택해주세요 (예: crud, excel=Y)
**가이드 코드 경로**:
- crud: `src/modules/test-data/pages/crud/`가 있으면 우선 참조
- 기타 패턴: `src/modules/test-data/pages/[패턴명]/` 또는 가장 가까운 기존 `src/modules-task/{년월}/{태스크폴더}/`
---| 模式 | 说明 |
|---|---|
| adv-search | 复合搜索(5个以上条件) |
| calendar | 日历UI |
| kanban | 看板 |
| mega-form | 大量输入表单(50项以上) |
| tab-list | 标签页内列表 |
请选择(示例:crud, excel=Y)
**指导代码路径**:
- crud: 若存在`src/modules/test-data/pages/crud/`则优先参考
- 其他模式: `src/modules/test-data/pages/[模式名]/`或最接近的现有`src/modules-task/{年月}/{任务文件夹}/`
---2단계: test-data 가이드 코드 확인 + ui-proto 저장소 감지
第2步:test-data指导代码确认 + ui-proto仓库检测
bash
undefinedbash
undefinedtest-data 모듈 존재 여부 확인
检测test-data模块是否存在
ls src/modules/test-data/ 2>/dev/null
ls src/modules/test-data/ 2>/dev/null
_common 래퍼 컴포넌트 존재 여부 확인
检测_common包装组件是否存在
ls src/modules/_common/components/ 2>/dev/null
ls src/modules/_common/components/ 2>/dev/null
빌드 도구 감지
检测构建工具
ls package.json && head -20 package.json
ls bun.lockb 2>/dev/null && echo "BUILD_TOOL=bun"
ls package.json && head -20 package.json
ls bun.lockb 2>/dev/null && echo "BUILD_TOOL=bun"
공유 UI 패턴 references 경로 감지 (SoT: peach-gen-ui)
检测共享UI模式参考路径(单一可信源: peach-gen-ui)
SHARED_UI_REFS=$(find ~/.claude ~/.agents ~/.codex "${CODEX_HOME:-$HOME/.codex}/skills" -path "*/peach-gen-ui/references" -type d 2>/dev/null | head -1)
SHARED_UI_REFS=$(find ~/.claude ~/.agents ~/.codex "${CODEX_HOME:-$HOME/.codex}/skills" -path "*/peach-gen-ui/references" -type d 2>/dev/null | head -1)
proto 자체 references 경로 (Mock 특화 패턴)
proto专属参考路径(Mock特化模式)
PROTO_REFS=$(find ~/.claude ~/.agents ~/.codex "${CODEX_HOME:-$HOME/.codex}/skills" -path "*/peach-team-ui-proto/references" -type d 2>/dev/null | head -1)
- **test-data 있음** → 가이드 코드 기반으로 생성
- **test-data 없음** → references 문서 기반으로 생성
- **SHARED_UI_REFS 없음** → 공유 UI 패턴 SoT가 없으므로 사용자에게 보고하고 중단
- **PROTO_REFS 없음** → proto 고유 Mock 패턴을 읽을 수 없으므로 사용자에게 보고하고 중단PROTO_REFS=$(find ~/.claude ~/.agents ~/.codex "${CODEX_HOME:-$HOME/.codex}/skills" -path "*/peach-team-ui-proto/references" -type d 2>/dev/null | head -1)
- **存在test-data** → 基于指导代码生成
- **无test-data** → 基于参考文档生成
- **无SHARED_UI_REFS** → 缺少共享UI模式单一可信源,向用户报告并终止
- **无PROTO_REFS** → 无法读取proto专属Mock模式,向用户报告并终止공유/고유 패턴 분리
共享/专属模式分离
peach-team-ui-protopeach-gen-ui/references| 구분 | 위치 | 내용 |
|---|---|---|
| 공유 UI SoT | | common-patterns, ui-patterns, visual-guide, Store/Type 골격, basic/advanced UI 패턴, validator |
| proto 고유 | | mock-service, mock-store, Mock excel/file 옵션, completion/validation, proto team agent |
팀 모드에서는 와 작업 지시에 , 값을 함께 전달한다.
proto-ui-devproto-ui-qaSHARED_UI_REFSPROTO_REFSpeach-team-ui-protopeach-gen-ui/references| 分类 | 位置 | 内容 |
|---|---|---|
| 共享UI单一可信源 | | common-patterns、ui-patterns、visual-guide、Store/Type框架、基础/高级UI模式、验证器 |
| proto专属 | | mock-service、mock-store、Mock excel/file选项、完成/验证规则、proto团队Agent |
团队模式下,向和下达任务时需同时传递和值。
proto-ui-devproto-ui-qaSHARED_UI_REFSPROTO_REFS빌드 도구 기준
构建工具基准
| 파일 존재 | 빌드 도구 | 검증 명령어 |
|---|---|---|
| bun | |
| 文件存在情况 | 构建工具 | 验证命令 |
|---|---|---|
| bun | |
_common 래퍼 우선 사용 (조건부)
优先使用_common包装组件(条件式)
대상 프로젝트에디렉토리가 존재하면 NuxtUI 직접 사용 대신 래퍼 컴포넌트를 우선 사용합니다._common/components/
| NuxtUI | _common 래퍼 (있는 경우 우선) |
|---|---|
| |
| |
| |
| |
- 없으면 → NuxtUI 직접 사용 (기존 방식 유지)
_common/components/
若目标项目存在目录,则优先使用包装组件而非直接使用NuxtUI。_common/components/
| NuxtUI | _common包装组件(存在则优先) |
|---|---|
| |
| |
| |
| |
- 若无→ 直接使用NuxtUI(保持原有方式)
_common/components/
2.5단계: 도메인 분석 (Analyze)
第2.5步:领域分析(Analyze)
test-data UI와 요청된 도메인을 비교 분석합니다:
- UI 복잡도 판단: 필드 수, 검색 조건, 테이블 컬럼 구성
- Mock 데이터 설계: 도메인에 맞는 현실적인 샘플 데이터 구상
- 적응 결정:
- Must Follow → 그대로 (script setup, 필수 패턴, AI Slop 금지)
- May Adapt → 도메인 맞춤 (테이블 컬럼, 검색 폼, 모달 폼 구성)
- 구조 제안 (May Suggest):
분석 결과 가이드코드와 다른 구조가 더 적합하면 사용자에게 제안:
- 컴포넌트 분리 (예: 복잡한 폼을 step별 컴포넌트로)
- 페이지 구성 변경 (예: 탭 내 리스트, 상세 페이지 분리)
- 사용자 확인 후 적용. Must Follow 침범 금지.
对比分析test-data UI与请求的领域:
- UI复杂度判定:字段数量、搜索条件、表格列配置
- Mock数据设计:构思符合领域的真实样例数据
- 适配决策:
- Must Follow → 完全遵循(script setup、必需模式、禁止AI Slop)
- May Adapt → 适配领域(表格列、搜索表单、模态框表单配置)
- 结构建议(May Suggest):
若分析结果显示更适合采用与指导代码不同的结构,向用户提出建议:
- 组件拆分(例如:将复杂表单拆分为分步组件)
- 页面结构变更(例如:标签页内列表、详情页分离)
- 经用户确认后应用。禁止违反Must Follow规则。
3단계: Mock 서비스 + Store + 코드 생성
第3步:Mock服务 + Store + 代码生成
선택된 패턴의 가이드 코드를 기준 골격으로 참조 후 도메인에 맞게 적응:
以所选模式的指导代码为基础框架,适配领域特性:
3-1. Mock 데이터 생성 (필수)
3-1. Mock数据生成(必需)
${PROTO_REFS}/core/mock-service-pattern.mdmock/[모듈명].mock.ts 생성:
- 도메인 맞춤 샘플 데이터 (5~10건)
- 동적 데이터 생성 함수
- API 시그니처 유지 (프로덕션 전환 대비)参考****
${PROTO_REFS}/core/mock-service-pattern.md生成mock/[模块名].mock.ts:
- 符合领域的样例数据(5~10条)
- 动态数据生成函数
- 保持API签名一致(为生产环境转换做准备)3-2. Store 생성 (Mock useApi() 경유)
3-2. Store生成(通过Mock useApi())
${PROTO_REFS}/core/mock-store-pattern.mdstore/[모듈명].store.ts 생성:
- useApi() 경유 패턴 유지
- Mock interceptor가 요청을 가로채서 Mock 데이터 반환
- 프로덕션 전환 시 interceptor만 제거하면 됨参考****
${PROTO_REFS}/core/mock-store-pattern.md生成store/[模块名].store.ts:
- 保留useApi()调用模式
- Mock拦截器捕获请求并返回Mock数据
- 生产环境转换时仅需移除拦截器即可3-3. 페이지 생성
3-3. 页面生成
| 패턴 | 가이드 코드 경로 | 참조 문서 (peach-gen-ui SoT) |
|---|---|---|
| crud | | |
| page | | |
| two-depth | | |
| infinite-scroll | | |
| select-list | | |
| batch-process | | |
필수 표준 패턴: 참조
${SHARED_UI_REFS}/core/common-patterns.md- Selectbox 패턴 (전체 옵션 value='')
- Router 동기화 패턴 (listAction, resetAction, watch)
- Date 검색 패턴 (초기값: 5년 전 ~ 오늘)
| 模式 | 指导代码路径 | 参考文档(peach-gen-ui单一可信源) |
|---|---|---|
| crud | | |
| page | | |
| two-depth | | |
| infinite-scroll | | |
| select-list | | |
| batch-process | | |
必需标准模式: 参考
${SHARED_UI_REFS}/core/common-patterns.md- 选择框模式(全选项value='')
- 路由同步模式(listAction、resetAction、watch)
- 日期搜索模式(初始值:5年前 ~ 今天)
4단계: 검증 & 완료
第4步:验证 & 完成
bash
undefinedbash
undefinedui-proto 저장소 루트 기준
以ui-proto仓库根目录为基准
bunx vue-tsc --noEmit # 타입 체크
bun run lint:fix # 린트
bun run build # 빌드
> 에러 발생 시: 원인 분석 → 코드 수정 → 다시 검증 → 통과할 때까지 반복
---bunx vue-tsc --noEmit # 类型检查
bun run lint:fix # 代码格式化
bun run build # 构建
> 若出现错误:分析原因 → 修改代码 → 重新验证 → 直至通过
---생성 파일 구조
生成文件结构
src/modules-task/{년월}/{태스크폴더}/_task-meta.ts_routes.tslayout/overview/{서브모듈}/pages{서브모듈}/store{서브모듈}/type{서브모듈}/modalspeach-gen-spec proto=<경로>在下生成、、、、、、、。后续需传入该任务文件夹路径。
src/modules-task/{年月}/{任务文件夹}/_task-meta.ts_routes.tslayout/overview/{子模块}/pages{子模块}/store{子模块}/type{子模块}/modalspeach-gen-spec proto=<路径>Bounded Autonomy (자율 적응 규칙)
Bounded Autonomy(自主适配规则)
Must Follow (절대 준수)
Must Follow(绝对遵守)
- 필수
<script setup> - NuxtUI 컴포넌트 우선, AI Slop 금지
- 필수 패턴: ,
listAction,resetAction, watch 패턴listMovePage - ,
@submit.prevent="listAction"패턴@change="listAction" - 모듈 경계: 만 import
_common - Mock 데이터는 디렉토리에 분리
mock/ - useApi() 경유 패턴 유지 (프로덕션 전환 대비)
- 必须使用
<script setup> - 优先使用NuxtUI组件,禁止AI Slop
- 必需模式:、
listAction、resetAction、watch模式listMovePage - 、
@submit.prevent="listAction"模式@change="listAction" - 模块边界:仅import
_common - Mock数据存于目录
mock/ - 保留useApi()调用模式(为生产环境转换做准备)
May Adapt (분석 후 보완)
May Adapt(分析后补充)
- 테이블 컬럼 구성 (도메인 필드에 맞춤)
- 검색 폼 구성 (필드 수에 따른 레이아웃)
- 모달/페이지 폼 구성 (입력 필드 그룹핑)
- Mock 데이터 구성 (도메인 특수 샘플)
- UI 상호작용 흐름 (도메인 특수 UX)
- 表格列配置(适配领域字段)
- 搜索表单配置(根据字段数量调整布局)
- 模态框/页面表单配置(输入字段分组)
- Mock数据配置(领域专属样例)
- UI交互流程(领域专属UX)
May Suggest (제안 후 사용자 확인)
May Suggest(建议后需用户确认)
- 컴포넌트 분리 (예: 복잡한 폼을 step별 컴포넌트로)
- 페이지 구성 변경 (예: 탭 내 리스트, 상세 페이지 분리)
- UI 패턴 변경 제안 (예: crud → page가 더 적합)
Suggest 시: 이유를 사용자에게 제시하고 확인 후 적용. Must Follow 침범 금지.
- 组件拆分(例如:将复杂表单拆分为分步组件)
- 页面结构变更(例如:标签页内列表、详情页分离)
- UI模式变更建议(例如:crud → page更合适)
提出建议时:需向用户说明理由,确认后再应用。禁止违反Must Follow规则。
Adapt 조건
Adapt条件
보완 시 반드시: (1) 이유 설명 (2) Must Follow 미침범 (3) vue-tsc + lint + build 통과
补充时必须满足:(1) 说明理由 (2) 不违反Must Follow (3) 通过vue-tsc + lint + build
완료 조건
完成条件
- UI 패턴 선택 완료
- Mock 데이터, Store, 페이지/모달 컴포넌트 생성 완료
- ,
vue-tsc,lint통과build - 팀 모드는 APPROVED 또는 사용자 승인된 CONDITIONAL 필요
proto-ui-qa
빌드 성공 없이 완료 선언 금지.
- 已完成UI模式选择
- 已完成Mock数据、Store、页面/模态框组件生成
- 通过、
vue-tsc、lint验证build - 团队模式需获得的APPROVED或用户认可的CONDITIONAL
proto-ui-qa
禁止在构建未成功时声明完成。
완료 후 안내
完成后通知
생성/수정 파일, 결과, 브라우저 확인 경로, 프로덕션 전환 시 Mock 제거 범위를 보고한다.
vue-tsc/lint/build向用户报告生成/修改的文件、结果、浏览器访问路径、生产环境转换时需移除的Mock范围。
vue-tsc/lint/build조건부 참조 가이드 (토큰 절약)
条件式参考指南(节省Token)
중요: 선택된 패턴의 참조 파일만 읽으세요! 모든 references를 한 번에 로드하지 마세요.
重要: 仅读取所选模式的参考文件! 请勿一次性加载所有参考文件。
필수 참조 (반드시 읽기 - 생략 금지!)
必需参考(必须读取 - 禁止省略!)
경고: 아래 파일은 어떤 패턴을 선택하든 반드시 먼저 읽어야 합니다! 이 파일을 읽지 않으면 검색, 페이징, URL 상태관리 패턴이 누락됩니다.
- - URL Watch 패턴, Selectbox, Router 동기화, Date 검색, 모달 오픈 패턴
${SHARED_UI_REFS}/core/common-patterns.md - - Mock 데이터 정의, 동적 생성, API 시그니처 유지
${PROTO_REFS}/core/mock-service-pattern.md - - Mock useApi() 경유 Store 패턴
${PROTO_REFS}/core/mock-store-pattern.md
警告: 无论选择哪种模式,都必须先读取以下文件! 不读取这些文件会导致搜索、分页、URL状态管理模式遗漏。
- - URL Watch模式、选择框、路由同步、日期搜索、模态框打开模式
${SHARED_UI_REFS}/core/common-patterns.md - - Mock数据定义、动态生成、API签名一致性
${PROTO_REFS}/core/mock-service-pattern.md - - 通过Mock useApi()的Store模式
${PROTO_REFS}/core/mock-store-pattern.md
패턴별 참조 매핑
模式对应参考文件
| 선택 패턴 | 읽어야 할 파일 |
|---|---|
| crud | 공유: |
| page | 공유: |
| two-depth | 공유: |
| infinite-scroll | 공유: |
| select-list | 공유: |
| batch-process | 공유: |
| adv-search | 공유: |
| calendar | 공유: |
| kanban | 공유: |
| mega-form | 공유: |
| tab-list | 공유: |
| 所选模式 | 需读取的文件 |
|---|---|
| crud | 共享: |
| page | 共享: |
| two-depth | 共享: |
| infinite-scroll | 共享: |
| select-list | 共享: |
| batch-process | 共享: |
| adv-search | 共享: |
| calendar | 共享: |
| kanban | 共享: |
| mega-form | 共享: |
| tab-list | 共享: |
옵션별 추가 참조
选项对应附加参考
| 옵션 | 읽어야 할 파일 |
|---|---|
| excel=Y | proto 고유: |
| file=Y | proto 고유: |
| validator 필요 | 공유: |
| 选项 | 需读取的文件 |
|---|---|
| excel=Y | proto专属: |
| file=Y | proto专属: |
| 需要验证器 | 共享: |
조건부 참조
条件式参考
| 상황 | 읽어야 할 파일 |
|---|---|
| 로딩 상태 필요 | 공유: |
| 에러 처리 필요 | 공유: |
| 场景 | 需读取的文件 |
|---|---|
| 需要加载状态 | 共享: |
| 需要错误处理 | 共享: |
참조
参考
- 가이드 코드 (우선): 또는 기존
src/modules/test-data/src/modules-task/{년월}/{태스크폴더}/ - Mock 데이터:
src/modules-task/{년월}/{태스크폴더}/{서브모듈}/mock/ - Store:
src/modules-task/{년월}/{태스크폴더}/{서브모듈}/store/
test-data 가이드 코드를 기준 골격으로 참조하되, Mock 특화 + 도메인 특성에 맞게 Bounded Autonomy 범위 내에서 적응
- 指导代码(优先): 或现有
src/modules/test-data/src/modules-task/{年月}/{任务文件夹}/ - Mock数据:
src/modules-task/{年月}/{任务文件夹}/{子模块}/mock/ - Store:
src/modules-task/{年月}/{任务文件夹}/{子模块}/store/
以test-data指导代码为基础框架,在Bounded Autonomy范围内适配Mock特性与领域特性