| name | commit |
| description | Create Git commits by splitting changes into logical units following project conventions |
Create Git commits following these rules:
- Follow commit message format:
type(scope): 설명
- Types: add/update/fix/refactor/test/docs/merge (English)
- Scopes (English):
- Primary: Domain names (auth, student, user, oauth)
- Cross-cutting concerns only: global
- Use domain names by default. Only use module names when changes affect multiple modules or cross-cutting concerns.
- Description: Korean, no period, do NOT use any of these endings: "~한다/~된다", "~하기/~하기 위해", "~합니다/~됩니다", "~했습니다"
- Use concise verb stem or noun phrase: e.g., "엔티티 필드 추가", "트랜잭션 롤백 방지", "로직 개선"
- Use subject line only (no commit body)
- Do NOT add AI tool as co-author
- Split changes into appropriate logical units with multiple commits
- Each commit should have a single responsibility
Scope Selection Guide
Priority: Domain name > Module name
Domain names (Primary):
- auth: Authentication/JWT/OAuth2 flow
- student: Student information
- user: User account management
- oauth: OAuth2 client management
Cross-cutting concerns only:
- global: Affects multiple domains (config, security, common utilities)
- ci/cd: Build/deployment
Wrong Examples:
fix(global): JWT 만료 예외 처리 수정 → fix(auth): JWT 만료 예외 처리 수정
update(global): 학생 엔티티 수정 → update(student): 엔티티 필드 추가
Correct Cross-cutting Usage:
refactor(global): 공통 예외 처리 로직 개선
update(ci/cd): GitHub Actions 워크플로우 최적화
Steps:
- Check changes with
git status and git diff
- Categorize changes into logical units (e.g., feature addition, bug fix, refactoring)
- Group files by each unit
- For each group:
- Stage only relevant files with
git add
- Write concise commit message following conventions (subject only)
- Execute
git commit -m "message"
- Verify results with
git log --oneline -n [number of commits]