LogoSkills

/cc-e2e:explore — 앱을 직접 눌러보며 동선 기록하기

flutter-skill MCP를 통해 실행 중인 앱을 탐색하고 상호작용 저널을 기록합니다 (E2E authoring 1단계 진입점).

/cc-e2e:explore — 앱을 직접 눌러보며 동선 기록하기#

항목내용
실행 명령/cc-e2e:explore
분류E2E 작성
난이도●●○ 보통
MCP 서버flutter-skill

한마디로#

실제로 돌아가는 앱을 사람이 손으로 눌러보듯 화면을 탐색하고, "어디를 어떤 순서로 눌렀는지"를 그대로 기록해 두는 단계입니다. 나중에 자동 테스트로 만들기 전, 마치 사용 설명서 초안을 만들기 위해 앱을 직접 써보며 동선을 메모하는 것과 같아요.

누가·언제 쓰나요#

  • 새 기능에 대한 E2E(처음부터 끝까지 흐름) 테스트 시나리오를 처음 작성하기 시작할 때
  • 기존 시나리오에서 빠진 경로나 예외 상황(엣지 케이스)을 더 찾아보고 싶을 때
  • 앱 화면 요소의 식별값(위젯 Key·semantic)을 발견해 두고 싶을 때

E2E 테스트 만들기 전체 과정 중 1단계(맨 처음 진입점) 입니다.

무엇을 해주나요#

탐색하면서 다음 산출물을 남깁니다. 단, 이 결과물은 커밋되지 않는 임시 기록(휘발성) 이며, 이후 /cc-e2e:draft 단계에서 정식 시나리오 초안으로 변환됩니다.

  • .claude/e2e-journal/{feature}.jsonl — 조작 순서를 기록한 저널(임시)
  • .claude/e2e-journal/screenshots/{feature}/*.png — 탐색 중 캡처한 스크린샷(임시)
  • 탐색 요약 리포트 — 화면에 출력

어떻게 쓰나요#

# feature 명시
/cc-e2e:explore sign_in

# 자유 프롬프트로 탐색 의도 지시
/cc-e2e:explore sign_in  " 이메일 로그인 성공 + 잘못된 비밀번호 실패 경로 둘 다 보고 싶어 " 

 # 자동 탐색 (auto-explore)
/cc-e2e:explore sign_in --auto --depth=3

# 몽키 테스트
/cc-e2e:explore sign_in --monkey --actions=50 --seed=42
  • sign_in 같은 대상 기능 이름은 반드시 입력합니다(snake_case).
  • 뒤에 따옴표로 무엇을 보고 싶은지 자연어로 덧붙일 수 있습니다.
  • --auto: 사람이 일일이 안 누르고 앱이 알아서 탐색하게 합니다. --depth=3으로 얼마나 깊게 들어갈지 조절합니다.
  • --monkey: 무작위로 마구 눌러보는 몽키 테스트 모드입니다. --actions=50(눌러볼 횟수), --seed=42(같은 결과를 재현하는 값)로 조절합니다.
  • --device: 어떤 기기에서 돌릴지 지정합니다(생략하면 자동 감지).

안에서 무슨 일이 벌어지나요#

  1. 이미 끝난 작업인지 확인 — 해당 기능·시나리오가 이미 잠겨(lock) 있으면 멈추고 /e2e:unlock을 안내합니다.
  2. 충돌 검사 — 다른 테스트 러너(patrol develop)가 돌고 있으면 멈춥니다.
  3. 앱이 켜져 있는지 확인 — 탐색 가능한 상태로 앱이 떠 있어야 하며, 아니면 켜는 명령을 알려줍니다.
  4. 탐색 연결 켜기 — 앱과 대화할 통로(flutter-skill MCP)를 잠시 활성화합니다.
  5. 기록장 열기 — 저널 파일을 만들고 "탐색 시작" 표시를 남깁니다.
  6. 탐색 수행 — 실제로 화면을 눌러가며 동선을 기록합니다.
  7. 기록장 닫기 — "탐색 종료" 표시를 남기고 연결을 다시 끕니다.
  8. 다음 단계 안내 — 이어서 /cc-e2e:draft로 넘어가도록 제안합니다.

⚙️ 상세 옵션·실행 명세 (개발자 / AI 에이전트용)

Triggers#

  • 새 feature 에 대한 E2E 시나리오를 처음 작성할 때
  • 기존 시나리오의 누락 경로/엣지 케이스를 탐색할 때
  • 앱 위젯 Key/semantic 매핑을 발견할 때

사용법#

# feature 명시
/cc-e2e:explore sign_in

# 자유 프롬프트로 탐색 의도 지시
/cc-e2e:explore sign_in  " 이메일 로그인 성공 + 잘못된 비밀번호 실패 경로 둘 다 보고 싶어 " 

 # 자동 탐색 (auto-explore)
/cc-e2e:explore sign_in --auto --depth=3

# 몽키 테스트
/cc-e2e:explore sign_in --monkey --actions=50 --seed=42

파라미터#

파라미터필수설명기본
feature대상 feature 이름 (snake_case)
prompt탐색 의도 자연어
--autoflutter-skill explore 모드 사용false
--depthauto-explore 깊이3
--monkey몽키 테스트 모드false
--actions몽키 테스트 액션 수50
--seed몽키 테스트 시드42
--device대상 디바이스자동 감지

실행 단계#

  1. Lock 확인.claude/e2e-lock.json 에서 feature + scenario 가 이미 lock 되어 있는지 검사. 있으면 중단하고 /e2e:unlock 안내
  2. Patrol 러너 충돌 확인patrol develop 이 실행 중이면 중단
  3. 앱 기동 — debug 빌드로 앱이 실행 중인지 확인(kobic 은 kDebugMode 가드로 flutter-skill 바인딩을 노출 — 별도 --dart-define 불필요). 아니면 사용자에게 flutter run --debug 기동 명령 제시
  4. MCP 연결 확인 — flutter-skill MCP 서버 연결 확인(debug 빌드에서 자동 노출). 연결 안 되면 8단계의 record-only 폴백으로 진행(중단 아님)
  5. 저널 열기.claude/e2e-journal/{feature}.jsonl 생성/append, session_start 이벤트 기록
  6. 탐색 수행exploration 스킬 호출 (skills/exploration/SKILL.md 참조)
  7. 저널 닫기session_end 이벤트 기록 + flutter-skill MCP disable
  8. 다음 단계 안내/cc-e2e:draft 호출 제안

출력#

  • .claude/e2e-journal/{feature}.jsonl (휘발성)
  • .claude/e2e-journal/screenshots/{feature}/*.png (휘발성)
  • 탐색 요약 리포트 (stdout)

실패 케이스#

원인대응
debug 빌드 아님(릴리스 빌드)flutter run --debug 기동 명령 출력 후 중단 (kobic 은 kDebugMode 가드 — --dart-define 불필요)
patrol develop 실행 중중단, patrol 세션 종료 안내
이미 lock 된 시나리오 재탐색 시도/e2e:unlock 안내 후 중단
flutter-skill MCP 연결 실패record-only 폴백 — 사용자가 탭/입력을 구술하면 에이전트가 .jsonl 저널에 수기 기록(=/cc-e2e:draft 진행 가능). 진단은 cc-dev:mcp-debug (unsafe→중단, tooling 부재→degrade 구분)

관련#

  • skills/exploration/SKILL.md
  • commands/draft.md — 다음 단계
  • rules/binding-gating.md — 게이팅 표준