# SDD: <Milestone 이름>

## 위치

- Milestone: `agent-roadmap/phase/<phase-slug>/milestones/<milestone-slug>.md`
- Phase: `agent-roadmap/phase/<phase-slug>/PHASE.md`

## 상태

[<초안 | 검토중 | 승인됨 | 대체됨 | 폐기>]

## SDD 잠금

- 상태: <잠금 | 해제>
- 사용자 리뷰: <없음 | `USER_REVIEW.md`>
- 잠금 항목:
  - [ ] [D01] <사용자만 결정할 source of truth, 상태 전이, 책임 경계, 범위, 권한, 비용, 실패 처리 항목>

## 문제 / 비목표

- 문제: <이 SDD가 고정해야 하는 큰 작업의 모호함>
- 비목표:
  - <이번 Milestone에서 의도적으로 다루지 않는 설계 범위>

## Source of Truth

| 영역 | 기준 | 메모 |
|------|------|------|
| Roadmap | `<path>` | <장기 원장, 상태 반영 기준> |
| Code | `<path>` | <구현 source of truth> |
| External Provider | <없음 또는 provider> | <provider id/revision/status 기준> |
| User Decision | <없음 또는 D-id> | <사용자 결정이 필요한 기준> |

## State Machine

| 상태 | 진입 조건 | 다음 상태 | 근거 |
|------|-----------|-----------|------|
| <state> | <condition> | <state> | <event/file/provider> |

## Interface Contract

- 계약 원문: <없음 또는 `agent-contract/...` 링크>
- 입력:
  - <field>: <의미>
- 출력:
  - <field>: <의미>
- 금지:
  - <하면 안 되는 동작>

## Acceptance Scenarios

| ID | Milestone Task | Given | When | Then |
|----|----------------|-------|------|------|
| S01 | `<task-id>` | <상태/입력> | <행동> | <관찰 가능한 결과> |

## Evidence Map

| Scenario | Required Evidence | `agent-task` 연결 | `Spec Completion` 기대 |
|----------|-------------------|------------------|---------------------------|
| S01 | <test/smoke/search/user-review evidence> | `agent-task/m-<milestone-slug>/...` | <complete.log에 남길 Spec Completion 근거> |

## Cross-repo Dependencies

- 없음

<!-- 필요한 경우:
- `<project>:agent-roadmap/phase/<phase>/milestones/<milestone>.md`
- `.agent-roadmap-sync/locks.yaml` entry: `<id>`
-->

## Drift Check

- [ ] Milestone 기능 Task와 Acceptance Scenario가 일치한다.
- [ ] Evidence Map이 plan/code-review/complete.log에서 검증 가능하다.
- [ ] agent-contract를 쓰는 경우 SDD에 계약 원문을 복제하지 않았다.
- [ ] 사용자 리뷰가 필요한 항목은 `USER_REVIEW.md`에만 남겼다.

## 사용자 리뷰 이력

- 없음

## 작업 컨텍스트

- 표준선: <기존 구조, 도메인 rule, 플랫폼 관례>
- 후속 SDD: <없음 또는 SDD 경로>
