콘텐츠로 이동

자동 안전망

blog-studio가 사용자 대신 자동으로 챙겨주는 자리가 둘로 갈립니다. 발행 직전에 글을 거르는 두 게이트, 그리고 작업 흐름 바깥에서 도는 훅 세 개입니다. 명령을 외울 필요는 없지만 무엇이 왜 막히는지를 알아 두면 막혔을 때 덜 당황합니다.

글이 Blogger에 올라가기 전에 두 검사를 통과해야 합니다.

글이 “사람이 쓴 것처럼” 읽히는지를 점수로 봅니다. em-dash가 한 문단에 여러 개 박히거나, “정리하면” “핵심은” 같은 표현이 반복되거나, 모든 문단이 똑같은 길이거나, 도입부가 결론부터 던지면 점수가 올라갑니다. 점수가 높을수록 AI 티가 짙다는 뜻입니다.

점수에 따라 셋으로 갈립니다. 30점 미만이면 합격, 30~60점이면 경고, 60점 초과면 불합격입니다. 불합격이면 발행이 막히고, 글이 자동으로 다시 쓰여집니다. 이 차단은 발행 스크립트가 코드 레벨에서 강제하는 자리라, 우회하려 해도 막힙니다.

광고 정책에 걸릴 만한 글을 발행 전에 거릅니다. 저가치 신호가 있는 글은 자동으로 표시되고, 이미 AdSense가 플래그한 글은 draft로 되돌리는 흐름으로 빠집니다. 광고 수익을 노리는 블로그라면 이 게이트가 정책 위반으로 계정이 막히는 사고를 미리 줄여 줍니다.

훅은 사용자가 명령으로 부르지 않아도 특정 순간에 자동으로 도는 스크립트입니다. .claude/hooks/에 박혀 있고, .claude/settings.json이 연결합니다.

스크립트언제무엇을
session-start.sh세션 시작이전 작업, 최근 이력, 블로그 정체성, 메모리를 자동으로 컨텍스트에 끌어옴
stop-reminder.sh응답 종료다음 세션을 위한 메모(active.md)가 비었으면 갱신하라고 알림
pre-commit-check.shgit commit 직전자격증명과 시크릿이 커밋에 섞이지 않게 차단

session-start.sh — 끊긴 자리에서 돌아오기

섹션 제목: “session-start.sh — 끊긴 자리에서 돌아오기”

새 세션을 시작하면 이 훅이 active.md(이전 세션의 다음 작업), progress.md의 마지막 30줄, product-marketing-context.md(블로그 정체성), MEMORY.md를 자동으로 컨텍스트에 끌어옵니다. 며칠 만에 다시 열거나 /clear 후에 시작해도, 이 자리들이 자동으로 앞에 붙어 작업이 끊기지 않습니다. 블로그 정체성이 아직 placeholder면 “/start부터 하라”는 안내가 뜹니다.

stop-reminder.sh — 다음 세션을 위한 메모

섹션 제목: “stop-reminder.sh — 다음 세션을 위한 메모”

AI가 응답을 끝낼 때 active.md가 비어 있으면 한 줄 알립니다. 방금 한 일, 다음 시작점, 보류된 결정을 5~15줄로 적어 두라는 안내입니다. 이 메모가 있어야 다음 세션의 session-start.sh가 끌어올 거리가 생깁니다.

pre-commit-check.sh — 자격증명 사고 막기

섹션 제목: “pre-commit-check.sh — 자격증명 사고 막기”

git commit 직전에 자동으로 도는 검사입니다. Google OAuth 파일(credentials.json, token.json)이 커밋에 섞이면 차단하고, OAuth client_secret이나 refresh_token, API 키 패턴이 파일에 들어 있으면 막습니다. _workspace/의 큰 산출물이 통째로 커밋되는 것도 막습니다.

이 훅 덕분에 자격증명을 실수로 공개 저장소에 올리는 사고를 한 겹 막습니다. 다만 훅이 모든 걸 잡지는 못하니, 자격증명 파일은 처음부터 .gitignore에 들어가 있는 자리(base 기본값)를 건드리지 않는 편이 안전합니다.

위 게이트와 훅이 강제하는 규칙은 AI_AUTOMATION.md의 보안 기준선 여덟 줄에 정리돼 있습니다. 자격증명을 git에 안 올리기(S1, S7), _workspace/ 바깥을 함부로 안 건드리기(S2), 발행 전 게이트(S5, S8) 같은 자리입니다. 비개발자 입장에서는 이 줄들을 외울 필요 없이, 게이트가 막으면 그 이유를 읽고 고치면 됩니다.

게이트나 워크플로가 막혀서 어떻게 빠져나올지 막막하면 when-ai-gets-stuck으로 갑니다.