tdd-commit
Original:🇺🇸 English
Translated
ping-pong TDD 세션의 마지막 단계입니다. .tdd-sessions/에서 활성 세션 파일을 읽어 완료된 태스크를 요약하고, Conventional Commits 메시지를 제안하며, 커밋을 실행하고 세션 파일을 정리합니다. 모든 /tdd-task 호출이 완료된 후 실행합니다.
5installs
Sourcejunhyunny/skills
Added on
NPX Install
npx skill4agent add junhyunny/skills tdd-commitTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →TDD Commit
호출 방법
/tdd-commit [story-id]- 인수 없음 — 에서 활성 세션 파일을 자동 감지
.tdd-sessions/ - 스토리 ID 제공 — 를 직접 사용
.tdd-sessions/{story-id}.md
1단계: 세션 파일 찾기
- 내 파일 목록 조회
.tdd-sessions/ - 디렉토리가 존재하지 않거나 비어 있는 경우:
중단.
"No active TDD session found. Run /tdd-plan to start a new session." - 파일이 정확히 하나인 경우: 해당 파일 사용
- 파일이 여러 개인 경우:
일시 중지하고 선택을 기다림.
"Multiple sessions found. Which story are you committing? [1] 12345678.md — User Profile Update [2] payment-intent-2026-03-31.md — (no ID) Type the number or story ID."
2단계: 변경 사항 요약 출력
markdown
## Changes Summary
**Story:** [ID]: [title]
**Stack:** [stack]
### Completed Tasks
- ✅ Task 1: [title] — [type]
- ✅ Task 2: [title] — [type]
- ⏳ Task 3: [title] — [type] ← skipped / not started
### Pending Tasks (not committed)
- [list any ⏳ pending tasks, or "none — all tasks complete"]미완료 태스크가 있는 경우 다음을 표시: "이 태스크들은 완료되지 않았으며 이번 커밋에 포함되지 않습니다."
3단계: 커밋 메시지 제안
Conventional Commits 형식 사용:
feat(<scope>): <short description under 72 chars>
Implements [STORY-ID]: [story title]
Tasks completed:
- [task 1 title]: [one-line description of what was implemented]
- [task 2 title]: [one-line description]
- [task N title]: [one-line description]
TDD: ping-pong pair programming session스코프 선택
기술 레이어가 아닌 기능/도메인 이름을 사용:
| 컨텍스트 | 스코프 예시 |
|---|---|
| TypeScript React | |
| Kotlin/Java Spring | |
| Python FastAPI | |
타입 선택
| 상황 | 타입 |
|---|---|
| 새 기능 (가장 일반적) | |
| 버그 수정 | |
| 리팩토링만, 새로운 동작 없음 | |
4단계: 커밋 미리보기 출력 후 일시 중지
markdown
## Commit Preview
**Message:**[full commit message]
**Files to stage:**
[list source + test files created or modified during the session]
(Build artifacts, .env files, and IDE folders will NOT be staged)
Ready to commit?
→ Type **"commit"** or **"ship it"** to execute
→ Type your preferred message to override it
→ Type **"cancel"** to exit without committing일시 중지하고 기다림.
5단계: 커밋 실행
개발자가 확인하면:
- 세션의 모든 소스 및 테스트 파일을 스테이징 (스테이징 금지: ,
.env,.env.*,target/,build/,dist/,__pycache__/등 빌드 아티팩트).gradle/ - 후
git add [files]실행git commit -m "[message]" - 결과 커밋 해시 출력:
✅ Committed: abc1234 feat(payment): add payment intent creation endpoint
6단계: 세션 파일 정리
Delete `.tdd-sessions/[filename]`? (yes / no)
→ "yes" — delete the file
→ "no" — keep it (useful if the story spans multiple sessions)일시 중지하고 기다림. 응답에 따라 실행.
삭제 후 가 비어 있어도 그대로 두면 됩니다 — 이미 gitignore에 등록되어 있습니다.
.tdd-sessions/레퍼런스 파일
| 파일 | 읽는 시점 |
|---|---|
| 전체 커밋 형식 규칙 및 멀티 세션 전략 |