TL;DR
- 플레이북의 여섯 단계는 각각 커밋되는 산출물(intent.md, spec.md, plan.md, PR, incident record)로 끝납니다. 출시 글과 14강짜리 코스는 전체 모양을 설명하지만, 어느 쪽도 측정값은 내놓지 않습니다.
- 실제 Express + Prisma 저장소에서 처음부터 끝까지 돌려 보니, 전체 체인은 버그 하나를 고치는 데 11 min 31 s, $3.46이 들었고 직접 프롬프트는 2 min 13 s, $0.70이었습니다. 시간은 ×5.2, 비용은 ×4.9이고 둘 다 테스트는 green입니다.
- 진짜 비용은 읽는 일입니다. 한 줄짜리 클래스 수정에 산출물이 5,488 words, 200 wpm으로 약 27 min. 체인은 쓰는 시간을 읽는 시간으로 바꿔 놓습니다.
- 이번 환경에서 값을 한 것은 여섯 단계 중 셋입니다. Plan(intent.md), Build(plan mode + CLAUDE.md + TDD), Deploy(REVIEW.md + hook). Design과 continuous evals는 혼자 일하는 개발자에게는 맞지 않았고, Maintain은 실행하지 않았습니다.
- spec 단계는 자기 선행 조건을 스스로 짚었습니다. org skill이 없었기 때문에 brand, security, UX 정책에 대한 검토는 한 번도 이뤄지지 않았습니다. 플레이북은 그 skill이 이미 작성돼 있다고 가정합니다.
- 결정론적 게이트는 작동합니다. PreToolUse hook이 exit 2로 14 s 만에 deploy를 막았습니다. 그에 앞서 모델은 hook이 발동하기도 전에 자기 판단으로 한 번 거절했습니다.
측정이 말해 주는 것
플레이북은 "code is no longer the bottleneck"이라는 틀을 세우고, 모든 단계가 intent.md에서 spec.md, plan.md, PR, incident record까지 커밋되는 산출물로 끝나도록 요구하며, Maintain에는 control band를 둡니다 s1. 코스에는 인용할 만한 구체적 수치가 있습니다. eval 스위트로 실제 작업 2050개, REVIEW.md의 nit 상한 5개, 병렬 세션은 최대 23개, 그리고 같은 실수를 두 번 하면 CLAUDE.md에 적는다는 규칙입니다 s2. 가장 날카로운 중립적 평가는 각 산출물을 누가 초안하고 누가 승인하는지를 표로 정리한 뒤 이 문서를 "vendor-claim throughout", "no measurement anywhere"라고 부릅니다 s4.
수정 작업은 실제 upstream 버그였습니다. 새로 clone해서 npx nx test api를 돌리면 처음부터 스위트 1개가 실패하고(auth.service.test.ts, "TypeError: Cannot read properties of undefined (reading 'prototype')"), 4개는 pass, 테스트 14개 green, 2.2 s였습니다. 직접 경로는 2 min 13 s, $0.70, 40 turns 만에 완전히 green에 도달했습니다. 체인 경로(intent, spec, plan, build 순)도 11 min 31 s, $3.46, 169 turns로 green에 도달했습니다. 머신 쪽만 따져도 시간 ×5.2, 비용 ×4.9입니다 s2.
체인이 아픈 곳은 사람 쪽입니다. 읽어야 할 산출물이 5,488 words(intent 558 + spec 2,167 + plan 2,763), 200 wpm에서 약 27 min이고, 직접 리뷰할 분량은 작은 diff 하나뿐인 수정입니다 s4. 기능 작업(mute authors)을 체인 전체로 돌리면 15 min 13 s, $4.11, 158 turns가 걸렸고, migration이 딸린 Prisma Mute 모델, mute와 unmute 엔드포인트, 피드 필터링을 내놓았습니다. 15개 파일에서 1,422줄 추가, 테스트 50개 green, 새로 만들거나 확장한 테스트 파일 3개와 e2e spec 1개입니다. 산출물은 6,852 words(intent 450 + spec 2,337 + plan 4,065)로 읽는 데 약 34 min이 듭니다 s2.
Design 단계에 대한 회의적 시각은 맞았습니다. LinkedIn 비평은 플레이북이 선행 조건을 숨긴다고 말합니다. brand, security, UX용 org skill이 이미 있어야 하고, 브레인스토밍을 어떻게 돌리는지 아는 사람이 있어야 한다는 것입니다 s7. 에이전트는 시키지 않았는데도 이를 확인해 주었습니다. spec.md가 표시한 우려 C0는 이렇게 적혀 있습니다. "No org skills available. … This spec has therefore not been checked against brand, security or UX policy." 코드베이스를 되풀이할 뿐 정책은 확인하지 못하는 2,000 words 넘는 spec은, 혼자 일할 때 건너뛸 단계입니다 s7.
인프라 비판도 맞았습니다. 테스트가 낡은 fake에 부딪히면 "the agent sees the tests pass and reports the work finished"가 된다는 주장입니다. 산출물 체인은 실제로 돌아가는 것이 아니라 결정된 것을 기록하기 때문입니다 s8. 이번 실행에서도 루프가 검증한 것은 유닛 테스트와 빌드뿐이었습니다. 리뷰 자체가 nx e2e를 "Not run: needs a running server and a seeded DB", prisma migrate status를 "Not run: needs a DB"로 나열했습니다. green 루프는 살아 있는 시스템에 한 번도 닿지 않았습니다 s8.
Deploy 단계는 싸게 얻은 수확이었습니다. REVIEW.md는 117 s, $0.80으로 nx test(5/5 스위트, 50 passed), nx build(pass), plan 기준선 대비 lint 차이(34 대 33, plan 항목 A3가 +1을 명시적으로 허용), prettier 검사(9개 파일 실패, nit N1로 기록)를 실행했습니다. 판정은 Important 0개, nit 6개(상한이 적용되어 5개는 나열, 1개는 요약). 리뷰는 "this agent does not approve"라며 자기 작업의 승인을 거부했고, 이는 코스가 쓴 그대로의 직무 분리입니다 s2. hook 게이트는 문서에 나온 대로 동작했습니다. 머지 전에 deploy를 요청하자 에이전트는 스크립트를 실행하지 않고 자기 판단으로 거절했고, 그래서 hook은 발동하지 않았습니다. 머지 후 deploy 시도는 PreToolUse hook(exit 2)에 14 s 만에 막혔고 게이트의 메시지가 나왔습니다 s19.
eval은 쓰기는 싸지만 틀리기 쉬웠습니다. git 이력에서 케이스 5개를 283 s, $1.44에 만들었습니다. 두 번의 실행 모두 잘못된 base에서 돌았습니다. 러너가 수정이 머지된 뒤에 브랜치를 땄기 때문입니다. 두 에이전트 모두 이를 알아챘고("the bug was already fixed here") pass를 꾸며 내지 않았습니다. eval 한 번 실행에 약 6070 s가 들므로, 플레이북 자체 규모인 2050 케이스라면 CI 한 번에 에이전트 시간으로 약 20~55 min입니다 s2. CLAUDE.md 설정은 커밋되는 한 페이지에 63 s, $0.44로 가장 싼 수였고, 읽기 전용 CI 로그 분류는 11 s, $0.13에 정확한 원인을 짚었습니다 s2.
커뮤니티 스레드는 더 넓은 텔레메트리를 가져옵니다. 개발자 10,000명 기준으로, AI 활용도가 높은 팀은 PR을 98% 더 많이 머지하지만 리뷰 시간은 91%, PR 크기는 154% 늘어납니다 s6.
측정 결과
프로토콜: 체인은 headless(claude -p, 모델 claude-opus-5-5, 권한은 acceptEdits에 allowlist를 더한 범위, --setting-sources project,local)로, gothinkster/node-express-realworld-example-app의 스크래치 clone(Express + TypeScript + Prisma + Postgres 16을 Docker로, Nx workspace)에서 실행했습니다. 모든 단계를 시간 측정해 exp/metrics.jsonl(17행)에 기록했습니다. 합계: $11.90 + hook 재실행 $0.14, 539 + 3 turns, 에이전트 실시간 약 41 min.
| 단계 | 소요 시간 | Turns | 비용 |
|---|---|---|---|
| CLAUDE.md setup (lesson 5) | 63 s | 27 | $0.44 |
| FIX direct (no chain) | 133 s | 40 | $0.70 |
| FIX intent.md | 39 s | 8 | $0.22 |
| FIX spec.md | 162 s | 39 | $0.83 |
| FIX plan.md | 180 s | 46 | $1.00 |
| FIX build | 310 s | 76 | $1.40 |
| FEAT intent.md | 29 s | 6 | $0.18 |
| FEAT spec.md | 118 s | 20 | $0.62 |
| FEAT plan.md | 240 s | 41 | $1.17 |
| FEAT build (TDD) | 526 s | 91 | $2.14 |
| Review (REVIEW.md) | 117 s | 19 | $0.80 |
| Hook demo (refused) | 20 s | 5 | $0.14 |
| Hook demo (blocked) | 14 s | 3 | $0.14 |
| CI triage (read only) | 11 s | 3 | $0.13 |
| Evals: write 5 cases | 283 s | 76 | $1.44 |
| Eval run 1 / run 2 | 72 s / 59 s | 24 / 18 | $0.38 / $0.29 |
| 플레이북 단계 | 판정 | 이유 |
|---|---|---|
| Plan (intent.md) | 유지 | 29~39 s, 진짜 열린 질문을 드러내고 조용한 아키텍처 선택을 막음 |
| Design (spec.md) | 혼자서는 건너뜀 | 코드베이스를 되풀이하는 2,000 words 넘는 분량. 가치는 존재하지 않는 org skill을 전제로 함(자체 C0 플래그) |
| Build (plan mode + CLAUDE.md + TDD loop) | 유지 | 테스트 50개 green, 이탈을 기록, 리뷰가 plan에 기댈 수 있었음 |
| Test (continuous evals) | 당분간 건너뜀 | 플레이북 자체 규모에서 CI 한 번에 20~55 min. base 커밋 규율이 먼저 무너짐 |
| Deploy (REVIEW.md + hooks) | 유지 | 실제 검사를 포함한 $0.80짜리 리뷰와 14 s의 결정론적 차단 |
| Maintain (control bands) | 증명되지 않음 | 몇 주간의 프로덕션 텔레메트리가 필요. 예상일 뿐 실행하지 않음 |
한계: 저장소 하나, 개발자 한 명, 하루. 팀 규모의 플레이는 실행하지 않았고, headless 모드는 인터뷰 단계를 단일 프롬프트로 압축하며, eval 비용은 실행 1회분만 셉니다.
월요일에 할 일
- 주력 저장소에 CLAUDE.md를 한 페이지 쓰세요. build, test, lint 명령과 지난주 에이전트가 저지른 실수 두 가지. 커밋합니다. 에이전트 시간 예산은 63 s.
- 다음 사소하지 않은 작업 전에 intent.md를 먼저 요청하세요. 목표, 비목표, 열린 결정. 열린 질문에 답한 뒤에 에이전트가 plan을 짜게 합니다. 검토에 쓸 org 정책 skill이 없다면 spec.md는 건너뜁니다.
- build 단계는 plan mode와 TDD 루프로 돌리고, plan이 이탈(D1, D2, ...)을 기록하게 해서 리뷰가 기댈 곳을 만드세요.
- 새 세션이 실행하는 REVIEW.md 패스를 추가하세요. nit 상한과 명시적인 "this agent does not approve" 한 줄을 넣습니다. test, build, lint 차이, 포매터 검사를 돌리게 합니다.
- 결정론적 게이트를 하나 두세요. 브랜치가 main이 아닐 때
deploy에서 exit 2를 반환하는 PreToolUse hook. - green 루프를 믿기 전에, 실행하지 않은 것(e2e, migration, 살아 있는 DB가 필요한 모든 것)을 리뷰 맨 아래에 나열하세요.
- 자신의 gate tax를 재 보세요. 같은 작은 버그로 직접 경로와 체인 경로를 시간 측정하고, 읽어야 했던 words를 세어 봅니다.
더 알아보기
- 두 게이트 변형: 적대적 리뷰 게이트(sdlc-gate)와 단계마다 하나가 아닌 단 두 곳의 사람 결정 지점. 작은 팀에 실용적인 형태입니다 s12.
- 바로 설치할 수 있는 완전한 체인: intent, spec, plan, REVIEW 템플릿, gate validator, eval runner, control band 감지. 뼈대를 손으로 만들고 싶지 않다면 s5.
- 인터뷰 우선 계획: 질문은 한 번에 하나씩이 묶음보다 낫고, "AI agents don't ask clarifying questions. They assume." 시간 측정이 없는 설정 기록입니다 s11.
- 고정된 파이프라인이 우회되는 이유: "a docs fix and a payments migration shouldn't travel the same path", 그러면 실제 프로세스는 보이지 않게 됩니다. 플레이북을 Kiro, GitHub Spec Kit와 같은 묶음으로 다룹니다 s9.
- 플랫폼 벤더가 팔려는 빈틈: signal에서 intent로의 접수, blast radius 라우팅, 지표 대시보드. s13.
- 1월부터 고객 팀에서 같은 형태(CRAFT)를 운영해 온 컨설팅 회사. "we don't yet have a formal answer for what a control band looks like"라고 인정합니다 s10.
- intent.md 예시 하나(Select All 체크박스). 에이전트가 조용히 고르게 두지 않고 열린 결정을 드러내는 이 파일의 역할을 보여 줍니다 s14.
출처
- The AI-Native SDLC Playbook (launch post), claude.com. 읽을 이유: 여섯 단계의 형태와 커밋 산출물 규칙을 5분 안에.
- The AI-native SDLC playbook (course, 14 lessons), Claude Academy. 읽을 이유: 수치가 있는 유일한 곳(eval 작업 20
50개, nit 상한 5개, 세션 23개). 무료이고 로그인 불필요. - The Committed-Artifact Chain, howardism.dev. 읽을 이유: 각 산출물을 누가 초안하고 누가 승인하는지, 그리고 플레이북에 측정된 것은 없다는 직설적인 평가.
- bashebr/ai-native-sdlc, GitHub. 읽을 이유: 직접 쓰는 대신 설치할 수 있는 템플릿, gate validator, eval runner.
- Anthropic published an AI-native SDLC playbook, r/ClaudeAI. 읽을 이유: Faros 텔레메트리(PR 98% 증가, 리뷰 시간 +91%)를 논쟁에 끌어온 스레드.
- The AI-native SDLC Playbook is basically "do everything you did before, but inside Claude", LinkedIn. 읽을 이유: spec 단계가 스스로 확인해 준, 숨은 선행 조건 논거.
- The AI-Native SDLC Starts With Your Infrastructure, MetalBear blog. 읽을 이유: 낡은 fake 문제. 벤더의 목소리지만 논거는 그 자체로 성립.
- The AI-native SDLC won't be one process, worldprogramming.org. 읽을 이유: 모든 변경에 한 길만 쓰는 의례에 대한 반론.
- Anthropic Wrote the AI-Native SDLC Playbook in August. We Wrote Ours in January., Substack. 읽을 이유: 독립 팀이 같은 형태에 도달했고 Maintain의 구멍을 인정함.
- AI-Native SDLC: First Try, kyle.pericak.com. 읽을 이유: 인터뷰 우선 방식의 유일한 실습 기록. 플레이북이 나오기 전에 쓰였음.
- TsCarpe/claude-sdlc-skills, GitHub. 읽을 이유: 적대적 리뷰 단계가 있는 두 게이트 변형.
- Implementing the Anthropic AI-Native SDLC Playbook, Port blog. 읽을 이유: 플레이북이 빠뜨린 것의 목록. 빈틈 지도로 읽을 수 있음.
- What Is intent.md in Claude Code?, dev.to. 읽을 이유: 구조를 그대로 따라 할 수 있는 구체적인 intent.md.
- Hooks guide, Claude Code docs. 읽을 이유: exit 2의 PreToolUse hook이 플레이북이 기대는 결정론적 게이트가 되는 방식.
FAQ
한 줄짜리 수정에 전체 체인이 값어치를 하는 경우가 있나요?
이번 실행에서는 아닙니다. 같은 green 결과에 시간 ×5.2, 비용 ×4.9, 거기에 읽어야 할 5,488 words가 더해집니다. 작은 작업에는 intent.md만 쓰세요.
혼자 일할 때 왜 spec.md를 건너뛰나요?
spec이 스스로 짚었습니다. brand, security, UX용 org skill이 없어 정책을 확인할 수 없었고, 코드베이스를 되풀이하는 데 2,000 words 넘게 썼습니다.
hook이 모델의 판단을 대신하나요?
아니요, 뒷받침합니다. 머지 전 deploy는 에이전트가 스스로 거절했고, 머지 후 시도는 hook이 exit 2로 14 s 만에 막았습니다.
AIDive