peach-team-ui-proto

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Peach 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차 완성도 지원: 화면 목록, 주요 액션, 완료/오류 상태를 남겨
    peach-gen-spec
    이 확정 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
    的输入
  • 一级完成度支持:保留页面列表、主要操作、完成/错误状态,使
    peach-gen-spec
    能够生成确定的Spec
  • 优先策划具体化:无Spec时由策划人员直接具体化的场景,优先采用独立/对话式流程,AI团队不得随意扩大需求范围

역할 경계

职责边界

스킬책임
peach-team-ui-proto
Mock 기반 기획 검토용 화면 + 태스크 메타 + overview + 화면/액션/상태 생성·검증
peach-team-dev
준비된 DB/Spec/ui-proto 기준 본 프로젝트 코드 구현
peach-team-e2e
본 개발 완료 후 실제 브라우저 흐름과 기획 부합 검증
peach-gen-ui
실제 API/Store 기반 UI 단독 생성
ui-proto는 본 개발 코드가 아니다. 프로덕션 코드 수정, 실제 API 연동, E2E 최종 판정, 완전한 E2E 시나리오 설계는 이 스킬에서 처리하지 않는다.
Skill职责
peach-team-ui-proto
基于Mock的策划审核用页面 + 任务元数据 + overview + 页面/操作/状态的生成与验证
peach-team-dev
根据准备好的DB/Spec/ui-proto实现本项目代码
peach-team-e2e
开发完成后验证实际浏览器流程与策划要求的一致性
peach-gen-ui
基于真实API/Store独立生成UI
ui-proto并非正式开发代码。本Skill不负责处理生产代码修改、实际API联动、E2E最终判定、完整E2E场景设计等工作。

ui-proto 저장소 구조

ui-proto仓库结构

이 스킬은 별도 ui-proto 저장소에서 실행한다 (예:
peach-ui-proto-backoffice
). 본 프로젝트가 아닌 시점이면 사용자에게 저장소 위치를 확인한다.
peach-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/
새 태스크 생성 시 기존 태스크 폴더(예:
2603/260320-{이니셜}-board/
)를 통째로 복사 후 메타·라우트·서브모듈명만 수정하는 게 빠르다. 상세는 ui-proto 저장소의
AGENTS.md
참조.

本Skill在独立ui-proto仓库中执行(例如:
peach-ui-proto-backoffice
)。 若当前不在目标项目中,需向用户确认仓库位置。
peach-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/
创建新任务时,直接复制现有任务文件夹(例如:
2603/260320-{缩写}-board/
),仅修改元数据、路由和子模块名称会更高效。详情请参考ui-proto仓库的
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=Y
로 팀 모드를 강제할 수 있지만 화면/흐름 요구사항은 반드시 필요하다.
team=N
인자로 단독 모드를 강제할 수 있다.
页面/流程需求是否明确给出?
       ├─ 是 + 复杂页面 → 自动进入团队模式
       │       (proto-ui-dev + proto-ui-qa)
       │       目的:提升页面/操作/状态/overview的质量
       │       循环次数:5次(简单场景)/10次(复杂场景)
       ├─ 是 + 简单页面 → 独立模式
       │       适用于策划人员直接快速具体化场景
       │       循环次数:5次(仅独立验证)
       └─ 否  → 请求补充需求细节
               仅指定team=Y但无页面/流程需求时,不执行操作
可通过
team=Y
强制进入团队模式,但必须提供页面/流程需求;也可通过
team=N
参数强制启用独立模式。

팀 모드 (복잡 화면/흐름 요구 입력 시)

团队模式(输入复杂页面/流程需求时)

입력 형태

输入格式

