<!-- task=review_followup_alignment/02_docs_runtime_context_split plan=1 tag=REVIEW_REVIEW_DOCS -->
# PLAN-local-G01: 공개 quickstart OpenAI 포트 일관성 보정
date=2026-07-06

## 이 파일을 읽는 구현 에이전트에게
구현 후 `CODE_REVIEW-local-G01.md`의 구현 에이전트 소유 섹션을 실제 변경 내용과 검증 출력으로 채운다. active `PLAN-*.md`와 `CODE_REVIEW-*.md`는 남겨두고 review 준비 상태를 보고한다. 직접 사용자에게 질문하거나 선택지를 제시하거나 `request_user_input`을 호출하지 않는다. 선택된 Milestone의 `구현 잠금 > 결정 필요` 항목이 실제 구현을 차단할 때만 review stub의 `사용자 리뷰 요청` 섹션에 근거를 기록하고 멈춘다. 환경/secret/service blocker, 일반 범위 조정, 후속 에이전트가 닫을 수 있는 evidence gap은 사용자 리뷰 요청이 아니다.

## 배경
이전 구현은 private/local marker 제거 검증은 통과했지만 공개 quickstart 안에 dev-runtime OpenAI 포트 `18083`이 두 곳 남았다. 같은 문서의 예시 config와 기본 smoke는 `openai.listen: 18081`을 기준으로 하므로, 공개 문서 자체의 실행 흐름이 불일치한다.

## 사용자 리뷰 요청 흐름
구현 중 사용자 결정이 필요해 보여도 채팅으로 직접 묻지 않는다. 선택된 Milestone `구현 잠금 > 결정 필요` 항목이 실구현을 차단할 때만 active review stub의 `사용자 리뷰 요청` 섹션에 정확한 연결 대상, 차단 근거, 실행한 명령, 자동 후속 불가 이유, 재개 조건을 기록하고 멈춘다. 이 follow-up은 Milestone-linked 작업이 아니므로 정상 경로에서는 사용자 리뷰 요청이 없어야 한다.

## Archive Evidence Snapshot

- Prior active task: `agent-task/review_followup_alignment/02_docs_runtime_context_split`
- Archived plan: `agent-task/review_followup_alignment/02_docs_runtime_context_split/plan_local_G02_0.log`
- Archived review: `agent-task/review_followup_alignment/02_docs_runtime_context_split/code_review_local_G02_0.log`
- Verdict: FAIL
- Required summary: `docs/edge-local-dev-guide.md:146`와 `docs/edge-local-dev-guide.md:155`의 `/v1/chat/completions` 예시가 `http://<edge-host>:18083`을 사용한다. 같은 공개 quickstart의 `openai.listen`과 기본 smoke/base URL은 `18081`이므로 두 예시를 `http://<edge-host>:18081/v1/chat/completions`로 맞추고 `18083` 잔존 검증을 추가해야 한다.
- Suggested summary: 없음
- Nit summary: 없음
- Affected files: `docs/edge-local-dev-guide.md`
- Verification evidence:
  - `rg --sort path -n '192\.168\.|dev-runtime|edge-toki-labs|Windows SSH|toki-labs\.com' docs/edge-local-dev-guide.md`: reviewer rerun, no output.
  - `rg --sort path -n 'mattermost_credentials|Bearer [A-Za-z0-9._-]+' docs/edge-local-dev-guide.md`: reviewer rerun, no output.
  - `rg --sort path -n '18083' docs/edge-local-dev-guide.md`: reviewer rerun, found lines 146 and 155.
- Roadmap carryover: 없음
- Narrow archive reread allowed if exact prior context is needed: `agent-task/review_followup_alignment/02_docs_runtime_context_split/plan_local_G02_0.log`, `agent-task/review_followup_alignment/02_docs_runtime_context_split/code_review_local_G02_0.log`

## 분석 결과

