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.md
source 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 -A
  • git commit -m "<메시지>"
  • 브랜치가
    develop
    이 아니면 경고 후 진행
  • 자동 push는 하지 않음

Auto-heal Policy (NEW ✨)

lint/build 실패 시 AI가 로그를 기반으로 수정하고 재시도합니다.

자동 복구 루프(권장 기본값)

  • 최대 시도 횟수: 3회 (lint), 2회 (build)
  • 각 시도마다:
    1. 실패 로그 수집(핵심 에러 라인/파일/스택)
    2. 원인 분류(예: ESLint 규칙 위반 / 타입 오류 / import 누락 / 경로 오류 / 빌드 설정 문제)
    3. 가능한 자동 조치 수행
    4. 동일 명령 재실행
  • 성공 시 즉시 다음 단계로 진행
  • 최대 시도 횟수 초과 시:
    • 커밋 중단
    • 마지막 실패 로그 요약 + 사용자가 수동으로 처리할 액션 제시

자동 조치 범위(예시)

  • Lint:
    • yarn lint --fix
      1회 자동 시도(프로젝트가 지원하는 경우)
    • 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 실패를 사전에 줄이기 위한 로컬 품질 게이트” 역할을 목표로 합니다.