"AI는 일을 키우고 끝맺지 못합니다. 한 줄 명령에 제약과 정지 규칙을 묶어두지 않으면, 라이브러리를 다시 깔고 디자인을 갈아엎습니다."
토요일 오후, 버튼 색 하나 바꾼다고 했는데
지난달 토요일이었습니다. 저는 Cursor 창을 열고 "결제 버튼 색을 브랜드 블루로 바꿔줘" 한 줄을 적었습니다. 커피 한 잔을 내리고 돌아왔는데, 화면이 낯설었습니다.
색은 바뀌어 있었습니다. 그런데 그 옆에 tailwind 설정이 새로 깔려 있었고, 디자인 토큰 파일이 통째로 다시 쓰여 있었고, 건드린 적도 없는 알림 모달의 폰트가 바뀌어 있었습니다. 변경된 파일은 17개. 정작 결제 버튼 호버 상태는 망가져 있었습니다.
AI는 일을 키우고 끝맺지 못합니다. 한 줄 명령에 제약과 정지 규칙을 묶어두지 않으면, 라이브러리를 다시 깔고 디자인을 갈아엎습니다.
과욕(Overreach)과 미완(Under-finish)의 본질
비개발자 빌더가 가장 자주 겪는 사고는 두 가지가 동시에 일어납니다. 첫째는 과욕입니다. "기왕 손댄 김에" AI는 인접 영역까지 자꾸 다시 짭니다. 비슷한 패턴을 보면 통일하고 싶어 하고, 오래된 코드를 보면 리팩토링하고 싶어 합니다.
둘째는 미완입니다. 정작 처음 부탁한 한 가지는 마무리하지 못한 채 완료 선언을 합니다. 17개 파일을 건드리느라 정작 호버 상태 확인을 빠뜨리는 식입니다.
결과는 항상 똑같습니다. 건드리지 말아야 할 곳까지 깨지고, 부탁한 건 끝나지 않습니다.
과욕을 막는 3가지 무기
길게 가르치는 대신, 세 개만 쥐어주면 됩니다.
- (1) 제약 (Constraints) — 무엇을 건드리지 말지. 폴더, 파일, 라이브러리, 디자인 토큰. 처음부터 못 들어가게 막는 벽입니다.
- (2) 정지 규칙 (Stop Rules) — 언제 멈출지. 토큰 X 이상, 같은 오류 Y회, 변경 파일 Z개 초과. 폭주를 자동으로 끊는 브레이크입니다.
- (3) 작업 단위 분해 (Decomposition) — 큰 명령 하나를 1~3개의 검증 가능한 작은 작업으로 자릅니다. "결제 흐름 정리해줘"가 아니라 "(a) 버튼 색만, (b) 호버 상태만, (c) 클릭 핸들러만".
루틴팩의 intent_sheet.md가 정확히 이 세 가지를 한 장에 담는 도구입니다. "의도-제약-정지 규칙-휴먼 체크포인트"가 한 페이지 안에 묶여 있는 이유는, 벽과 브레이크와 자르는 자가 같은 자리에 있어야 작동하기 때문입니다.
사건 3건 — 비개발자가 실제로 당한 일들
사건 1. 1인 빌더 박 대표님이 Cursor에 "로딩 스피너 하나 추가해줘"라고 했습니다. 결과는 전체 디자인 시스템 재정의. tailwind config가 새로 쓰였고, 색 토큰이 바뀌었고, 변경 파일이 18개였습니다. 스피너는 잘 돌았지만, 다른 페이지 버튼 색이 전부 어긋났습니다.
사건 2. PM 이 매니저님이 "가입 완료 문구 한 줄만 부드럽게 바꿔줘"라고 했더니, AI가 번역 파일 전체를 새로 만들었습니다. 기존에 검수 완료된 한국어/영어/일본어 문장 200여 개가 모두 새 톤으로 갈아엎힌 채 PR이 올라왔습니다.
사건 3. 마케터 김 팀장님이 "이번 주 블로그 글 톤만 살짝 부드럽게"를 부탁했습니다. 톤뿐 아니라 제목·CTA·이미지 캡션까지 모두 새로 쓰여 올라왔습니다. 어제 A/B 테스트로 확정한 CTA 문구가 흔적도 없이 사라져 있었습니다.
세 사건 모두 모델 문제가 아닙니다. 벽이 없고, 브레이크가 없었을 뿐입니다.
"건드리지 마" 리스트 — CLAUDE.md에 박는 5가지 하드 제약
챕터 4에서 "절대 하지 말 것" 섹션을 만들었습니다. 거기에 다음 다섯 줄을 추가하시면 됩니다.
- 읽기 전용 폴더 지정.
/app/legacy,/db/migrations같은 폴더는 읽기만 하고 수정 금지. 참고용이지 작업 대상이 아닙니다. - 변경 파일 상한. 한 번에 5개 이하 유지. 6개째가 필요하면 멈추고 보고합니다.
- 새 라이브러리·의존성 추가는 사람 승인 필요.
package.json,requirements.txt손대기 전 반드시 사람에게 묻습니다. - 디자인 토큰·색·폰트 변경 금지.
tailwind.config.js,tokens.json, 폰트 파일은 사람 승인 없이 수정 금지. - 데이터베이스 스키마·환경변수 변경 금지. 마이그레이션 파일,
.env,.env.example키 추가/삭제는 사람 승인 필요.
다섯 줄이지만, 위의 사건 3건은 세 번 다 막혔을 라인입니다.
정지 규칙 4가지 — 폭주를 자동으로 끊는 브레이크
벽을 세웠으면, 그 다음은 브레이크입니다. intent_sheet.md의 정지 규칙 칸에 다음 네 줄을 그대로 넣으세요.
| 조건 | 행동 |
|---|---|
| 같은 오류 3회 반복 | 정지하고 사람에게 보고 |
| 변경 파일 10개 초과 | 정지하고 사람에게 보고 |
| 토큰 사용 30K 초과 | 정지하고 사람에게 보고 |
| 본 작업과 무관한 영역 수정 시작 | 정지하고 사람에게 보고 |
명령 끝에 한 줄로 붙이면 그대로 작동합니다. 미니 예시입니다.
## STOP RULES (이번 작업 한정)
- 변경 파일이 5개를 넘으면 즉시 멈추고 변경 목록을 보고할 것
- 같은 테스트 실패가 3회 반복되면 멈추고 사람 판단을 요청할 것
- /app/legacy, /db/migrations 폴더는 읽기만, 수정 금지
- tailwind.config.js, tokens.json은 절대 수정 금지
세 번째와 네 번째 줄이 벽, 첫 번째와 두 번째 줄이 브레이크입니다. 둘이 같은 자리에 있어야 합니다.
오늘의 5분 액션
이 글을 닫기 전에, 다섯 분만 손을 움직여 보세요.
- 내 프로젝트의 "절대 건드리지 말 것" 3개를 골라
CLAUDE.md의 "절대 하지 말 것" 섹션에 추가하세요. - 위 정지 규칙 4가지 중 내 상황에 맞는 1~2개를
intent_sheet.md의 "정지 규칙" 칸에 박으세요. - 지금 AI에게 시키려던 명령을, 작업 단위 1~3개로 분해해 다시 적으세요. "결제 흐름 정리" → "(a) 버튼 색만 (b) 호버 상태만".
- 명령 끝에 한 줄을 붙이세요. "변경 파일 5개를 넘기면 멈추고 보고해줘."
- 끝났으면 변경 파일 목록을 먼저 받아보세요. 코드를 보기 전에.
자가 점검 5문항
- ☐ 최근 1주일 안에 AI가 부탁하지 않은 영역까지 손댄 적이 있나요?
- ☐ 우리
CLAUDE.md에 "건드리지 마" 항목이 5개 이상 있나요? - ☐
intent_sheet.md에 정지 규칙이 박혀 있나요? - ☐ 한 번에 변경되는 파일 수에 상한이 있나요?
- ☐ 큰 명령을 작업 단위로 자르고 시작하나요?
세 개 이상 아니오라면, 오늘 5분 액션이 정확히 당신을 위한 과제입니다.
마무리, 그리고 다음 챕터
다시 한번.
AI는 일을 키우고 끝맺지 못합니다. 제약과 정지 규칙을 묶어두지 않으면, 라이브러리를 다시 깔고 디자인을 갈아엎습니다.
제약과 정지가 외부의 벽이라면, 다음 챕터는 내부의 뼈대입니다. 챕터 08 — 할 일 한 장이 모든 것을 바꾼다, feature_list. 큰 명령을 검증 가능한 작은 항목으로 자르는, 운영자가 매일 쓰는 한 장을 같이 만들어 보겠습니다.
참고
- 원본 강의: walkinglabs.github.io/learn-harness-engineering/ko/ 강의 07
- Eugene Yan, "How to Work and Compound with AI"
루틴팩 v1 — 오늘 액션을 위한 5종 템플릿
CLAUDE.md · feature_list.json · progress.md · intent_sheet.md · session-end-checklist.md
무료로 받기