update: agent-test files - refine live-cycle smoke tests and plane-dev rules

This commit is contained in:
toki 2026-07-03 19:38:03 +09:00
parent ea97e73608
commit 568797eaaa
2 changed files with 68 additions and 3 deletions

View file

@ -302,6 +302,43 @@ docker exec forgejo curl -fsS --max-time 5 http://host.docker.internal:18061/hea
- 생성된 milestone의 provider identity와 filename slug가 Plane work item과 맞는지 확인한다. - 생성된 milestone의 provider identity와 filename slug가 Plane work item과 맞는지 확인한다.
- Core task result의 `next_step=plane_todo_moved`가 없으면 완료로 보지 않는다. - Core task result의 `next_step=plane_todo_moved`가 없으면 완료로 보지 않는다.
### Git-origin identity backfill 실패
증상:
- Git-origin missing-create에서 Plane work item은 생성되었지만 provider identity backfill commit 또는 push가 실패한다.
- Core log에 `roadmapsyncpipeline: git commit ... Author identity unknown` 또는 `git push origin HEAD:develop ... could not read Username`가 남는다.
- Plane item은 생성됐지만 Milestone 파일에 `## Provider identity`가 backfill되지 않고 Todo projection self-loop가 이어지지 않는다.
확인:
```sh
repo="$HOME/agent-work/nomadcode-dev/workspaces/nomadcode/branches/develop"
git -C "$repo" config --get user.name || echo "missing git user.name"
git -C "$repo" config --get user.email || echo "missing git user.email"
docker exec nomadcode-core-dev-nomadcode-core-1 sh -lc \
'git config --get credential.helper || true; test -r /Users/toki/.git-credentials && echo readable || echo not-readable'
```
복구:
```sh
repo="$HOME/agent-work/nomadcode-dev/workspaces/nomadcode/branches/develop"
git -C "$repo" config user.name "NomadCode Core"
git -C "$repo" config user.email "nomadcode-core@toki-labs.local"
cd "$HOME/agent-work/nomadcode-dev"
set -a; source .env.plane.local; set +a
export COMPOSE_PROJECT_NAME=nomadcode-core-dev
export NOMADCODE_CORE_HOST_PORT=18011
export GIT_CREDENTIALS_FILE="$HOME/.git-credentials"
cd services/core
docker compose up -d --force-recreate --no-deps nomadcode-core
```
복구 후 같은 disposable Milestone에 작은 follow-up edit을 push하면 기존 missing-create identity row를 재사용해 backfill을 재개해야 한다. 이때 새 Plane work item이 중복 생성되면 실패로 본다.
## 대체 근거 (런타임 에퀄리번트) ## 대체 근거 (런타임 에퀄리번트)
reviewed commit을 현재 실행 중인 서버에 배포하지 않은 경우 아래 단계로 대체 근거를 수집한다. reviewed commit을 현재 실행 중인 서버에 배포하지 않은 경우 아래 단계로 대체 근거를 수집한다.

View file

