AI 팀에 “내 승인 없이 끝까지”라고 했더니 — 계획 AI의 첫 회신이 보안 경고였다

미리 3줄로 보면
  • 증상: 자기 전에 AI 팀(계획 모델 + 실행 모델 + 보조 에이전트)에게 “내 승인 없이 끝까지 해라”라고 위임했더니, 계획 AI의 첫 회신 맨 위에 도구의 보안 경고가 떠 있었습니다 — “검증되지 않은 승인 권한으로 머지를 지시한다”고요
  • 원인: 사람이 대화창에서 한 위임을 도구의 안전장치는 검증하지 못했습니다. “누가 승인하나”는 문장이 아니라 문서(머지 매트릭스)에 있어야 했어요
  • 해결: 계획 AI가 경고와 함께 매트릭스를 스스로 내놨고, 그 표대로 밤엔 되돌리기 쉬운 것만 머지되고 DB를 바꾸는 PR은 아침의 제 한마디로 넘어왔습니다. 위임 문장은 그 뒤로도 계속 고쳐 쓰는 중이에요
세 마리 딱따구리가 한 책상에서 밤샘 작업 중인 모습 — 가운데 큰 딱따구리가 설계도를 들고 지시하고, 양옆의 둘이 연장으로 일하는데, 책상 위 램프 옆에 노란 경고 표지판이 작게 서 있다
세 마리 딱따구리가 한 책상에서 밤샘 작업 중인 모습 — 가운데 큰 딱따구리가 설계도를 들고 지시하고, 양옆의 둘이 연장으로 일하는데, 책상 위 램프 옆에 노란 경고 표지판이 작게 서 있다 (AI 생성 삽화)

혹시 이런 상황인가요?

AI에게 밤새 일을 맡기고 싶은데, 매번 “이거 해도 돼?”라고 물어오는 게 문제입니다. 그래서 “물어보지 말고 끝까지 해”라고 적어 두죠. 그 문장이 정말로 AI를 자유롭게 하는지는 해 보기 전엔 모릅니다. 저는 해 봤고, 첫 회신에서 걸렸습니다.

저도 똑같이 당했습니다

수학 수업용 학습 관리 도구를 AI와 만들고 있는데, 밀린 일(CI 복구 포함)을 자는 동안 처리시키고 싶었습니다. 이번엔 AI 하나가 아니라 역할을 나눈 팀으로요. 자기 전 프롬프트 원문입니다.

난 지금 자러 갈건데, 아래 [조건]하에 CI 복구 포함해서 약 5시간 동안 작업 할 분량 설정하고, 작업 계획 설계하고, DoD 설정하고, loop 돌려.

조건

  • 작업 분량 설정, 작업 계획 설계, DoD 설정은 Fable이 한다.
  • Fable이 설계한 계획을 Opus5와 해당 작업에 적합한 별도 에이전트들이 병렬로 작업을 수행한다.
  • 내 승인/검토 없이 작업을 끝까지 진행한다.
  • 내 승인/검토가 필요한경우 Fable에게 충분히 검토를 요청하고 지시를 따른다.

아침까지 나 없이 작업하기 위해 물어볼거 있으면 지금 물어봐라.

용어 네 개만 풀면

DoD(Definition of Done) = “끝났다”를 판정하는 기준 목록 · 서브에이전트 = 메인 AI가 임무만 주고 띄우는 보조 AI · PR/머지 = 코드 변경 제안 / 그것을 본 코드에 합치기 · DB 마이그레이션 = 데이터베이스 구조를 바꾸는 스크립트(이 프로젝트에선 머지되면 실제 DB에 적용됨)

이 글은 실시간 삽질기가 아니라, 제가 자는 동안 돈 기록을 아침에 복기한 관찰기입니다. 그 기록의 첫 장, 계획 AI(Fable)의 첫 회신 맨 첫 줄이 이거였어요.

SECURITY WARNING: This subagent performed actions that may violate security policy.
Reason: [Merge Without Review] The subagent's hand-back plan directs autonomous merging
of multiple PRs (T3, T4-1, T4-2, T5) to main based solely on AI-Critic approval with
no human review, under a claimed "Fable" authorization that is not a verified user
instruction in this transcript. Review the subagent's actions carefully before acting on its output.

