skills/peach-e2e-setup/SKILL.md
프로젝트에 E2E 테스트 환경을 설정합니다. 글로벌 도구 설치 체크, Chrome Beta 확인, e2e/ 인프라 코드 배포. Use when: "e2e 세팅", "e2e setup", "E2E 환경 설정", "E2E 초기 설정" 키워드.
npx skillsauth add peachsolution/peach-harness peach-e2e-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
대상 프로젝트에 E2E 테스트 인프라를 설정한다. npm 글로벌 도구 설치를 확인하고, Chrome Beta 존재를 검증하고, e2e/ 폴더에 인프라 코드를 배포한다.
E2E 환경 설정 전문가. 글로벌 도구와 Chrome Beta가 준비되었는지 확인하고, 인프라 코드를 프로젝트에 복사한다. 기존 시나리오 폴더는 절대 건드리지 않는다.
다음 3개 도구의 설치 여부를 확인한다:
# agent-browser (탐색/검증/확인용 기본 도구)
command -v agent-browser && echo "✅ agent-browser 설치됨" || echo "❌ agent-browser 미설치"
# playwright-cli (시나리오 실행 + iframe fallback용)
command -v playwright-cli && echo "✅ playwright-cli 설치됨" || echo "❌ playwright-cli 미설치"
# playwright-core (CDP 연결 라이브러리)
node -e "require('playwright-core')" 2>/dev/null && echo "✅ playwright-core 설치됨" || echo "❌ playwright-core 미설치"
미설치 도구가 있으면 사용자에게 안내한다:
agent-browser: npm install -g agent-browserplaywright-cli: npm install -g @playwright/cliplaywright-core: npm install -g playwright-corenpm install -g agent-browser @playwright/cli playwright-core자동 설치하지 않는다. 사용자에게 명령어를 안내하고 확인을 받는다.
OS에 따라 경로가 다르다:
macOS:
ls -d "/Applications/Google Chrome Beta.app" 2>/dev/null && echo "✅ Chrome Beta 설치됨" || echo "❌ Chrome Beta 미설치"
Windows (Git Bash):
[ -f "/c/Program Files/Google/Chrome Beta/Application/chrome.exe" ] && echo "✅ Chrome Beta 설치됨" || echo "❌ Chrome Beta 미설치"
미설치 시 안내:
참고:
e2e.sh는uname -s로 OS를 자동 감지하여 Chrome 경로를 분기 처리한다. 직접 경로를 하드코딩하지 않아도 된다. 강제 규칙: Chrome Beta는 반드시$HOME/.chrome-beta-e2e-profile고정 프로필로 실행한다. 프로필 옵션이 빠진 실행은 세션 유지 실패로 간주한다. 이후 AI는 같은 프로필 세션을 이어받아 작업하고, 인증이 다시 필요하면 사용자가 그 프로필에서 직접 로그인/인증을 완료한다.
mkdir -p e2e/lib
references/ 폴더의 인프라 코드 4개를 e2e/에 복사한다.
| 소스 (references/) | 대상 (e2e/) |
|---------------------|-------------|
| e2e.sh | e2e/e2e.sh |
| pwc.sh | e2e/pwc.sh |
| connect.js | e2e/lib/connect.js |
| selector.js | e2e/lib/selector.js |
| gmail-메일목록.js | e2e/시나리오/gmail-메일목록.js (최초 1회, 없을 때만) |
references 파일을 Read 도구로 읽은 뒤 Write 도구로 대상 경로에 작성한다. 인프라 파일은 항상 최신으로 덮어쓴다 (기존 파일이 있어도 덮어씀).
# 시나리오 폴더가 없을 때만 생성. 있으면 절대 건드리지 않음.
if [ ! -d "e2e/시나리오" ]; then
mkdir -p "e2e/시나리오"
echo "✅ e2e/시나리오/ 폴더 생성됨"
else
echo "✅ e2e/시나리오/ 폴더 이미 존재 (건드리지 않음)"
fi
테스트 시나리오 배포 (최초 설정 시 동작 검증용):
references/gmail-메일목록.js → e2e/시나리오/gmail-메일목록.js처리 순서:
파일 없음 → 복사 (질문 없음)
파일 있음 + 동일 → "✅ gmail-메일목록.js 최신 상태"
파일 있음 + 다름 → diff 요약 출력 → "업데이트하시겠습니까? (y/N)"
y → 덮어씀 / N → 스킵
비교는 Read 도구로 두 파일을 읽어 내용이 동일한지 확인한다. diff 요약은 변경된 핵심 부분(몇 줄이 바뀌었는지 등)을 간략히 설명한다.
chmod +x e2e/e2e.sh e2e/pwc.sh
설정 결과를 요약 출력한다:
✅ E2E 환경 설정 완료
배포된 인프라 코드:
e2e/e2e.sh — E2E 통합 CLI
e2e/pwc.sh — playwright-cli CDP 래퍼
e2e/lib/connect.js — Chrome CDP 연결 모듈
e2e/lib/selector.js — 탭/시나리오 선택기
다음 단계:
1. cd e2e && ./e2e.sh setup — 환경 자동 체크 + 설정
2. cd e2e && ./e2e.sh chrome — Chrome Beta CDP 모드 실행 (고정 프로필 필수)
3. Chrome Beta 고정 프로필에서 Google 로그인/필요한 인증 완료
4. cd e2e && ./e2e.sh run 시나리오/gmail-메일목록.js — 테스트 시나리오 실행
e2e/시나리오/ 폴더가 이미 존재하면 절대 덮어쓰거나 삭제하지 않는다e2e.sh, pwc.sh, connect.js, selector.js는 references의 최신 버전으로 항상 교체./e2e.sh chrome을 표준 실행 경로로 사용하고, 직접 실행 시 --user-data-dir=$HOME/.chrome-beta-e2e-profile을 생략하지 않는다./e2e.sh run: node 시나리오.js 직접 실행 시 playwright-core를 못 찾음. e2e.sh가 NODE_PATH에 전역 npm 모듈 경로를 설정해야 정상 동작agent-browser connect 9222 실행 시 생성되는 상주 daemon이 native alert/confirm을 자동으로 닫을 수 있다. 수동 검증이 필요하면 lsof -iTCP:9222 -sTCP:ESTABLISHED -n -P로 확인 후 종료. 상세: peach-e2e-browse/references/native-dialog-주의사항.mdtargetId 기반 탭 고정 실행: 특정 탭을 정확히 지정해야 할 때 --tab N 대신 E2E_TAB_ID 환경변수를 사용한다. 상세: peach-e2e-browse/references/탭-선택-패턴.mdtools
기능 브랜치용 git worktree 라이프사이클을 관리하는 스킬. 생성(create) / 상태 진단(status) / PR 준비(finish) / 병합 후 정리(closeout) / 정리(cleanup) 모드를 자동 판단한다. "워크트리 만들어줘", "worktree 생성", "워크트리 정리", "워크트리 삭제", "기능 브랜치 워크트리", "워크트리 상태", "마무리", "PR 생성", "PR 머지 후 정리", "feature worktree" 키워드로 트리거. PR 전 base 비교와 안전한 동기화 필요 여부를 진단한다. 개발 완료 후 finish/closeout 모드에서는 한 번의 통합 체크포인트로 push/PR/merge/cleanup을 안전하게 진행한다.
development
Karpathy LLM Wiki 패턴 기반 지식 관리 스킬. 코드 프로젝트와 옵시디언 노트 모두 지원. Raw Source(코드·문서)를 읽어 docs/wiki/에 누적형 지식베이스를 구축·유지한다. "wiki", "위키", "ingest", "인제스트", "wiki 점검", "wiki lint", "wiki 업데이트", "문서화해줘", "아키텍처 설명해줘", "어떻게 동작해?" 키워드로 트리거. qmd 검색 도구와 연동하여 토큰 절약 + 높은 검색 정확도 제공.
development
Backend 없이 Mock 데이터 기반 프로토타입 UI를 생성·검증하는 기획 구체화 산출물 스킬. Vue 3 + TypeScript + NuxtUI v4. 별도 ui-proto 저장소(예: peach-ui-proto-backoffice)의 src/modules-task 폴더에 태스크별 화면을 누적한다. "프로토타입 만들어줘", "Mock 화면", "proto UI", "기획 화면 빠르게", "ui-proto 작업", "기획자 검토용 화면", "태스크 폴더 추가", "팀 ui-proto" 키워드로 트리거. 기획자가 직접 작업하는 화면 기획 + 현업 검토용 산출물 스킬이며, 개발용 Spec은 후속 peach-gen-spec이 생성한다. 실제 API 연동이 필요하면 peach-gen-ui를 사용한다.
development
Spec 필수 + ui-proto 보조 기준으로 E2E 환경 세팅 + 단위 시나리오 자동 분할 + 통합 suite 생성 + 실행 + 부합 검증을 한 번에 처리하는 통합 팀 스킬. "e2e 검증해줘", "통합 검증", "전체 흐름 테스트", "팀 e2e", "스펙대로 동작하는지 확인", "ui-proto와 다른지 확인", "최종 검증", "릴리스 전 검증" 키워드로 트리거. peach-e2e-setup + peach-e2e-scenario + peach-e2e-suite 3개 스킬의 패턴을 공유하고, 검증 기준은 본 프로젝트 Spec을 필수 기준으로 삼고, ui-proto는 화면/흐름 보조 기준으로 사용한다. peach-team-dev와 함께 하나의 개발-검증 납품 흐름을 이루되, 구현 컨텍스트와 검증 컨텍스트는 분리한다. 팀 실행 방식은 E2E 범위와 런타임 도구 가용성을 분석해 single-agent / role-queue / agent-team 중 선택한다. 단순 코드 동작 검증을 넘어, 기획 의도와 부합하는지 자동 검증하는 게 핵심 차별점.