### 읽은 파일
- `agent-ops/rules/project/rules.md`
- `agent-ops/rules/common/rules-roadmap.md`
- `agent-roadmap/current.md`
- `agent-ops/skills/common/router.md`
- `agent-ops/skills/common/code-review/SKILL.md`
- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/skills/common/_templates/implementation-user-review-request-section.md`
- `agent-test/local/rules.md`
- `agent-ops/rules/project/domain/testing/rules.md`
- `agent-contract/index.md`
- `agent-contract/outer/openai-compatible-api.md`
- `.gitignore`
- `docs/edge-local-dev-guide.md`
- `agent-test/local/edge-local-dev-guide.md`
- `agent-task/review_followup_alignment/02_docs_runtime_context_split/plan_local_G02_0.log`
- `agent-task/review_followup_alignment/02_docs_runtime_context_split/code_review_local_G02_0.log`

### SDD 기준
not applicable. 이 작업은 비-roadmap 문서 follow-up이며 Roadmap Targets를 선언하지 않는다.

### 테스트 환경 규칙
- test_env: local
- `agent-test/local/rules.md` present/read.
- `agent-ops/rules/project/domain/testing/rules.md` read because 검증 문맥과 `agent-test/local/**` 문서 경계가 관련된다.
- 외부 runner, Docker, field/bootstrap 검증은 필요 없다.
- 적용 검증은 현재 checkout에서 실행 가능한 deterministic `rg --sort path` 검색이다.

### 테스트 커버리지 공백
- 공개 docs에 dev-runtime 포트 `18083`이 남는지 막는 자동 테스트는 없다.
- 이 follow-up의 최종 검증에 `18083` 잔존 검색을 포함한다.

### 심볼 참조
none. Markdown 문서의 포트 예시만 수정한다.

### 분할 판단
single plan. 수정 범위가 `docs/edge-local-dev-guide.md`의 두 URL과 검증 명령 보강으로 한정되어 dependency boundary, ownership boundary, API-vs-call-site split, 별도 risk profile이 없다.

### 범위 결정 근거
`agent-test/local/edge-local-dev-guide.md`의 `18083`은 local/dev-runtime provider pool 문맥이므로 이번 follow-up 범위가 아니다. 계약 문서와 runtime code도 수정하지 않는다.

### 빌드 등급
local-G01. 단일 Markdown 문서의 포트 일관성 보정이며 deterministic 검색으로 검증 가능하다.

## 구현 체크리스트
- [ ] REVIEW_REVIEW_DOCS-1의 공개 quickstart chat examples 포트를 `18081`로 맞춘다.
- [ ] 중간/최종 검증 명령을 실행하고 결과를 `CODE_REVIEW-local-G01.md`에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### REVIEW_REVIEW_DOCS-1. 공개 quickstart OpenAI 포트 일관성 보정
- 문제:
  - `docs/edge-local-dev-guide.md:56`은 OpenAI-compatible listen port를 `18081`로 제시한다.
  - `docs/edge-local-dev-guide.md:120`, `docs/edge-local-dev-guide.md:124`, `docs/edge-local-dev-guide.md:131`도 base URL을 `18081`로 제시한다.
  - `docs/edge-local-dev-guide.md:146`와 `docs/edge-local-dev-guide.md:155`만 `18083`을 사용해 공개 quickstart 실행 경로가 불일치한다.
- 해결 방법:
  - 두 `/v1/chat/completions` 예시 URL을 `18081`로 바꾼다.
  - 변경 전:
    ```bash
    curl -fsS http://<edge-host>:18083/v1/chat/completions \
    ```
  - 변경 후:
    ```bash
    curl -fsS http://<edge-host>:18081/v1/chat/completions \
    ```
- 수정 파일 및 체크리스트:
  - [ ] `docs/edge-local-dev-guide.md`: 두 chat examples의 URL port를 `18081`로 수정.
- 테스트 작성:
  - [ ] 별도 테스트 파일은 만들지 않는다. Markdown 예시 정합성 수정이며 deterministic `rg` 검증으로 닫는다.
- 중간 검증:
  - [ ] `rg --sort path -n '18083' docs/edge-local-dev-guide.md` 결과가 비어 있는지 확인한다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `docs/edge-local-dev-guide.md` | REVIEW_REVIEW_DOCS-1 |

## 최종 검증

```bash
rg --sort path -n '192\.168\.|dev-runtime|edge-toki-labs|Windows SSH|toki-labs\.com|18083' docs/edge-local-dev-guide.md
rg --sort path -n 'mattermost_credentials|Bearer [A-Za-z0-9._-]+' docs/edge-local-dev-guide.md
```

예상 결과: 두 명령 모두 출력이 없다.

모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.