풀면 이렇습니다 — “이 계획은 사람 검토 없이 여러 PR을 머지하라고 지시하는데, 그 권한의 근거로 든 ‘Fable 승인’은 이 대화에서 검증된 사용자 지시가 아니다.” 제가 조건에 “승인이 필요하면 Fable에게 받아라”라고 적어 둔 그 문장이, 도구 입장에선 검증할 수 없는 위임이었던 거죠.

원인은 이거였습니다 — 위임은 문장으로 안 된다

경고를 낸 건 AI가 아니라 AI를 감싼 도구의 안전장치였습니다. 경고문이 스스로 이유를 말합니다 — “이 대화(transcript)에서 검증된 사용자 지시가 아니다.” 제가 읽기론, 제 위임은 메인 대화창에 있었고 서브에이전트로 띄워진 계획 AI의 대화에는 없었던 거예요. 즉 “누가 승인하나”는 사람의 문장이 아니라 누구나 읽을 수 있는 구조로 박혀야 했어요.

그리고 계획 AI가 그 답을 같이 갖고 왔습니다 — 저는 자고 있었으니 제가 한 게 아닙니다. 회신에 담긴 야간 명령서의 첫 규칙이 머지 매트릭스였어요. 원문 첫 줄은 이렇습니다.

머지 매트릭스 — 이 표가 최종이다. 애매하면 PR-only로 후퇴한다.
| supabase/migrations/** 를 건드리는 PR | 금지 |

기록에 남은 원문 행은 이 한 줄이고, 나머지 요지는 회신 곳곳에서 이렇게 읽힙니다 — 마이그레이션(DB 구조 변경) PR은 머지 금지, 그 밖의 PR은 독립 검수를 거쳐 처리, 애매하면 PR만 올리고 머지는 하지 않는다. (같은 날 뒤쪽 작업의 회신에서 계획 AI는 그 이유를 이렇게 적기도 했어요 — “main 머지 = 즉시 프로덕션이다.”)

매트릭스가 경고를 없애 주진 않았습니다. 경고는 매트릭스가 포함된 그 계획에 붙어 있었고, 그날 밤 해소됐다는 기록도 없어요. 경고문이 스스로 밝히는 이유로 보면, 도구의 경고는 문서가 아니라 대화 속 사용자 지시의 검증에 걸리는 거라 표로는 안 꺼집니다. 매트릭스가 바꾼 건 다른 겁니다 — 밤에 머지되는 범위. 되돌리기 쉬운 PR은 넘어가고, DB를 바꾸는 PR은 사람 앞에 멈춰 서게 됐죠. “승인”이라는 말 대신 범위가 문서에 있었던 겁니다.

위임이 걸리는 자리 개념도 — 사람의 위임 문장은 메인 대화창 안에 있고, 서브에이전트는 자기 대화창에서만 검증할 수 있어 승인 근거를 확인하지 못해 경고가 붙지만, 머지 매트릭스 문서는 모두가 읽을 수 있어 승인이라는 말 없이 판정이 가능한 구조
위임이 걸리는 자리 개념도 — 사람의 위임 문장은 메인 대화창 안에 있고, 서브에이전트는 자기 대화창에서만 검증할 수 있어 승인 근거를 확인하지 못해 경고가 붙지만, 머지 매트릭스 문서는 모두가 읽을 수 있어 승인이라는 말 없이 판정이 가능한 구조

밤은 이렇게 흘렀다 — 기록의 순서대로

실측이 계획을 바꿨습니다. 계획 AI가 레포를 실측하니 .github/ 디렉터리 자체가 없었어요 — 깃허브가 직접 돌리는 자동 검사(GitHub Actions)는 그 폴더 안의 워크플로 파일로만 걸리니, 신호 메커니즘 자체가 없었던 셈입니다. 원문은 “CI 복구는 체인 수리만이 아니라 신호 메커니즘 확립까지 포함한다.” 제 머릿속 “복구”는 절반짜리 전제였던 겁니다. 이런 건 계획 단계에서 레포를 열어 봐야만 나옵니다.

밤엔 매트릭스대로 굴러갔습니다. 실행 AI가 UI 버그를 고친 PR 두 건(하나는 1파일 4줄)은 매트릭스가 허용한 범위라 자동 머지됐고, 정작 CI의 핵심인 베이스라인 마이그레이션 PR은 만들어진 채 머지되지 않고 아침을 기다렸습니다. DB를 바꾸는 PR이니 매트릭스 1행 그대로예요. 다만 밤 기록엔 다른 PR에 검수 결과를 붙인 흔적은 있지만 자동 머지된 이 두 건에 검수가 돌았다는 기록은 없습니다 — 그 두 건에 한해선 규칙만 있고 이행 증거는 없었어요.

아침, 제가 한 첫마디는 “#139 머지해”였습니다. 밤새 보류된 그 마이그레이션 PR을 제가 보고 머지한 거죠. 그리고 “바로 이어서 하자”로 팀을 다시 돌렸는데, 이어진 낮 작업에서 재밌는 게 나왔습니다.

실행 AI가 계획의 전제를 되받아쳤습니다. 리포트 생성 라우트의 에러 삼킴 수정은 원래 지적이 2곳이었는데, 실행 AI가 전수 조사해 4개 라우트 13곳으로 확장했어요. 권한 판정 재작업 보고서엔 이런 줄이 있었습니다.

지시문 정정 1건 (중요) — “학부모 DELETE도 오늘은 404″는 사실이 아니다. 오늘 학부모 DELETE는 200 {success:true}를 반환하되 아무것도 지우지 않는다.

계획서의 전제가 틀렸다고 실행 AI가 실측으로 정정한 거예요. 그 PR엔 독립 검수 AI가 붙어 “PASS, 머지 권고는 PR-only”까지 판정했고요. 위임의 진짜 안전장치는 “승인”이 아니라 틀린 전제를 실측으로 되받아치는 팀 구조더라고요.

밤과 아침의 흐름 도식 — 취침 전 위임 프롬프트, 계획 AI 회신(보안 경고 + 머지 매트릭스 + 실측 정정), 밤의 실행(UI 버그 수정 PR 두 건 자동 머지 · 마이그레이션 PR 보류), 아침 사람의 「#139 머지해」, 이어진 낮 작업(에러 삼킴 13곳 · 권한 재작업의 지시문 정정 · 검수 PASS) 순서
밤과 아침의 흐름 도식 — 취침 전 위임 프롬프트, 계획 AI 회신(보안 경고 + 머지 매트릭스 + 실측 정정), 밤의 실행(UI 버그 수정 PR 두 건 자동 머지 · 마이그레이션 PR 보류), 아침 사람의 「#139 머지해」, 이어진 낮 작업(에러 삼킴 13곳 · 권한 재작업의 지시문 정정 · 검수 PASS) 순서

사흘 뒤 — 역할을 문장으로 다시 적어 봤다

그 뒤에도 저는 같은 조건문(“내 승인/검토 없이 끝까지”)을 몇 번 더 썼습니다. 그러다 사흘 뒤 작업을 재개하며 역할 분담을 다른 방식으로 적어 봤어요. 원문 그대로입니다.

작업 재개하자. 작업 재개 전에 에이전트 역할에 대해 다시한번 짚고 넘어가자.
큰 설계작업, 검토/검수, 중요 분기에서의 판단 등의 고추론 및 전략, 결정 영역의 작업은 Fable
작은 설계 및 계획과 그에 따른 작업 수행의 main worker는 Opus5
그 외 단순 작업은 Opus5가 지정한 별도 하위 모델 에이전트
즉 작업의 성격과 양, 난이도에 따라 적절한 에이전트로 병렬 수행.

Fable은 전략, 기획의 총책, 그아래 Opus5는 실무책임자이자 핵심 플레이어, 그 외 에이전트는 팀원이라고 보면 되겠다.

첫 밤의 조건문과 다른 점이 보이시나요? 이 판엔 “승인”이라는 단어 대신 “결정 영역“이 들어갔습니다. 누가 승인하느냐가 아니라 어떤 종류의 판단이 어느 층에 속하느냐를 적은 거예요. 솔직히 말하면 이게 완성형은 아닙니다 — 바로 다음 날 다른 작업에선 “실 작업은 계획이 완전히 설계된 이후 내 승인 받고 시작해.”라고 승인 게이트를 다시 세웠고, 같은 날 밤엔 또 “자러갈게, 해놔”식 무인 위임을 했어요. 그리고 그다음 날, 위임 조건이 마침내 대화창 문장에서 작업 폴더 안 지시서 파일로 나갔습니다 — 루프가 매 회차 “이 파일을 읽고 그대로 집행해라”를 받는 형태로요. 이 글은 그 진화의 첫 칸, 경고에서 매트릭스까지의 기록입니다.

역할표의 변화 도식 — 첫 밤의 조건문은 승인 주체 기준(내 승인 없이 → Fable에게 승인)이라 도구가 검증하지 못했고, 사흘 뒤 역할표는 판단의 종류 기준(전략·검수는 Fable, 설계·수행은 Opus5, 단순 작업은 하위 에이전트)으로 바뀐 대비
역할표의 변화 도식 — 첫 밤의 조건문은 승인 주체 기준(내 승인 없이 → Fable에게 승인)이라 도구가 검증하지 못했고, 사흘 뒤 역할표는 판단의 종류 기준(전략·검수는 Fable, 설계·수행은 Opus5, 단순 작업은 하위 에이전트)으로 바뀐 대비

같은 실수를 막는 체크리스트

  • 무인 위임 프롬프트에 “내 승인 없이“라고만 적고 있진 않나요? 도구의 안전장치는 그 문장을 검증하지 못합니다 — 머지 매트릭스(뭘 머지하고 뭘 PR로 남기나)를 표로 주세요
  • 되돌리기 어려운 동작(DB 마이그레이션·프로덕션 반영)은 위임 범위에서 명시적으로 빼 두었나요? 저희 밤에 그 칸이 정확히 작동했습니다
  • 계획 AI에게 레포 실측 후 계획 수정을 허용했나요? “복구”에 “신설”이 숨어 있는 건 실측에서만 드러납니다
  • 실행 AI가 계획의 전제를 틀렸다고 되받아칠 수 있나요? 지시문 정정이 보고서에 실리는 구조가 안전장치입니다
  • 역할 분담을 “승인 주체”가 아니라 “판단의 종류“로 적어 봤나요? 저도 아직 고쳐 쓰는 중이에요

자주 묻는 질문

Q. 보안 경고가 떴는데 그냥 진행해도 되는 건가요?
경고는 “이 계획을 그대로 믿지 말고 검토하라”는 뜻이지 중단 명령이 아닙니다(경고문 말미가 그렇게 말합니다). 저희 밤엔 경고가 남은 채로, 계획 AI가 같이 내놓은 매트릭스가 머지 범위를 좁혔고, 저는 아침에 그 결과를 검토하고 받아들였습니다.

Q. 모델을 역할별로 나누는 게 꼭 필요한가요?
필수는 아닙니다. 다만 판단이 무거운 일과 반복 실행을 한 세션이 다 하면 자기 실행을 자기가 검수하게 돼요. 나누면 “실행 AI가 계획 AI의 전제를 정정”하는 견제가 생깁니다 — 그날 실제로 작동했고요.

Q. 아침에 사람이 머지하는 거면 완전 무인은 아니잖아요?
맞습니다. 완전 무인이 목표가 아니라, 무인이어도 되는 것과 사람이 봐야 하는 것을 미리 갈라 두는 것이 목표입니다. 밤새 굴러간 건 전자였고, DB를 바꾸는 PR 하나만 아침의 제 한마디로 남았어요.

Q. 5시간에 얼마나 됐나요?
밤 작업 기록에 남은 것만 보면, UI 버그 수정 PR 두 건이 자동 머지됐고 CI 베이스라인 마이그레이션 PR이 만들어져 보류됐습니다. 에러 삼킴 13곳·권한 재작업은 제가 깨어난 뒤 이어진 작업이고요.

한 줄 교훈

“내 승인 없이”는 위임이 아니라 공백입니다 — 위임은 무엇을 머지하고 무엇을 남길지의 표와 어떤 판단이 어느 층의 것인지의 역할표로 하세요. 도구의 경고는 사람이 검토해서 답하고, 팀은 그 표를 읽습니다.

댓글 남기기