@ -45,8 +45,9 @@ webhook dispatch trigger gate에 주입하는 non-secret env. secret(`PLANE_WEBH
## Dev Full-Cycle Baseline ## Dev Full-Cycle Baseline
2026-07-03 dev profile에서 Plane-origin milestone 생성 roundtrip을 확인했다. 이 섹션은 non-secret evidence만 기록한다. 2026-07-03 dev profile에서 Plane-origin milestone 생성 roundtrip을 확인했다. 이 섹션은 non-secret evidence만 기록한다.
검증용 Plane work item과 생성 milestone은 같은 날 cleanup되었으며, Plane item은 404이고 git milestone 파일은 cleanup commit `4c5d56f` 이후 `origin/develop`에 남아 있지 않다.
### Primary automatic proof ### Primary automatic proof (cleaned up)
- Plane work item: `982c14b6-b57f-4de9-8773-bcf00fe1d25a` - Plane work item: `982c14b6-b57f-4de9-8773-bcf00fe1d25a`
- Created title marker: `LIVE-SYNC post-allowlist auto smoke 1783057173` - Created title marker: `LIVE-SYNC post-allowlist auto smoke 1783057173`
@ -56,14 +57,40 @@ webhook dispatch trigger gate에 주입하는 non-secret env. secret(`PLANE_WEBH
- added milestone path: `agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/post-allowlist-automatic-plane-git-gito-plane-smoke-1783057173.md` - added milestone path: `agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/post-allowlist-automatic-plane-git-gito-plane-smoke-1783057173.md`
- Forgejo provider delivery: `c77f67fe-3e18-484e-b292-9813e1c741e4`, hook task `is_succeed=t`, Gito callback status `202` - Forgejo provider delivery: `c77f67fe-3e18-484e-b292-9813e1c741e4`, hook task `is_succeed=t`, Gito callback status `202`
- Gito event: `event-de33bb1fc267c84a`, type `branch.updated`, repo `nomadcode`, branch `develop` - Gito event: `event-de33bb1fc267c84a`, type `branch.updated`, repo `nomadcode`, branch `develop`
- Plane final state: `Todo` (`45ba7449-f684-4381-af6d-5854747c5e8d`) - Plane final state before cleanup: `Todo` (`45ba7449-f684-4381-af6d-5854747c5e8d`)
- cleanup commit: `4c5d56f revert(roadmap): remove Plane live smoke milestones`
### Diagnostic run ### Diagnostic run (cleaned up)
- Plane work item: `67706758-9555-456b-b051-547fa6b4f093` - Plane work item: `67706758-9555-456b-b051-547fa6b4f093`
- git `origin/develop`: `738f4b8d202e9254f7c4c8fe91bb6f5e729100f0` - git `origin/develop`: `738f4b8d202e9254f7c4c8fe91bb6f5e729100f0`
- This run exposed a dev Forgejo allowlist issue before the automatic provider delivery path was fixed. - This run exposed a dev Forgejo allowlist issue before the automatic provider delivery path was fixed.
- The run was completed after Gito callback redelivery, so it is evidence for Core/Gito/Plane projection recovery but not primary proof of automatic Forgejo -> Gito delivery. - The run was completed after Gito callback redelivery, so it is evidence for Core/Gito/Plane projection recovery but not primary proof of automatic Forgejo -> Gito delivery.
- cleanup commit: `4c5d56f revert(roadmap): remove Plane live smoke milestones`
## Dev Git-Origin Baseline
2026-07-03 dev profile에서 Git-origin active Milestone missing-create roundtrip을 확인했다. 이 섹션은 non-secret evidence만 기록한다.
검증용 Plane work item과 disposable Milestone은 같은 날 cleanup되었으며, Plane item은 404이고 git milestone 파일은 cleanup commit `448d6d0` 이후 `origin/develop` active tree에 남아 있지 않다.
### Git-origin proof (cleaned up)
- Disposable milestone slug: `agent-origin-live-smoke-20260703T093822Z`
- Added milestone path: `agent-roadmap/phase/agent-ops-mcp-control-plane/milestones/agent-origin-live-smoke-20260703T093822Z.md`
- Initial git `origin/develop`: `77c902d4c80e92c520575becb95a1abe36219a26`
- Initial Gito event: `event-0d8d8406b3b0b325`, changed file `added`
- Plane work item created by Core: `bea3ed89-928a-4091-88d0-bbd5907ec464`
- Identity backfill git `origin/develop`: `e21644ee65d46449d3ec7f4f5fbd71697297812d`
- Core evidence: `gito missing-create sync enqueued`, `provider identity backfilled to develop`, `gito self-authored backfill revision observed`, `gito creation sync enqueued`, `roadmap creation sync completed`
- Plane final state before cleanup: `Todo` (`45ba7449-f684-4381-af6d-5854747c5e8d`)
- cleanup commit: `448d6d0 smoke cleanup: remove disposable agent-origin milestone agent-origin-live-smoke-20260703T093822Z`
- cleanup Gito event: `event-103224a7fa11b012`, changed file `deleted`
### Git-origin environment findings
- First backfill attempt failed at `git commit` with `Author identity unknown`. Fix: configure non-secret `user.name` and `user.email` in the dev `GITO_DEVELOP_REPO_PATH` checkout before Git-origin smoke.
- Second backfill attempt failed at `git push` with `could not read Username for 'https://git.toki-labs.com'`. Fix: ensure the Core dev container can read the configured git credential store mount, then recreate the `nomadcode-core-dev` compose service.
- After both env fixes, redelivering by a small follow-up milestone edit resumed the existing missing-create identity instead of creating a duplicate Plane work item.
## Agent Usage Notes ## Agent Usage Notes
@ -72,6 +99,7 @@ webhook dispatch trigger gate에 주입하는 non-secret env. secret(`PLANE_WEBH
- 요청 범위는 roadmap milestone 문서처럼 작은 산출물로 제한하고, 기능 코드 구현이나 contract 변경을 요구하지 않는다. - 요청 범위는 roadmap milestone 문서처럼 작은 산출물로 제한하고, 기능 코드 구현이나 contract 변경을 요구하지 않는다.
- full-cycle 통과 판정은 `agent-test/live-cycle-smoke.md`의 dev profile 자동 경로 체크리스트를 따른다. - full-cycle 통과 판정은 `agent-test/live-cycle-smoke.md`의 dev profile 자동 경로 체크리스트를 따른다.
- `Todo` 이동 확인 전에는 Plane item이 완료됐다고 보고하지 않는다. - `Todo` 이동 확인 전에는 Plane item이 완료됐다고 보고하지 않는다.
- Git-origin smoke는 provider identity가 없는 disposable active Milestone으로 시작하고, Plane 생성 후 Core-authored identity backfill commit과 self-loop projection까지 확인한다.
- raw API token, webhook secret, provider credential, private key는 이 문서나 최종 응답에 기록하지 않는다. - raw API token, webhook secret, provider credential, private key는 이 문서나 최종 응답에 기록하지 않는다.
## Webhook Payload Fixtures ## Webhook Payload Fixtures