crawler
Playwright로 웹사이트를 직접 탐색하여 크롤링 흐름 설계. API/네트워크 분석, 문서화, 크롤러 코드 생성.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Playwright로 웹사이트를 직접 탐색하여 크롤링 흐름 설계. API/네트워크 분석, 문서화, 크롤러 코드 생성.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
세션 핸드오프. 컨텍스트가 차기 전에 중요 맥락을 progress.md에 문서화하고 새 세션 킥오프 프롬프트를 클립보드에 복사한다. "핸드오프", "세션 정리하고 넘기자", "컨텍스트 정리", "이어갈 준비" 등의 요청에 사용.
MD 파일 또는 텍스트로 작업을 정의하면, 분석 → 디자인 확인 → 구현 → 검증 → 커밋 → PR까지 전체 플로우를 수행한다. "이거 만들어줘", "기능 구현해줘", "작업 시작하자", "이 티켓 진행해줘" 등 코드 작업 착수 발화에 사용.
Claude + OpenAI Codex 협업 스킬. MCP 서버 설정 시에만 사용 가능.
code-forge 상태 대시보드. REFLECT flag, quality 이벤트, notepad/decisions, usage 집계를 한 번에. forge-glow 같은 외부 도구는 --json으로 파싱.
교차 모델 토론. Agent Teams / Codex CLI / self-debate 모드 선택. 설계 결정, 아키텍처 선택 시 활용. "어느 쪽이 나을까", "설계 비교해줘", "토론시켜줘", "교차 검증해줘" 등의 요청에 사용.
화면 단위 E2E 테스트 자동화. Figma/코드 기반 테스트 케이스 도출 → Playwright 코드 생성 → Forge Loop(에스컬레이션 기반 자율 실행). "E2E 돌려줘", "화면 테스트 만들어줘", "이 페이지 자동 테스트" 등의 요청에 사용.
| name | crawler |
| description | Playwright로 웹사이트를 직접 탐색하여 크롤링 흐름 설계. API/네트워크 분석, 문서화, 크롤러 코드 생성. |
| category | utility |
| user-invocable | false |
Playwright exploration → API/Network analysis → Documentation → Code generation
Templates: document-templates.md · code-templates.md Checklists: pre-crawl-checklist.md · anti-bot-checklist.md References: playwriter-commands.md · crawling-patterns.md · selector-strategies.md · network-crawling.md
<trigger_conditions>
| 트리거 | 액션 |
|---|---|
| Crawling, scraping, crawl, scrape | 즉시 실행 |
| 웹사이트 데이터 추출 | 즉시 실행 |
| API 리버스 엔지니어링 | API 인터셉션 시작 |
| Anti-bot 우회 요청 | Anti-Detect 가이드 확인 |
</trigger_conditions>
| Phase | 작업 | 명령/방법 |
|---|---|---|
| 1. Session | 세션 생성 + 페이지 열기 | playwriter session new |
| 2. Explore | 구조 파악 | accessibilitySnapshot, screenshotWithAccessibilityLabels |
| 3. Analyze | API 인터셉트, 셀렉터 추출 | page.on('response'), getLocatorStringForElement |
| 4. Document | .forge/crawler/[site]/에 저장 | Write |
| 5. Code | 크롤러 코드 생성 | code-templates.md |
# 세션 생성 + 페이지 열기
playwriter session new
playwriter -s 1 -e "state.page = await context.newPage(); await state.page.goto('https://target.com')"
# 구조 파악
playwriter -s 1 -e "console.log(await accessibilitySnapshot({ page: state.page }))"
# API 응답 인터셉트
playwriter -s 1 -e $'
state.responses = [];
state.page.on("response", async res => {
if (res.url().includes("/api/")) {
try { state.responses.push({ url: res.url(), body: await res.json() }); } catch {}
}
});
'
# 인증 자료 추출
playwriter -s 1 -e "console.log(JSON.stringify(await context.cookies(), null, 2))"
playwriter -s 1 -e "console.log(await state.page.evaluate(() => localStorage.getItem('token')))"
# 셀렉터 변환
playwriter -s 1 -e "console.log(await getLocatorStringForElement(state.page.locator('aria-ref=e14')))"
| 조건 | 방법 | 비고 |
|---|---|---|
| API 발견 + 단순 인증 | fetch | 가장 빠름 |
| API + 쿠키/토큰 필요 | fetch + Cookie | 만료 처리 필요 |
| 강한 봇 탐지 | Nstbrowser | Anti-Detect |
| API 없음 (SSR) | Playwright DOM | 직접 파싱 |
.forge/crawler/[site-name]/
├── ANALYSIS.md # 사이트 구조
├── SELECTORS.md # DOM 셀렉터
├── API.md # API 엔드포인트
├── NETWORK.md # 인증/네트워크 세부사항
└── CRAWLER.ts # 생성된 크롤러 코드
✅ Playwright 세션 생성
✅ accessibilitySnapshot으로 구조 분석
✅ API 인터셉션 시도
✅ 셀렉터 추출 검증
✅ .forge/crawler/에 문서화
✅ 크롤러 코드 생성
| 카테고리 | 금지 |
|---|---|
| 분석 | 구조 분석 없이 셀렉터 추측 |
| 접근 | API 확인 없이 DOM 전용 |
| 문서화 | 분석 결과 문서화 생략 |
| 네트워크 | Rate limiting 무시 |