skills/peach-setup-project/SKILL.md
신규 프로젝트 모듈 구조 + _common 기본 구성 세팅 스킬. "프로젝트 세팅", "모듈 구조 잡아줘", "초기 구성", "프로젝트 초기화" 키워드로 트리거. DB 설계 완료 후, 최초 1회 실행.
npx skillsauth add peachsolution/peach-harness peach-setup-projectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
당신은 피치솔루션 아키텍처 기반 프로젝트 구조 설계 전문가입니다.
- 모노레포(api/ + front/) 프로젝트 구조 마스터
- modules 분리 전략 설계 (도메인/권한/외부API)
- _common 기본 구성 배치 전문가
- test-data 가이드코드 연결
┌─────────────────────────────────────────────────────────────────┐
│ peach-setup-project의 역할 │
│ │
│ 전제조건: DB 스키마 설계 완료 (peach-gen-db 실행 후) │
│ 실행 시점: 프로젝트 초기 1회 │
│ 입력: 설계된 테이블 목록 + 시스템 성격 │
│ 출력: modules 구조 + _common 기본 구성 + 가이드코드 연결 │
│ │
│ ⚠️ "세팅"만 담당. 이후 모듈 생성은 peach-gen-*/peach-team-dev가 │
│ 자동 감지하여 적응합니다. │
└─────────────────────────────────────────────────────────────────┘
# 기존 modules 구조 확인
ls -d api/src/modules*/ 2>/dev/null
# _common 존재 여부
ls api/src/modules/_common/ 2>/dev/null
# 설계된 스키마 확인
ls api/db/schema/
# 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를 실행하여 하네스 시스템을 설정하세요.
이 단계는 생략 불가! AI가 먼저 분석하고, 사용자가 최종 결정합니다.
AI 분석:
# 1. 도메인 디렉토리 구조 확인
ls api/db/schema/
# 2. 도메인별 테이블 수 확인
ls api/db/schema/*/
# 3. 스키마 내용 샘플링 (외부 연동, 권한 구분 단서 탐색)
head -20 api/db/schema/*/*.sql
분석 근거:
api/db/schema/ 하위 디렉토리명으로 판단증거 충분 시 추천을 제시한다:
📋 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):
필수 구성(constants, file, log)은 자동 배치됩니다. 추가로 필요한 것을 선택해주세요:
### 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 포함):
mkdir -p api/src/modules-domain/
mkdir -p api/src/modules-external/
mkdir -p front/src/modules-domain/
전략 D (권한/조직 분리):
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 (복합): 사용자와 추가 대화로 조합 결정.
필수 (자동):
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.ts
front/src/modules/_common/
├── components/ # 공용 UI 컴포넌트
├── services/ # API 호출 서비스
├── store/ # Pinia 글로벌 스토어
└── type/ # 공용 타입 정의
_common 파일은 피치솔루션 기본 프로젝트(test-data 가이드코드가 있는)의
_common/구조를 참조하여 배치합니다.
선택 (사용자 답변에 따라):
_common/config/_common/email/_common/slack/_common/sms/cat api/src/server.ts | grep -A5 controllers
modules-* 디렉토리를 추가한 경우, controllers glob 패턴에 해당 경로를 등록합니다:
// 예: modules-domain 추가 시
controllers: [
join(__dirname, 'modules', '**', '*.controller.*'),
join(__dirname, 'modules-domain', '**', '*.controller.*'), // 추가
]
✅ 프로젝트 모듈 구조 세팅 완료!
분리 전략: [선택된 전략]
생성된 구조:
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-dev [모듈명] mode=fullstack spec=<Spec 경로> 실행하여 첫 모듈 생성
api/src/modules/test-data/, front/src/modules/test-data//peach-setup-harness (CLAUDE.md, AGENTS.md 설정)tools
기능 브랜치용 git worktree 라이프사이클을 관리하는 스킬. 생성(create) / 상태 진단(status) / PR 준비(finish) / 병합 후 정리(closeout) / 정리(cleanup) 모드를 자동 판단한다. "워크트리 만들어줘", "worktree 생성", "워크트리 정리", "워크트리 삭제", "기능 브랜치 워크트리", "워크트리 상태", "마무리", "PR 생성", "PR 머지 후 정리", "feature worktree" 키워드로 트리거. PR 전 base 비교와 안전한 동기화 필요 여부를 진단한다. 개발 완료 후 finish/closeout 모드에서는 한 번의 통합 체크포인트로 push/PR/merge/cleanup을 안전하게 진행한다.
development
Karpathy LLM Wiki 패턴 기반 지식 관리 스킬. 코드 프로젝트와 옵시디언 노트 모두 지원. Raw Source(코드·문서)를 읽어 docs/wiki/에 누적형 지식베이스를 구축·유지한다. "wiki", "위키", "ingest", "인제스트", "wiki 점검", "wiki lint", "wiki 업데이트", "문서화해줘", "아키텍처 설명해줘", "어떻게 동작해?" 키워드로 트리거. qmd 검색 도구와 연동하여 토큰 절약 + 높은 검색 정확도 제공.
development
Backend 없이 Mock 데이터 기반 프로토타입 UI를 생성·검증하는 기획 구체화 산출물 스킬. Vue 3 + TypeScript + NuxtUI v4. 별도 ui-proto 저장소(예: peach-ui-proto-backoffice)의 src/modules-task 폴더에 태스크별 화면을 누적한다. "프로토타입 만들어줘", "Mock 화면", "proto UI", "기획 화면 빠르게", "ui-proto 작업", "기획자 검토용 화면", "태스크 폴더 추가", "팀 ui-proto" 키워드로 트리거. 기획자가 직접 작업하는 화면 기획 + 현업 검토용 산출물 스킬이며, 개발용 Spec은 후속 peach-gen-spec이 생성한다. 실제 API 연동이 필요하면 peach-gen-ui를 사용한다.
development
Spec 필수 + ui-proto 보조 기준으로 E2E 환경 세팅 + 단위 시나리오 자동 분할 + 통합 suite 생성 + 실행 + 부합 검증을 한 번에 처리하는 통합 팀 스킬. "e2e 검증해줘", "통합 검증", "전체 흐름 테스트", "팀 e2e", "스펙대로 동작하는지 확인", "ui-proto와 다른지 확인", "최종 검증", "릴리스 전 검증" 키워드로 트리거. peach-e2e-setup + peach-e2e-scenario + peach-e2e-suite 3개 스킬의 패턴을 공유하고, 검증 기준은 본 프로젝트 Spec을 필수 기준으로 삼고, ui-proto는 화면/흐름 보조 기준으로 사용한다. peach-team-dev와 함께 하나의 개발-검증 납품 흐름을 이루되, 구현 컨텍스트와 검증 컨텍스트는 분리한다. 팀 실행 방식은 E2E 범위와 런타임 도구 가용성을 분석해 single-agent / role-queue / agent-team 중 선택한다. 단순 코드 동작 검증을 넘어, 기획 의도와 부합하는지 자동 검증하는 게 핵심 차별점.