skills/peach-gen-store/SKILL.md
Frontend Store 전문 생성 스킬. "스토어 만들어줘", "Store 생성", "프론트 상태관리" 키워드로 트리거. Backend API 기반 생성, TDD 검증 필수.
npx skillsauth add peachsolution/peach-harness peach-gen-storeInstall 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.
당신은 Vue3/Pinia 상태관리 최고 전문가입니다.
- Pinia Option API 스타일 마스터
- TypeScript 타입 시스템 전문가
- API 연동과 상태 동기화 최적화
- test-data.store.ts 패턴의 완벽한 구현
┌─────────────────────────────────────────────────────────────────┐
│ 순차 개발 전략에서 peach-gen-store의 역할 │
│ │
│ 전제조건: Backend API 완료 (TDD 통과) │
│ │
│ 1. Backend API 스펙 기반으로 생성 │
│ 2. TDD 검증 필수 (API 연동 테스트) │
│ 3. 출력물 = 확정된 Store 인터페이스 (다음 단계 입력) │
│ 4. AI와 티키타카로 품질 확보 │
│ │
│ 완료 기준: │
│ ✅ vue-tsc 타입 체크 통과 (필수) │
│ ⚪ TDD 테스트 통과 (복잡한 클라이언트 로직 있을 때만) │
└─────────────────────────────────────────────────────────────────┘
/peach-gen-store [테이블명] [옵션]
| 옵션 | 기본값 | 설명 | |------|--------|------| | file | N | 파일 업로드 기능 (Y/N) | | storeTdd | N | Store TDD 액션 생성 (Y/N) - Backend controllerTdd=Y 필요 |
# Backend 모듈 위치 감지 (modules-* 분리 구조 대응)
ls -d api/src/modules*/[모듈명]/ 2>/dev/null
# API 스펙 확인 (Type 파일)
cat api/src/modules*/[모듈명]/type/[모듈명].type.ts 2>/dev/null
# Frontend 모듈 구조 확인
ls -d front/src/modules*/
# Frontend 상수 확인
ls front/src/modules/_common/constants/ 2>/dev/null
Backend 모듈 경로에 맞춰 Frontend 대응 경로에 생성합니다:
api/src/modules/[모듈명]/ → front/src/modules/[모듈명]/api/src/modules-domain/[모듈명]/ → front/src/modules-domain/[모듈명]/api/src/modules-external/[모듈명]/ → front/src/modules-domain/[모듈명]/ (프론트는 domain으로 통합)_common/constants/ 존재 시 프론트에서도 상수 활용을 고려합니다.
Backend가 없으면:
⚠️ Backend API가 없습니다!
먼저 /peach-gen-backend [테이블명] 실행하세요.
Backend API 타입과 test-data Store를 비교 분석합니다:
참조 템플릿 (test-data):
front/src/modules/test-data/type/test-data.type.tsfront/src/modules/test-data/store/test-data.store.tsfront/src/modules/test-data/test/test-data.test.ts# 타입 체크
cd front && bunx vue-tsc --noEmit
# 테스트 실행 (있는 경우)
cd front && bun test src/modules/[모듈명]/test/
타입 에러 또는 테스트 실패 시:
1. 에러 원인 분석
2. 코드 수정
3. 다시 검증
4. 통과할 때까지 반복
⚠️ 타입 체크 통과 없이 완료 선언 금지!
front/src/[감지된 modules 경로]/[모듈명]/
├── type/[모듈명].type.ts ← Entity, DTO 타입
├── store/[모듈명].store.ts ← Pinia Store
└── test/[모듈명].test.ts ← TDD 테스트 (선택적)
모듈 생성 경로는 1단계에서 감지된 Backend 대응 경로를 따릅니다. 기본값:
front/src/modules/[모듈명]/
useApi().get('/[모듈명]', params)useApi().get('/[모듈명]/list', params)useApi().get('/[모듈명]/' + seq)useApi().get('/[모듈명]/cursor-list')useApi().post('/[모듈명]', data)useApi().put('/[모듈명]/' + seq, data)useApi().patch('/[모듈명]/use')useApi().patch('/[모듈명]/delete')useApi().delete('/[모듈명]/' + seq)→ 하단 "Store TDD" 섹션 참조
→ 하단 "Store TDD" 섹션 참조
// ✅ Pinia Option API 스타일 (권장)
export const use[모듈명]Store = defineStore('[모듈명]', {
state: () => ({
listData: [] as ListItem[],
listTotalRow: 0,
detailData: null as Entity | null,
}),
actions: {
async paging(params: PagingDto) {
const { $api } = useNuxtApp();
const res = await $api.get('[모듈명]/paging', { params });
if (res.value?.data) {
this.listData = res.value.data.list;
this.listTotalRow = res.value.data.totalRow;
}
return res;
},
// ...
},
});
// ❌ Setup 스타일 (사용 금지)
export const use[모듈명]Store = defineStore('[모듈명]', () => {
// ...
});
uploadFileLocal ✅uploadFileS3 ✅getDownloadUrl ✅가이드 코드는 기본 참고 골격이며 강제 표준이 아니다. 도메인 특성에 따라 AI가 더 나은 구조를 판단하면 자율 조정한다. Must Follow와 "단일 사용처 추상화 금지" 원칙은 그대로 지키고, 조정한 항목과 이유는 완료 보고에 기록한다. 상세 원칙은
peach-setup-ui-proto/references/04-bounded-autonomy.md(Frontend) 또는peach-setup-harness/references/05-bounded-autonomy.md(Backend) 참조.
?), null, undefined 금지
_common만 importlistData, listTotalRow, detailDataSuggest 시: 이유를 사용자에게 제시하고 확인 후 적용. Must Follow 침범 금지.
보완 시 반드시: (1) 이유 설명 (2) Must Follow 미침범 (3) vue-tsc 통과
┌─────────────────────────────────────────────────────────────────┐
│ ✅ 완료 체크리스트 │
│ │
│ □ bunx vue-tsc --noEmit 통과 (필수) │
│ □ TDD 테스트 통과 (storeTdd=Y인 경우만) │
│ │
│ 위 조건 모두 통과해야 완료! │
│ 실패 시 AI와 티키타카로 수정 │
└─────────────────────────────────────────────────────────────────┘
🎉 Frontend Store 생성 완료!
생성된 파일:
├── front/src/[감지된 modules 경로]/[모듈명]/
│ ├── type/[모듈명].type.ts
│ └── store/[모듈명].store.ts
검증 결과:
✅ 타입 체크 통과
📌 확정된 Store 인터페이스:
- use[모듈명]Store()
- state: listData, listTotalRow, detailData
- actions: paging, list, detail, insert, update, updateUse, softDelete
다음 단계:
→ /peach-gen-ui [모듈명] 실행하여 Frontend UI 생성
→ test-pattern.md 상세 참조
전제조건: Backend controllerTdd=Y 필요 대부분의 Store는 API Wrapper이므로 TDD 불필요. Backend TDD로 충분.
useApi().post('/[모듈명]/tdd/init')useApi().delete('/[모듈명]/tdd/cleanup/' + seq)각 레이어별 상세 패턴은 references 폴더 참조:
중요: 선택된 옵션의 참조 파일만 읽으세요! 모든 references를 한 번에 로드하지 마세요.
| 파일 | 용도 | |------|------| | store-pattern.md | Pinia Store 구조 | | type-pattern.md | Entity, DTO 타입 정의 |
| 옵션 | 읽어야 할 파일 | |------|---------------| | file=Y | file-option.md | | storeTdd=Y | test-pattern.md |
front/src/modules/test-data/api/src/modules/[모듈명]/type/⚠️ 중요: test-data 가이드 코드를 기준 골격으로 참조하되, 도메인 특성에 맞게 Bounded Autonomy 범위 내에서 적응
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 중 선택한다. 단순 코드 동작 검증을 넘어, 기획 의도와 부합하는지 자동 검증하는 게 핵심 차별점.