SP 04 1 CONTRACT WRITING
# Stage 4-1 Prompt: Prompt Contract 작성 및 5-Clause 변환
> Spec-Contract v5.0 | Cycle: 개발 계획
> Stage Prompt ID: SP-04-1
---
## CONTEXT
- **현재 위치:** 개발 Cycle > Stage 4-1
- **이전 Stage:** Stage 3 아키텍처 설계 (산출물: `Architecture_Design.md`, `02_SPECIFICATIONS.md`)
- **다음 Stage:** Stage 4-2 계획 확인 및 Checkpoint (산출물: `03_PROMPT_CONTRACTS.md` 검증)
- **산출물 종류:** Contract 문서 (실행 전 품질 보증)
---
## OBJECTIVE
SPECIFICATIONS.md의 각 서브 프로젝트/Phase를 **5-Clause Prompt Contract**로 변환하여,
개별 Claude Code 세션이 명확한 실행 지침을 받습니다.
**성공 기준:**
1. SPECIFICATIONS.md의 모든 Phase가 개별 Contract로 변환됨
2. 각 Contract는 5개 조항(GOAL, CONSTRAINTS, FORMAT, ADJACENT CODE, FAILURE CONDITIONS)을 완전히 포함
3. "think hard" 기준을 정량적으로 판별하여 필요시 추가
4. 모든 Contract가 `03_PROMPT_CONTRACTS.md`에 수집되고 공통 FC-00a~e 참조
---
## CONSTRAINTS
**MUST DO:**
- [ ] SPECIFICATIONS.md의 **모든 Phase를 빠짐 없이** 개별 Contract로 변환
- [ ] 각 Contract의 GOAL은 **1분 내 검증 가능한 기준**으로 기술 (자동/수동/혼합 명시)
- [ ] FORMAT은 파일 트리 구조로 표시 (생성/수정 파일명 + 주석)
- [ ] ADJACENT CODE는 CLI 명령으로 검증 가능한 형식으로 기술
- [ ] FAILURE CONDITIONS에 공통 FC-00a~e를 항상 포함하고, 프로젝트별 FC-xx 추가
- [ ] "think hard" 정량 기준 적용:
- **FORMAT의 생성/수정 파일 수 ≥ 4개** → +1 점
- **ADJACENT CODE 항목 ≥ 3개** → +1 점
- **CONSTRAINTS에 상태 관리 설계 포함** → +1 점
- **새로운 아키텍처 패턴 도입 필요** → +1 점
- **≥ 2점이면 "think hard" 추가**
- [ ] 세션/왕복 제한: 45분 / 15회 왕복을 모든 Contract에 명시
**MUST NOT DO:**
- [ ] SPECIFICATIONS를 재해석하거나 범위를 확장하지 말 것
- [ ] 단순 "UI 구현"같은 추상적 GOAL 작성 금지 (CLI 검증 불가)
- [ ] ADJACENT CODE를 생략하거나 과도하게 많이 (2~5개 권장)
- [ ] Prompt Contract 템플릿에 없는 조항을 자의적으로 추가하지 말 것
**SCOPE:**
- SPECIFICATIONS.md의 각 Phase → 개별 Contract로만 변환
- 코드 생성이나 검증은 이 Stage에서 수행하지 않음
- Contract 수집 및 최종 `03_PROMPT_CONTRACTS.md` 생성
---
## INPUT ARTIFACTS
| ID | 파일 경로 | 참조 내용 |
|----|----------|----------|
| A-201 | `/methodology/v5/STAGE_PROMPT_TEMPLATE.md` | Stage Prompt 6-Section 표준 구조 |
| A-202 | `/methodology/v5/templates/03_PROMPT_CONTRACT_md_template_v5.md` | Prompt Contract 5-Clause 템플릿 |
| A-203 | `/02_SPECIFICATIONS.md` | 변환 대상 SPECIFICATIONS (Phase 정의) |
| A-204 | `/03_PROMPT_CONTRACTS.md` (기존) | 기존 v4.0 Contract 참고 + 공통 FC-00a~e 추출 |
| A-205 | `/CLAUDE.md` | 프로젝트 하드 바운더리 (FAILURE CONDITIONS에 FC-00a로 포함) |
---
## OUTPUT ARTIFACTS
| ID | 파일 경로 | 형식 | 등급 | 설명 |
|----|----------|------|:----:|------|
| A-206 | `docs/methodology/v5/templates/03_PROMPT_CONTRACT_md_template_v5.md` | 📄 MD | 🏛️ | 5-Clause Contract 템플릿 (Part A 빈 양식 + Part B 예시) |
| A-207 | `docs/03_PROMPT_CONTRACTS.md` (v5.0 신규) | 📄 MD | 🏛️ | 모든 Phase의 개별 Contract + 공통 FC-00a~e 정의 + 검증 CLI |
---
## EXECUTION RULES
1. **Contract 작성 단계:**
- SPECIFICATIONS.md를 읽고 각 서브 프로젝트/Phase 식별
- 각 Phase마다 5-Clause Contract 작성 (템플릿 A-202 참조)
- 정량 기준 판별: FORMAT 파일 ≥4 + ADJACENT ≥3 + 상태관리 + 새 패턴 중 2개 이상 → "think hard" 추가
2. **"think hard" 판별 알고리즘:**
```
점수 계산:
- FORMAT의 신규/수정 파일 ≥ 4개: +1점
- ADJACENT CODE 항목 ≥ 3개: +1점
- CONSTRAINTS에 상태관리(Redux/Context/Zod/타입스크립트 상태) 포함: +1점
- 새 아키텍처 패턴(MVC→MVVM, 모노레포→멀티레포 등) 도입 필요: +1점
최종 판별:
- 점수 ≥ 2 → "think hard" 프롬프트 추가 (Prompt 시작에 "이 작업은 복잡합니다. 신중히 생각하세요."라는 취지)
- 점수 < 2 → 생략 (토큰 절약)
```
3. **FAILURE CONDITIONS 표준화:**
- **공통 FC-00a~e를 모든 Contract에 포함:**
- **FC-00a:** CLAUDE.md 하드 바운더리 위반 (any 타입, var, CSS-in-JS, Prisma 미지정 시 사용 등)
- **FC-00b:** SCOPE에 명시되지 않은 파일 수정
- **FC-00c:** ADJACENT CODE 파일의 기존 기능 파손
- **FC-00d:** TypeScript `tsc --noEmit` 에러 발생
- **FC-00e:** console.log 잔존 (logger 미사용)
- 프로젝트별 추가 FC-xx 정의
4. **ADJACENT CODE 식별 가이드:**
- 동일 DB 테이블/API 엔드포인트를 사용하는 파일 우선
- 임포트 추적: `grep -r "import.*from" [FORMAT파일들] --include="*.ts"`
- 2~5개 권장 (과도하면 복잡도 증가)
5. **Contract 수집 및 최종 문서:**
- 모든 Contract를 `03_PROMPT_CONTRACTS.md` v5.0에 수집
- 메타 헤더: "55개 Phase × 5개 조항", 공통 FC-00a~e 정의, "think hard" 매핑 규칙 명시
- 각 Contract의 메타정보: 태스크 ID, 복잡도(S/M/L), 검증 유형(🤖/👁️/🔀)
6. **Template v5.0 생성 (A-206):**
- Part A: 빈 양식 (복사용)
- Part B: 구체적 예시 1개 (기존 v4.0 예시 참조 + v5.0 업데이트)
- v5.0 신규 포함 사항:
- Plan Lock Directive 참조 추가
- 공통 FC-00a~e 참조 추가
- "think hard" 정량 기준 명시
7. **에러 처리:**
- SPECIFICATIONS에 Phase가 불명확한 경우 → 분석하여 논리적 경계 설정
- ADJACENT CODE를 특정하기 어려운 경우 → CLI 명령 추가 및 수동 검증 가이드 기술
8. **완료 확인:**
- [ ] SPECIFICATIONS.md의 모든 Phase가 Contract로 변환되었는가?
- [ ] 모든 Contract가 5-Clause 구조를 완전히 포함하는가?
- [ ] "think hard" 판별이 정량적으로 수행되었는가?
- [ ] `03_PROMPT_CONTRACTS.md` v5.0에 공통 FC-00a~e 정의가 명시되어 있는가?
---
## 추가 참고
### Contract 작성 시 체크리스트
각 Contract 작성 후 아래를 확인하세요:when to use it
Community prompt sourced from the open-source GitHub repo SunnyBan101/spec-contract-v5 (no explicit license). A "SP 04 1 CONTRACT WRITING" style prompt — adapt the placeholders and specifics to your task. Imported as-is and not independently retested here, so check the output before relying on it.
tags
roleplaycommunitygeneral
source
SunnyBan101/spec-contract-v5 · no explicit license