Appearance
Status Lifecycle
metadata.status는 명세의 현재 상태를 나타낸다. 4단계를 순서대로 진행한다.
상태 전이
draft → review → approved → implemented| 상태 | 의미 | 전환 조건 |
|---|---|---|
draft | 작성 중 | 초기 상태 |
review | 검토 대기 | 모든 openQuestions가 결정됨 |
approved | 승인됨, 구현 가능 | 이해관계자가 명세를 승인 |
implemented | 구현 완료 | 코드와 테스트가 명세를 충족 |
draft
명세를 작성하는 단계다. 필드를 추가하고, 수정하고, openQuestions를 기록한다.
yaml
metadata:
status: draft
openQuestions:
- 장바구니 항목 수 제한이 필요한가?
- 비회원 장바구니의 만료 기간은?status를 생략하면 draft로 간주한다.
review
미결정 사항이 모두 해결되어 검토를 요청하는 단계다.
yaml
metadata:
status: review
openQuestions:
- text: 장바구니 항목 수 제한이 필요한가?
decidedAt: 2026-02-01
decision: 제한 없음
- text: 비회원 장바구니의 만료 기간은?
decidedAt: 2026-02-01
decision: 7일 후 자동 삭제review로 전환하려면 모든 openQuestions에 decidedAt과 decision이 있어야 한다.
approved
명세가 승인되어 구현에 들어갈 수 있는 단계다. 이 시점부터 명세의 behaviors, scenarios, constraints를 변경하지 않는 것이 원칙이다.
yaml
metadata:
status: approvedimplemented
코드와 테스트가 명세의 모든 behaviors와 scenarios를 충족하는 단계다.
yaml
metadata:
status: implementedopenQuestions와의 관계
openQuestions는 status 전이의 게이트 역할을 한다:
- 미결정 질문이 있으면 →
draft에 머문다 - 모든 질문이 결정되면 →
review로 전환할 수 있다 openQuestions가 없으면 → 바로review로 전환할 수 있다
다음 단계
- 축약 문법 — 문자열과 객체를 혼용하는 패턴을 이해한다