/marionette smoke — 화면들이 일단 잘 뜨는지 빠르게 점검#
| 항목 | 내용 |
|---|---|
| 실행 명령 | /cc-marionette:smoke |
| 분류 | Flutter |
| 난이도 | ●○○ 간단 |
| MCP 서버 | marionette |
한마디로#
앱의 주요 화면들을 하나씩 자동으로 열어보고 "정상적으로 떴는지, 에러는 없는지"만 빠르게 확인하는 점검입니다. 건물을 넘기기 전에 각 방의 불이 켜지는지 스위치만 눌러보고 도는 것과 같아요. 가구 하나하나를 만져보는 정밀 점검은 아닙니다.
누가·언제 쓰나요#
- 코드를 합치기(merge) 직전에, 주요 화면들이 깨지지 않았는지 가볍게 확인하고 싶은 개발자
- "방금 바꾼 게 다른 화면을 망가뜨리지 않았나"를 빠르게 훑고 싶을 때
- CI(자동 검증 파이프라인)에 넣어 화면이 뜨는지 자동으로 검사하고 싶을 때
화면별로 버튼·입력칸 하나하나까지 직접 눌러보며 깊게 검사하려면 이 명령 대신 sweep을 쓰세요.
무엇을 해주나요#
지정한 화면들을 차례로 열어보고, 결과를 한 폴더에 정리해 줍니다.
screens/<route>.png— 각 화면의 스크린샷interactive_summary.json— 화면에 있는 버튼·입력칸 등 조작 가능한 요소의 개수와 종류errors.txt— 화면에서 발생한 에러 기록summary.md— 전체 통과/실패 요약 (CI에서 성공·실패 판정 용도로 사용)
판정 기준은 단순합니다. 모든 화면이 정상적으로 뜨고 에러가 없으면 통과, 어떤 화면이 에러를 내거나 아무 요소도 없는 빈 화면(흰 화면)이면 실패입니다.
어떻게 쓰나요#
/marionette smoke --routes=/home,/posts/123,/settings
--routes(필수) — 점검할 화면 경로들을 쉼표로 이어서 적습니다. 예:/home,/posts,/settings-
--output(선택) — 결과를 저장할 폴더. 안 적으면.claude/docs/marionette/smoke-<시각>/에 자동 저장됩니다.
안에서 무슨 일이 벌어지나요#
지정한 각 화면마다 다음을 순서대로 합니다.
- 해당 화면으로 이동합니다. (화면의 내비게이션 버튼을 눌러 이동하거나, 앱이 지원하면 경로로 바로 이동)
- 화면 스크린샷을 찍습니다.
- 화면 안의 조작 가능한 요소(버튼·입력칸 등)의 개수와 종류를 세어 기록합니다.
- 에러 수준 이상의 로그가 있으면 끌어와 요약에 표시합니다.
모든 화면을 다 돌면 summary.md에 전체 통과/실패 결과가 정리됩니다.
⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)
Parameters#
| Parameter | Required | Description |
|---|---|---|
--routes | ✅ | Comma-separated route paths, e.g. /home,/posts,/settings |
--output | ❌ | Output dir (default .claude/docs/marionette/smoke-<ts>/) |
Behaviour#
For each route:
- Navigate via Marionette
tapon existing navigation elements OR — if the app exposes agoNamed-style dynamic tool viacc-mcp-toolkit— call that instead. take_screenshots.get_interactive_elements(count + types only — saved to JSON).get_logs— pull anything atLevel.erroror higher; surface insummary.md.
Pass / Fail#
- ✅ Pass: every route renders and produces no error log.
- ❌ Fail: route threw, or
get_interactive_elementsreturns empty (likely white screen).
Output#
.claude/docs/marionette/smoke- < ts > /
├── screens/ < route > .png
├── interactive_summary.json
├── errors.txt
└── summary.mdExample#
/marionette smoke --routes=/home,/posts/123,/settingsUse in CI by piping the agent prompt through a non-interactive runner; the command returns exit-code-style status in summary.md.