From looping
프로덕션 빌드를 돌려 클라이언트 번들 크기를 측정하고, 설정한 size-limit 예산을 넘으면 무거운 모듈 dynamic import·미사용 의존성 제거·라우트 분할로 다이어트한 뒤 size-limit이 종료 코드 0으로 통과할 때까지 자동으로 반복하는 닫힌 루프입니다. 사용자가 "번들 크기 줄여줘", "번들 예산 안 넘게 해줘", "size-limit 통과시켜줘", "번들 다이어트해줘", "client bundle 가볍게 유지해줘", "bundle size budget", "keep the client bundle under budget", "loop until size-limit passes"처럼 클라이언트 번들을 예산 이하로 끌어내리고 싶을 때 사용하세요. (구분: 빌드 자체를 성공시키는 건 looping:build-until-green, 죽은 export·미사용 파일·고아 의존성 정리는 looping:knip-until-clean, 의존성을 하나씩 안전하게 업그레이드하는 건 looping:dependency-upgrade-one-by-one)
How this skill is triggered — by the user, by Claude, or both
Slash command
/looping:bundle-size-budgetThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> 기능은 그대로 출시하되 클라이언트 번들은 부풀리지 않기 — size-limit 예산을 통과할 때까지 반복합니다.
기능은 그대로 출시하되 클라이언트 번들은 부풀리지 않기 — size-limit 예산을 통과할 때까지 반복합니다.
| 항목 | 값 |
|---|---|
| 카테고리 | 성능(Performance) |
| 트리거 | 수동(manual) — 사람이 직접 시작 |
| 종료 조건(Exit) | size-limit이 종료 코드 0으로 끝날 때(번들 크기가 설정한 예산 이하) |
| 반복 한도(Max iterations) | 6 |
| 매 반복 체크 명령 | npm run build && npm run size-limit |
| 가드레일 | 강화됨(Hardened) |
| 지원 에이전트 | Claude Code · Cursor · Codex |
기능을 더하다 보면 번들이 슬금슬금 무거워져서 초기 로딩이 느려지는데, "어디가 커졌나" 매번 빌드 결과를 직접 뒤지기 번거로울 때 씁니다. 한 번 시작하면 에이전트가 빌드 → 크기 측정 → 트림/lazy-load → 재측정을 스스로 반복하며 번들을 정한 예산 아래로 끌어내립니다. 핵심은 기능을 잘라내지 않고 무거운 모듈을 동적 import 하거나 미사용 의존성을 걷어내는 식으로 크기를 줄이는 것 — 정말 어쩔 수 없을 때만 기능 축소를 검토합니다.
수동 시작 → 번들 측정 → 트림/lazy-load →〔피드백 게이트〕번들이 예산 이하?
↑ │ 아니오
└──────────────────────────────────────────┘
│ 예
종료
npm run build && npm run size-limit
종료 조건을 "가짜로" 통과시키지 못하게 막는 규칙입니다. 반드시 지키세요.
가장 간단합니다. 아래 kickoff 프롬프트를 그대로 붙여넣으면 에이전트가 스스로 반복합니다.
"번들 크기 예산(Bundle Size Budget)" 루프를 시작합니다.
목표: 클라이언트 번들이 size-limit 예산 이하로 유지된다
최대 반복: 6
매 반복 사이 실행: npm run build && npm run size-limit
종료 조건: size-limit이 종료 코드 0으로 끝날 때
1단계: 빌드해서 번들 크기를 측정한다. 예산을 넘으면, size-limit이 통과할 때까지 무거운 모듈을 lazy-load 하거나 의존성을 줄인다.
이 루프를 스스로 페이싱(self-pace)하라. 매 반복 후 체크 명령을 실행하고 출력을 읽어, 종료
조건이 충족되지 않았을 때만 계속한다. 종료 조건이 통과하거나 최대 반복에 도달하면 멈춘다.
매 회차마다 한 줄 상태 업데이트를 남긴다.
전제: 프로젝트에
size-limit(또는 동등한 번들 예산 도구)이 설치·설정되어 있어야 하고,package.json에build·size-limit스크립트가 있어야 합니다. 예산 임계값은.size-limit.json(또는size-limit설정)에서 정합니다.
size-limit 외에도 생태계에 맞게 바꾸세요. Next.js는 @next/bundle-analyzer, Vite는 npx vite-bundle-visualizer, 범용으로는 npx bundlesize, npx source-map-explorer dist/**/*.js로 어떤 청크가 큰지 시각화할 수 있습니다.looping:build-until-green, 죽은 코드·미사용 의존성 정리는 looping:knip-until-clean, 의존성을 한 번에 하나씩 올리는 건 looping:dependency-upgrade-one-by-one.Start the "Bundle Size Budget" loop.
Goal: client bundle stays under the size-limit budget
Max iterations: 6
Between iterations run: npm run build && npm run size-limit
Exit when: size-limit exits 0
Step 1: Build and measure bundle size. If over budget, lazy-load or trim deps until size-limit passes.
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.
npx claudepluginhub newturn2017/looping-skills --plugin loopingGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.