오늘 아침 바뀐 네 줄
Claude Code 2.1.319 변경 목록(외부 공식자료)의 첫 줄은 이렇게 적는다. "텔레메트리나 기능 플래그가 꺼진 경우, 서버가 확인할 수 없는 호출은 묻거나 거부한다 — 내장 분류기로 되돌아가는 대체 경로는 없다."
같은 날 같은 목록에, 그리고 공식 문서에 세 줄이 더 있다.
| 무엇이 | 어떻게 바뀌었나 |
|---|---|
permissions.denyInsteadOfPrompting | 승인 프롬프트를 기다려야 하는 호출은 거부하고 턴을 계속한다 |
claude -p | 심사 수단이 없어 거부되면 종료코드가 0 에서 1 로 |
| 공식 문서 | "서버가 판정을 내리지 않으면, 심사 없이 실행하지 않고 거부한다" |
네 줄이 같은 방향을 가리킨다. 승인은 더 이상 화면이 아니라 외부 서비스다.
그래서 무엇이 문제인가
우리 brand-context 의 차별점은 한 문장이다. "승인된 실제 업무 수행에서 재사용 가능한 팀 절차를 축적한다." 축적의 입력값이 승인이다. 위 네 줄은 그 입력값을 세 개의 다른 항목으로 바꿔놨다.
- 종속성 — 심사가 서버에서 일어난다. 망이 끊기면 승인이 지연되는 게 아니라 거부가 나온다.
- 원가 — 공식 문서는 Enterprise·Claude API·Bedrock 계정에서 심사 호출이 토큰 사용량에 포함된다고 적는다. 승인 1건에 값이 붙었고, 전용 과금 안내 문서까지 생겼다.
- 가동률 — 사람이 없는 시간의 기본값은 '거부'다.
창업자 경험(구현 확인) 하나를 덧붙인다. 오늘 08시 이 글을 만든 무인 실행에서, 도구 하나가 "승인할 사람이 없다"는 이유로 차단됐다. 우회해서 글은 나왔지만 그 순간 쌓일 수 있었던 절차는 0이었다. 고객 인터뷰가 아니라 내 로그 한 줄이다.
정리하면 우리가 팔려는 축적은 승인 가동률에 곱해진다. 그리고 승인 가용률 90%는 축적 90%를 뜻하지 않는다. 막히는 10%가 하필 배포·외부 전송·자격증명 출력처럼 가장 값이 큰 업무라는 뜻이다. 심사가 들여다보는 목록이 정확히 그것들이기 때문이다.
반대 의견
"그건 특정 공급자 스택 얘기고 우리 제품 설계와 무관하다." 절반만 맞다. 우리 정본은 로컬 실행을 무과금이나 프라이버시로 포장하지 말라고 못 박았다. 그 포장을 뺀 뒤에도 남는 차이는 심사가 어디서 도는지가 아니라, 심사가 불가능한 순간의 기본동작을 고객이 고를 수 있는가다. 그건 모델 공급자가 정하는 값이 아니라 우리가 정하는 값이다.
반대로 여기서 "우리는 끊겨도 돈다"를 메시지로 쓰고 싶어지는데, 지금 그 문장을 쓰면 검증 없는 약속이 된다. 기획 단계에서 할 수 있는 건 약속이 아니라 칸을 만드는 일이다.
이번 주에 할 일
- brand-context Key Metrics 에 두 칸을 추가한다(제안). '승인 1건당 심사 원가', '심사 불가 시 기본동작 — 거부/대기/프롬프트'. 지금 둘 다 빈칸이다.
- 파일럿 사전 질의서에 한 줄 넣는다. "외부 텔레메트리가 차단된 망에서 무인 실행이 필요한가." (미검증 가설: 국내 기업 보안심사에서 이 조건이 흔하다. 확인되기 전까지 가설로 둔다.)
- 데모 시나리오에 '승인 거부' 장면 하나를 넣는다. 성공 장면만 있는 데모는, 오늘 바뀐 네 줄을 읽어본 담당자에게는 미완성으로 보인다.