diff --git a/agent-ops/skills/project/dev-runtime-deploy/SKILL.md b/agent-ops/skills/project/dev-runtime-deploy/SKILL.md index 537dcee1..80024de7 100644 --- a/agent-ops/skills/project/dev-runtime-deploy/SKILL.md +++ b/agent-ops/skills/project/dev-runtime-deploy/SKILL.md @@ -53,7 +53,7 @@ dev-runtime provider pool을 `dev` 기준 git-flow release로 배포한다. `dev - [ ] 현재 구현의 completion 검증 대상은 legacy `/v1/completions`가 아니라 `/v1/chat/completions`이다. `/v1/completions`는 route가 구현되어 있을 때만 별도 검증한다. - [ ] 원격 runner에 git-flow가 설치되어 있고 `gitflow.branch.master=main`, `gitflow.branch.develop=dev`, `gitflow.prefix.release=release/`인지 확인한다. - [ ] shallow clone이 아니며 `origin/dev`, `origin/main`, tag를 fetch할 수 있는지 확인한다. -- [ ] For a deployment that first merges a feature source into `dev`, run `git fetch --prune origin dev main --tags` and require the recorded exact feature SHA to match the fetched remote feature SHA. For a regular `dev` deployment, run `git fetch --prune origin dev main --tags`. +- [ ] For a deployment that first merges a feature source into `dev`, run `git fetch --prune origin dev main --tags`, then `git remote prune origin`, and require the recorded exact feature SHA to match the fetched remote feature SHA. For a regular `dev` deployment, run `git fetch --prune origin dev main --tags`, then `git remote prune origin`. - [ ] Use `git ls-remote --heads origin 'refs/heads/release/*'` as the authoritative remote release-head check. Treat stale local remote-tracking refs removed by prune as cleanup evidence, not as remote release blockers. - [ ] `origin/main`이 `origin/dev`의 ancestor인지 확인한다. 아니면 배포하지 않고 branch 정합화를 먼저 요구한다. - [ ] 계산된 tag가 이미 local이나 origin에 있으면 삭제·이동·덮어쓰기하지 않고 완료 상태 또는 partial finish 상태를 보고한다. @@ -68,7 +68,7 @@ dev-runtime provider pool을 `dev` 기준 git-flow release로 배포한다. `dev - 필수 정보가 없거나 서로 충돌하면 배포를 시작하지 말고 누락/충돌 항목을 보고한다. 2. **dev clean sync와 release version 확정** - - Run `git fetch --prune origin dev main --tags` in the remote runner checkout, then clean-sync local `dev` to `origin/dev`. When the deployment first merges a feature source, fetch the exact feature ref with `git fetch --prune origin dev main --tags`. + - Run `git fetch --prune origin dev main --tags` in the remote runner checkout, then `git remote prune origin`, and clean-sync local `dev` to `origin/dev`. When the deployment first merges a feature source, fetch the exact feature ref with `git fetch --prune origin dev main --tags` before pruning the remote-tracking namespace. - Determine active remote releases only from the authoritative output of `git ls-remote --heads origin 'refs/heads/release/*'`. Record changes to local `refs/remotes/origin/release/*` before and after prune only as stale-ref cleanup evidence. - dirty 파일은 보존 대상으로 보지 않는다. 배포 전 clean 상태를 만든다. - 기본 cleanup은 `git clean -fd`이다. `git clean -fdx`는 config, token, secret, runtime artifact까지 삭제할 수 있으므로 사용하지 않는다. diff --git a/scripts/agent_benchmark/skill_contract_test.py b/scripts/agent_benchmark/skill_contract_test.py index b14b72d5..8a35cfec 100644 --- a/scripts/agent_benchmark/skill_contract_test.py +++ b/scripts/agent_benchmark/skill_contract_test.py @@ -476,6 +476,7 @@ class BenchmarkSkillContractTest(unittest.TestCase): ] self.assertEqual(keys, ["name", "description"]) self.assertIn("git fetch --prune origin dev main --tags", content) + self.assertIn("git remote prune origin", content) self.assertIn( "git ls-remote --heads origin 'refs/heads/release/*'", content,