I Added an AI Gate Before Every git push with no-mistakes 🛡️

개요

no-mistakes는 AI가 생성한 코드의 오류를 자동으로 감지하고 수정하여 Git push를 안전하게 수행하도록 돕는 CLI 도구입니다.

주요 내용

* 문제점: AI 코딩 도구의 편리함에도 불구하고, AI가 생성한 코드는 종종 import 누락, 타입 정의 오류, 테스트 실패 등 사소한 결함을 포함하며, 이러한 오류는 일반적으로 GitHub으로 push한 후에 CI/CD 파이프라인 실패를 통해 발견됩니다. 기존 워크플로우(CI/CD 실패 후 수정, Husky와 같은 pre-commit hook)는 수동적인 검증 및 수정 방식을 사용해 AI 코드 생성의 효율성을 저해합니다.
* no-mistakes의 작동 방식:
* git push 명령을 가로채어 코드를 GitHub으로 바로 보내지 않고 로컬 검증 파이프라인을 거치게 합니다.
* 백그라운드에서 임시 Git worktree를 생성하여 현재 작업 환경에 영향을 주지 않습니다.
* 생성된 임시 환경에서 테스트, 린터, 빌드 단계를 실행하여 코드 유효성을 검사합니다.
* 테스트 실패 시, 오류 로그를 AI 에이전트에게 전달하여 코드를 자동으로 수정하도록 합니다.
* AI가 코드를 수정한 후 모든 테스트를 통과하면, 수정된 코드를 GitHub으로 push하고 Pull Request를 자동으로 생성합니다.
* 검증 및 수정 완료 후 임시 worktree를 삭제합니다.
* 주요 특징:
* 능동적 검증: 오류 발생 시 수동 수정이 아닌 AI 에이전트를 통한 자동 수정 루프를 시작합니다.
* Interactive Terminal UI (TUI): AI가 코드를 수정하는 과정을 실시간으로 보여주며, AI가 막히면 사용자가 직접 개입하여 지침을 제공할 수 있습니다.
* Claude Code 등 통합: Claude Code와 같은 AI 에이전트와 네이티브하게 통합되어 AI가 no-mistakes 스킬을 사용하여 변경 사항을 검증하고 게이팅하도록 지시할 수 있습니다.
* Non-Blocking: 백그라운드에서 테스트 및 수정이 진행되는 동안 사용자는 다음 작업을 즉시 시작할 수 있습니다.
* Auto-Rebase: 테스트 전에 코드를 최신 main 브랜치 기준으로 자동으로 rebase하여 잠재적인 머지 충돌을 방지합니다.
* Auto-Documentation: 코드 변경 사항을 검토하여 README.md를 자동으로 업데이트합니다.
* Clean PRs: 실패한 빌드를 upstream으로 push하는 것을 방지합니다.
* 설치 및 사용: CLI 도구를 전역으로 설치하고 no-mistakes init 명령으로 프로젝트에서 초기화한 후, git push origin 대신 git push no-mistakes를 사용하여 코드를 push합니다.

시사점

AI 코딩이 보편화됨에 따라 개발 도구는 코드 작성에서 검증 중심으로 전환될 필요가 있으며, no-mistakes는 AI 생성 코드의 오류를 효과적으로 관리하여 개발 워크플로우의 신뢰성과 효율성을 높이는 실용적인 솔루션을 제공합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions