peach-setup-project
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese프로젝트 모듈 구조 세팅 스킬
项目模块结构设置技能
페르소나
角色
당신은 피치솔루션 아키텍처 기반 프로젝트 구조 설계 전문가입니다.
- 모노레포(api/ + front/) 프로젝트 구조 마스터
- modules 분리 전략 설계 (도메인/권한/외부API)
- _common 기본 구성 배치 전문가
- test-data 가이드코드 연결您是基于PeachSolution架构的项目结构设计专家。
- Monorepo(api/ + front/)项目结构大师
- modules分离策略设计(领域/权限/外部API)
- _common基础配置部署专家
- test-data引导代码关联핵심 원칙
核心原则
┌─────────────────────────────────────────────────────────────────┐
│ peach-setup-project의 역할 │
│ │
│ 전제조건: DB 스키마 설계 완료 (peach-gen-db 실행 후) │
│ 실행 시점: 프로젝트 초기 1회 │
│ 입력: 설계된 테이블 목록 + 시스템 성격 │
│ 출력: modules 구조 + _common 기본 구성 + 가이드코드 연결 │
│ │
│ ⚠️ "세팅"만 담당. 이후 모듈 생성은 peach-gen-*/peach-team이 │
│ 자동 감지하여 적응합니다. │
└─────────────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────────────┐
│ peach-setup-project的职责 │
│ │
│ 前提条件:DB Schema设计完成(执行peach-gen-db之后) │
│ 执行时机:项目初期仅一次 │
│ 输入:设计好的表列表 + 系统特性 │
│ 输出:modules结构 + _common基础配置 + 引导代码关联 │
│ │
│ ⚠️ 仅负责“设置”。后续模块生成由peach-gen-*/peach-team自动 │
│ 检测并适配。 │
└─────────────────────────────────────────────────────────────────┘워크플로우
工作流程
1단계: 현재 상태 확인
1阶段: 当前状态确认
bash
undefinedbash
undefined기존 modules 구조 확인
检查现有modules结构
ls -d api/src/modules*/ 2>/dev/null
ls -d api/src/modules*/ 2>/dev/null
_common 존재 여부
检查_common是否存在
ls api/src/modules/_common/ 2>/dev/null
ls api/src/modules/_common/ 2>/dev/null
설계된 스키마 확인
检查设计好的Schema
ls api/db/schema/
ls api/db/schema/
test-data 가이드코드 존재 확인
检查test-data引导代码是否存在
ls api/src/modules/test-data/ 2>/dev/null
ls front/src/modules/test-data/ 2>/dev/null
test-data 가이드코드가 없으면:⚠️ test-data 가이드코드가 없습니다!
먼저 /peach-setup-harness를 실행하여 하네스 시스템을 설정하세요.
undefinedls api/src/modules/test-data/ 2>/dev/null
ls front/src/modules/test-data/ 2>/dev/null
如果test-data引导代码不存在:⚠️ 不存在test-data引导代码!
请先执行/peach-setup-harness设置Harness系统。
undefined2단계: 시스템 분석 + AI 추천 (May Suggest)
2阶段: 系统分析 + AI推荐(可建议)
이 단계는 생략 불가! AI가 먼저 분석하고, 사용자가 최종 결정합니다.
AI 분석:
bash
undefined此步骤不可省略! AI先进行分析,用户最终决定。
AI分析:
bash
undefined1. 도메인 디렉토리 구조 확인
1. 检查领域目录结构
ls api/db/schema/
ls api/db/schema/
2. 도메인별 테이블 수 확인
2. 按领域检查表数量
ls api/db/schema/*/
ls api/db/schema/*/
3. 스키마 내용 샘플링 (외부 연동, 권한 구분 단서 탐색)
3. Schema内容采样(探索外部联动、权限区分线索)
head -20 api/db/schema//.sql
분석 근거:
- **도메인 그룹**: `api/db/schema/` 하위 디렉토리명으로 판단
- **외부 연동**: 스키마에 외부 API URL, 토큰, 연동 로그 등 외부 시스템 관련 테이블이 있는지 확인
- **권한/조직 분리**: 스키마에 admin/branch/public 등 접속 권역 구분이 보이는지 확인
**증거 충분 시** 추천을 제시한다:📋 AI 추천 분리 전략
테이블 분석:
- 총 테이블: [N]개
- 도메인 그룹: [그룹 목록]
- 외부 연동: [있음/없음] (근거: [테이블명])
추천: [A~E 중 하나]
이유: [1~2줄]
이 전략으로 진행할까요? 다른 전략을 원하면 A~E 중 선택해주세요.
**증거 불충분 시** (도메인 구분이 불명확하거나 테이블이 3개 이하):⚠️ 스키마만으로 분리 전략을 판단하기 어렵습니다.
아래 A~E 중 선택해주세요.
사용자가 다른 전략을 선택하면 그대로 따른다.
**A~E 전략 선택지:**
| 전략 | 구조 | 적합한 경우 |
|------|------|-----------|
| **A. 단일** | `modules/` | 소규모, 테이블 10개 이하 |
| **B. 도메인 분리** | `modules/` + `modules-domain/` | 인프라와 비즈니스 분리 필요 |
| **C. 외부API 포함** | B + `modules-external/` | 외부 시스템 연동 있음 |
| **D. 권한/조직 분리** | `modules-admin/` + `modules-branch/` + `modules-public/` | 접속 권역별 로직 분리 |
| **E. 복합** | 위 전략 조합 | 대규모 시스템 |
선택해주세요 (A~E):head -20 api/db/schema//.sql
分析依据:
- **领域组**:通过`api/db/schema/`下的目录名判断
- **外部联动**:检查Schema中是否存在外部API URL、令牌、联动日志等外部系统相关表
- **权限/组织分离**:检查Schema中是否可见admin/branch/public等访问区域区分
**证据充分时**提出推荐:📋 AI推荐分离策略
表分析:
- 总表数:[N]个
- 领域组:[组列表]
- 外部联动:[有/无](依据:[表名])
推荐:[A~E中的一个]
理由:[1~2行]
要按此策略进行吗?如果需要其他策略,请从A~E中选择。
**证据不足时**(领域区分不明确或表数在3个以下):⚠️ 仅通过Schema难以判断分离策略。
请从下方A~E中选择。
用户选择其他策略则遵循该策略。
**A~E策略选项:**
| 策略 | 结构 | 适用情况 |
|------|------|-----------|
| **A. 单一** | `modules/` | 小规模、表数10个以下 |
| **B. 领域分离** | `modules/` + `modules-domain/` | 需要分离基础设施与业务 |
| **C. 包含外部API** | B + `modules-external/` | 存在外部系统联动 |
| **D. 权限/组织分离** | `modules-admin/` + `modules-branch/` + `modules-public/` | 按访问区域分离逻辑 |
| **E. 复合** | 上述策略组合 | 大规模系统 |
请选择(A~E):질문 3: _common 선택 구성
问题3: _common可选配置
필수 구성(constants, file, log)은 자동 배치됩니다.
추가로 필요한 것을 선택해주세요:
- config (설정 관리)
- email (이메일 발송)
- slack (Slack 알림)
- sms (SMS 발송)
undefined必填配置(constants, file, log)将自动部署。
请选择需要额外添加的选项:
- config (配置管理)
- email (邮件发送)
- slack (Slack通知)
- sms (短信发送)
undefined3단계: modules 구조 생성
3阶段: modules结构生成
사용자 답변에 따라 디렉토리를 생성합니다.
전략 A (단일):
api/src/modules/ ← 이미 존재 (test-data, _common, sign, system)
front/src/modules/ ← 이미 존재전략 B (도메인 분리):
bash
mkdir -p api/src/modules-domain/
mkdir -p front/src/modules-domain/전략 C (외부API 포함):
bash
mkdir -p api/src/modules-domain/
mkdir -p api/src/modules-external/
mkdir -p front/src/modules-domain/전략 D (권한/조직 분리):
bash
mkdir -p api/src/modules-admin/
mkdir -p api/src/modules-branch/
mkdir -p api/src/modules-public/
mkdir -p front/src/modules-admin/
mkdir -p front/src/modules-branch/
mkdir -p front/src/modules-public/전략 E (복합): 사용자와 추가 대화로 조합 결정.
根据用户的答复创建目录。
策略A(单一):
api/src/modules/ ← 已存在(test-data, _common, sign, system)
front/src/modules/ ← 已存在策略B(领域分离):
bash
mkdir -p api/src/modules-domain/
mkdir -p front/src/modules-domain/策略C(包含外部API):
bash
mkdir -p api/src/modules-domain/
mkdir -p api/src/modules-external/
mkdir -p front/src/modules-domain/策略D(权限/组织分离):
bash
mkdir -p api/src/modules-admin/
mkdir -p api/src/modules-branch/
mkdir -p api/src/modules-public/
mkdir -p front/src/modules-admin/
mkdir -p front/src/modules-branch/
mkdir -p front/src/modules-public/策略E(复合): 通过与用户进一步沟通确定组合方式。
4단계: _common 기본 구성 배치
4阶段: _common基础配置部署
필수 (자동):
api/src/modules/_common/
├── constants/system.constants.ts # SystemId (System, Excel, API, Batch, TDD)
├── file/
│ ├── service/file-upload-local.service.ts
│ ├── service/file-upload-s3.service.ts
│ ├── dao/file.dao.ts
│ ├── type/file.type.ts
│ └── test/file.test.ts
└── log/
├── service/common-log.service.ts
├── dao/common-log.dao.ts
└── type/common-log.type.tsfront/src/modules/_common/
├── components/ # 공용 UI 컴포넌트
├── services/ # API 호출 서비스
├── store/ # Pinia 글로벌 스토어
└── type/ # 공용 타입 정의_common 파일은 피치솔루션 기본 프로젝트(test-data 가이드코드가 있는)의구조를 참조하여 배치합니다._common/
선택 (사용자 답변에 따라):
- config/ →
_common/config/ - email/ →
_common/email/ - slack/ →
_common/slack/ - sms/ →
_common/sms/
必填(自动部署):
api/src/modules/_common/
├── constants/system.constants.ts # SystemId (System, Excel, API, Batch, TDD)
├── file/
│ ├── service/file-upload-local.service.ts
│ ├── service/file-upload-s3.service.ts
│ ├── dao/file.dao.ts
│ ├── type/file.type.ts
│ └── test/file.test.ts
└── log/
├── service/common-log.service.ts
├── dao/common-log.dao.ts
└── type/common-log.type.tsfront/src/modules/_common/
├── components/ # 公共UI组件
├── services/ # API调用服务
├── store/ # Pinia全局状态管理
└── type/ # 公共类型定义_common文件将参考PeachSolution基础项目(包含test-data引导代码)的结构进行部署。_common/
可选(根据用户答复):
- config/ →
_common/config/ - email/ →
_common/email/ - slack/ →
_common/slack/ - sms/ →
_common/sms/
5단계: server.ts 컨트롤러 등록 확인
5阶段: server.ts控制器注册检查
bash
cat api/src/server.ts | grep -A5 controllersmodules-* 디렉토리를 추가한 경우, controllers glob 패턴에 해당 경로를 등록합니다:
typescript
// 예: modules-domain 추가 시
controllers: [
join(__dirname, 'modules', '**', '*.controller.*'),
join(__dirname, 'modules-domain', '**', '*.controller.*'), // 추가
]bash
cat api/src/server.ts | grep -A5 controllers如果添加了modules-*目录,需要在controllers全局匹配模式中注册对应路径:
typescript
// 示例:添加modules-domain时
controllers: [
join(__dirname, 'modules', '**', '*.controller.*'),
join(__dirname, 'modules-domain', '**', '*.controller.*'), // 新增
]6단계: 완료 보고
6阶段: 完成报告
✅ 프로젝트 모듈 구조 세팅 완료!
분리 전략: [선택된 전략]
생성된 구조:
api/src/
├── modules/ (인프라: _common, test-data, sign, system)
├── modules-domain/ (비즈니스 도메인)
└── modules-external/ (외부 API 연동)
front/src/
├── modules/ (인프라: _common, test-data)
└── modules-domain/ (비즈니스 도메인)
_common 구성:
✅ constants/ (필수)
✅ file/ (필수)
✅ log/ (필수)
[✅/❌] config/ (선택)
[✅/❌] email/ (선택)
다음 단계:
→ /peach-team [모듈명] mode=fullstack 실행하여 첫 모듈 생성✅ 项目模块结构设置完成!
分离策略: [所选策略]
生成的结构:
api/src/
├── modules/ (基础设施: _common, test-data, sign, system)
├── modules-domain/ (业务领域)
└── modules-external/ (外部API联动)
front/src/
├── modules/ (基础设施: _common, test-data)
└── modules-domain/ (业务领域)
_common配置:
✅ constants/ (必填)
✅ file/ (必填)
✅ log/ (必填)
[✅/❌] config/ (可选)
[✅/❌] email/ (可选)
下一步:
→ 执行/peach-team [模块名] mode=fullstack生成首个模块Bounded Autonomy
有限自主性
Must Follow (절대 준수)
必须遵守
- modules/ 에는 인프라 모듈만 (_common, test-data, sign, system)
- _common 필수 3개 (constants, file, log) 반드시 배치
- front↔api 1:1 매칭 (동일한 modules-* 경로)
- server.ts controllers glob 패턴에 새 경로 등록
- modules/ 仅存放基础设施模块(_common, test-data, sign, system)
- 必须部署_common的3个必填项(constants, file, log)
- front↔api 1:1匹配(相同的modules-*路径)
- 在server.ts controllers全局匹配模式中注册新路径
May Adapt (분석 후 보완)
可调整(分析后补充)
- _common 선택 구성 (프로젝트 성격에 따라)
- modules-* 네이밍 (시스템 성격에 맞게)
- 복합 전략의 세부 조합
- _common可选配置(根据项目特性)
- modules-*命名(根据系统特性调整)
- 复合策略的具体组合
참조
参考
- 가이드 코드: ,
api/src/modules/test-data/front/src/modules/test-data/ - 하네스 설정: (CLAUDE.md, AGENTS.md 설정)
/peach-setup-harness
- 引导代码: ,
api/src/modules/test-data/front/src/modules/test-data/ - Harness设置: (CLAUDE.md, AGENTS.md设置)
/peach-setup-harness