[STK8-01] commit-msg 훅 신규 생성 (Codex)
작업 내용 (설계 의도)
변경 사항
.githooks/commit-msg 훅을 신규 생성한다. staged diff를 Codex에 전달해 프로젝트 컨벤션([no-jira] 또는 [STK-XX] - type : 제목)에 맞는 커밋 메시지를 자동 생성한다.
사용자가 메시지를 직접 작성한 경우(-m 플래그 또는 에디터 입력)에는 덮어쓰지 않는다. Codex 실패 시 커밋을 차단하지 않는다.
다이어그램
처리 흐름
sequenceDiagram participant G as Git participant H as commit-msg hook participant CO as Codex CLI G->>H: $1 (커밋 메시지 파일 경로) H->>H: 파일 내용 확인 alt 이미 내용 있음 H-->>G: exit 0 (그대로 사용) else 비어있음 H->>H: git diff --cached alt diff 없음 H-->>G: exit 0 else diff 있음 H->>CO: diff 전달 + 메시지 생성 요청 alt Codex 성공 CO-->>H: 커밋 메시지 H->>G: $1 파일에 기록 else Codex 실패 H-->>G: exit 0 (경고만 출력) end end end
테스트 케이스
- staged diff가 있고 메시지 파일이 비어있으면 Codex가 메시지를 생성해 파일에 기록한다
git commit -m "수동 메시지"시 파일에 내용이 있으므로 Codex가 덮어쓰지 않는다- staged diff가 없으면(빈 커밋) Codex를 호출하지 않는다
- Codex가 실패(exit non-zero)해도 커밋이 차단되지 않는다