bash
/peach-team-ui-proto [모듈명] "화면/흐름 요구사항" [옵션]
/peach-team-ui-proto [모듈명] req=<요구사항 파일 경로> [옵션]
/peach-team-ui-proto [모듈명] spec=<Spec 파일 경로> [옵션]
spec=
은 이미 정리된 요구사항 문서가 있을 때 쓰는 선택 입력이다. ui-proto의 표준 책임은 후속
peach-gen-spec
의 입력 산출물을 만드는 것이므로 Spec을 필수로 요구하지 않는다.
bash
/peach-team-ui-proto [模块名] "页面/流程需求" [选项]
/peach-team-ui-proto [模块名] req=<需求文件路径> [选项]
/peach-team-ui-proto [模块名] spec=<Spec文件路径> [选项]
spec=
用于已有整理好的需求文档的场景,为可选输入。ui-proto的标准职责是生成后续
peach-gen-spec
的输入成果,因此不强制要求提供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验证项

  1. 사용자의 화면/흐름 요구가 모두 반영되었는가
  2. NuxtUI v4 컴포넌트 사용 규칙 준수 여부
  3. 본 프로젝트(
    peach-{도메인}
    )의 컴포넌트 패턴과 일치 여부
  4. AI Slop 패턴(그라데이션, 보라색 등) 회피 여부
  5. modules-task 폴더 구조 규칙 준수 (
    _task-meta.ts
    ,
    _routes.ts
    , layout 분리 등)
  6. 라우트 통합 규칙 준수 (
    _task.routes.ts
    의 taskDetailRoutes에 추가)
  7. DESIGN.md가 있을 경우 디자인 시스템 규칙(색상, 컴포넌트 네이밍, 타이포그래피) 준수 여부
  8. 화면 목록과 주요 기능이 overview에서 설명되어 있는가
  9. 주요 액션(검색/저장/승인/반려/업로드/다운로드 등)의 완료 상태와 오류 상태가 화면에 표현되어 있는가
  10. 후속
    peach-gen-spec
    이 E2E 시나리오 후보를 정리할 수 있도록 화면 전환 흐름의 단서가 충분한가
  11. 후속
    peach-gen-spec
    이 개발용 Spec을 만들 수 있도록 화면/Store/API 기대가 충분히 드러나는가
  1. 是否完整反映用户的页面/流程需求
  2. 是否遵守NuxtUI v4组件使用规则
  3. 是否与本项目(
    peach-{域名}
    )的组件模式一致
  4. 是否避免AI Slop模式(渐变、紫色调等)
  5. 是否遵守modules-task文件夹结构规则(
    _task-meta.ts
    _routes.ts
    、布局分离等)
  6. 是否遵守路由整合规则(添加至
    _task.routes.ts
    的taskDetailRoutes)
  7. 若存在DESIGN.md,是否遵守设计系统规则(颜色、组件命名、排版)
  8. overview中是否说明页面列表和主要功能
  9. 主要操作(搜索/保存/审批/驳回/上传/下载等)的完成状态和错误状态是否在页面上体现
  10. 是否有足够的页面跳转线索,使后续
    peach-gen-spec
    能够整理E2E场景候选
  11. 是否充分体现页面/Store/API预期,使后续
    peach-gen-spec
    能够生成开发用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
    를 생성한다. 이후
    peach-gen-spec proto=<경로>
    는 이 메타와 화면 파일을 읽어 개발용 Spec을 생성한다
  • 사용자에게 자동 추출 결과 보여주고 확정 받기
자연어 입력으로 들어온 경우:
  • AI가 1~3개 후보 제안 → 사용자 선택

当提供需求文档或自然语言输入时:
  • 从需求正文和用户输入中提取
    planner
    date
    title
    候选
  • 任务文件夹名格式:
    {YYMMDD}-{planner}-{英文slug}
    (禁止使用韩文)
  • 根据确定的元数据生成
    _task-meta.ts
    。后续
    peach-gen-spec proto=<路径>
    将读取该元数据和页面文件生成开发用Spec
  • 向用户展示自动提取结果并确认
若为自然语言输入:
  • AI提供1~3个候选选项 → 由用户选择

프로토타입 특성

原型特性

  • Backend 없이 Mock interceptor로
    useApi()
    호출을 처리한다.
  • Mock 데이터는
    mock/
    에 분리하고, 실제 API 전환 시 시그니처를 유지한다.
  • 시각 품질과 AI Slop 방지 상세는
    peach-gen-ui/references/core/visual-guide.md
    를 따른다. 공유 UI 패턴은
    peach-gen-ui
    가 SoT다.
  • 无需Backend,通过Mock拦截器处理
    useApi()
    调用。
  • Mock数据存于
    mock/
    目录,切换至真实API时保持签名一致。
  • 视觉质量和AI Slop规避细节遵循
    peach-gen-ui/references/core/visual-guide.md
    。共享UI模式以
    peach-gen-ui
    为单一可信源(SoT)。

