Awesome-omni-skill git-auto-commit
현재 저장소의 변경사항을 분석해 한국어 커밋 메시지(MMDD:HHmm - 요약)와 상세 변경 요약을 생성하고, `yarn lint` 및 `yarn build`를 모두 통과한 뒤 전체 스테이징 후 커밋합니다(푸시 없음). lint/build 실패 시 AI가 로그를 기반으로 자동 수정→재시도를 수행합니다(최대 N회). 기본 브랜치는 develop이며, 다른 브랜치에서는 경고 후 진행합니다.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/git-auto-commit" ~/.claude/skills/diegosouzapw-awesome-omni-skill-git-auto-commit && rm -rf "$T"
manifest:
skills/tools/git-auto-commit/SKILL.mdsource content
Git Auto Commit
Overview
현재 저장소의 변경사항을 분석하여 다음 작업을 자동으로 수행합니다.
- 한국어 한 줄 커밋 메시지 생성
- 상세 변경 요약 생성 (커밋 전 확인용)
강제 실행yarn lint
강제 실행yarn build- 전체 스테이징 후 커밋
- 자동 push 없음
추가로, lint/build가 실패하면 AI가 자동으로 수정 작업을 수행하고 재시도합니다. 모든 검증(lint, build)은 커밋 전에 반드시 통과해야 하며, 최대 재시도 횟수를 초과하면 커밋을 중단합니다.
Commit Message Format
- 형식(엄수):
MMDD:HHmm - 메시지 - 시간 기준: 로컬 타임(Asia/Seoul), 24시간제
예시 0123:2215 - 로그인 카드 UI 구조 개선
Detailed Change Summary
커밋 전에 변경 내용을 사람이 읽기 좋은 형태로 자세히 요약합니다.
요약 기준
- 변경된 파일 및 diff 기반
- 기능 및 의도 중심 요약
- 단순 diff 나열 금지
- 코드 리뷰 시 이해를 돕는 수준의 정보 제공
예시 출력
[상세 변경 요약]
- 로그인 카드 컴포넌트 레이아웃 재구성
- 버튼 영역 padding 및 타이포 크기 조정
- 모바일 환경에서 overflow 발생하던 문제 수정
- 관련 스타일 파일 구조 정리
Workflow
1. 변경 컨텍스트 수집
로 변경 파일 확인git status --porcelain
,git diff --stat
로 변경 범위 파악git diff- 변경사항이 없으면 중단
2. 상세 변경 요약 생성
- 변경 파일과 diff를 기반으로 bullet 형태의 상세 요약 생성
- 커밋 전 사용자에게 출력하여 검토 가능
3. 커밋 메시지 생성
- 상세 요약을 압축해 한 줄 한국어 요약 생성
- 포맷 고정:
MMDD:HHmm - 메시지
4. Lint → Build → Commit (No Push)
4-1. Lint 검사 (Auto-heal)
실행yarn lint- 성공: 다음 단계로 진행
- 실패: 아래 자동 복구 루프 실행
4-2. Build 검사 (Auto-heal)
실행yarn build- 성공: 다음 단계로 진행
- 실패: 아래 자동 복구 루프 실행
4-3. Commit
git add -Agit commit -m "<메시지>"- 브랜치가
이 아니면 경고 후 진행develop - 자동 push는 하지 않음
Auto-heal Policy (NEW ✨)
lint/build 실패 시 AI가 로그를 기반으로 수정하고 재시도합니다.
자동 복구 루프(권장 기본값)
- 최대 시도 횟수: 3회 (lint), 2회 (build)
- 각 시도마다:
- 실패 로그 수집(핵심 에러 라인/파일/스택)
- 원인 분류(예: ESLint 규칙 위반 / 타입 오류 / import 누락 / 경로 오류 / 빌드 설정 문제)
- 가능한 자동 조치 수행
- 동일 명령 재실행
- 성공 시 즉시 다음 단계로 진행
- 최대 시도 횟수 초과 시:
- 커밋 중단
- 마지막 실패 로그 요약 + 사용자가 수동으로 처리할 액션 제시
자동 조치 범위(예시)
- Lint:
1회 자동 시도(프로젝트가 지원하는 경우)yarn lint --fix- import 정렬/미사용 변수 제거/규칙 위반 수정
- prettier/eslint 충돌 시 설정/규칙 정리(범위 제한)
- Build:
- TypeScript 타입 오류 수정(명확한 경우)
- 누락된 export/import 경로 수정(명확한 경우)
- 환경변수/설정 키 누락 등은 “안전한 기본값/가드” 추가(보수적으로)
안전장치(중요)
- 잠재적으로 위험한 변경은 자동으로 하지 않음:
- 의존성 대규모 업그레이드, 락파일 전체 재생성, 빌드 파이프라인/배포 설정의 광범위 변경
- 의미가 불명확한 타입 캐스팅 남발(any 강제)
- 자동 수정이 코드 의미를 바꿀 수 있는 경우:
- AI는 수정안을 제시하고, “왜 필요한지”와 “영향 범위”를 설명한 뒤 진행
- 비밀정보/민감파일(.env, 키 파일 등) 내용은 수정/출력하지 않음
Run Script
PowerShell 예시:
.\scripts\commit_with_lint.ps1 -Summary "로그인 카드 UI 구조 개선"
옵션 예시:
-
요약 자동 생성 + 상세 요약 출력 + 자동 복구 활성화 .\scripts\commit_with_lint.ps1
-
자동 복구를 더 적극적으로(시도 횟수 상향) 하고 싶다면 스크립트 옵션으로 분리 권장:
- -MaxLintFixAttempts 3
- -MaxBuildFixAttempts 2
Notes
- Push는 사용자가 수동으로 수행합니다.
- lint/build가 실패한 커밋을 원천 차단합니다.
- 상세 변경 요약은 커밋 로그 품질 유지를 위해 커밋 메시지에 포함하지 않습니다.
- 자동 복구는 “CI 실패를 사전에 줄이기 위한 로컬 품질 게이트” 역할을 목표로 합니다.