Product Requirements
제품 아이디어를 검증 가능한 PRD로 바꾼다. 문서 작성까지만 수행하고 구현, 배포, 결제, 삭제,
외부 전송 또는 외부 시스템 변경은 수행하지 않는다.
작업 절차
- 사용자 입력과 제공된 근거에서 문제, 대상 사용자, 기대 결과, 범위와 제약을 추출한다.
- 각 내용을 다음 상태 중 하나로 분류한다. 상태 사이를 추론으로 넘기지 않는다.
[사실]: 사용자가 명시했거나 제공된 근거로 확인된 내용
[가정]: 초안을 진행하기 위해 임시로 둔 내용. 검증 방법이나 확인 주체를 함께 적는다.
[미확정]: 정보가 없거나 이해관계자의 결정이 필요한 내용
- 질문 없이도 실행 가능한 PRD를 만들 수 있으면 미확정 사항을 표시하고 바로 작성한다.
- 답에 따라 핵심 사용자·결과·범위가 달라지거나 테스트 가능한 인수 기준을 만들 수 없을 때만
질문한다. 되돌리기 어려운 결정은 아래 확인 게이트를 먼저 적용한다.
- 기능 요구사항과 인수 기준을 양방향으로 연결하고, 경계 조건과 실패 처리를 검토한다.
- 아래 출력 계약으로 PRD를 작성한 뒤 자체 검수한다.
질문 계약
질문이 필요하면 다음 규칙을 모두 지킨다.
- 질문을 출력하기 전에 설치된
korean-dev-writer의 SKILL.md를 찾아 완전히 읽고 그 작성 계약을
적용한다. 스킬이 없거나 읽을 수 없으면 질문과 PRD를 출력하지 말고 의존성을 사용할 수 없다고
알린 뒤 중단한다.
- 한 응답에는 한국어 자유형 질문 하나만 출력한다. 선택지, 체크리스트, 복수 질문, 질문 뒤의 초안을
붙이지 않는다.
- 질문은 한 가지 결정에만 초점을 맞춘다. 여러 미확정 사항이 있으면 PRD를 가장 크게 바꾸거나 위험이
가장 큰 항목부터 한 번에 하나씩 묻는다.
- 있으면 좋은 정보나 표현 선호는 묻지 말고
[미확정]으로 남긴다.
되돌리기 어려운 결정 확인 게이트
다음 결정은 사용자가 결과와 범위를 명시적으로 확인하기 전까지 승인되거나 확정된 요구사항으로 쓰지
않는다.
- 되돌릴 수 없는 비용 또는 자원 약정
- 보안 통제나 보안 수준 변경
- 개인정보의 수집, 보관, 공유 또는 처리 목적 변경
- 사람이나 외부 시스템으로 데이터·메시지를 보내는 외부 전송
- 결제 또는 금전 이동
- 데이터·계정·리소스 삭제
- 공개 API의 신규 노출, 호환성 파괴 또는 계약 변경
침묵, 기본값, 업계 관행은 확인이 아니다. 사용자가 해당 결과와 범위를 명시적으로 승인한 경우만
확인으로 기록한다. 확인되지 않은 항목은 선택지와 영향을 [미확정]으로 남기고 질문 계약에 따라 가장
위험한 결정 하나만 묻는다. 문서를 작성하는 동안 실제 외부 전송이나 변경은 실행하지 않는다.
요구사항과 인수 기준 계약
- 기능 요구사항에
FR-001부터 안정적인 ID를 부여한다.
- 각 요구사항은 행위자, 발생 조건, 관찰 가능한 동작 또는 결과를 명시한다. 내부 구현 방법을 요구사항으로
바꾸지 않는다.
- 모든 기능 요구사항에 하나 이상의 인수 기준을 연결하고, 모든 인수 기준은 하나의 기능 요구사항을
참조한다.
- 인수 기준에
AC-001 (FR-001) 형식의 ID와 연결을 쓰고 Given, When, Then을 각각 명시한다.
- 정상 흐름뿐 아니라 권한 없음, 잘못된 입력, 중복 요청, 부분 실패, 타임아웃, 재시도, 취소, 빈 상태,
경계값 중 관련 있는 조건을 검토한다. 근거 없는 동작은
[가정] 또는 [미확정]으로 표시한다.
- 성공 지표의 이름, 기준선, 목표값, 측정 기간이나 데이터 출처를 추측하지 않는다. 사용자가 제공하지 않은
항목은
[미확정]으로 남긴다.
출력 계약
아래 H2 제목을 이 순서와 표기로 모두 사용한다. 이름을 바꾸거나, 빠뜨리거나, H2 제목을 추가하지 않는다.
각 섹션에 해당 상태를 구분해 적고, 근거가 없는 내용을 사실처럼 단정하지 않는다.
문제
대상 사용자
목표
비목표
사용자 흐름
기능 요구사항
인수 기준
경계 조건과 실패 처리
성공 지표
우선순위
가정과 미확정 사항
위험과 의사결정 필요 항목
개발 handoff
가정과 미확정 사항에서는 [가정]과 [미확정]을 별도 목록으로 유지한다. 사실과 출처는 관련 섹션에
[사실]로 표시한다. 우선순위와 성공 지표도 제공된 근거만 사용하고, 없으면 미확정으로 둔다.
개발 handoff에는 다음 필드만 사용한다. 기술 설계, 구현 단계, 파일 목록, 배포 계획은 추가하지 않는다.
- 사용자 결과
- 변경 범위
- 인수 기준
- 검증
- 위험
- 차단 요인
최종 검수
- 모든 H2 제목이 정확한 순서로 한 번씩 있는가?
- 사실, 가정, 미확정 사항이 서로 섞이지 않았는가?
- 모든 FR이 관찰 가능하고 AC와 연결됐으며 모든 AC가 Given/When/Then 형식인가?
- 근거 없는 지표, 수치, 우선순위, 사용자 행동 또는 시스템 동작을 만들지 않았는가?
- 되돌리기 어려운 결정이 명시적으로 확인됐는가?
- 개발 handoff가 허용된 여섯 필드만 포함하는가?
- 구현, 배포, 외부 전송 또는 외부 시스템 변경을 수행하지 않았는가?
1---2name: product-requirements3description: 제품 아이디어, 기능 제안, 사용자 문제를 구현 가능한 제품 요구사항 문서(PRD)로 구체화한다. 제품 범위와 사용자 흐름을 정리하고, 관찰 가능한 기능 요구사항과 Given/When/Then 인수 기준을 연결하거나, 개발 handoff를 준비해야 할 때 사용한다. 아이디어 자체를 구현·배포하거나 외부 시스템을 변경하는 작업에는 사용하지 않는다.4---56# Product Requirements78제품 아이디어를 검증 가능한 PRD로 바꾼다. 문서 작성까지만 수행하고 구현, 배포, 결제, 삭제,9외부 전송 또는 외부 시스템 변경은 수행하지 않는다.1011## 작업 절차12131. 사용자 입력과 제공된 근거에서 문제, 대상 사용자, 기대 결과, 범위와 제약을 추출한다.142. 각 내용을 다음 상태 중 하나로 분류한다. 상태 사이를 추론으로 넘기지 않는다.15 - `[사실]`: 사용자가 명시했거나 제공된 근거로 확인된 내용16 - `[가정]`: 초안을 진행하기 위해 임시로 둔 내용. 검증 방법이나 확인 주체를 함께 적는다.17 - `[미확정]`: 정보가 없거나 이해관계자의 결정이 필요한 내용183. 질문 없이도 실행 가능한 PRD를 만들 수 있으면 미확정 사항을 표시하고 바로 작성한다.194. 답에 따라 핵심 사용자·결과·범위가 달라지거나 테스트 가능한 인수 기준을 만들 수 없을 때만20 질문한다. 되돌리기 어려운 결정은 아래 확인 게이트를 먼저 적용한다.215. 기능 요구사항과 인수 기준을 양방향으로 연결하고, 경계 조건과 실패 처리를 검토한다.226. 아래 출력 계약으로 PRD를 작성한 뒤 자체 검수한다.2324## 질문 계약2526질문이 필요하면 다음 규칙을 모두 지킨다.2728- 질문을 출력하기 전에 설치된 `korean-dev-writer`의 `SKILL.md`를 찾아 완전히 읽고 그 작성 계약을29 적용한다. 스킬이 없거나 읽을 수 없으면 질문과 PRD를 출력하지 말고 의존성을 사용할 수 없다고30 알린 뒤 중단한다.31- 한 응답에는 한국어 자유형 질문 하나만 출력한다. 선택지, 체크리스트, 복수 질문, 질문 뒤의 초안을32 붙이지 않는다.33- 질문은 한 가지 결정에만 초점을 맞춘다. 여러 미확정 사항이 있으면 PRD를 가장 크게 바꾸거나 위험이34 가장 큰 항목부터 한 번에 하나씩 묻는다.35- 있으면 좋은 정보나 표현 선호는 묻지 말고 `[미확정]`으로 남긴다.3637## 되돌리기 어려운 결정 확인 게이트3839다음 결정은 사용자가 결과와 범위를 명시적으로 확인하기 전까지 승인되거나 확정된 요구사항으로 쓰지40않는다.4142- 되돌릴 수 없는 비용 또는 자원 약정43- 보안 통제나 보안 수준 변경44- 개인정보의 수집, 보관, 공유 또는 처리 목적 변경45- 사람이나 외부 시스템으로 데이터·메시지를 보내는 외부 전송46- 결제 또는 금전 이동47- 데이터·계정·리소스 삭제48- 공개 API의 신규 노출, 호환성 파괴 또는 계약 변경4950침묵, 기본값, 업계 관행은 확인이 아니다. 사용자가 해당 결과와 범위를 명시적으로 승인한 경우만51확인으로 기록한다. 확인되지 않은 항목은 선택지와 영향을 `[미확정]`으로 남기고 질문 계약에 따라 가장52위험한 결정 하나만 묻는다. 문서를 작성하는 동안 실제 외부 전송이나 변경은 실행하지 않는다.5354## 요구사항과 인수 기준 계약5556- 기능 요구사항에 `FR-001`부터 안정적인 ID를 부여한다.57- 각 요구사항은 행위자, 발생 조건, 관찰 가능한 동작 또는 결과를 명시한다. 내부 구현 방법을 요구사항으로58 바꾸지 않는다.59- 모든 기능 요구사항에 하나 이상의 인수 기준을 연결하고, 모든 인수 기준은 하나의 기능 요구사항을60 참조한다.61- 인수 기준에 `AC-001 (FR-001)` 형식의 ID와 연결을 쓰고 `Given`, `When`, `Then`을 각각 명시한다.62- 정상 흐름뿐 아니라 권한 없음, 잘못된 입력, 중복 요청, 부분 실패, 타임아웃, 재시도, 취소, 빈 상태,63 경계값 중 관련 있는 조건을 검토한다. 근거 없는 동작은 `[가정]` 또는 `[미확정]`으로 표시한다.64- 성공 지표의 이름, 기준선, 목표값, 측정 기간이나 데이터 출처를 추측하지 않는다. 사용자가 제공하지 않은65 항목은 `[미확정]`으로 남긴다.6667## 출력 계약6869아래 H2 제목을 이 순서와 표기로 모두 사용한다. 이름을 바꾸거나, 빠뜨리거나, H2 제목을 추가하지 않는다.70각 섹션에 해당 상태를 구분해 적고, 근거가 없는 내용을 사실처럼 단정하지 않는다.7172<!-- PRD_TEMPLATE_START -->73## 문제7475## 대상 사용자7677## 목표7879## 비목표8081## 사용자 흐름8283## 기능 요구사항8485## 인수 기준8687## 경계 조건과 실패 처리8889## 성공 지표9091## 우선순위9293## 가정과 미확정 사항9495## 위험과 의사결정 필요 항목9697## 개발 handoff98<!-- PRD_TEMPLATE_END -->99100`가정과 미확정 사항`에서는 `[가정]`과 `[미확정]`을 별도 목록으로 유지한다. 사실과 출처는 관련 섹션에101`[사실]`로 표시한다. 우선순위와 성공 지표도 제공된 근거만 사용하고, 없으면 미확정으로 둔다.102103`개발 handoff`에는 다음 필드만 사용한다. 기술 설계, 구현 단계, 파일 목록, 배포 계획은 추가하지 않는다.104105- 사용자 결과106- 변경 범위107- 인수 기준108- 검증109- 위험110- 차단 요인111112## 최종 검수113114- 모든 H2 제목이 정확한 순서로 한 번씩 있는가?115- 사실, 가정, 미확정 사항이 서로 섞이지 않았는가?116- 모든 FR이 관찰 가능하고 AC와 연결됐으며 모든 AC가 Given/When/Then 형식인가?117- 근거 없는 지표, 수치, 우선순위, 사용자 행동 또는 시스템 동작을 만들지 않았는가?118- 되돌리기 어려운 결정이 명시적으로 확인됐는가?119- 개발 handoff가 허용된 여섯 필드만 포함하는가?120- 구현, 배포, 외부 전송 또는 외부 시스템 변경을 수행하지 않았는가?