nexo/agent-task/m-runtime-baseline/02_runtime_smoke/CODE_REVIEW-cloud-G07.md

9.7 KiB

Code Review Reference - SMOKE

[IMPLEMENTING AGENT — READ FIRST] Filling in this file is the mandatory final step of implementation. The task is NOT complete until every implementation-owned section below is filled in. Complete the 구현 체크리스트; the final checklist item is mandatory before saving. Fill implementation-owned sections, then stop with active files in place and report ready for review. Finalization (코드리뷰 결과, log rename, complete.log, archive moves, 코드리뷰 전용 체크리스트) is review-agent-only, even after compaction/resume. Follow the ownership table at the bottom of this file for which sections you own.

개요

date=2026-05-28 task=m-runtime-baseline/02_runtime_smoke, plan=0, tag=SMOKE

이 파일을 읽는 리뷰 에이전트에게

[REVIEW AGENT ONLY] 아래 종결 절차는 코드리뷰 에이전트 전용이다. 구현 에이전트는 이 섹션을 실행하지 않는다.

각 항목의 구현을 실제 소스 파일과 대조하고, 검증 결과 섹션의 출력이 코드와 일치하는지 확인하세요. 리뷰 완료는 아래 순서까지 끝난 상태를 의미합니다.

  1. 판정을 append한다.
  2. CODE_REVIEW-cloud-G07.md -> code_review_cloud_G07_N.log, PLAN-cloud-G07.md -> plan_cloud_G07_M.log로 아카이브한다.
  3. PASS이면 complete.log 작성 후 active task 디렉터리를 agent-task/archive/YYYY/MM/m-runtime-baseline/02_runtime_smoke/로 이동한다. WARN/FAIL이면 user-review gate를 확인한 뒤 다음 active plan/review 파일 또는 USER_REVIEW.md를 작성한다. USER_REVIEW.md가 사용자 결정으로 완료/PASS 해소되면 code-review가 USER_REVIEW.md를 해소 상태로 갱신하고 complete.log 작성 후 archive 이동한다.
  4. PASS이고 task group이 m-<milestone-slug>이면 완료 이벤트 메타데이터를 보고한다. roadmap 상태 체크와 update-roadmap 호출은 런타임 책임이다.
  5. 적용 가능한 코드리뷰 전용 체크리스트 항목을 최종 .log 위치에서 체크한 뒤 보고한다.

구현 항목별 완료 여부

항목 완료 여부
[SMOKE-1] Local Compose Runtime [ ]
[SMOKE-2] Remote Parity [ ]

구현 체크리스트

  • command -v docker, docker compose version, docker info로 Docker 실행 가능성을 확인한다.
  • services/core/compose에서 .env를 git 밖에 준비하고 docker compose config가 성공하는지 확인한다.
  • docker compose up -d 후 core ping, Mattermost app HEAD, db readiness, push-proxy service/config smoke를 실행한다. 검증: cd services/core/compose && docker compose up -d 후 core ping과 Mattermost 앱 접근이 성공한다.
  • NEXO_REMOTE_HOST를 사용해 원격 ~/docker/services/nexo/composedocker-compose.yml.env.example hash가 local과 일치하는지 확인한다. 검증: local/remote compose와 .env.example hash 비교가 일치한다.
  • smoke 실패가 repo 설정 문제로 확인될 때만 compose 파일이나 README를 최소 수정하고 같은 smoke를 재실행한다.
  • CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

코드리뷰 전용 체크리스트

[REVIEW AGENT ONLY] 이 체크리스트는 코드리뷰 에이전트만 사용한다. 구현 에이전트는 이 섹션을 수정하거나 체크하지 않는다.

  • 코드리뷰 결과PASS, WARN, FAIL 중 하나의 판정을 append한다.
  • 판정과 차원별 평가, Required/Suggested/Nit 분류가 서로 일치한다.
  • active CODE_REVIEW-*-G??.mdcode_review_cloud_G07_N.log로 아카이브한다.
  • active PLAN-*-G??.mdplan_cloud_G07_M.log로 아카이브한다.
  • PASS이면 agent-ops/skills/common/code-review/templates/complete-log-template.md 기준으로 complete.log를 작성하고 active .md 파일을 남기지 않는다.
  • PASS이면 active task 디렉터리 agent-task/m-runtime-baseline/02_runtime_smoke/agent-task/archive/YYYY/MM/m-runtime-baseline/02_runtime_smoke/로 이동하고 최종 archive 경로에서 이 체크리스트를 갱신한다.
  • PASS이고 task group이 m-<milestone-slug>이면 런타임이 읽을 완료 이벤트 메타데이터를 보고하고, roadmap 수정이나 update-roadmap 직접 호출을 하지 않는다.
  • PASS split 작업이면 이동 후 빈 active parent agent-task/m-runtime-baseline/를 제거하거나, 남은 sibling/file이 있어 유지했다고 확인한다.
  • WARN/FAIL이고 user-review gate가 트리거되지 않았으면 다음 active PLAN-cloud-G07.mdCODE_REVIEW-cloud-G07.md를 작성하고 complete.log를 작성하지 않는다.
  • USER_REVIEW이면 agent-ops/skills/common/code-review/templates/user-review-template.md 기준으로 USER_REVIEW.md를 작성하고 active PLAN-*.md, CODE_REVIEW-*.md, complete.log를 남기지 않는다.
  • USER_REVIEW가 사용자 결정으로 완료/PASS 해소되면 USER_REVIEW.md를 해소 상태로 갱신하고 complete.log를 작성한 뒤 task directory를 archive로 이동한다.