1차 완성도 산출물

一级完成度成果

overview와 화면 파일에는 다음 정보가 드러나야 한다. 이 정보는 완전한 E2E 시나리오가 아니라
peach-gen-spec
이 개발용 Spec을 만들기 위한 화면/액션/상태 기준이다.
markdown
undefined
overview和页面文件需包含以下信息。这些信息并非完整的E2E场景,而是
peach-gen-spec
生成开发用Spec所需的页面/操作/状态基准。
markdown
undefined

UI 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
<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()
각 컴포넌트
상세 코드와 금지 패턴:
peach-gen-ui/references/core/common-patterns.md
참조 (필수, 공유 SoT)

#模式应用位置
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()
各组件
详细代码与禁用模式: 请参考
peach-gen-ui/references/core/common-patterns.md
(必需,共享单一可信源)

입력 방식

输入方式

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

옵션

选项

옵션기본값설명
excelN엑셀 다운로드/업로드 기능 (Mock)
fileN파일 업로드 기능 (Mock)
req(없음)화면/흐름 요구사항 파일 경로. 복잡하면 팀 모드 자동 진입
spec(없음)이미 작성된 Spec 또는 요구사항 문서 경로. 복잡하면 팀 모드 자동 진입
team(자동)
team=Y
로 팀 모드 강제,
team=N
으로 팀 모드 강제 비활성화
选项默认值说明
excelNExcel下载/上传功能(Mock)
fileN文件上传功能(Mock)
req(无)页面/流程需求文件路径。若需求复杂,将自动进入团队模式
spec(无)已编写的Spec或需求文档路径。若需求复杂,将自动进入团队模式
team(自动)
team=Y
强制进入团队模式,
team=N
强制禁用团队模式

예시

示例

undefined
undefined

단독 모드 (기획자 직접 작업)

独立模式(策划人员直接操作)

/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模式并获取选择后再执行。 不得在未获取选择的情况下开始生成代码。
必须向策划人员提出以下问题并获取选择:
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엑셀 다운로드/업로드 (Mock 로컬 생성)
file파일 업로드 (Mock UUID 반환)
选项说明
excelExcel下载/上传(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
undefined
bash
undefined

test-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-proto
는 UI 패턴 카탈로그 사본을 보유하지 않는다. 공유 가능한 UI 패턴은
peach-gen-ui/references
를 읽고, proto에만 필요한 Mock 차이점만 자체 references에 둔다.
구분위치내용
공유 UI SoT
${SHARED_UI_REFS}
common-patterns, ui-patterns, visual-guide, Store/Type 골격, basic/advanced UI 패턴, validator
proto 고유
${PROTO_REFS}
mock-service, mock-store, Mock excel/file 옵션, completion/validation, proto team agent
팀 모드에서는
proto-ui-dev
proto-ui-qa
작업 지시에
SHARED_UI_REFS
,
PROTO_REFS
값을 함께 전달한다.
peach-team-ui-proto
不保存UI模式目录副本。可共享的UI模式读取
peach-gen-ui/references
,仅将proto所需的Mock差异存于自身参考目录。
分类位置内容
共享UI单一可信源
${SHARED_UI_REFS}
common-patterns、ui-patterns、visual-guide、Store/Type框架、基础/高级UI模式、验证器
proto专属
${PROTO_REFS}
mock-service、mock-store、Mock excel/file选项、完成/验证规则、proto团队Agent
团队模式下,向
proto-ui-dev
proto-ui-qa
下达任务时需同时传递
SHARED_UI_REFS
PROTO_REFS
值。

빌드 도구 기준

构建工具基准

파일 존재빌드 도구검증 명령어
bun.lockb
bun
bunx vue-tsc --noEmit && bun run lint:fix && bun run build
文件存在情况构建工具验证命令
bun.lockb
bun
bunx vue-tsc --noEmit && bun run lint:fix && bun run build

_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)

