내 AI 설정, 업데이트마다 조용히 깨진다
CLAUDE.md·스킬·훅을 릴리스마다 회귀 테스트하는 오픈소스 공개
클로드 코드(Claude Code)의 지시문 파일과 스킬, 훅(hook)을 회귀 테스트하는 오픈소스 도구가 공개됐다. 컨피그 드리프트 체커(config-drift-checker)는 클로드 코드가 새 버전을 낼 때마다 내 설정이 여전히 의도대로 작동하는지 자동으로 확인하고, 하나라도 망가지면 즉시 알린다. 만든 사람의 문제의식은 한 줄이다. 설정도 코드인데 아무도 테스트하지 않는다는 것.
무슨 일인가 / 배경
클로드 코드를 오래 쓰면 지시문 파일과 스킬, 훅이 쌓인다. 위험한 명령을 막는 가드 훅, 특정 상황에서만 발동해야 하는 스킬, 코딩 규칙을 담은 지시문 같은 것들이다. 문제는 이것들이 조용히 고장 난다는 점이다. 실행 도구가 업데이트되면 어제까지 막히던 명령이 오늘은 통과하는데, 아무 오류도 나지 않으므로 사고가 터질 때까지 모른다.
이 도구는 설치 후 명령 한 번으로 기존 설정을 읽어 첫 테스트 케이스를 스스로 작성한다. 실제 코드를 고치게 하는 요청, 스킬이 발동하면 안 되는 요청, 가드 훅이 반드시 막아야 하는 명령 세 종류다. 각 케이스는 저장소를 복제한 일회용 사본 안에서 여러 번 실행되고, 채점기가 판정과 이유를 남기며 판정용 모델이 무엇을 봤는지 설명한다. 케이스 형식은 앤스로픽(Anthropic)이 정한 플러그인 평가 형식을 그대로 쓴다.
핵심 짚어보기
흥미로운 대목은 공개된 실측 결과다. 한 스프링 부트(Spring Boot) 서비스에서 같은 케이스를 팀 설정을 켠 채로, 그리고 설정을 걷어낸 채로 각각 돌렸다. 가드 훅이 강제 리셋 명령을 막아야 하는 케이스는 설정이 있을 때 1.00이었지만 훅을 빼자 0.33으로 떨어졌다 — 훅이 없으면 그 명령이 대체로 그냥 실행된다는 뜻이다. 서비스·DTO·컨트롤러에 걸쳐 엔드포인트를 추가하는 케이스는 1.00에서 0.50으로 내려갔고, 도커파일 요청이 백엔드 스킬을 잘못 깨우지 않는지 보는 케이스는 양쪽 모두 1.00이었다. 설정의 각 조각이 실제로 얼마만큼의 값어치를 하는지가 숫자로 드러난 셈이다.
개발자가 초기에 발견했다는 사례도 곱씹을 만하다. 어떤 훅 테스트가 통과했는데 알고 보니 훅이 작동한 게 아니라 모델이 스스로 그 명령을 거절한 것이었다. 점수는 같지만 원인이 다르다. 그래서 보고서에 판정 이유를 반드시 함께 남긴다는 설명이다.
감시는 자동으로 돈다. 6시간마다 새 버전 출시를 확인해 클로드 코드가 업데이트되면 전체 스위트를 돌리고 기준선과 비교한 뒤, 달라진 게 있으면 검사를 실패로 바꾼다. 슬랙(Slack) 알림도 붙일 수 있다. 실행은 사용자의 깃허브 액션(GitHub Actions)에서 사용자의 API 키로 이뤄지며 저장소 밖으로 나가는 데이터는 없다.
1인기업 실전 적용 포인트
- 가장 위험한 훅 하나부터 케이스를 만든다. 파일 삭제, 강제 리셋, 배포 명령처럼 되돌릴 수 없는 동작 중 하나를 골라 반드시 막혀야 한다는 케이스로 고정하면 투자 대비 효과가 가장 크다.
- 스킬이 깨어나면 안 되는 상황도 케이스로 넣는다. 과잉 발동은 잘못된 결과보다 발견이 늦다. 무관한 요청 하나를 넣고 스킬이 조용한지 확인한다.
- 설정을 뺐을 때의 점수를 함께 재 본다. 차이가 없다면 그 스킬이나 지시문은 실제로는 아무 일도 하지 않고 토큰만 쓰고 있을 가능성이 있다.
- 도구를 도입하지 않아도 원리는 쓸 수 있다. 자주 쓰는 자동화 세 개에 대해 이렇게 요청하면 이렇게 나와야 한다를 문서로 적어 두고, 업데이트 후 손으로 한 번씩 돌려보는 것만으로도 조용한 고장을 잡는다.
전망 / 주의점
자체 호스팅과 플러그인은 무료이며, 여러 저장소를 한곳에서 관리하는 유료 서비스는 월 49달러부터 시작해 팀 149달러, 비즈니스 399달러로 나뉜다. 모델 실행 비용은 어느 경우든 사용자 API 키로 청구된다. 라이선스는 경쟁 서비스로의 재판매만 막고 각 릴리스 2년 뒤 아파치 2.0으로 전환되는 형태다. 테스트가 늘어날수록 비용도 함께 늘어난다는 점은 감안해야 한다 — 케이스마다 실제 에이전트를 여러 번 돌리기 때문이다. 전부 감시하려 들지 말고, 틀리면 손해가 큰 것부터 좁게 시작하는 편이 현실적이다.
출처: config-drift-checker (https://jameskomo.github.io/config-drift-checker/)
이 시스템이 실제로 돌아가는 모습은 유튜브에서 공개 중입니다.
채널 보기 ↗