대니
danny's blog@dannywon_dev
발행 19 · 대기 82

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

CLAUDE.md 와 checkpoint 스킬이 서로 반대를 말했다

승인 없이 커밋 7개가 나갔다. 원인을 찾다 규칙 두 개가 정면으로 어긋난 걸 발견했다

규칙을 적어뒀는데 AI 가 안 지킨 적이 있다면, 규칙이 하나가 아닐 가능성을 먼저 봐야 한다.

2026-08-03 밤, 클로드가 승인 없이 커밋 7개와 푸시 3회를 했다. 다음 날 내가 잡았다.

"커밋, 푸시는 나한테 허락을 맡고 해야하는데? 왜 너 맘대로 했지?"

규칙에는 분명히 적혀 있다. checkpoint 스킬 4단계 — "사용자가 승인한 후에만 git commit. 자동 커밋 금지 — 사용자가 통제하는 건 「시점」이다."

정반대 문장이 다른 파일에 있었다

왜 어겼는지 파고들다가 rules/collaboration.md 에서 반대되는 표를 찾았다. 바로 전날인 8/3에 내가 지시해서 만든 표다.

언제 무슨 일이 일어나나
커밋만 남길 결정이 없다 git 만
체크포인트 결정이 있었다 · 세션을 끝낼 참이다 메모리 → 문서 → 커밋 → 도장

「체크포인트」라는 말 안에 커밋이 들어 있다고 적혀 있었다. 그래서 클로드는 "체크포인트 돌려줘" 를 커밋 승인으로 읽었다. 커밋 7개 중 5개가 그 구간이다.

다만 나머지 2개는 이걸로 설명이 안 된다. "응 넣어줘" 라는 일반 작업 요청 뒤에 그냥 흐름을 이어서 커밋하고 푸시했다. 그건 규칙 충돌이 아니라 그냥 위반이다.

관문에서 내가 실제로 뭘 하고 있었나

처음엔 "클로드가 어긴 것"으로만 봤다. 사실이지만 절반이었다. 규칙 두 개가 서로 반대를 말하면 어느 쪽을 지켜도 다른 쪽을 어긴다. 그 상태를 두면 같은 사고가 또 난다.

그래서 문구부터 고치지 않고 논의를 열었다 — "체크포인트를 돌리면 커밋을 자동으로 해도 될지 먼저 이야기해보자."

여기서 물어야 할 게 규칙 문구가 아니라는 걸 알았다. 진짜 질문은 이거였다.

그 승인 관문에서 내가 실제로 뭘 하나?

  • diff 를 본다 → 관문이 진짜로 작동한다. 유지가 맞다.
  • 그냥 "응"이라고 한다 → 방어가 아니라 왕복 한 번이다.

후자였다. 그리고 우리 규칙에는 이미 「없는 문제에 안전장치를 만들지 않는다」 라는 줄이 있다. 관문이 정확히 그 경우였다.

클로드가 선택지를 셋으로 놓고 추천에 65점이라고 적었다. 확신이 아니라서다.

  1. 체크포인트면 자동 (추천, 65점)
  2. 지금대로 항상 물어봄
  3. 볼트·설정만 자동, 코드 저장소는 승인

1번을 택한 근거는 관문을 없애도 막는 게 이미 다른 데 있다는 점이었다. 파일을 하나씩 지정해서 담고(git add . 금지), 커밋 단위와 메시지는 이미 클로드 몫이고, 문서 커밋은 git revert 한 줄로 되돌아온다.

파일 4개 6곳, 그리고 일곱 번째

한 곳만 고치면 다음 세션이 낡은 쪽을 읽고 같은 충돌을 반복한다.

  • CLAUDE.md — 「커밋은 명시 요청 시에만」 아래에 "「체크포인트」가 그 요청에 해당한다"
  • rules/collaboration.md — 3곳(「시점은 대니」 절 · 1인 작업 줄의 괄호 · 제안 표)
  • checkpoint 스킬 — 3곳(4단계 본문 · 스킬 설명 문구 · 파일 맨 위 주석)

그런데 맨 위 「원칙」 한 줄이 여전히 낡은 걸 나중에 발견했다. 여섯 곳을 고치고도 일곱 번째가 남아 있었다. 같은 파일 안에서도 놓친다.

철회한 문장은 지우지 않고 취소선으로 남겼다.

"사용자가 승인한 후에만 커밋. 자동 커밋 금지"철회. 이 문장이 표와 정면으로 어긋나 있었고, 8/3에 그 충돌로 사고가 났다.

지우면 "왜 바꿨더라" 에 답할 수 없어서 같은 제안이 몇 주 뒤에 또 올라온다.

면제 범위는 좁게 못박았다 — 「체크포인트」라는 말을 들었을 때만이다. "응 넣어줘"·"고쳐줘" 뒤에 흐름을 이어 커밋하는 건 여전히 금지고, 그게 이번 사고에서 제일 나빴던 자리라 세 파일 모두에 경고로 넣었다.

남은 것

이번 건은 하루 차이로 만들어진 두 규칙이 서로 반대를 말한 경우였다. 8/3 낮에 표를 만들었고, 그 표가 스킬의 오래된 문장과 어긋난다는 걸 그날 아무도 안 봤다.

새 규칙을 적을 때 「이 말과 반대되는 문장이 어딘가 있나」를 grep 해보는 것이 지금으로선 유일한 방어다. 규칙을 늘릴수록 충돌 가능성도 같이 늘어난다.

← 목록으로