# Product Requirements

> 제품 아이디어, 기능 제안, 사용자 문제를 구현 가능한 제품 요구사항 문서(PRD)로 구체화한다. 제품 범위와 사용자 흐름을 정리하고, 관찰 가능한 기능 요구사항과 Given/When/Then 인수 기준을 연결하거나, 개발 handoff를 준비해야 할 때 사용한다. 아이디어 자체를 구현·배포하거나 외부 시스템을 변경하는 작업에는 사용하지 않는다.

- Skill: `ch4570/product-requirements` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add ch4570/product-requirements`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ch4570/product-requirements/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: ch4570 (https://skillmd.com/u/ch4570)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ch4570/product-requirements

---


# Product Requirements

제품 아이디어를 검증 가능한 PRD로 바꾼다. 문서 작성까지만 수행하고 구현, 배포, 결제, 삭제,
외부 전송 또는 외부 시스템 변경은 수행하지 않는다.

## 작업 절차

1. 사용자 입력과 제공된 근거에서 문제, 대상 사용자, 기대 결과, 범위와 제약을 추출한다.
2. 각 내용을 다음 상태 중 하나로 분류한다. 상태 사이를 추론으로 넘기지 않는다.
   - `[사실]`: 사용자가 명시했거나 제공된 근거로 확인된 내용
   - `[가정]`: 초안을 진행하기 위해 임시로 둔 내용. 검증 방법이나 확인 주체를 함께 적는다.
   - `[미확정]`: 정보가 없거나 이해관계자의 결정이 필요한 내용
3. 질문 없이도 실행 가능한 PRD를 만들 수 있으면 미확정 사항을 표시하고 바로 작성한다.
4. 답에 따라 핵심 사용자·결과·범위가 달라지거나 테스트 가능한 인수 기준을 만들 수 없을 때만
   질문한다. 되돌리기 어려운 결정은 아래 확인 게이트를 먼저 적용한다.
5. 기능 요구사항과 인수 기준을 양방향으로 연결하고, 경계 조건과 실패 처리를 검토한다.
6. 아래 출력 계약으로 PRD를 작성한 뒤 자체 검수한다.

## 질문 계약

질문이 필요하면 다음 규칙을 모두 지킨다.

- 질문을 출력하기 전에 설치된 `korean-dev-writer`의 `SKILL.md`를 찾아 완전히 읽고 그 작성 계약을
  적용한다. 스킬이 없거나 읽을 수 없으면 질문과 PRD를 출력하지 말고 의존성을 사용할 수 없다고
  알린 뒤 중단한다.
- 한 응답에는 한국어 자유형 질문 하나만 출력한다. 선택지, 체크리스트, 복수 질문, 질문 뒤의 초안을
  붙이지 않는다.
- 질문은 한 가지 결정에만 초점을 맞춘다. 여러 미확정 사항이 있으면 PRD를 가장 크게 바꾸거나 위험이
  가장 큰 항목부터 한 번에 하나씩 묻는다.
- 있으면 좋은 정보나 표현 선호는 묻지 말고 `[미확정]`으로 남긴다.

## 되돌리기 어려운 결정 확인 게이트

다음 결정은 사용자가 결과와 범위를 명시적으로 확인하기 전까지 승인되거나 확정된 요구사항으로 쓰지
않는다.

- 되돌릴 수 없는 비용 또는 자원 약정
- 보안 통제나 보안 수준 변경
- 개인정보의 수집, 보관, 공유 또는 처리 목적 변경
- 사람이나 외부 시스템으로 데이터·메시지를 보내는 외부 전송
- 결제 또는 금전 이동
- 데이터·계정·리소스 삭제
- 공개 API의 신규 노출, 호환성 파괴 또는 계약 변경

침묵, 기본값, 업계 관행은 확인이 아니다. 사용자가 해당 결과와 범위를 명시적으로 승인한 경우만
확인으로 기록한다. 확인되지 않은 항목은 선택지와 영향을 `[미확정]`으로 남기고 질문 계약에 따라 가장
위험한 결정 하나만 묻는다. 문서를 작성하는 동안 실제 외부 전송이나 변경은 실행하지 않는다.

## 요구사항과 인수 기준 계약

- 기능 요구사항에 `FR-001`부터 안정적인 ID를 부여한다.
- 각 요구사항은 행위자, 발생 조건, 관찰 가능한 동작 또는 결과를 명시한다. 내부 구현 방법을 요구사항으로
  바꾸지 않는다.
- 모든 기능 요구사항에 하나 이상의 인수 기준을 연결하고, 모든 인수 기준은 하나의 기능 요구사항을
  참조한다.
- 인수 기준에 `AC-001 (FR-001)` 형식의 ID와 연결을 쓰고 `Given`, `When`, `Then`을 각각 명시한다.
- 정상 흐름뿐 아니라 권한 없음, 잘못된 입력, 중복 요청, 부분 실패, 타임아웃, 재시도, 취소, 빈 상태,
  경계값 중 관련 있는 조건을 검토한다. 근거 없는 동작은 `[가정]` 또는 `[미확정]`으로 표시한다.
- 성공 지표의 이름, 기준선, 목표값, 측정 기간이나 데이터 출처를 추측하지 않는다. 사용자가 제공하지 않은
  항목은 `[미확정]`으로 남긴다.

## 출력 계약

아래 H2 제목을 이 순서와 표기로 모두 사용한다. 이름을 바꾸거나, 빠뜨리거나, H2 제목을 추가하지 않는다.
각 섹션에 해당 상태를 구분해 적고, 근거가 없는 내용을 사실처럼 단정하지 않는다.

<!-- PRD_TEMPLATE_START -->
## 문제

## 대상 사용자

## 목표

## 비목표

## 사용자 흐름

## 기능 요구사항

## 인수 기준

## 경계 조건과 실패 처리

## 성공 지표

## 우선순위

## 가정과 미확정 사항

## 위험과 의사결정 필요 항목

## 개발 handoff
<!-- PRD_TEMPLATE_END -->

`가정과 미확정 사항`에서는 `[가정]`과 `[미확정]`을 별도 목록으로 유지한다. 사실과 출처는 관련 섹션에
`[사실]`로 표시한다. 우선순위와 성공 지표도 제공된 근거만 사용하고, 없으면 미확정으로 둔다.

`개발 handoff`에는 다음 필드만 사용한다. 기술 설계, 구현 단계, 파일 목록, 배포 계획은 추가하지 않는다.

- 사용자 결과
- 변경 범위
- 인수 기준
- 검증
- 위험
- 차단 요인

## 최종 검수

- 모든 H2 제목이 정확한 순서로 한 번씩 있는가?
- 사실, 가정, 미확정 사항이 서로 섞이지 않았는가?
- 모든 FR이 관찰 가능하고 AC와 연결됐으며 모든 AC가 Given/When/Then 형식인가?
- 근거 없는 지표, 수치, 우선순위, 사용자 행동 또는 시스템 동작을 만들지 않았는가?
- 되돌리기 어려운 결정이 명시적으로 확인됐는가?
- 개발 handoff가 허용된 여섯 필드만 포함하는가?
- 구현, 배포, 외부 전송 또는 외부 시스템 변경을 수행하지 않았는가?