test-data UI와 요청된 도메인을 비교 분석합니다:
  1. UI 복잡도 판단: 필드 수, 검색 조건, 테이블 컬럼 구성
  2. Mock 데이터 설계: 도메인에 맞는 현실적인 샘플 데이터 구상
  3. 적응 결정:
    • Must Follow → 그대로 (script setup, 필수 패턴, AI Slop 금지)
    • May Adapt → 도메인 맞춤 (테이블 컬럼, 검색 폼, 모달 폼 구성)
  4. 구조 제안 (May Suggest): 분석 결과 가이드코드와 다른 구조가 더 적합하면 사용자에게 제안:
    • 컴포넌트 분리 (예: 복잡한 폼을 step별 컴포넌트로)
    • 페이지 구성 변경 (예: 탭 내 리스트, 상세 페이지 분리)
    • 사용자 확인 후 적용. Must Follow 침범 금지.
对比分析test-data UI与请求的领域:
  1. UI复杂度判定:字段数量、搜索条件、表格列配置
  2. Mock数据设计:构思符合领域的真实样例数据
  3. 适配决策:
    • Must Follow → 完全遵循(script setup、必需模式、禁止AI Slop)
    • May Adapt → 适配领域(表格列、搜索表单、模态框表单配置)
  4. 结构建议(May Suggest): 若分析结果显示更适合采用与指导代码不同的结构,向用户提出建议:
    • 组件拆分(例如:将复杂表单拆分为分步组件)
    • 页面结构变更(例如:标签页内列表、详情页分离)
    • 经用户确认后应用。禁止违反Must Follow规则。

3단계: Mock 서비스 + Store + 코드 생성

第3步:Mock服务 + Store + 代码生成

선택된 패턴의 가이드 코드를 기준 골격으로 참조 후 도메인에 맞게 적응:
以所选模式的指导代码为基础框架,适配领域特性:

3-1. Mock 데이터 생성 (필수)

3-1. Mock数据生成(必需)

${PROTO_REFS}/core/mock-service-pattern.md
참조
mock/[모듈명].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.md
참조
store/[모듈명].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
test-data/pages/crud/
${SHARED_UI_REFS}/basic/page-pattern.md
+
${SHARED_UI_REFS}/basic/modal-pattern.md
page
test-data/pages/crud/
+
detail-page.vue
${SHARED_UI_REFS}/basic/page-pattern.md
two-depth
test-data/pages/two-depth/
${SHARED_UI_REFS}/basic/two-depth-pattern.md
infinite-scroll
test-data/pages/infinite-scroll-list/
${SHARED_UI_REFS}/basic/infinite-scroll-pattern.md
select-list
test-data/pages/select-list/
${SHARED_UI_REFS}/basic/select-list-pattern.md
batch-process
test-data/modals/list-table-progress.modal.vue
${SHARED_UI_REFS}/basic/batch-process-pattern.md
필수 표준 패턴:
${SHARED_UI_REFS}/core/common-patterns.md
참조
  • Selectbox 패턴 (전체 옵션 value='')
  • Router 동기화 패턴 (listAction, resetAction, watch)
  • Date 검색 패턴 (초기값: 5년 전 ~ 오늘)

模式指导代码路径参考文档(peach-gen-ui单一可信源)
crud
test-data/pages/crud/
${SHARED_UI_REFS}/basic/page-pattern.md
+
${SHARED_UI_REFS}/basic/modal-pattern.md
page
test-data/pages/crud/
+
detail-page.vue
${SHARED_UI_REFS}/basic/page-pattern.md
two-depth
test-data/pages/two-depth/
${SHARED_UI_REFS}/basic/two-depth-pattern.md
infinite-scroll
test-data/pages/infinite-scroll-list/
${SHARED_UI_REFS}/basic/infinite-scroll-pattern.md
select-list
test-data/pages/select-list/
${SHARED_UI_REFS}/basic/select-list-pattern.md
batch-process
test-data/modals/list-table-progress.modal.vue
${SHARED_UI_REFS}/basic/batch-process-pattern.md
必需标准模式: 参考
${SHARED_UI_REFS}/core/common-patterns.md
  • 选择框模式(全选项value='')
  • 路由同步模式(listAction、resetAction、watch)
  • 日期搜索模式(初始值:5年前 ~ 今天)

4단계: 검증 & 완료

第4步:验证 & 完成

bash
undefined
bash
undefined

ui-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.ts
,
layout/
,
overview/
,
{서브모듈}/pages
,
{서브모듈}/store
,
{서브모듈}/type
,
{서브모듈}/modals
를 생성한다. 후속
peach-gen-spec proto=<경로>
에는 이 태스크 폴더 경로를 넘긴다.

