개발
[AI Agent] “Codex 스킬 추가하기” : commit-message-ko를 실제 커밋까지 자동화한 과정
| 서론
안녕하세요 팡일입니다.
최근 팀 프로젝트를 진행하면서, 커밋 메시지를 작성하는 과정이 생각보다 반복적이라는 점을 다시 느끼게 되었습니다. Conventional Commits 규칙을 지키려다 보니 형식은 유지해야 하고, 변경 내용을 요약하는 데에도 매번 시간이 소요되었습니다.
그래서 단순히 “커밋 메시지를 생성해주는 도구”를 넘어서, 실제 커밋까지 자동으로 수행하는 Codex 스킬을 만들어보았습니다.
이번 글에서는 commit-message-ko 스킬을 설계하고, UI에 노출시키고, 실제 커밋까지 자동화한 과정을 정리해보려 합니다.
| 목표 설정
단순한 메시지 생성이 아니라, 아래 조건을 모두 만족하는 것을 목표로 삼았습니다.
Codex / Chat UI에서 Commit Message (KO)로 호출 가능
메시지 생성뿐 아니라 실제 git commit까지 자동 실행
스킬이 UI에 정상적으로 노출되도록 메타데이터 구성
즉, “메시지 생성 도우미”가 아니라 실제 개발 워크플로를 줄여주는 자동화 도구로 만드는 것이 핵심이었습니다.
| 1단계 : 스킬 초안 작성 (SKILL.md)
먼저 스킬의 기본 규칙을 SKILL.md에 정의했습니다.
핵심 규칙은 다음과 같습니다.
Conventional Commits 형식 사용
제목은 영어 소문자
본문은 한글로 변경 사항 요약
실행 시 메시지 생성 + 커밋까지 진행
특히 중요한 부분은, 단순 출력이 아니라 실행까지 책임지도록 설계하는 것이었습니다.
AI가 메시지를 만들어주고 끝나는 것이 아니라, 실제 Git 명령까지 수행하도록 구조를 확장했습니다.
| 2단계 :UI 노출을 위한 openai.yaml 구성
Codex / Chat UI에서 스킬이 검색되려면 openai.yaml 파일이 필요합니다.
최소한 다음 필드를 구성해야 합니다.
display_name
short_description
default_prompt→ 여기에는 반드시 $skill-name이 포함되어야 합니다.
이 설정을 통해 UI에서 Commit Message (KO)가 검색되고, 선택 가능한 상태가 되었습니다.
단순히 스킬을 작성하는 것과, UI에서 실제로 호출 가능하게 만드는 것은 전혀 다른 단계라는 점을 알게 되었습니다.
| 3단계 :스킬 위치 문제 해결
처음에는 프로젝트 내부 .github/skills/ 경로에 스킬을 두었습니다. 하지만 UI에서는 “찾은 스킬이 없습니다”라는 메시지가 표시되었습니다.
확인해보니, Codex는 기본적으로 다음 경로만 스캔합니다.
~/.codex/skills
따라서 스킬을 아래 경로로 복사했습니다.
~/.codex/skills/commit-message-ko
이후 UI를 새로고침하자 Commit Message (KO)가 정상적으로 노출되었습니다. 이 과정에서 깨달은 점은, 스킬의 내용만큼이나 위치와 구조도 중요하다는 것이었습니다.
| 4단계 :“메시지 생성”에서 “실제 커밋”으로 확장
기존 스킬은 메시지를 생성해 출력만 하도록 되어 있었습니다. 하지만 실제로 필요한 것은 다음과 같은 흐름이었습니다.
git add -A로 전체 스테이징
생성된 메시지로 git commit 실행
별도 확인 없이 즉시 커밋 완료
이를 스킬 규칙에 추가하면서, Commit Message (KO) 한 번으로 전체 커밋이 끝나는 워크플로를 만들 수 있었습니다.
이제는 메시지를 복사하고, 터미널에 붙여넣고, 다시 실행하는 과정을 거치지 않아도 됩니다. 호출 한 번으로 커밋까지 완료되는 자동화 구조가 완성되었습니다.
| 실제 파일 내용
1) agents/openai.yaml
interface: display_name: 'Commit Message (KO)' short_description: 'Conventional commit 메시지를 한글 본문으로 생성' default_prompt: 'Use $commit-message-ko to generate a conventional commit message for my current changes.
2) SKILL.md
--- name: commit-message-ko description: Generate conventional commit messages with lowercase English title and Korean body based on current changes --- # Skill Instructions You are a commit message generator. When this skill is invoked, generate a commit message based on the current code changes, then commit those changes. Follow these rules strictly: ## 1. Format Use Conventional Commits format: <type>: <title> <body> --- ## 2. Commit Execution - Stage all changes with `git add -A` - Create the commit using the generated message - Do not ask for confirmation --- ## 3. Title Rules - Must be written in English - Must be lowercase - Must be concise (one line) - Do NOT end with a period - Describe the change clearly ### Allowed types - feat: 새로운 기능 추가 - fix: 버그 수정 - refactor: 코드 구조 개선 (동작 변경 없음) - style: 포맷팅, 세미콜론, 공백 등 비기능 변경 - chore: 설정, 빌드, 패키지 관련 변경 - docs: 문서 수정 - test: 테스트 코드 추가/수정 Automatically infer the correct type based on the changes. --- ## 4. Body Rules - Must be written in Korean - Explain: - 무엇을 변경했는지 - 왜 변경했는지 (필요하다면) - Use clear and concise sentences - Do not repeat the title - Do not use emojis - Do not include unnecessary meta explanation --- ## 5. Example ### Input (changes summary) - 루틴 편집 모달 추가 - 인라인 CRUD 개선 - 스켈레톤 UI 적용 ### Output feat: add routine edit modal and improve inline crud flow 루틴 및 태스크 편집을 위해 자체 모달 컴포넌트를 추가했습니다. 목록 화면에서 즉시 생성·수정·삭제가 가능하도록 편집 흐름을 개선했습니다. 초기 진입 시 사용자 경험 향상을 위해 스켈레톤 UI를 적용했습니다. --- Always output only the final commit message. Do not add extra commentary.
| 결론
이번 commit-message-ko 스킬 작업을 통해 느낀 점은 명확합니다. 자동화는 “편의 기능”이 아니라, 개발자의 사고 흐름을 끊지 않게 해주는 도구라는 것입니다.
커밋 메시지 작성은 작지만 자주 반복되는 작업입니다. 이 작은 반복을 줄였을 뿐인데, 작업 리듬이 훨씬 자연스러워졌습니다. 앞으로도 단순한 생성 도구를 넘어, 실제 실행까지 책임지는 AI 워크플로를 계속 확장해보고자 합니다.