# Complete - 02+edge_setup_cli

## 완료 일시

2026-05-20

## 요약

Edge setup/config/version CLI와 문서 정리를 완료했고, 4회 리뷰 루프 끝에 최종 PASS.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | edge cmd 검증 재현 실패와 node CLI 문서 불일치 발견 |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | FAIL | workspace-only 해결과 architecture 문서의 node setup 현재형 안내가 남음 |
| `plan_cloud_G07_2.log` | `code_review_cloud_G07_2.log` | WARN | module/import 계약과 architecture 문서는 정리됐으나 project rules의 stale module path가 남음 |
| `plan_cloud_G07_3.log` | `code_review_cloud_G07_3.log` | PASS | project rules module path까지 현재 Go 계약과 일치 |

## 구현/정리 내용

- edge CLI에 `version`, `config print`, `config check`, `setup` 명령을 추가했다.
- edge CLI 테스트를 추가하고 setup dry-run 기본 config 경로를 검증했다.
- `packages/hostsetup`의 data dir 안전성, parent traversal, service path chown 동작과 테스트를 보강했다.
- proto-socket Go module/import 경로를 `git.toki-labs.com/toki/proto-socket/go`로 정리했다.
- edge README, deploy-dev, architecture, project rules 문서를 현재 CLI/module 계약과 맞췄다.

## 최종 검증

- `rg --sort path -n "common-proto-socket/go|proto-socket/go" agent-ops/rules/project/rules.md go.mod apps packages` - PASS; stale `common-proto-socket/go` hit 없음.
- `go test -count=1 ./apps/edge/cmd/edge ./packages/hostsetup` - PASS; edge cmd와 hostsetup 테스트 통과.
- `GOWORK=off go test -count=1 ./apps/edge/cmd/edge ./packages/hostsetup` - PASS; module mode에서도 통과.
- `go test -count=1 ./packages/config ./packages/hostsetup ./packages/version` - PASS; 관련 공통 패키지 테스트 통과.
- `go test -count=1 ./...` - PASS; 전체 Go 테스트 통과.
- `go run ./apps/edge/cmd/edge version` - PASS; `0.1.0`.
- `go run ./apps/edge/cmd/edge config check --config configs/edge.yaml` - PASS; `OK configs/edge.yaml`.
- `go run ./apps/edge/cmd/edge setup --dry-run --binary /usr/local/bin/iop-edge` - PASS; `/etc/iop/edge.yaml`, `/var/lib/iop/edge`, systemd unit preview 확인.

## 잔여 Nit

- 없음

## 후속 작업

- 없음
