콘텐츠로 건너뛰기

[AI 코딩] 클로드 코드 규칙 설정, 지켰는지 알 길이 없던 일

원고 맨 위 확인 칸과 발행 전 검사

클로드 코드 규칙 설정에 “트렌드를 반드시 참고하라” 한 줄을 더했는데, 완성된 원고를 열어 봐도 그 규칙을 지켰는지 알 길이 없었습니다. 원고 맨 위에 확인 기록 칸을 만들고 그 칸이 비면 발행 전 검사가 막게 하고서야 지켜졌습니다. 앞 글 AI에게 규칙을 알려줬는데 안 지켜졌습니다에서는 문장으로 적은 규칙을 검사로 옮긴 경험을 적었습니다.

1. 클로드 코드 규칙 설정에서 무슨 일이 있었나요?

이 블로그의 초안은 클로드 코드에게 집필 규칙 문서를 주고 쓰게 합니다. 2026-09-25 에 받은 지시는 “글 작성시 google 검색 트렌드를 반드시 참고해줬으면 좋겠어요” 였습니다.

그런데 그때까지 집필 단계에는 트렌드를 보는 절차가 없었고, 트렌드 스냅샷(그 시각의 검색 동향을 떠 둔 파일) 스크립트는 아침 준비 단계와 신호 수집 단계에서만 불렸습니다. 규칙 문서에 한 줄만 더하면 설정은 끝난 것처럼 보였습니다.

2. 무슨 문제가 생겼나요?

규칙을 지켰는지가 원고 어디에도 남지 않았습니다. 완성된 원고를 열어 봐도 집필 중에 구글 트렌드 급상승 화면을 봤는지는 알 수 없습니다. 어겨도 아무도 모르는 규칙은 바쁜 날 가장 먼저 빠질 것 같았습니다.

이 막힘은 바이브 코딩 현실, 테스트는 통과했는데 261편 중 6편만 맞았다와 뿌리가 같습니다. 그때도 셀프테스트 통과라는 말만 믿었다가 실데이터에서 어긋났습니다. 했다는 말이 아니라 산출물에 남은 흔적을 봐야 한다는 것이 두 일의 공통점입니다.

3. 클로드 코드 규칙 설정, 어떻게 풀었나요?

규칙 한 줄을 칸 하나와 검사 하나로 바꿨습니다.

  1. 원고에 칸을 만듭니다. frontmatter 에 trendchecked(확인한 스냅샷 파일 경로)와 trendnote(반영 여부와 이유 한 문장)를 적게 하고, 집필 규칙 문서에도 스냅샷을 뜨고 그 경로를 옮겨 적는 절차를 넣었습니다
  2. 그 경로에 파일이 실제로 있는지 봅니다. pending-draft.py 의 trend_checked() 함수가 줄이 없거나 값이 비거나 파일이 없으면 False 를 냅니다
  3. False 인 원고는 발행 대상에서 뺍니다. 사유는 “검색 트렌드 확인 기록 없음(trend_checked)” 이고, 그 위 주석에는 “문서 규칙은 실행되지 않는다” 라는 한 줄이 남아 있습니다
  4. 따라가지 않은 이유도 칸에 남깁니다. 이 글의 trend_note 에는 21:10 스냅샷에 제미나이4 와 chat gpt 가 올라 있었지만 블로그 운영 규칙 설정과 겹치지 않아 주제를 바꾸지 않았다고 적었습니다

칸 만들기, 파일 존재 확인, 발행 게이트 세 단계로 원고를 통과시키거나 비축에서 빼는 흐름도
2026-10-03 21:12 /tmp 재현에서 원고 5개 중 빈 칸과 없는 파일과 칸 없음 3개가 빠졌고, 같은 시각 초안 폴더의 원고 34편은 직접 세어 보니 모두 실재하는 스냅샷을 가리켰습니다.

원고의 trend_checked 칸 검사 결과 발행 단계
비어 있음 False 대상에서 뺌
없는 파일 경로 False 대상에서 뺌
칸 자체가 없음 False 대상에서 뺌
실재하는 스냅샷 경로 True 다음 검사로 넘어감
스냅샷이 아닌 아무 파일 True 다음 검사로 넘어감(남은 구멍)

남은 구멍은 셋입니다. 경로에 파일이 있기만 하면 통과하고, 스냅샷이 언제 뜬 것인지 보지 않으며, trend_note 는 비어 있어도 막지 않습니다. 파이썬 os.path 공식 문서도 os.path.exists 를 “Return True if path refers to an existing path” 라고만 설명합니다.
확인 칸이 막는 세 경우와 아직 못 막는 세 경우를 나란히 비교한 다이어그램

