# User Review Required - m-workspace-port-env-standardization/04+03_standard_slot_runtime_check

## 요청 일시

2026-06-08

## 상태

USER_REVIEW

## 사유

- 유형: environment-blocked
- 현재 리뷰 회차: 2
- 최종 판정: FAIL
- 요약: 표준 slot compose 검증 중 `edge` service가 `0.0.0.0:19090` bind 실패로 시작하지 못했다. 현재 `code-server`가 `19090`, `19092`, `19190`을 publish하고 있으며, 이 task의 plan은 user-managed `code-server` stop/start/restart/recreate 및 추가 원격 compose config 수정을 금지한다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | 구현 체크리스트와 검증 출력이 placeholder 상태라 원격 standard-slot evidence를 판단할 수 없었다. |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | FAIL | 원격 검증 evidence는 수집됐지만 user-managed `code-server`가 `19090`을 publish해 `edge` service 시작이 차단됐다. |

## 차단 근거

- 문제: `code-server` running container가 IOP 표준 slot 중 `19090`, `19092`, `19190`을 publish하고 있어 `docker compose up --build -d postgres redis control-plane edge web`에서 `edge` service가 `Bind for 0.0.0.0:19090 failed: port is already allocated`로 실패한다.
- 현재 archive plan: `plan_cloud_G07_1.log`
- 현재 archive review: `code_review_cloud_G07_1.log`
- 검증 명령: `ssh toki@toki-labs.com '/usr/local/bin/docker inspect code-server --format "{{.State.Status}}" && /usr/local/bin/docker ps --format "{{.Names}} {{.Ports}}" | grep -E "code-server|19090|19092|19190|13000|19080" || true'`
- 실제 출력: `code-server`는 `running`이며 `0.0.0.0:19090->9090/tcp`, `0.0.0.0:19092->9092/tcp`, `0.0.0.0:19190->9190/tcp`를 publish 중이다. smoke project cleanup 확인 명령은 active `iop-g07-port-smoke` container가 없음을 반환했다.
- 차단 판단 근거: `code-server`는 사용자 관리 외부 환경이며, 현재 plan은 `code-server` 재시작/재생성 및 추가 원격 compose config 수정을 명시적으로 제외한다. 후속 에이전트가 repo 내부 수정이나 단순 재실행만으로 포트 점유를 해소할 수 없다.

## 사용자 결정 필요

- [ ] 자동 follow-up plan/review를 계속 진행한다.
- [ ] 계획을 재작성한다.
- [ ] 테스트 환경, secret, 외부 서비스, SDK, 장비 조건을 준비한 뒤 재시도한다.
- [ ] 작업 범위를 줄이거나 보류/폐기한다.

## 재개 조건

- `/Users/toki/docker/services/code-server/compose/docker-compose.yml`에서 `19090`, `19092`, `19190` publish가 제거되고, user-managed `code-server` container가 재생성되어 running container의 published ports에도 반영되어야 한다.
- 이후 `docker ps`에서 `code-server`가 `13000`, `19080`, `19090`, `19092`, `19190`을 publish하지 않아야 한다.

## 다음 실행 힌트

- 환경 준비 뒤 `agent-task/m-workspace-port-env-standardization/04+03_standard_slot_runtime_check/`에서 새 plan을 작성해 `docker compose --project-name iop-g07-port-smoke --env-file .env.example up --build -d postgres redis control-plane edge web`, `/healthz`, `/readyz`, `docker compose ps`, `docker compose down`을 재실행한다.
- 재시도 전에는 user-managed `code-server`를 review/implementation agent가 직접 stop/start/restart/recreate하지 않는다는 범위 조건을 다시 확인한다.

## 종료 규칙

- 사용자가 이 stop state를 완료/PASS로 해소하면 `USER_REVIEW.md`를 해소 상태로 갱신하고, `agent-ops/skills/common/code-review/templates/complete-log-template.md` 기준 `complete.log`를 작성한 뒤 task directory를 archive로 이동한다.
- 새 구현이 필요하면 `plan` 스킬이 `USER_REVIEW.md`를 `user_review_N.log`로 아카이브한 뒤 새 `PLAN-*-G??.md` / `CODE_REVIEW-*-G??.md`를 작성한다.
