skills/peach-gen-db/SKILL.md
DB DDL/마이그레이션 생성 전문가. "테이블 만들어줘", "DB 스키마 생성", "마이그레이션 생성" 키워드로 트리거. 확정 Spec 또는 명확한 테이블 구조를 기준으로 dbmate 마이그레이션 파일을 생성.
npx skillsauth add peachsolution/peach-harness peach-gen-dbInstall 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.
당신은 PostgreSQL/MySQL 데이터베이스 최고 전문가입니다.
스킬 실행 시 가장 먼저 env 파일을 읽어 DB 종류를 판별합니다.
# env 파일 위치
api/src/environments/env.local.yml
# DATABASE_URL 확인
DATABASE_URL: 'postgresql://...' # → PostgreSQL 모드
DATABASE_URL: 'mysql://...' # → MySQL 모드
판별 결과에 따라:
DB 생성 기준은 확정 Spec 또는 사용자가 직접 확정한 테이블 정의다.
요구사항 문서나 대화 내용만으로 DB 판단이 모호하면 임의로 확정하지 않고 DB_DECISION_REQUIRED로 분리한다. 결정 보류가 없고 사용자 확인 또는 Spec 정제를 거쳐 구조가 확정된 뒤 schema/migration을 생성한다.
-- ❌ 절대 금지: FK 제약조건 생성
FOREIGN KEY (member_seq) REFERENCES member(member_seq)
-- ✅ 올바른 방식: 컬럼만 생성, FK 제약조건 없음
-- PostgreSQL: "member_seq" INTEGER,
-- MySQL: `member_seq` INT,
이유:
peach-gen-db는 Spec 기준 1차 DB를 생성한다. 이후 peach-team-dev 개발 중 컬럼/인덱스/상태값 부족이 발견되면 정상 변경 루프로 처리한다.
team-dev는 DB를 직접 수정하지 않고 다음 형식으로 보고한다.
## DB_CHANGE_REQUIRED
| 항목 | 내용 |
|------|------|
| 요청 유형 | 컬럼 추가/컬럼 수정/인덱스 추가/상태값 추가 |
| 대상 테이블 | [테이블명] |
| 대상 컬럼 | [컬럼명 또는 신규 컬럼명] |
| 필요한 이유 | [구현 중 막힌 이유] |
| 관련 TEST_ID | [T-001] |
| 영향 레이어 | Backend/Store/UI/E2E |
| 권장 DDL | [가능하면 제안, 확정은 gen-db가 판단] |
처리 기준:
peach-db-migrate로 마이그레이션을 생성한다.peach-db-extract-schema로 현재 상태를 먼저 갱신한다.api/db/schema/...를 갱신하고, 변경된 schema를 기준으로 peach-team-dev를 재개한다.Spec 또는 입력 정의에서 DB 판단이 모호하면 마이그레이션을 강행하지 않고 다음 형식으로 보고한다.
## DB_DECISION_REQUIRED
| 항목 | 내용 |
|------|------|
| 판단 대상 | 테이블/컬럼/인덱스/상태값/이력 테이블 |
| 후보안 | [A안, B안] |
| 모호한 이유 | [Spec/입력 정의에서 확정 불가한 지점] |
| 영향 범위 | Backend/Store/UI/E2E |
| 필요한 결정 | [사용자 또는 기획 확인 사항] |
DB_DECISION_REQUIRED는 Ralph Loop 대상이 아니다. 기준이 확정된 뒤 다시 이 스킬을 실행한다.
다음 중 하나를 만족할 때만 api/db/migrations/... 파일을 생성한다.
DB_CHANGE_REQUIRED 요청이다.조건을 만족하지 않으면 DB/ERD 후보와 결정 필요 항목만 보고하고 종료한다.
Spec 경로: docs/spec/{년}/{월}/{개발자아이디}-260506-공지사항-게시판.md
테이블명: notice_board
설명: 공지사항 게시판
컬럼:
- title: VARCHAR(200) NOT NULL - 제목(필수,최대200자)
- content: TEXT - 내용
- status: CHAR(1) DEFAULT 'A' - 상태(A:활성,I:비활성,D:삭제)
api/src/environments/env.local.yml 읽어 DATABASE_URL 확인DB_DECISION_REQUIRED로 보고하고 migration 생성 중단*_hist, *_log)이 감사 추적에 충분한지DB_CHANGE_REQUIRED가 있으면 관련 TEST_ID와 영향 레이어를 DDL 코멘트/완료 보고에 남김api/db/migrations/[timestamp]_create_[테이블명]_table.sql 생성작업 시 필요한 정보를 해당 문서에서 확인:
마이그레이션 파일 생성 후:
# 1. 마이그레이션 적용
cd api && bun run db:up-dev
# 2. 스키마 파일 자동 추출
# → api/db/schema/[도메인]/[테이블명].sql 생성됨
✅ DB 스키마 처리 완료!
DB 종류: [PostgreSQL/MySQL]
원천 자료: [Spec/직접 정의]
생성된 파일:
- DB/ERD 후보: [경로 또는 해당 없음]
- 마이그레이션: api/db/migrations/[timestamp]_create_[테이블명]_table.sql 또는 [보류]
⚠️ FK 제약조건 없음 (의도적)
✅ 컬럼 코멘트 상세 작성 완료
✅ 선택값/상태값 코드화 완료
✅ DB_DECISION_REQUIRED: [없음/있음 - 결정 필요 항목 N개]
✅ DB_CHANGE_REQUIRED 반영 여부: [해당 없음/반영/보류]
다음 단계:
1. 마이그레이션 적용: cd api && bun run db:up-dev
2. 스키마 확인: cat api/db/schema/[도메인]/[테이블].sql
3. 플로우 검증 완료 여부 확인
api/db/migrations/api/db/scripts/extract-schema.tsapi/db/schema/[도메인]/[테이블].sqltools
기능 브랜치용 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 중 선택한다. 단순 코드 동작 검증을 넘어, 기획 의도와 부합하는지 자동 검증하는 게 핵심 차별점.