| name | build-until-green |
| description | 프로덕션 빌드를 실제로 돌려 컴파일·타입·번들링 에러를 한 번에 하나씩 고치고, 빌드가 종료 코드 0으로 성공할 때까지 자동으로 반복하는 닫힌 루프입니다. 사용자가 "빌드 통과할 때까지 돌려줘", "빌드 에러 다 고쳐줘", "빌드 깨진 거 green 될 때까지", "프로덕션 빌드 성공시켜줘", "npm run build 통과하게", "build until green", "fix build errors until it compiles", "make the production build pass"처럼 요청하거나, 빌드가 깨진 걸 반복적으로 고쳐 성공시키고 싶을 때 사용하세요. (구분: 테스트 스위트 실패를 고치는 건 looping:test-until-green, lint·타입체크 에러 정리는 looping:lint-typecheck-fix, 원격 CI 빌드 실패 감시는 looping:ci-failure-watcher, 번들 사이즈 예산 초과는 looping:bundle-size-budget) |
프로덕션 빌드 통과까지 (Build Until Green)
프로덕션 빌드를 돌리고, 컴파일·번들링 에러를 고치고, 빌드가 성공할 때까지 반복합니다.
| 항목 | 값 |
|---|
| 카테고리 | 테스트(Testing) |
| 트리거 | 수동(manual) — 사람이 직접 시작 |
| 종료 조건(Exit) | 프로덕션 빌드가 종료 코드 0으로 끝날 때 (npm run build exits 0) |
| 반복 한도(Max iterations) | 10 |
| 매 반복 체크 명령 | npm run build |
| 가드레일 | 강화됨(Hardened) |
| 지원 에이전트 | Claude Code · Cursor |
이 루프는 언제 쓰나
리팩터링이나 의존성 업그레이드, 대규모 머지 직후 프로덕션 빌드가 컴파일·타입·번들링 에러로 우수수 깨질 때 씁니다. 에러를 하나씩 보여주며 일일이 "이것도 고쳐줘"라고 지시하는 대신, 한 번 시작하면 에이전트가 빌드 실행 → 에러 분석 → 최소 수정 → 재빌드를 스스로 반복하며 빌드 성공(green)에 수렴시킵니다. 핵심은 한 번에 첫 번째 에러 하나만 최소 diff로 고쳐서, 큰 변경으로 새 에러를 만들지 않는 것입니다. 빌드가 통과하면 멈춥니다.
루프 흐름
수동 시작 → 빌드 실행 → 빌드 에러 수정 → 재빌드 →〔피드백 게이트〕빌드 성공(exit 0)?
↑ │ 아니오
└──────────────────────────────────────────┘
│ 예
종료
매 반복(pass)마다 하는 일
- 빌드 실행 — 프로젝트 빌드 명령을 돌려 모든 에러를 수집합니다.
npm run build
- 빌드 에러 수정 — 컴파일·타입·번들링 에러를 한 번에 하나씩 고칩니다. 최소 diff를 선호하세요.
- 재빌드 — 다시 빌드를 돌려 에러가 해결됐는지 확인합니다.
npm run build
가드레일 (점수 조작 방지 규칙)
종료 조건을 "가짜로" 통과시키지 못하게 막는 규칙입니다. 반드시 지키세요.
- 체크 명령이나 종료 기준을 고쳐서 억지로 성공시키지 않는다.
- 체크를 건너뛰거나 비활성화·우회해서 종료 조건을 통과시키지 않는다.
- 여러 번 반복해도 막히면, 지표를 조작하지 말고 멈추고 블로커를 보고한다.
- 스위트를 통과시키려고 테스트를 약화·삭제·skip 하지 않는다.
- 진짜 단언(assertion)을 항상 통과하는 껍데기 테스트로 바꾸지 않는다.
- green으로 만들려고 테스트를 땜질하기보다 프로덕션 코드를 고치는 쪽을 택한다.
Claude Code에서 실행하기
가장 간단합니다. 아래 kickoff 프롬프트를 그대로 붙여넣으면 에이전트가 스스로 반복합니다.
"프로덕션 빌드 통과까지(Build Until Green)" 루프를 시작합니다.
목표: 프로덕션 빌드 성공
최대 반복: 10
매 반복 사이 실행: npm run build
종료 조건: npm run build가 종료 코드 0으로 끝날 때
1단계: 빌드를 실행한다. 실패하면 첫 번째 에러를 고치고, green이 될 때까지 반복한다.
이 루프를 스스로 페이싱(self-pace)하라. 매 반복 후 체크 명령을 실행하고 출력을 읽어, 종료
조건이 충족되지 않았을 때만 계속한다. 종료 조건이 통과하거나 최대 반복에 도달하면 멈춘다.
매 회차마다 한 줄 상태 업데이트를 남긴다.
팁: npm run build는 예시입니다. 프로젝트에 맞게 next build, vite build, go build ./..., cargo build --release 등으로 바꾸세요.
팁 / 변형
- 빌드 명령 교체: 생태계에 맞춰 체크 명령만 바꾸면 됩니다. Next.js는
next build, Vite는 vite build, 모노레포는 pnpm -r build나 turbo build, Go는 go build ./..., Rust는 cargo build --release.
- 수렴이 멈추면: 같은 에러가 2회 반복되면 가드레일대로 멈추고, 원인 가설과 함께 사람에게 보고하게 하세요. 빌드 깨짐의 흔한 원인은 환경 변수 누락, 타입 정의 불일치, 동적 import 경로입니다.
- 연관 루프: 테스트 스위트 통과는
looping:test-until-green, lint·타입체크 에러 정리는 looping:lint-typecheck-fix, 원격 CI 빌드 실패 감시는 looping:ci-failure-watcher.
원본 영어 kickoff (loops.elorm.xyz 원문)
Start the "Build Until Green" loop.
Goal: production build succeeds
Max iterations: 10
Between iterations run: npm run build
Exit when: npm run build exits 0
Step 1: Run the build. If it fails, fix the first error, then repeat until green.
Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
출처: https://loops.elorm.xyz/loops/build-until-green