게이트를 끈 뒤 남긴 것

게이트를 끄기로 한 판단과, 강제를 걷어낸 자리에 남긴 에이전트 정의와 검토 습관

Windows PC에서는 다시 확인할 수 있도록 킬스위치 파일을 만들고 설정을 백업했다. 맥에서는 훅과 정책 문서를 지웠다.

끄기로 한 계기

내가 쓰던 메인 세션 모델을 새 버전으로 바꾼 뒤, 게이트가 발동하는 횟수와 이유가 달라졌다.

이전 모델에서는 세션이 직접 파일을 고치다가 편집 한도에서 멈춘 뒤 작업을 위임하는 일이 반복됐다. 새 모델에서는 큰 작업을 받으면 먼저 워커를 띄우고 결과를 모으는 경우가 늘어 게이트의 발동 자체가 줄었다. 게이트는 이미 이뤄진 위임을 다시 확인하는 장치가 됐다.

이후 게이트는 주로 오탐에서 발동했다. 문서를 고치다 코드 블록 하나를 손대거나 설정 파일 하나를 바꾸는 등 위임할 만한 크기가 아닌 일에서 게이트가 걸렸다. 이런 작은 변경까지 워커로 넘기면서 킬스위치를 켜는 횟수가 게이트에 걸리는 횟수와 비슷해졌다.

무엇을 지우고 무엇을 남겼나

훅 세 개와 정책 문서를 지웠다. 편집 카운터, Bash 차단, 크기 게이트, 킬스위치가 함께 사라졌다. 설정에서 훅 배선을 걷어내고, 남은 참조가 없는지 설정 파일과 프로젝트 문서를 훑었다. CLAUDE.md에 있던 오케스트레이션 계약 절도 같이 지웠다. 강제가 없는데 계약 문구만 남으면 다음 세션이 아직 적용되는 규칙으로 오해할 수 있다.

에이전트 정의 세 개는 남겼다. 지금도 맥의 ~/.claude/agents/에 그대로 있다.

deep-reasoner.md
default-worker.md
task-worker.md

강제를 없앤 뒤에도 역할 구분은 사용했다. 어려운 판단은 추론에 강한 에이전트에게, 기계적인 작업은 가벼운 모델에게 넘겼다. 이제는 필요할 때만 각 에이전트를 부른다.

검토 방식도 남았다. 위험한 변경에 다른 계보의 검토를 붙이는 일을 여러 번 반복했고, 규칙을 지운 뒤에도 같은 방법을 쓰고 있다.

Windows 쪽은 지우는 대신 껐다. 에이전트 정의와 정책 문서는 이름 뒤에 .disabled를 붙였고, 훅 스크립트는 이름을 그대로 둔 채 설정에서 배선만 걷어냈다. 판정 순서를 다시 확인할 때는 그 파일을 열어 본다.

다시 만든다면

같은 것을 다시 만든다면 처음에는 차단하지 않고 메인 세션의 편집 횟수와 크기만 기록하겠다. 실제로 편집이 반복되는 지점을 확인한 뒤 임계값을 정하면 100줄로 시작해 400줄로 올린 시행착오를 줄일 수 있다.

기록 훅에는 차단 판정이나 공유 편집 카운터가 필요 없다. 파싱 실패 처리와 카운터 잠금은 차단 규칙을 넣으면서 필요해진 구현이었다.

지금이라면 한동안 기록을 모은 뒤 반복되는 문제에만 강제를 붙이겠다. 처음 구현할 때는 문제를 짐작해 규칙을 먼저 만들고 임계값을 나중에 맞췄다.

다시 강제를 검토할 조건도 정했다. 모델이 규칙을 반복해서 어기거나 위반 비용이 큰 작업이다. 지우기 어려운 데이터를 다루거나 되돌리기 힘든 명령이 섞인다면 훅을 다시 고려할 것이다. 이번처럼 대화 컨텍스트를 줄이는 목적에는 먼저 편집 행태를 기록해 실제 반복 여부를 확인하려 한다.

강제 없이 남은 작업 방식

게이트를 운용하면서 큰 작업은 구현 전에 나눠 맡기고, 위험한 코드 변경에는 별도 검토를 붙이게 됐다. 이 순서를 게이트 없이도 반복하게 된 뒤에는 편집 횟수를 강제로 제한할 이유가 줄었다.

참고

Comments

댓글

    이미지 확대