사용 시기
이 스킬은 각 커밋이나 PR에 무엇을 포함할지 결정할 때 로드하세요.
다음과 같은 경우에 사용합니다:
- 기능을 검토 가능한 작업으로 분할.
- PR을 열기 전에 커밋 준비.
- 대규모 변경을 체인 또는 스택 PR로 변환.
- 리뷰어의 인지 부하를 건강하게 유지.
- SDD 작업을 적용하면서 실수로 400줄이 넘는 PR을 생성하지 않도록 방지.
중요한 규칙
| 규칙 | 요구 사항 |
|---|---|
| 작업 단위별 커밋 | 커밋은 전달 가능한 동작, 수정, 마이그레이션 또는 문서 단위를 나타냅니다. |
| 파일 유형별 커밋 금지 | models → services → tests 순서로 커밋하지 마세요. 각각 단독으로 동작하지 않는다면 말이죠. |
| 테스트를 코드와 함께 유지 | 테스트는 검증하는 동작과 동일한 커밋에 속합니다. |
| 문서를 사용자에게 보이는 변경과 함께 유지 | 문서는 설명하는 기능이나 워크플로와 함께 있어야 합니다. |
| 이야기를 전달하라 | 리뷰어는 diff와 메시지로 각 커밋이 존재하는 이유를 이해할 수 있어야 합니다. |
| 향후 PR 준비 | 각 커밋은 변경이 커질 경우 체인 PR의 후보가 되어야 합니다. |
| SDD 작업량 보호 | SDD 작업이 400줄이 넘는 변경을 예측하면, 구현 전에 커밋을 체인 PR 조각으로 그룹화하세요. |
| 예산은 코드 골프가 아님 | 검토 예산(기본 400 또는 세션 review_budget_lines)을 맞추기 위해 주석, 빈 줄, 문서, 테스트를 삭제하거나 코드를 압축하여 diff를 줄이지 마세요. 작업 단위로 분할하거나 초과분을 보고하세요. |
작업 단위 체크리스트
커밋하기 전에 확인하세요:
- 커밋에 명확한 목적이 하나 있습니다.
- 이 커밋만 적용해도 저장소가 여전히 정상적으로 동작합니다.
- 이 단위에 대한 테스트 또는 문서가 관련된 경우 포함되었습니다.
- 관련 없는 작업을 되돌리지 않고 롤백하는 것이 합리적입니다.
- 커밋 메시지는 파일 목록이 아닌 결과를 설명합니다.
분할 예시
| 잘못된 분할 | 더 나은 작업 단위 분할 |
|---|---|
add models | feat(auth): add token validation domain model and tests |
add services | feat(auth): wire token validation into login flow |
add tests | 각 동작 커밋에 테스트 포함 |
update docs | 문서는 설명하는 사용자 대상 변경과 함께 포함 |
PR 관계
작업 단위 커밋을 체인 PR의 기초로 사용하세요:
- 가장 작은 독립 작업 단위를 만듭니다.
- 해당 단위에 대한 검증을 포함합니다.
- Conventional Commit 메시지로 커밋합니다.
- PR 변경 줄 수가 400줄에 가까워지면, 커밋 또는 커밋 그룹을 체인 PR로 승격합니다.
SDD 관계
sdd-tasks가 검토 작업량 예측을 생성할 때:
- 낮음 위험: 작업 단위 커밋을 하나의 PR 안에 유지합니다.
- 중간 위험: 작업 단위별로 커밋하고 PR 생성 전에 변경 줄 수를 모니터링합니다.
- 높음 위험: SDD
delivery_strategy를 따릅니다 —ask-on-risk에 질문,auto-chain에 자동 분할, 예산 초과single-pr에size:exception필요, 또는exception-ok에 수락된size:exception기록. - 분할에는 한계가 있습니다: 한 번의 정직한 분할 시도 후에도 예산에 맞는 응집력 있는 작업 단위 분할이 없으면 중단하고,
size:exception권장과 함께 가장 작은 정직한 개수를 보고합니다. 코드를 줄여 숫자에 맞추기 위해 반복하지 마세요.
각 SDD 작업 단위는 다음 조건을 갖춘 커밋 또는 PR에 깔끔하게 매핑되어야 합니다:
- 명확한 시작 상태,
- 명확한 완료 상태,
- 동일한 단위 내 검증,
- 관련 없는 작업을 제거하지 않는 롤백.
명령어
# 커밋 전에 스토리 검토
git diff --stat
git diff --cached --stat
# 최근 커밋 스타일 확인
git log --oneline -5