| name | task-done |
| description | 작업 완료 후 Lock 해제, 정리, 지식 갱신까지 수행하는 마무리 루틴. 세션 중 새로 알게 된 이 프로젝트만의 기획·시스템·유기적 관계를 도메인 지식으로 승격 제안합니다. |
Skill: /task-done (Task Completion)
코드 수정이 끝나면 반드시 이 마무리를 수행한다. 코드를 수정하고 세션을 끝내는 것은 반쪽짜리 작업이다.
STEP 1 — 변경 사항 요약
- 수정한 파일, 변경한 심볼, 추가/삭제 라인 수를 나열한다.
- 의도한 변경과 실제 변경이 일치하는지 확인한다.
- 의도하지 않은 변경이 있으면 즉시 보고한다.
STEP 2 — 자체 검증
STEP 3 — Lock 해제
/task-start STEP 4에서 Lock을 획득했다면 반드시 해제한다.
- 하네스가 없으면 건너뜀.
STEP 4 — worktree 정리
- 워크트리에서 작업했다면 머지 상태를 확인한다.
- 아키텍트 리뷰 대기 중이면 워크트리를 그대로 둔다.
STEP 5 — 도메인 지식 승격 (Level 2)
이번 세션에서 이 프로젝트만의 새로운 것을 알게 되었는가?
승격 대상 예시:
- 기획 의도 ("왜 인벤토리는 슬롯 12개인가")
- 시스템 간 유기적 관계 ("스킬 쿨다운이 방어력에 영향을 준다")
- 비즈니스 공식 ("점수 = 기본점수 × 콤보 × 난이도계수")
- 데이터 흐름 / 이벤트 체인 순서
- 이 프로젝트 고유 용어
승격 대상이 있으면:
.claude/domain/ 아래 기존 파일이 있는지 확인한다 (예: inventory-system.md).
- 있으면 해당 파일에 섹션 추가, 없으면 domain/README.md 템플릿으로 새 파일 생성 제안.
- 파일을 수정했거나 추가했다면
.claude/INDEX.md의 Level 2 섹션에 keywords도 함께 업데이트 — 그래야 다음 세션의 /task-start가 선별 로드 가능.
- diff 형식으로 제안하고 아키텍트 승인을 기다린다. 직접 커밋 금지.
승격 대상이 없으면:
- 이 STEP은 "승격 대상 없음"으로 명시하고 건너뛴다. 억지로 만들지 않는다.
주의: 도메인 지식은 CLAUDE.md에 누적하지 않는다. CLAUDE.md는 프로젝트 개요·구조·컨벤션을 담고, 시스템/기획 단위 지식은 .claude/domain/에 분리한다. 블로그 §3 "나쁜 패턴 2 — 전지전능형" 회피.
STEP 6 — 범용 지식 승격 판단 (/self-update)
다음 조건 중 하나라도 충족되면 /self-update를 호출한다:
- 어느 Unity/C# 프로젝트에도 적용되는 범용 패턴을 새로 발견했다 →
.claude/knowledge/ 승격 후보
- 기존 지침이 부정확하거나 불완전함을 확인했다
- 반복될 가능성이 높은 실수를 했다 →
RULES.md 또는 .claude/rules/ 후보
/self-update는 계층 판단까지 수행한다. 이 STEP에서는 호출 여부만 결정.
STEP 7 — 완료 보고
작업 결과를 간결하게 보고한다.
출력 형식
[STEP 1] 변경 사항
수정: {파일 → 심볼}, 라인: +N/-N
의도하지 않은 변경: {없음 | 설명}
[STEP 2] 자체 검증
[✓] 이벤트 구독/해제 쌍
[✓] CancellationToken 전달
[✓] static 초기화
[✓] 에디터 가드
[✓] RULES.md 위반 없음
[STEP 3] Lock: {해제 | 하네스 비활성}
[STEP 4] worktree: {상태}
[STEP 5] 도메인 지식 승격
대상: .claude/domain/{system}.md ({신규 | 기존 파일 §X 추가})
요약: {한 문단}
INDEX.md keywords 업데이트: {추가된 keywords}
→ 승인 대기
또는
[STEP 5] 도메인 지식 승격: 승격 대상 없음
[STEP 6] /self-update: {실행 | 불필요} (사유)
[STEP 7] 완료: {한 줄 요약}
금지 사항
- 도메인 지식을
CLAUDE.md에 섞어 넣지 않는다. .claude/domain/에 분리.
- 도메인 파일을 만들고 INDEX.md 업데이트를 빠뜨리지 않는다. 인덱스가 빠지면 다음 세션에서 발견되지 않는다.
- 아키텍트 승인 없이 도메인 파일을 직접 커밋하지 않는다.