계획 대비 변경 사항

구현 에이전트가 계획과 다르게 구현한 부분을 이유와 함께 기록한다.

주요 설계 결정

구현 에이전트가 주요 설계 결정 사항을 기록한다.

리뷰어를 위한 체크포인트

  • Docker daemon 부재나 port collision을 repo 설정 문제로 오판하지 않았는지 확인한다.
  • .envservices/core/data/가 git에 포함되지 않았는지 확인한다.
  • local/remote sha256sum 출력이 실제로 일치하는지 확인한다.
  • smoke 실패로 수정한 compose/doc 변경이 최소 범위인지 확인한다.

검증 결과

구현 에이전트가 각 중간 검증 및 최종 검증 명령 실행 후 출력을 여기에 붙여 넣는다.

필수 규칙:

  • 검증 명령은 고정된 계약이다. 임의로 대체하지 않는다.
  • 대체가 필요하면 계획 대비 변경 사항에 이유와 대체 명령을 기록한다.
  • 검증 결과에는 실제 stdout/stderr를 붙여 넣는다.

SMOKE-1 중간 검증

$ cd services/core/compose
$ command -v docker
$ docker compose version
$ docker info
$ docker compose config
$ docker compose up -d
$ curl -fsS "http://localhost:${NEXO_CORE_PORT:-18065}/api/v4/system/ping"
$ docker compose exec db pg_isready -U mmuser -d mattermost
$ curl -fsSI "http://localhost:${NEXO_CORE_PORT:-18065}"
$ docker compose ps push-proxy
$ docker compose config | rg --fixed-strings "MM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER=http://push-proxy:8066"
(output)

SMOKE-2 중간 검증

$ test -n "$NEXO_REMOTE_HOST"
$ cd services/core/compose
$ sha256sum docker-compose.yml .env.example
$ ssh "$NEXO_REMOTE_HOST" 'cd ~/docker/services/nexo/compose && sha256sum docker-compose.yml .env.example'
$ ssh "$NEXO_REMOTE_HOST" 'cd ~/docker/services/nexo/compose && docker compose config'
$ ssh "$NEXO_REMOTE_HOST" 'cd ~/docker/services/nexo/compose && docker compose ps'
$ ssh "$NEXO_REMOTE_HOST" 'curl -fsS "http://localhost:${NEXO_CORE_PORT:-18065}/api/v4/system/ping"'
(output)

최종 검증

$ cd services/core/compose
$ command -v docker
$ docker compose version
$ docker info
$ docker compose config
$ docker compose up -d
$ curl -fsS "http://localhost:${NEXO_CORE_PORT:-18065}/api/v4/system/ping"
$ docker compose exec db pg_isready -U mmuser -d mattermost
$ curl -fsSI "http://localhost:${NEXO_CORE_PORT:-18065}"
$ docker compose ps push-proxy
$ docker compose config | rg --fixed-strings "MM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER=http://push-proxy:8066"
$ test -n "$NEXO_REMOTE_HOST"
$ sha256sum docker-compose.yml .env.example
$ ssh "$NEXO_REMOTE_HOST" 'cd ~/docker/services/nexo/compose && sha256sum docker-compose.yml .env.example'
$ ssh "$NEXO_REMOTE_HOST" 'cd ~/docker/services/nexo/compose && docker compose config'
$ ssh "$NEXO_REMOTE_HOST" 'cd ~/docker/services/nexo/compose && docker compose ps'
$ ssh "$NEXO_REMOTE_HOST" 'curl -fsS "http://localhost:${NEXO_CORE_PORT:-18065}/api/v4/system/ping"'
$ cd ../../..
$ git status --short services/core/compose
$ git diff --check
(output)

[IMPLEMENTING AGENT — BEFORE SAVING] Have you filled in every implementation-owned section: completion table, implementation checklist, changes from plan, design decisions, and verification output? If anything is blank, go back and fill it in before saving this file. Leave review-agent-only sections unchanged.

Sections and their ownership:

Section Owner Note
Header comment, 개요, 리뷰 에이전트 지시 Fixed at stub creation Implementing agent must not modify or execute these (archive, complete.log, and task-directory archive move are review-agent only)
구현 항목별 완료 여부 (item names) Fixed at stub creation Implementing agent checks [ ] -> [x] only
구현 체크리스트 (item text/order) Fixed at stub creation from plan Implementing agent checks [ ] -> [x] only; final checkbox is mandatory before saving
코드리뷰 전용 체크리스트 Review agent only Implementing agent must not modify or check this section
계획 대비 변경 사항, 주요 설계 결정 Implementing agent Replace placeholder text with actual content
리뷰어를 위한 체크포인트 Fixed at stub creation Pre-filled from plan
검증 결과 (section headings + commands) Fixed at stub creation Implementing agent fills in command output only; command changes require a 계획 대비 변경 사항 entry
코드리뷰 결과 Review agent appends Not included in stub