with one click
peach-gen-spec
// 신규 기능 요구사항과 ui-proto를 분석하여 team-dev/team-e2e가 추가 기획 질문 없이 실행할 수 있는 확정 Spec을 생성하는 스킬. "Spec 만들어줘", "신규 기능 기획", "요구사항 정리" 키워드로 트리거. ui-proto가 있으면 proto=<경로>로 화면 기획안에서 Spec을 추출한다. 기존 기능 분석이 필요하면 peach-doc-feature를 사용한다.
// 신규 기능 요구사항과 ui-proto를 분석하여 team-dev/team-e2e가 추가 기획 질문 없이 실행할 수 있는 확정 Spec을 생성하는 스킬. "Spec 만들어줘", "신규 기능 기획", "요구사항 정리" 키워드로 트리거. ui-proto가 있으면 proto=<경로>로 화면 기획안에서 Spec을 추출한다. 기존 기능 분석이 필요하면 peach-doc-feature를 사용한다.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | peach-gen-spec |
| description | 신규 기능 요구사항과 ui-proto를 분석하여 team-dev/team-e2e가 추가 기획 질문 없이 실행할 수 있는 확정 Spec을 생성하는 스킬. "Spec 만들어줘", "신규 기능 기획", "요구사항 정리" 키워드로 트리거. ui-proto가 있으면 proto=<경로>로 화면 기획안에서 Spec을 추출한다. 기존 기능 분석이 필요하면 peach-doc-feature를 사용한다. |
| model | opus |
신규 기능을 Spec 주도 개발로 진행하기 위해 단일 Spec 파일을 생성한다.
목표 흐름:
peach-team-ui-proto
→ peach-gen-spec proto=<ui-proto 태스크 경로>
→ peach-gen-db spec=<생성된 Spec 경로>
→ peach-team-dev spec=<생성된 Spec 경로>
→ peach-team-e2e spec=<생성된 Spec 경로> [proto=<ui-proto 태스크 경로>]
.md 파일이다.team-dev와 team-e2e가 추가 기획 질문 없이 진행할 수 있을 만큼 확정한다.team-*가 알아서 처리할 테스트 코드, selector, fixture, suite 내부 구현은 Spec에 쓰지 않는다.확정, 구현완료, 검증완료, 차단)을 우선한다.test-data는 복사 정답지가 아니라 기준 골격이다. 후속 gen-*/team-* 스킬은 Bounded Autonomy 안에서 도메인에 맞게 적응할 수 있다.분석 → 권장안 → 사용자 확정 → 문서 반영 순서로 진행한다. AI는 질문을 남발하지 않고 합리적 기본안을 먼저 제시하되, DB 구조·상태 전이·외부 연동·권한 흐름처럼 되돌리기 어려운 판단은 사용자 확정을 받는다.peach-e2e-scenario, suite 통합 규칙은 peach-e2e-suite가 SoT다.docs/spec/{년}/{월}/[개발자아이디]-[YYMMDD]-[한글기능명].md
예:
docs/spec/2026/05/{개발자아이디}-260506-공지사항-게시판.md
개발자 아이디는 whoami를 우선 사용하고, 실패하면 git config user.name을 사용한다.
사람이 기능의 본질을 빠르게 확인하는 섹션이다.
| 섹션 | 정책 |
|---|---|
| 요약 카드 | 의무. 무엇/누가/핵심 액션/신규·변경 테이블/검증 포인트 |
| 핵심 흐름 | 권장. 사용자 액션 1~3개의 sequence diagram |
| 데이터 모델 | 권장. 신규/변경 테이블만 erDiagram으로 표현 |
| 추가 다이어그램 | 선택. 상태 머신이나 특수 흐름이 있을 때만 |
폐기:
team-dev, team-e2e, gen-db가 우선 읽는 실행 기준이다.
| 섹션 | 정책 | 목적 |
|---|---|---|
| 메타 | 의무 | 모듈명, 기능명, UI 패턴, 참조 자료 |
| 1. 기능 범위 | 의무 | CRUD, 특수 액션, 파일/엑셀/외부 연동 |
| 2. 화면/액션 기준 | 의무 | ui-proto 기반 화면, 액션, 성공/오류 상태 |
| 3. DB 스키마 기준 | 의무 | gen-db가 마이그레이션을 만들 수 있는 컬럼/인덱스/참조 |
| 4. API 계약 | 의무 | Backend/Store/Contract가 맞출 요청·응답 기준 |
| 5. 권한·상태·오류·외부의존성 | 의무 | 구현 누락 방지 기준 (5.5 시스템 안전성 포함) |
| 6. TEST_ID 요구사항 | 의무 | 요구사항, 완료 기준, 검증 등급 |
| 7. Backend TDD 기준 | 의무 | 테스트 코드가 아니라 검증해야 할 동작 |
| 8. Store/Contract 기준 | 의무 | API 응답 키와 Store 상태 기준 |
| 9. UI 구현 기준 | 의무 | 화면 상태, 버튼, 토스트, 검증 메시지 |
| 10. E2E 시나리오 | 의무 | 사용자 흐름, 입력, 기대 결과 |
| 11. 파일/모듈 경계 | 의무 | 생성·수정 대상 디렉터리 |
| 12. 제외/금지 사항 | 선택 | 범위 밖 기능과 금지 구현 (12.5 검증 불가 영역 포함) |
| 13. 참조 | 의무 | ui-proto, schema, 기능 문서, 가이드 코드 |
| 항목 | 책임 |
|---|---|
| 테스트 코드, describe/it 상세 | peach-team-dev |
| selector, wait, fixture, suite 코드 | peach-team-e2e |
| 실행 이력, Ralph Loop 이력 | docs/qa/, docs/e2e-suite/ |
| 4축 상태 매트릭스(S/U/I/V) | 사용하지 않음 |
| PRD 추적 표 | 사용하지 않음 |
스킬 실행 시 가장 먼저 대상 프로젝트의 env 파일을 읽어 DB 종류를 판별한다.
api/src/environments/env.local.yml
DATABASE_URL 기준:
| URL | 모드 |
|---|---|
postgresql://... | PostgreSQL |
mysql://... | MySQL |
타입 기준:
| 용도 | PostgreSQL | MySQL |
|---|---|---|
| PK | serial4 | INT AUTO_INCREMENT |
| 정수 | int4 | INT |
| 큰 정수 | int8 | BIGINT |
| 날짜시간 | TIMESTAMP | DATETIME |
| 참조값 | int4 | INT |
타입 매핑 SoT는
peach-gen-db/references/type-mapping.md다. 변경 시 양쪽을 함께 갱신한다.
| 시나리오 | 입력 인자 | 설명 |
|---|---|---|
| ui-proto 기반 | proto=<ui-proto 태스크 경로> | 권장. 확정된 화면 기획안에서 Spec 추출 |
| 기존 개선 | feature-docs=<경로> 또는 컨텍스트 주입 | peach-doc-feature 산출물을 기준으로 변경 Spec 생성 |
| 자연어/대화 | 없음 | 작은 신규 기능을 대화로 수집 |
| DB 초안 보강 | schema=<경로> | 기존 schema/DDL/ERD 초안을 함께 읽어 DB 기준 보강 |
| 토론/확정 | 사용자가 "수정 전", "핵심만", "방향 확정 후 수정" 요청 | 문서를 바로 수정하지 않고 분석·권장안·확인 질문만 반환 |
실행 형태:
/peach-gen-spec proto=<ui-proto 태스크 경로>
/peach-gen-spec proto=<ui-proto 태스크 경로> schema=<schema 또는 DDL 경로>
/peach-gen-spec feature-docs=<기능별설명 폴더>
/peach-gen-spec
proto=<경로> 있음 → ui-proto 기반 모드
feature-docs=<경로> 있음 → 기존 개선 모드
schema=<경로> 있음 → DB 초안 보강
인자 없음 → 자연어/대화 모드
사용자가 "수정 전/핵심만/방향 확정 후 수정" 요청
→ 토론/확정 모드 (문서 수정 보류)
토론/확정 모드에서는 다음 순서로만 응답하고 파일을 수정하지 않는다.
1. 현재 이해
2. 미확정 판단
3. 권장안
4. 사용자 확인 질문
5. 사용자 확정 후에만 문서 반영
ui-proto/기능 문서 외에도 현행 구현 확인을 짧게 수행한다. 결과는 Spec에 길게 쓰지 않고 현행 구조 기반 확장 / 신규 생성 / 제외 정도로 압축한다.
이어서 ui-proto 기반이면 다음 자료를 읽는다.
# 메타
<PROTO_PATH>/_task-meta.ts
# 현업 검토용 설명/기획 개요
<PROTO_PATH>/overview/pages/overview.vue
# 화면 파일
<PROTO_PATH>/**/pages/*.vue
# Mock 데이터
<PROTO_PATH>/**/mock/*.mock.ts
# Mock Store
<PROTO_PATH>/**/store/*.store.ts
# 타입
<PROTO_PATH>/**/type/*.ts
기존 개선 모드이면 feature-docs의 개요 문서를 먼저 읽고 필요한 세부 문서만 추가로 읽는다.
schema 입력이 있으면 테이블/컬럼/인덱스/참조 관계를 읽고 Spec의 DB 스키마 기준에 반영한다.
기본 CRUD:
findPaging)findList)detailOne)insert)update)updateUse)softDelete)특수 액션이 있으면 CRUD와 분리해서 명시한다.
예:
ui-proto에서 다음을 추출하고, 모호한 부분만 사용자에게 확인한다.
gen-db가 바로 마이그레이션을 만들 수 있도록 아래를 확정한다.
is_use, is_delete, insert_seq, insert_date, update_seq, update_dateDB 설계는 컬럼 목록만 쓰지 않는다. 다음 판단을 짧게 남긴다.
모호하면 DB_DECISION_REQUIRED로 남기되, 가능하면 Spec 생성 단계에서 사용자 확인 후 확정한다.
§5 권한·상태·오류·외부의존성 안에 시스템 안전성 소절을 명시한다. 카파시 인터뷰에서 짚은 "동작은 하지만 시스템적으로 위험한 결정"(예: 외부 이메일을 식별자로 사용해 결제와 로그인을 매칭) 부류를 Spec 단계에서 사전 차단한다.
다음 항목을 산문으로 확정한다. 해당 없으면 "해당 없음"으로 적되, "해당 없음"이 너무 많으면 §7.5 자가 점검에서 의심한다.
team-dev와 team-e2e가 같은 기준을 보도록 요청/응답을 명시한다.
list, totalRow, page, rowSize 등 기존 패턴 우선코드 구현 예제는 쓰지 않는다. 계약만 쓴다.
TEST_ID는 요구사항당 하나를 기본으로 한다.
권장 형식:
R-001, R-002 ...
도메인이 명확하면 접두어를 붙인다.
NOTICE-001, NOTICE-002 ...
§6 TEST_ID 표는 모든 요구사항을 나열한다(요구사항 + 완료 기준 + 검증 등급).
각 TEST_ID에 다음 중 하나를 부여한다. team-dev/team-e2e가 등급에 따라 자동 영역과 사용자 확인 영역을 분기한다.
| 등급 | 의미 | 처리 |
|---|---|---|
| 자동(높음) | 타입·테스트·계약 | team-dev/e2e 자동 |
| 자동(중간) | 비즈니스 규칙 | TEST_ID 매핑 후 자동 |
| 사람(중간) | 권한·교차 매칭·시스템 안전성 | 사용자 확인 필수 |
| 사람(낮음) | 미학·카피·실거래 정확성 | 자동 루프 금지, §12.5에 함께 명시 |
§7 Backend TDD, §10 E2E는 TEST_ID 전부를 다루지 않는다. 핵심 검증만 골라 작성한다.
단순 CRUD 기본 동작(필수값 검증, 정상 insert, 정상 update)은 team-dev가 표준 패턴으로 처리하므로 Spec에 적지 않는다.
peach-e2e-scenario / peach-e2e-suite가 SoT다. Spec에는 흐름 의도만 둔다.예:
TEST_ID: NOTICE-001 (등록 흐름 — 핵심)
Backend TDD: 등록자/등록일 저장 + 필수값 검증
E2E 단위: 빈 목록 → 등록 → 필수값 입력 → 저장 → 목록에 노출
TEST_ID: NOTICE-005 (승인 흐름 — 상태 전이)
Backend TDD: 승인요청 → 승인 상태 전이, 권한 차단
E2E 단위: 등록된 공지 → 승인요청 → 관리자 로그인 → 승인 → 상태 변경 확인
E2E suite: 공지 라이프사이클
단위(등록) → 단위(승인) → 사용여부 변경 → 삭제
8단계 파일 생성 전에 다음 5개 질문을 자체 점검한다. 하나라도 문제가 있으면 사용자에게 보고하고 보강 후 8단계로 넘어간다.
이 점검은 카파시가 짚은 jagged intelligence 영역을 Spec 단계에서 분리하기 위한 것이다. 점검 결과는 완료 보고에 한 줄로 남긴다.
.md 파일 한 개를 생성한다.assets/spec-template.md를 읽어 치환한다.확정으로 쓴다.DECISION_REQUIRED 또는 DB_DECISION_REQUIRED로 남기고 완료 보고에서 차단 항목으로 알린다.spec-template.md를 읽어 치환한다.
주요 플레이스홀더:
| 플레이스홀더 | 의미 |
|---|---|
FEATURE_NAME_KR | 한글 기능명 |
DESCRIPTION | 한줄 설명 |
MODULE_NAME | 모듈명 |
TABLE_NAME | 테이블명 |
DB_TYPE | PostgreSQL/MySQL |
STATUS | 초안/확정/차단 |
SOURCE_REFERENCES | ui-proto/schema/기능 문서 경로 |
SUMMARY_* | Part A 요약 카드 |
SEQUENCE_DIAGRAM_BODY | 핵심 흐름 sequence body |
ER_DIAGRAM_BODY | 데이터 모델 erDiagram body |
FUNCTION_SCOPE | CRUD/특수 액션/파일 기능 |
SCREEN_ACTION_CRITERIA | 화면/액션/성공/오류 기준 |
SCHEMA_COLUMNS | DB 컬럼 표 본문 |
SCHEMA_INDEXES | 인덱스 SQL |
REFERENCE_RELATIONS | 논리 참조 관계 |
DB_CHANGE_CANDIDATES | DB 변경 후보 |
API_CONTRACTS | API 계약 |
RULES_PROSE | 권한/상태/오류/외부의존성 |
SYSTEM_SAFETY | 시스템 안전성 (식별자/소유 경계/교차 매칭 금지/회귀 위험) |
REQUIREMENT_MATRIX | TEST_ID 요구사항 매트릭스 (검증 등급 포함) |
TDD_CRITERIA | Backend TDD 기준 |
STORE_CONTRACT_CRITERIA | Store/Contract 기준 |
UI_IMPLEMENTATION_CRITERIA | UI 구현 기준 |
E2E_SCENARIOS | E2E 단위 시나리오 |
E2E_SUITES | E2E 통합 suite (선택) |
MODULE_BOUNDARIES | 파일/모듈 경계 |
FORBIDDEN_ITEMS | 제외/금지 사항 |
UNVERIFIABLE_AREAS | 검증 불가 영역 (자동 검증 금지, 사용자 확인 영역) |
REFERENCE_INDEX | 참조 인덱스 |
□ DB 종류 판별 완료
□ ui-proto/기능 문서/schema 입력 자료 확인 완료
□ 기능 범위 확정
□ 화면/액션/성공/오류 기준 확정
□ DB 스키마 기준 확정 또는 DB_DECISION_REQUIRED 명시
□ API 계약 확정
□ §5.5 시스템 안전성 확정 (식별자/소유 경계/교차 매칭/회귀 위험)
□ TEST_ID 요구사항 매트릭스 확정 (검증 등급 포함)
□ Backend TDD 기준 확정
□ Store/Contract 기준 확정
□ UI 구현 기준 확정
□ E2E 시나리오 확정
□ §12.5 검증 불가 영역 명시 (없으면 "해당 없음")
□ §7.5 검증성 자가 점검 5개 질문 통과
□ 제외/금지 사항 확인
□ 단일 Spec 파일(.md) 생성 완료
□ team-dev/team-e2e가 추가 기획 질문 없이 실행 가능한지 자체 점검 완료
Spec 생성이 완료되었습니다.
산출물: docs/spec/{년}/{월}/[개발자]-[YYMMDD]-[기능명].md
다음 단계:
1) DB 마이그레이션 생성
/peach-gen-db spec=docs/spec/.../[기능명].md
2) 본 개발
/peach-team-dev [모듈명] mode=fullstack spec=docs/spec/.../[기능명].md
3) E2E 검증
/peach-team-e2e spec=docs/spec/.../[기능명].md [proto=<ui-proto 태스크 경로>]
사용자가 후속 구현을 별도 세션/worktree에서 이어가려면 다음 인계 정보를 함께 안내한다.
- 대상 저장소
- 기준 브랜치 / feature branch 추천명
- Spec 문서 경로
- Spec 확정 커밋
- worktree 추천 경로 (peach-worktree 스킬 활용 가능)
- team-dev 실행 명령
- team-e2e 실행 명령
- commit/push 전 사용자 확인 원칙
Spec 주도 개발 예제는 examples.md를 필요한 경우에만 읽는다.
team-dev와 team-e2e가 임의 구현하지 않는다.