# SDD User Review

## 상태

해결됨

## 검토 대상

- SDD: `agent-roadmap/archive/sdd/inference-provider-extension/sglang-provider-serving-validation/SDD.md`
- Milestone: `agent-roadmap/archive/phase/inference-provider-extension/milestones/sglang-provider-serving-validation.md`

## 사용자 결정 항목

### [D01] SGLang field smoke 기준 확정

- 결정 필요: SGLang은 vLLM과 같은 `openai_compat` provider instance 방식으로 진행한다. endpoint도 vLLM처럼 `http://<SGLANG_HOST>:<PORT>/v1` 패턴으로 두고 실제 private host 값은 tracked 문서에 고정하지 않는다. 이후 사용자가 본인이 정해야 할 항목 중 vLLM에서 이미 정한 같은 부류의 결정은 SGLang에도 vLLM 설정과 동일하게 따르도록 승인했다.
- 추천안: SGLang은 독립 `sglang` adapter가 아니라 `openai_compat` adapter의 `provider: "sglang"` instance로 등록한다. Edge route alias는 사용자가 호출할 짧은 model id로 두고, route target은 SGLang `/v1/models`가 반환하는 정확한 served model id로 둔다. 인증이 없으면 `headers`를 비우고, 필요한 경우 secret 원문은 tracked 문서에 쓰지 않고 runtime config/secret 경로에서만 주입한다. Streaming은 OpenAI-compatible SSE `data: ...` chunk와 `[DONE]` 종료를 기대값으로 둔다.
- 대안: SGLang endpoint가 OpenAI-compatible streaming shape를 따르지 않거나 provider-specific 필드 변환이 필요하면, 이번 SDD를 갱신해 `openai_compat` 확장 또는 후속 독립 `sglang` adapter Task를 추가한다.
- 영향: 이 결정이 없으면 SDD 잠금과 Milestone 구현 잠금이 해제되지 않으며, 구현 plan은 실제 field smoke evidence를 Spec Targets로 고정할 수 없다.
- 적용 위치:
  - SDD: `Source of Truth`, `Interface Contract`, `Acceptance Scenarios`, `Evidence Map`
  - Milestone: `구현 잠금`, `config-contract`, `models-chat`, `streaming`

## 승인 항목

- [x] 위 결정 항목을 승인했다.
- [x] SDD 잠금 해제를 승인했다.

## 답변 기록

- 2026-06-19: 사용자가 SGLang도 vLLM과 같은 방식으로 진행하도록 승인했다. SDD는 `openai_compat` adapter의 `provider: "sglang"` instance 방식을 유지한다.
- 2026-06-19: 사용자가 endpoint도 vLLM과 같이 실제 private host 값을 tracked 문서에 고정하지 않고 `http://<SGLANG_HOST>:<PORT>/v1` 패턴으로 두도록 승인했다.
- 2026-06-19: 사용자가 본인이 정해야 할 항목 중 vLLM에서 이미 정한 같은 부류의 결정은 SGLang에도 vLLM 설정과 동일하게 따르도록 승인했다. vLLM에 없는 별도 사용자 결정은 없음으로 정리한다.

## 해결 조건

- 모든 사용자 결정 항목의 답변이 SDD에 반영되어 있다.
- `USER_REVIEW.md`가 `user_review_N.log`로 이동되어 있다.
- 남은 잠금 항목이 없으면 SDD 상태가 `[승인됨]`이고 `SDD 잠금` 상태가 `해제`다.
