| name | staging-smoke-test |
| description | 배포 직후 스테이징 환경에 고정된 스모크 체크리스트(로그인/인증, 핵심 플로우, 웹훅, 에러 버짓)를 돌려서, 실패하면 가장 작은 문제부터 고치고 전부 통과(종료 코드 0)할 때까지 반복하는 닫힌 루프입니다. 사용자가 "스테이징 스모크 테스트 돌려줘", "배포 후 스모크 체크리스트 확인해줘", "staging에서 로그인/핵심 플로우/웹훅 점검해줘", "스모크 통과할 때까지 고쳐줘", "run staging smoke checklist", "post-deploy smoke check", "Staging Smoke Test"처럼 스테이징 배포 검증을 요청할 때 사용하세요. (구분: 배포 후 health·smoke 엔드포인트를 일정 간격으로 핑하는 건 looping:deploy-verification-loop, 머지·리베이스 직후 자동 스모크는 looping:post-merge-regression-guard, E2E 스위트 전체를 green까지 돌리는 건 looping:e2e-until-green, 로컬 유닛 테스트 통과는 looping:test-until-green) |
스테이징 스모크 테스트 (Staging Smoke Test)
배포 후 스테이징에 고정 스모크 체크리스트를 돌립니다: 인증, 핵심 플로우, 에러 버짓.
| 항목 | 값 |
|---|
| 카테고리 | DevOps |
| 트리거 | 수동(manual) — 사람이 배포 직후 직접 시작 |
| 종료 조건(Exit) | 스모크 명령이 종료 코드 0으로 끝날 때 |
| 반복 한도(Max iterations) | 6 |
| 매 반복 체크 명령 | npm run smoke:staging |
| 가드레일 | 강화됨(Hardened) |
| 지원 에이전트 | Claude Code · Cursor |
이 루프는 언제 쓰나
스테이징에 막 배포한 뒤, "로그인은 되나? 결제 같은 핵심 경로는 살아 있나? 웹훅은 들어오나?"를 매번 손으로 클릭해 확인하기 번거로울 때 씁니다. 한 번 시작하면 에이전트가 고정된 스모크 체크리스트 실행 → 실패 추적 → 최소 수정·재배포 → 재실행을 스스로 반복하며 전부 통과(green)에 수렴시킵니다. 인증, 크리티컬 패스, 웹훅, 에러 버짓처럼 "프로덕션으로 밀기 전에 반드시 살아 있어야 하는 것들"을 빠르게 한 바퀴 검증하는 게 목적입니다. 전체 회귀 스위트나 E2E보다 가볍고, 배포가 멀쩡한지 빠르게 게이트하는 데 맞춰져 있습니다.
루프 흐름
수동 시작 → 스모크 체크리스트 실행 → 실패 수정 → 재실행 →〔피드백 게이트〕전부 통과?
↑ │ 아니오
└────────────────────────────────────────────┘
│ 예
종료
매 반복(pass)마다 하는 일
- 스모크 체크리스트 실행 — 스테이징 스모크 스크립트 또는 수동 체크리스트(로그인, 크리티컬 패스, 웹훅)를 돌립니다. →
npm run smoke:staging
npm run smoke:staging
- 실패 수정 — 스모크가 실패하면 로그를 추적해 가장 작은 문제 하나를 고치고, 상황에 맞게 재배포하거나 핫픽스를 적용합니다.
- 통과 확인(Confirm green) — 체크리스트의 모든 항목이 통과할 때까지 스모크를 다시 돌립니다. →
npm run smoke:staging
npm run smoke:staging
가드레일 (점수 조작 방지 규칙)
종료 조건을 "가짜로" 통과시키지 못하게 막는 규칙입니다. 반드시 지키세요.
- 체크 명령이나 종료 기준을 고쳐서 억지로 성공시키지 않는다.
- 체크를 건너뛰거나 비활성화·우회해서 종료 조건을 통과시키지 않는다.
- 여러 번 반복해도 막히면, 지표를 조작하지 말고 멈추고 블로커를 보고한다.
Claude Code에서 실행하기
가장 간단합니다. 배포가 끝난 뒤 아래 kickoff 프롬프트를 그대로 붙여넣으면 에이전트가 스스로 반복합니다.
"스테이징 스모크 테스트(Staging Smoke Test)" 루프를 시작합니다.
목표: 스테이징 스모크 체크리스트 통과
최대 반복: 6
매 반복 사이 실행: npm run smoke:staging
종료 조건: 스모크 명령이 종료 코드 0으로 끝날 때
1단계: 스테이징 스모크 체크리스트를 실행한다. 첫 번째로 실패하는 항목을 고치고, 반복한다.
이 루프를 스스로 페이싱(self-pace)하라. 매 반복 후 체크 명령을 실행하고 출력을 읽어, 종료
조건이 충족되지 않았을 때만 계속한다. 종료 조건이 통과하거나 최대 반복에 도달하면 멈춘다.
매 회차마다 한 줄 상태 업데이트를 남긴다.
팁: npm run smoke:staging는 예시입니다. 프로젝트의 실제 스모크 명령으로 바꾸세요 — 예를 들어 playwright test --grep @smoke, newman run staging.postman_collection.json, curl -fsS https://staging.example.com/healthz 등.
팁 / 변형
- 체크 명령 교체: 스모크를 정의하는 도구에 맞춰 바꾸세요. Playwright는
playwright test --grep @smoke, Postman/Newman은 newman run ..., 부하·헬스 체크는 k6 run smoke.js나 curl -fsS <스테이징-헬스-URL>, 파이썬은 pytest -m smoke.
- 막힐 때 대처: 같은 항목이 2회 연속 실패하면 가드레일대로 멈추고, 관련 로그와 직전 배포 diff(또는 배포 버전)를 함께 보고하게 하세요. 데이터·인프라 문제처럼 코드로 못 고치는 실패는 에스컬레이션합니다.
- 연관 루프: 배포 후 엔드포인트를 일정 간격으로 핑하는 건
looping:deploy-verification-loop, 머지·리베이스 직후 자동 스모크는 looping:post-merge-regression-guard, E2E 스위트 전체를 green까지 돌리는 건 looping:e2e-until-green.
원본 영어 kickoff (loops.elorm.xyz 원문)
Start the "Staging Smoke Test" loop.
Goal: staging smoke checklist passes
Max iterations: 6
Between iterations run: npm run smoke:staging
Exit when: smoke command exits 0
Step 1: Run the staging smoke checklist. Fix the first failing item, then repeat.
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/staging-smoke-test