4. 누구에게 도움이 되나요?

클로드 코드에 글로 적어 준 규칙이 실제로 지켜졌는지 산출물만 보고 가려내고 싶은 분이라면 읽어 보세요. 칸의 값이 참인지 기계가 잴 수 있으면 검사로 막고, 무엇을 반영했는지처럼 옳고 그름을 못 가리는 내용은 칸만 두고 사람이 읽으면 됩니다.

산출물만 봐도 지켰는지 바로 보이는 규칙이라면 굳이 칸까지 만들 필요는 없습니다. 칸이 생긴 뒤 실제 발행 단계에서 이 사유로 빠진 원고가 있었는지는 기록을 찾지 못해 확인하지 못했습니다.

5. 한 줄 정리

필자의 결론

클로드 코드 규칙 설정에서 꼭 지켜야 하는 규칙은 문장으로 끝내지 말고, 흔적이 남는 칸과 그 칸을 읽는 검사까지 한 묶음으로 만들어야 한다고 봅니다. 그래서 새 집필 규칙을 더할 때 칸과 검사를 함께 정하고, 파일 이름과 스냅샷 날짜 확인을 다음에 막을 후보로 봅니다. 보고보다 파일 상태를 한 번 더 보는 버릇은 AI 에이전트로 혼자 일하기, 늘어난 건 산출물이 아니라 검증이었습니다에서 이어진 것입니다.

그래서 당신은 이것만 하면 됩니다. 클로드 코드에 준 규칙 중 지켰는지 확인이 안 되는 것 하나를 골라 원고 맨 위에 그 흔적을 적을 칸을 하나 만들어 보세요.

AI 에게 준 규칙이 지켜졌는지 여러분은 무엇으로 확인하고 계신지 댓글로 들려주세요.

부록: 재현 명령과 출력

재현은 2026-10-03 21:12~21:13 에 macOS 27.0 과 Python 3.14.8 에서 했습니다. /tmp/wz-trend-gate 아래에 원고 5개와 가짜 스냅샷 파일 snap/2026-10-03-2110.json 하나를 만들었고 원고끼리는 frontmatter 값만 다릅니다.

원고 trend_checked 값 trend_note 값
a-blank.md 빈 칸 빈 칸
b-missing.md snap/2026-10-02-0900.json (만들지 않은 파일) checked
c-real.md snap/2026-10-03-2110.json (만든 파일) overlap none, topic kept
d-noline.md 줄 없음 줄 없음
e-anyfile.md utils/blog/README.txt (스냅샷 아닌 파일) 빈 칸

pending-draft.py 의 판정과 같은 로직을 아래 명령으로 돌렸습니다.

cd /tmp/wz-trend-gate && python3 -c "
import os,re,glob
for f in sorted(glob.glob('drafts/*.md')):
  fm=re.match(r'^---\n(.*?)\n---',open(f).read(),re.S).group(1); p=next((l.split(':',1)[1].strip() for l in fm.split('\n') if l.startswith('trend_checked:')),'')
  print(f[7:], 'pass' if p and os.path.exists(p) else 'skip')"
a-blank.md skip
b-missing.md skip
c-real.md pass
d-noline.md skip
e-anyfile.md pass

e-anyfile 은 스냅샷이 아닌 안내 문서 경로를 적고 trend_note 가 빈 칸이었는데도 pass 였습니다. 검사가 보는 것은 “그 경로에 무언가 있는가” 하나뿐이기 때문입니다.
클로드 코드 규칙 설정 재현에서 원고 다섯 개 중 세 개는 skip, 두 개는 pass로 갈린 터미널 출력
본문 명령은 판정만 옮긴 독립판이라 trend_checked() 함수 원본(117~127행, 상대 경로를 작업 루트 기준으로 붙임)도 같은 원고 5개에 돌렸고, 출력은 a False, b False, c True, d False, e True 로 다섯 건 모두 같았습니다. 발행에서 빼는 줄은 같은 파일 971~972행이고, 스크립트 자체 시험에도 실재 경로와 칸 없음과 없는 파일 세 경우가 들어 있습니다.

이 글을 쓴 사람

인프라와 DevOps를 실무로 다루면서 겪은 것을 기록합니다. Docker, Kubernetes, AWS, 그리고 AI 도구를 실제로 써 보고 남기는 로그입니다.

Threads·X

새 글이 올라오면 Threads @wonizz.ai 에도 올립니다. 팔로우해 두면 피드에서 바로 볼 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다