클로드 코드 무인 실행이 승인 요구에서 멈춘다 — 권한 목록, 폴더 경계, 설정 전파
퇴사하고 AI로 돈을 버는 과정을 공개로 기록하고 있다. 그 기록의 절반은 클로드 코드에게 “사람이 안 눌러도 도는 것”을 맡기다 실패한 이야기인데, 8월 29일부터 9월 20일까지 일곱 번이 거의 같은 모양이었다. 무인으로 걸어둔 작업이 첫 명령에서 승인을 기다리며 서고, 승인할 사람은 자리에 없다.
같은 화면, 다른 원인
This command requires approval 한 줄은 세 번 봤고 원인은 세 번 다 달랐다.
9월 5일에는 권한 23줄을 적어뒀는데 폴더 신뢰 기록이 없어 목록 전체가 무시된 것이었다. 설정 파일 자체에는 아무 이상이 없다. 그 파일이 읽히기는 했는지는 파일을 백 번 열어도 안 보이고, 실행이 남긴 로그 첫 줄에만 적혀 있다. 나는 13분 동안 그 로그를 열지 않았다.
9월 19일에는 반대로 원인이 담긴 설정 파일 자체를 열 수 없었다. 작업 디렉터리를 프로젝트 한 곳으로 고정한 세션에게 홈은 존재하지 않는 폴더다. 왜 멈췄는지 알려면 허용 목록을 봐야 하는데 그 목록을 여는 행위가 정확히 같은 경계에 걸려서, 세션 안에서는 진단할 방법이 없다.
9월 20일에는 파이프가 범인인 줄 알았다가 조각 자체가 목록에 없었던 것으로 끝났다. 밤에 세션을 두 개 따로 열어 한 줄씩 재봤더니, 파일도 네트워크도 안 건드리는 산수 한 줄은 승인을 요구했고 리다이렉트가 붙은 npm run은 그냥 돌았다. 판정은 이 명령이 무엇을 하는지가 아니라 명령 이름이 목록에 있는지를 본다. 관측 두 개에서 나온 해석이라 반례를 만나면 그때 고친다.
세 번 다 내가 먼저 의심한 건 allow 패턴 문법이었고, 세 번 다 아니었다.
한쪽에서 고친 것은 옆 세션으로 안 넘어간다
막힌 곳을 고쳐도 끝이 아니었다. 9월 9일 새벽 1시 40분에 시간으로 기다리다 차단당한 sleep을 조건 루프로 바꿨는데, 8시간 뒤 나란히 열려 있던 다른 세션에서 240이 25로 줄었을 뿐 같은 형태를 다시 썼다. 두 세션 모두 00시 31분에 시작했고 뒤엣것은 19시 50분까지 돌고 있었다. 하루 종일 건너가지 않았다.
지시문도 똑같았다. 9월 6일 아침에 답이 자꾸 안 되는 이유부터 오길래 톤을 고치라고 하는 대신 지시문 파일을 지목해 고치게 했는데, 27분 뒤 두 세션에 같은 불평을 또 쳤다. 그 세션들은 수정보다 먼저 열렸고 한쪽은 홈에서 돌아서 프로젝트 지시문을 읽을 일이 애초에 없었다. 그래서 지시는 세션이 아니라 폴더에 건다. 그날 파일 15개를 같이 고쳤다.
기계가 센 숫자도 사람이 한 줄씩 연다
무인화의 출발점은 세션 로그를 글의 원자료로 쓰는 것이었는데, 여기서도 두 번 걸렸다.
자동으로 뽑힌 실패 신호 10건을 한 줄씩 열어보니 여럿이 정상 출력이었다. 소스 파일을 화면에 찍은 출력 안의 Error 한 단어, 내가 그날 써둔 메모, 유튜브 자막 한 줄이 진짜 실패와 같은 무게로 한 목록에 섞여 있었다. 손으로 걸러 남은 건 2건이다.
반대 방향도 있다. 마스킹 정규식을 넓게 잡았더니 에러 원문 authorization denied가 통째로 지워졌다. 안전장치가 먼저 먹은 게 비밀값이 아니라 실패의 이유였다. 같은 에러로 검색해 들어올 사람이 붙여넣을 문자열이 정확히 그 두 단어다.
지금 서 있는 자리
9월 20일 기준으로 허용 목록 정리는 다음 날 할 일로 남겼고, 9월 5일의 신뢰 대화상자도 끝까지 수락하지 않았다. 무인 발행은 아직 사람이 한 번 켜야 도는 날이 있다.
8편 · extract-worklog-from-session-log 시작