Claude Code를 위한 자율 감사 루프를 통해 bat, chalk, fasthttp의 버그를 발견하여 모두 업스트림에 병합되었습니다.
요약
Claude Code를 활용해 자율적인 감사 루프를 구축하여 bat, fasthttp 등 주요 오픈소스 프로젝트의 버그를 발견하고 업스트림에 병합한 사례를 소개합니다. 수락 검사, 반복적 작업 수행, 서브 에이전트를 통한 교차 검증을 통해 코드의 신뢰성을 확보하는 방법론을 제시합니다.
핵심 포인트
- Claude Code를 활용한 자율 감사 루프 구축 및 오픈소스 버그 수정
- 실행 가능한 수락 검사(Acceptance Check)를 통한 객관적 완료 기준 설정
- 서브 에이전트를 이용한 교차 검증으로 결과물의 신뢰성 확보
- 우선순위 기반의 폭넓은 감사(Audit breadth-first) 전략 권장
누구나 에이전트(agent)를 리포지토리(repo)에 지정하고 실행하게 할 수 있습니다. 어려운 점은 작업이 끝난 후 발견한 결과물을 신뢰할 수 있느냐 하는 것입니다. 저는 코드베이스를 감사(audit)하고, 모든 작업이 실행 가능한 수락 검사(acceptance check)를 포함하는 백로그(backlog)를 작성하며, 새로운 감사가 깨끗하게 통과되고 적대적 서브 에이전트(adversarial sub-agent)가 승인할 때까지 반복적으로 하나의 검증된 작업을 수행하는 Claude Code 스킬을 구축했습니다. /jeffy 10을 실행하고 자리를 비우기만 하면 됩니다. 여러분을 맞이하는 것은 맹목적으로 믿어야 하는 변경 사항의 더미가 아니라, 체크포인트(checkpoint)의 git 로그입니다. Claude가 구축했고 Claude가 실행합니다. 저는 루프(loop)와 수렴 규칙(convergence rules)을 설계했고, Claude Code가 스킬, 설치 프로그램, 그리고 엔진을 보호하는 119개의 행동 검사(behavioural checks)를 작성했습니다. 이것은 API 래퍼(wrapper)가 아니라, 이미 사용 중인 Claude Code에 바로 적용할 수 있는 스킬입니다. 무료이며, MIT 라이선스이고, 계정이나 유료 티어가 필요 없습니다. 저는 저와 아무런 관련이 없는 17개의 오픈 소스 프로젝트에 이를 실행했습니다. 8개 언어에 걸쳐 16개가 수렴했습니다. 수렴하지 않은 하나는 표에 명시되어 있습니다. 모든 실행은 요약이 아닌 전체 저널(journal)을 포함하는 공개 영수증입니다: bat (60k stars, Rust): 방금 병합된 보안 플래그가 출력이 파이프(piped)될 때 아무런 동작을 하지 않았으며, 12개의 Unicode bidi 문자 중 3개가 필터를 통과했습니다. 기능이 배포되기 전에 수정 사항이 업스트림(upstream)에 병합되었습니다. fasthttp (23k stars, Go): v1.73.0 릴리스 태그(release tag)에서, Content-Length 파싱이 거부했어야 할 숫자를 잘못된 숫자로 변환했습니다. 유지 관리자 검토 단계를 거친 후 수정 사항이 업스트림에 병합되었습니다. dayjs: 주당 6,500만 회의 다운로드를 기록하는 라이브러리에서 45개의 발견 사항(findings) 중 10개가 High 등급이었습니다. RuboCop과 gson: 깨끗하게 통과되었습니다. 발견 사항 0개로 명시되었습니다. 동일한 루프가 dayjs에 대해 45개를 찾아냈으므로, '깨끗함' 판정은 지어낸 작업으로 가리는 것이 아니라 도달할 수 있는 결과입니다. 수정 사항 중 3개는 업스트림에 병합되었으며, 그중 하나는 chalk v6.0.0에 포함되었습니다. 대부분의 발견 사항은 통과하는 테스트 스위트(test suites) 뒤에 숨어 있었는데, 이는 제가 예상하지 못한 부분이었습니다. 네 가지 요소가 차이를 만들었습니다. 제 것을 설치하든 안 하든, 여러분이 가져가도 좋을 가치가 있는 것들입니다: 무엇이든 수정하기 전에 우선순위 기반으로 폭넓게 감사(Audit breadth-first)하십시오.
첫 번째 반복(iteration)부터 수정을 시작하는 루프는 눈에 보이는 첫 번째 문제로 바로 파고들며 나머지 부분을 조사하지 않습니다. 모든 작업은 작업이 시작되기 전에 작성된 실행 가능한 수락 검사(acceptance check)를 포함합니다. 여기서 "완료(Done)"는 주관적인 판단이 아니라, 종료 코드(exit code)를 동반하는 명령어가 됩니다. 반복당 하나의 작업을 수행하며, 각 작업은 체크포인트(checkpoint)로서 커밋됩니다. 여기에 더해 저장소 수준의 검증(verify) 명령어를 매 반복마다 다시 실행합니다. 새로운 오류를 발생시키는 반복은 되돌리기(revert) 처리됩니다. 수렴(Convergence)은 해당 작업을 수행하지 않은 새로운 컨텍스트의 서브 에이전트(sub-agent)에 의해 교차 확인됩니다. 자신의 출력을 스스로 채점하는 모델은 자신을 통과시켜 버릴 것입니다. https://github.com/lenamonj/jeffy-loop 작동 방식에 대해 무엇이든 질문해 주세요. 사람들이 가장 먼저 묻는 질문은 어떻게 완료 여부를 결정하느냐는 것이며, 솔직한 답변은 "완료"란 모델이 말하는 것이 아니라, 주장을 재확인하는 셸 스크립트(shell script)라는 점입니다. /u/Dull_String9524 제출 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/ClaudeAI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기