본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 05. 23. 06:15

Show HN: AI 에이전트가 PR이 완료되었음을 알 수 있도록 돕는 도구를 만들었습니다

요약

AI 코딩 에이전트가 Pull Request(PR)의 머지 준비 상태를 정확히 판단할 수 있도록 돕는 도구인 'Good To Go'를 소개합니다. CI 상태, 리뷰 코멘트, 토론 상태를 분석하여 에이전트가 다음 행동을 결정할 수 있는 명확한 상태 값을 제공합니다.

핵심 포인트

  • AI 에이전트의 PR 머지 판단 모호성 해결
  • CI, 리뷰 코멘트, 토론 상태를 통합 분석
  • AI 친화적인 JSON 출력 및 상태 추적 기능 제공
  • 결정론적인 상태 값을 통한 에이전트 무한 루프 방지

AI 보조 개발 (AI-assisted development)에서 빠져 있는 조각: 실제로 작업이 완료되었음을 아는 것.

AI 코딩 에이전트 (AI coding agents)는 소프트웨어 개발을 변화시키고 있습니다. 이들은 코드를 작성하고, 버그를 수정하며, 리뷰 코멘트에 응답하고, 풀 리퀘스트 (Pull Requests, PR)를 생성할 수 있습니다. 하지만 이들은 모두 한 가지 근본적인 문제를 공유합니다:

PR이 머지 (Merge)될 준비가 되었는지 신뢰할 수 있게 판단하지 못한다는 점입니다.

생각해 보세요. AI 에이전트에게 "CI를 수정하고 리뷰 코멘트를 반영해줘"라고 요청했을 때, 에이전트는 자신이 언제 작업을 마쳤는지 어떻게 알 수 있을까요?

결정론적인 (Deterministic) 답변이 없다면, 에이전트는 다음 중 하나를 수행하게 됩니다:

Good To Go는 이 질문에 확정적인 답변을 제공하는 단일 명령어를 제공합니다:

gtg 123

그게 전부입니다. 명령어 하나, 답변 하나.

상태 (Status)의미 (Meaning)조치 사항 (What to Do)
READY모두 통과 (All clear)머지하세요 (Merge it)
ACTION_REQUIRED코멘트 수정 필요 (Comments need fixes)이를 해결하세요 (Address them)
UNRESOLVED열린 토론 (Open discussions)이를 해결하세요 (Resolve them)
CI_FAILING체크 통과 실패 (Checks not passing)빌드를 수정하세요 (Fix the build)
ERROR데이터 가져오기 실패 (Failed to fetch data)토큰/네트워크를 확인하세요 (Check token/network)

모호함이 없습니다. 추측도 없습니다. 무한 루프도 없습니다.

Good To Go는 세 가지 차원에서 PR을 분석합니다:

모든 GitHub 체크 실행 (Check runs) 및 커밋 상태 (Commit statuses)를 하나의 통과/실패/대기 상태로 결합합니다. 여러 CI 시스템, 필수 vs 선택적 체크, 그리고 진행 중인 실행의 복잡성을 처리합니다.

모든 리뷰 코멘트가 동일한 것은 아닙니다. Good To Go는 각 코멘트를 다음과 같이 분류합니다:

내장된 파서 (Built-in parsers)는 인기 있는 자동 리뷰어들의 패턴을 이해합니다:

진정으로 해결되지 않은 토론과, 기술적으로는 "미해결(unresolved)" 상태이지만 이후 커밋에서 이미 다뤄진 스레드를 구분합니다.

Good To Go는 AI 에이전트가 작동하는 방식에 맞춰 특별히 구축되었습니다:

기본 모드는 0을 반환합니다.

분석 가능한 모든 상태에 대해—왜냐하면 AI 에이전트는 종료 코드 (Exit codes)를 에러로 해석하는 것이 아니라 JSON 출력을 파싱 (Parse)해야 하기 때문입니다.

# AI 친화적 (기본값): exit 0 + JSON 파싱
gtg 123 --format json
# 쉘 스크립트 친화적: 의미론적 종료 코드 (Semantic exit codes)
...

모든 응답에는 에이전트가 조치를 취하는 데 필요한 정보가 정확히 포함되어 있습니다:

{
"status": "ACTION_REQUIRED",
"action_items": [
...

에이전트 세션 전반에 걸쳐 이미 처리된 사항을 추적합니다:

gtg 123 --state-path .goodtogo/state.db # 무시된 댓글 기억
gtg 123 --refresh # 강제 새로 분석

gtg를 필수 상태 체크 (status check)로 만드세요. PR은 단순히 "CI 통과"가 아니라, 진정으로 준비될 때까지 머지(merge)할 수 없습니다.

# .github/workflows/pr-check.yml
- name: Check PR readiness
  run: gtg $ --semantic-codes

/rerun-gtg

스레드(threads)를 해결하거나 댓글에 대응했을 때, CI를 다시 빌드하지 않고도 빠른 재검사를 트리거하세요:

/rerun-gtg

즉각적인 피드백을 받으려면 모든 PR에 이 명령어를 댓글로 남기세요:

또는 워크플로 디스패치 (workflow dispatch)를 통해 수동으로 트리거할 수 있습니다:

gh workflow run gtg-rerun.yml -f pr_number=123

AI 에이전트에게 끝없는 폴링 (polling) 대신 확정적인 답변을 제공하세요:

result = subprocess.run(["gtg", pr_number, "--format", "json"], ...)
data = json.loads(result.stdout)
if data["status"] == "READY":
...

PR의 전체 라이프사이클 (lifecycle) 동안 모니터링하세요:

while true; do
gtg 123 -q
case $? in
...

스레드를 해결한 후, 빠른 재검사를 트리거하세요:

gh pr comment 123 --body "/rerun-gtg"
# 설치
pip install gtg
# GitHub 토큰 설정
...

Good To Go에는 PR 워크플로 (workflows)에 대한 몇 가지 견해가 포함되어 있습니다:

Made with Claude Code

by David Sifry

AI 자동 생성 콘텐츠

본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0