src/modules-task/{年月}/{任务文件夹}/
下生成
_task-meta.ts
_routes.ts
layout/
overview/
{子模块}/pages
{子模块}/store
{子模块}/type
{子模块}/modals
。后续
peach-gen-spec proto=<路径>
需传入该任务文件夹路径。

Bounded Autonomy (자율 적응 규칙)

Bounded Autonomy(自主适配规则)

Must Follow (절대 준수)

Must Follow(绝对遵守)

  • <script setup>
    필수
  • NuxtUI 컴포넌트 우선, AI Slop 금지
  • 필수 패턴:
    listAction
    ,
    resetAction
    ,
    listMovePage
    , watch 패턴
  • @submit.prevent="listAction"
    ,
    @change="listAction"
    패턴
  • 모듈 경계:
    _common
    만 import
  • Mock 데이터는
    mock/
    디렉토리에 분리
  • useApi() 경유 패턴 유지 (프로덕션 전환 대비)
  • 必须使用
    <script setup>
  • 优先使用NuxtUI组件,禁止AI Slop
  • 必需模式:
    listAction
    resetAction
    listMovePage
    、watch模式
  • @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
    통과
  • 팀 모드는
    proto-ui-qa
    APPROVED 또는 사용자 승인된 CONDITIONAL 필요
빌드 성공 없이 완료 선언 금지.

  • 已完成UI模式选择
  • 已完成Mock数据、Store、页面/模态框组件生成
  • 通过
    vue-tsc
    lint
    build
    验证
  • 团队模式需获得
    proto-ui-qa
    的APPROVED或用户认可的CONDITIONAL
禁止在构建未成功时声明完成。

완료 후 안내

完成后通知

생성/수정 파일,
vue-tsc/lint/build
결과, 브라우저 확인 경로, 프로덕션 전환 시 Mock 제거 범위를 보고한다.

向用户报告生成/修改的文件、
vue-tsc/lint/build
结果、浏览器访问路径、生产环境转换时需移除的Mock范围。

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

条件式参考指南(节省Token)

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

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

必需参考(必须读取 - 禁止省略!)

경고: 아래 파일은 어떤 패턴을 선택하든 반드시 먼저 읽어야 합니다! 이 파일을 읽지 않으면 검색, 페이징, URL 상태관리 패턴이 누락됩니다.
  • ${SHARED_UI_REFS}/core/common-patterns.md
    - URL Watch 패턴, Selectbox, Router 동기화, Date 검색, 모달 오픈 패턴
  • ${PROTO_REFS}/core/mock-service-pattern.md
    - Mock 데이터 정의, 동적 생성, API 시그니처 유지
  • ${PROTO_REFS}/core/mock-store-pattern.md
    - Mock useApi() 경유 Store 패턴
警告: 无论选择哪种模式,都必须先读取以下文件! 不读取这些文件会导致搜索、分页、URL状态管理模式遗漏。
  • ${SHARED_UI_REFS}/core/common-patterns.md
    - URL Watch模式、选择框、路由同步、日期搜索、模态框打开模式
  • ${PROTO_REFS}/core/mock-service-pattern.md
    - Mock数据定义、动态生成、API签名一致性
  • ${PROTO_REFS}/core/mock-store-pattern.md
    - 通过Mock useApi()的Store模式

패턴별 참조 매핑

模式对应参考文件

선택 패턴읽어야 할 파일
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=Yproto 고유:
options/excel-pattern.md
file=Yproto 고유:
options/file-upload-pattern.md
validator 필요공유:
options/validator-pattern.md
选项需读取的文件
excel=Yproto专属:
options/excel-pattern.md
file=Yproto专属:
options/file-upload-pattern.md
需要验证器共享:
options/validator-pattern.md

조건부 참조

条件式参考

상황읽어야 할 파일
로딩 상태 필요공유:
core/loading-state-pattern.md
에러 처리 필요공유:
core/error-handling-pattern.md

场景需读取的文件
需要加载状态共享:
core/loading-state-pattern.md
需要错误处理共享:
core/error-handling-pattern.md

참조

参考

  • 가이드 코드 (우선):
    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特性与领域特性