# User Review Required - m-proto-socket-infrastructure-communication-rail/01_core_endpoint

## 요청 일시

2026-05-30

## 상태

RESOLVED

## 사유

- 유형: implementation-blocked
- 현재 리뷰 회차: 3
- 최종 판정: FAIL
- 요약: proto-socket 원격 module path mismatch 때문에 plan의 필수 조건인 repo-external `replace` 제거를 저장소 안에서 안전하게 완료할 수 없다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/plan_cloud_G08_0.log` | `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/code_review_cloud_G08_0.log` | FAIL | repo-external `replace`, `retryable` 누락, authenticated route test 누락, gofmt 문제 |
| `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/plan_cloud_G08_1.log` | `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/code_review_cloud_G08_1.log` | FAIL | follow-up implementation이 placeholder 상태였고 이전 Required가 남음 |
| `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/plan_cloud_G08_2.log` | `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/code_review_cloud_G08_2.log` | FAIL | proto-socket module mismatch로 `replace` 제거 불가, 사용자 결정 필요 |

## 차단 근거

- 문제: `services/core/go.mod`가 아직 `git.toki-labs.com/toki/proto-socket/go v0.0.0-00010101000000-000000000000`와 `replace git.toki-labs.com/toki/proto-socket/go => ../../../proto-socket/go`에 의존한다.
- 현재 archive plan: `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/plan_cloud_G08_2.log`
- 현재 archive review: `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint/code_review_cloud_G08_2.log`
- 검증 명령: `cd services/core && go mod tidy`
- 실제 출력:

```text
go: downloading git.toki-labs.com/toki/common-proto-socket/go v0.0.0-20260529210328-6f09e2d721c8
go: found git.toki-labs.com/toki/common-proto-socket/go/packets in git.toki-labs.com/toki/common-proto-socket/go v0.0.0-20260529210328-6f09e2d721c8
go: github.com/nomadcode/nomadcode-core/internal/protosocket imports
        git.toki-labs.com/toki/proto-socket/go imports
        git.toki-labs.com/toki/common-proto-socket/go/packets: git.toki-labs.com/toki/common-proto-socket/go@v0.0.0-20260529210328-6f09e2d721c8: parsing go.mod:
        module declares its path as: git.toki-labs.com/toki/proto-socket/go
                but was required as: git.toki-labs.com/toki/common-proto-socket/go
```

- 차단 판단 근거: local `replace`를 커밋할지, 원격 proto-socket repository/module path를 먼저 고칠지, 또는 dependency 전략을 바꿀지는 repo 내부 구현자가 안전하게 단정할 수 없는 배포/의존성 정책 결정이다.

## 사용자 결정 필요

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

## 해소 내용

- 사용자 결정: 원격 `proto-socket` 경로를 현재 환경과 맞춰 사용해도 된다는 승인.
- 적용 결과: `services/core/go.mod`에서 repo-external `replace`를 제거하고, 원격 `git.toki-labs.com/toki/proto-socket/go v0.0.0-20260530100557-fed0da37fa1a`로 고정했다.
- 해소 검증:

```text
$ GOPRIVATE=git.toki-labs.com/toki go mod tidy
(출력 없음)

$ GOPRIVATE=git.toki-labs.com/toki go list -m git.toki-labs.com/toki/proto-socket/go
git.toki-labs.com/toki/proto-socket/go v0.0.0-20260530100557-fed0da37fa1a
```

## 재개 조건

- `services/core/go.mod`에 repo-external `replace`를 커밋해도 되는지 승인한다.
- 또는 `git.toki-labs.com/toki/proto-socket/go` 원격 repository의 module path와 published version을 정합하게 고친 뒤, `go mod tidy`가 `replace` 없이 성공하는 상태를 제공한다.
- 또는 proto-socket dependency를 vendoring/submodule/workspace 등 다른 방식으로 고정하는 새 범위를 승인한다.

## 다음 실행 힌트

- 사용자 결정 후 이 task path에서 plan 루프를 재개한다: `agent-task/m-proto-socket-infrastructure-communication-rail/01_core_endpoint`.

## 종료 규칙

- 사용자가 이 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`를 작성한다.
