# User Review Required - m-forgejo-branch-event-mvp/02+01_watch_store

## 요청 일시

2026-06-13

## 상태

USER_REVIEW

## 사유

- 유형: environment-blocked
- 현재 리뷰 회차: 3
- 최종 판정: FAIL
- 요약: duplicate timestamp precision 보정은 확인됐지만, 완료 조건인 실제 PostgreSQL against integration test가 현재 환경에서 skip 없이 실행되지 않아 자동 follow-up을 멈춥니다.

## 루프 이력

| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/plan_cloud_G07_0.log` | `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/code_review_cloud_G07_0.log` | FAIL | duplicate response/event persistence와 Postgres evidence가 부족했습니다. |
| `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/plan_cloud_G07_1.log` | `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/code_review_cloud_G07_1.log` | FAIL | duplicate event id는 보완됐지만 timestamp precision 및 Postgres evidence 공백이 남았습니다. |
| `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/plan_cloud_G07_2.log` | `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/code_review_cloud_G07_2.log` | FAIL | timestamp precision 보정은 확인됐으나 Postgres integration test가 환경 부재로 skip됐습니다. |

## 차단 근거

- 문제: `REVIEW_REVIEW_API-2`의 필수 완료 조건인 skip 없는 Postgres integration evidence가 없습니다.
- 현재 archive plan: `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/plan_cloud_G07_2.log`
- 현재 archive review: `agent-task/m-forgejo-branch-event-mvp/02+01_watch_store/code_review_cloud_G07_2.log`
- 검증 명령: `(cd services/core && go test -v -count=1 ./internal/storage)`
- 실제 출력:
  ```text
  === RUN   TestPostgresBranchEventStorePersistsWatchCursorAndDedupesDelivery
      postgres_test.go:16: GITO_TEST_DATABASE_URL not set; skipping Postgres integration test
  --- SKIP: TestPostgresBranchEventStorePersistsWatchCursorAndDedupesDelivery (0.00s)
  PASS
  ok  	git.toki-labs.com/toki/gito/services/core/internal/storage	0.004s
  ```
- 환경 확인:
  ```text
  command -v docker
  # exit code 1

  command -v podman
  # exit code 1

  GITO_TEST_DATABASE_URL=unset
  ```
- 차단 판단 근거: 현재 환경에는 Docker/Podman이 없고 disposable PostgreSQL DSN도 제공되지 않았습니다. 이 상태에서는 agent가 저장소 내부 수정만으로 실제 DB round-trip 검증을 완료할 수 없습니다.

## 사용자 결정 필요

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

## 재개 조건

- Docker 또는 Podman으로 disposable PostgreSQL 컨테이너를 실행할 수 있어야 합니다.
- 또는 `GITO_TEST_DATABASE_URL`에 disposable/non-production PostgreSQL DSN이 설정되어 있어야 합니다.
- 재개 후 `TestPostgresBranchEventStorePersistsWatchCursorAndDedupesDelivery`가 skip 없이 PASS해야 합니다.

## 다음 실행 힌트

- 환경 준비 후 다음 검증을 실행합니다:
  ```bash
  (cd services/core && GITO_TEST_DATABASE_URL='<disposable-postgres-dsn>' go test -count=1 ./internal/storage)
  (cd services/core && go test -count=1 ./...)
  (cd services/core && go vet ./...)
  ./bin/build
  git diff --check
  ```

## 종료 규칙

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