← ClaudeAtlas

finishlisted

구현이 끝나고 테스트가 통과한 뒤 작업을 통합하는 방법을 정하고 산출물 수명을 닫는다. Use when 전 태스크 완료, 브랜치 마무리, 머지·PR 결정, 개발 종료.
HarryJhin/groundwork · ★ 0 · AI & Automation · score 70
Install: claude install-skill HarryJhin/groundwork
# finish **핵심 원칙**: 통합 결정은 사용자의 것이다. 그 결정을 받기 전에 무엇도 지우지 않는다. ## 입력·주체·출력 **입력**은 방금 끝낸 작업의 워크스페이스다. 커맨드는 그 워크스페이스 안에서 시작한다. 7단계가 닫을 스펙·플랜 파일의 경로는 호출자에게 받는다. `groundwork:executing-plan`이나 `groundwork:subagent-driven-development`가 이 스킬을 부를 때 실행한 플랜 경로와 그 플랜 Goal 절이 지목한 스펙 경로를 함께 넘긴다. 경로를 받지 못했으면 사용자에게 묻고, 사용자가 산출물이 없다고 하면 7단계를 건너뛴다. **주체**는 작업을 마친 에이전트다. 아래에서 무주어로 적은 지시는 전부 그 에이전트 몫이고, "사용자"는 통합을 결정하는 사람이다. **출력**은 사용자가 고른 통합 방식의 실행 결과다. 선택과 그 결과, 워크트리·브랜치를 어떻게 처리했는지, 산출물을 닫았는지를 보고하고 끝낸다. ## 1단계. 테스트 확인 프로젝트의 전체 테스트 스위트를 ��린다. 아래에서 프로젝트에 맞는 커맨드를 골라 `TEST_CMD`에 담고, 이후 단계는 그 값을 다시 쓴다. ```bash TEST_CMD='npm test' # 또는 'cargo test' / 'pytest' / 'go test ./...' eval "$TEST_CMD" ``` **테스트가 실패하면** 실패를 보고하고 멈춘다. 선택 메뉴는 green 이후에 나온다. ``` 테스트 실패 (<N>건). 완료 전에 고쳐야 한다: [실패 내용] ``` **테스트가 통과하면** 2단계로 간다. ## 2단계. 환경 탐지 ```bash GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P) GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P) # 지금 잡아둔다. 워크스페이스 안에 있는 동안이어야 한다. # 5단계가 디렉터리를 옮기고 6단계 정리가 이 값을 필요로 한다 WORKTREE_PATH=$(git rev-parse --show-toplevel) FEATURE_BRANCH=$(git branch --show-current) # detached HEAD면 빈 문자열 ``` **1단계부터 6단계까지의 셸 블록은 같은 셸에서 돈다.** 여기서 잡은 값을 뒤 단계가 그대로 참조하므로, 셸이 끊기면 이 블록부터 다시 돌린다. 값이 빈 채로 `git worktree remove`나 `git branch -d`를 실행하지 않는다. 어느 메뉴를 보일지와 정리 방식이 여기서 갈린다. 두 메뉴의 문안은 4단계에 있다. | 상태 | 메뉴 | 정리 | |---|---|---| | `GIT_DIR == GIT_COMMON` (일반 repo) | 표준 3선택 (4단계) | 정리할 워크트리 없음 | | `GIT_DIR != GIT_COMMON`, 이름 있는 브랜치 |