Communitygithub.com

프론트엔드 테스트 디버깅

렌더링된 프론트엔드 앱을 테스트, 디버깅하거나 개선할 때 사용합니다. Build Web Apps 또는 웹 개발 플러그인과 함께 사용하며, 로컬 개발 서버, UI 회귀, 상호작용 버그, 콘솔 오류, 반응형 레이아웃 및 시각적 QA를 다룹니다. Browser 플러그인이 가능하면 우선 사용하고, 그렇지 않으면 Playwright를 사용하며 그 이유를 기록합니다.

프론트엔드 테스트 디버깅란 무엇인가요?

이 스킬은 AI 에이전트가 프론트엔드 애플리케이션의 테스트, 디버깅 및 개선 작업을 체계적으로 수행하도록 설계된 전문 스킬입니다. 주로 Build Web Apps, 웹 개발, 프론트엔드 개발 플러그인 환경에서 사용되며, 사용자의 간단한 요청으로부터 대상 URL, 흐름, 그리고 검증해야 할 동작을 자동으로 추론하여 전체 QA 워크플로우를 실행합니다. 핵심 처리 흐름은 'Browser 플러그인' 가용성을 먼저 확인하고, 사용 가능한 경우 해당 플러그인의 API(Browser 플러그인이 제공하는 Node REPL JavaScript 도구)를 통해 브라우저 세션을 생성하고 네비게이션, DOM 스냅샷, 콘솔 로그 수집, 스크린샷 캡처 등 모든 단계를 수행합니다. Browser 플러그인이 없거나 오류가 발생한 경우에는 일반 Playwright를 사용하며, 이때 그 이유를 명시적으로 기록합니다. 이 스킬은 단순한 빌드 성공 여부보다 '렌더링된 UI의 실제 동작 검증'을 최우선 목표로 합니다. 페이지 정체성 확인(URL, 제목), 빈 페이지 체크, 프레임워크 오버레이 감지, 콘솔 오류 수집, 인터랙션 증명 등 6가지 필수 브라우저 체크리스트를 수행합니다. 최종적으로는 QA 엔지니어가 작성한 수준의 상세 보고서(요약, 변경 사항, 체크 결과, 상호작용 루프, 증거 스크린샷, 남은 위험도)를 생성하여 PR 리뷰어가 즉시 신뢰할 수 있는 검증 결과를 제공합니다. 지원되는 플랫폼/도구로는 Claude Code, Cursor, Codex와 같은 AI 에이전트 도구와 Browser 플러그인, Playwright가 포함되며, React/Next.js/Vite 기반의 웹 앱 개발 환경에 최적화되어 있습니다. 의도를 불문하고 시각적 자산 생성에는 Image Gen을 사용하지 않으며, 단순 디자인/재설계 작업은 `frontend-app-builder` 스킬로 분리합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Geruyang/agent-skills-library/tree/HEAD/original-skills/x-openai-frontend-testing-debugging-eff5af3

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

프론트엔드 테스트 디버깅은(는) 무엇을 하나요?

호출 계약

이 스킬은 일반 사용자 프롬프트로 작동해야 합니다. 사용자가 브라우저 라우팅, 스크린샷, 보고서 형식 또는 대체 정책을 구체적으로 설명하도록 요구하지 마십시오.

사용자가 Build Web Apps 플러그인, 웹 개발 플러그인, 프론트엔드 개발 플러그인 또는 렌더링된 프론트엔드 변경, 테스트, 버그 조사를 위한 프론트엔드 테스트/디버깅 스킬을 사용하도록 요청할 때 이 스킬을 사용하십시오.

이 전체 워크플로우를 트리거해야 하는 예시:

  • 웹 대시보드 거래 검색 영역을 개선해 주세요. 웹 개발 플러그인을 사용해 주세요.
  • 프론트엔드 개발 플러그인을 사용하여 이 대시보드를 다듬어 주세요.
  • Build Web Apps 플러그인으로 이 UI를 디버깅해 주세요.
  • 이 localhost 앱을 테스트하고 깨진 상호작용을 수정해 주세요.

간단한 프롬프트에서 리포지토리, 현재 열려 있는 앱/브라우저 URL, 주변 파일 또는 실행 중인 개발 서버로부터 대상 표면을 유추하십시오. 대상 URL이 불명확하면 사용자에게 묻기 전에 리포지토리 스크립트와 실행 중인 로컬 포트를 검사하십시오.

렌더링된 프론트엔드 표면에 대한 코드 변경이 있는 경우, 기본적으로 다음 검증 루프를 수행하십시오:

  1. 대상 흐름을 식별합니다.
  2. 아래 브라우저 경로를 선택합니다.
  3. 가장 작은 유용한 편집을 수행합니다.
  4. 렌더링된 동작을 검증합니다.
  5. QA 최종 응답 보고서로 회신합니다.

브라우저 경로 선택

먼저 브라우저 가용성을 분류합니다:

  • 사용 가능: Browser 플러그인과 그 browser 스킬이 세션에 나열되어 있습니다. 브라우저 작업 전에 해당 스킬을 읽고 따르십시오.
  • 없음: Browser 플러그인 또는 browser 스킬이 나열되지 않았습니다. 일반 Playwright를 사용하고 Browser plugin not available (Browser 플러그인을 사용할 수 없음)을 기록하십시오.
  • 호출 실패: Browser는 사용 가능해 보이지만, 스킬/런타임, Node REPL JavaScript 설정, 탭 획득 또는 탐색이 실패합니다. 이를 Browser 경로 차단기로 처리하십시오.

Browser를 사용할 수 있는 경우 일반 Playwright, 외부 Chrome 또는 셸 open을 먼저 사용하지 마십시오.

실패한 Browser 호출에서 일반 Playwright로 전환하는 것은 사용자가 이미 대체를 허용했거나 작업이 명시적으로 비Browser 검증을 허용하는 경우에만 가능합니다. 이 경우 정확한 Browser 실패와 대체 결정을 보고하십시오.

대상 흐름

브라우저 검증 전에 대상 흐름을 한 문장으로 정의하십시오:

테스트 중인 흐름: [진입 경로] -> [사용자 동작 또는 상태] -> [예상 렌더링 결과].

사용자가 일반 스모크 테스트를 요청한 경우 다음을 사용하십시오:

테스트 중인 흐름: 앱 로드 -> 첫 번째 의미 있는 화면 렌더링 -> 기본 가시 컨트롤이 런타임 오류 없이 응답합니다.

Browser 플러그인 루프

Browser 스킬에서 설명하는 Node REPL JavaScript 도구를 통해 Browser 명령을 실행하십시오. 별도의 브라우저 설정 경로를 만들지 마십시오. Browser 스킬에서 달리 명시하지 않는 한 동일한 탭 바인딩을 계속 사용하십시오.

필수 순서:

  1. Browser 스킬이 지시하는 대로 정확히 Browser 런타임을 로드합니다.
  2. agent.browser.nameSession("...")으로 세션 이름을 지정합니다.
  3. agent.browser.tabs.selected() 또는 agent.browser.tabs.new()로 탭을 획득합니다.
  4. tab.goto(url)로 이동합니다.
  5. 아래 필수 검사를 실행합니다.
  6. 범위가 지정된 tab.playwright 로케이터 또는 Browser 스킬 상호작용 API와 상호작용합니다.
  7. 편집 후 await tab.reload()를 호출한 다음, 검사와 실패한 상호작용을 반복합니다.

각 UI 변경 동작에 대해 다음 상태가 올바르다는 가장 저렴한 증거를 수집하십시오: 새로운 DOM 스냅샷, 가시 텍스트/상태, URL 변경, 포커스된 컨트롤, 토스트, 모달, 스크린샷 또는 콘솔 로그.

필수 Browser 검사

렌더링된 앱이 작동한다고 주장하기 전에 다음 검사를 실행하십시오:

  1. 페이지 정체성: await tab.url() 및 await tab.title()이 의도한 페이지와 일치합니다.
  2. 빈 페이지 아님: await tab.playwright.domSnapshot()에 빈 셸이 아닌 의미 있는 앱 콘텐츠가 포함되어 있습니다.
  3. 프레임워크 오버레이 없음: 스냅샷 또는 스크린샷에 Next.js, Vite, Webpack 또는 프레임워크 오류 오버레이가 표시되지 않습니다.
  4. 콘솔 상태: await tab.dev.logs({ levels: ["error", "warn"], limit: 50 })에 관련 앱 오류가 없거나 각 관련 오류가 설명됩니다.
  5. 스크린샷 증거: await display(await tab.playwright.screenshot({ fullPage: false }))가 시각적 주장을 뒷받침합니다.
  6. 상호작용 증명: 최소 하나의 대상 흐름 상호작용이 실행되고 상태 확인이 이어집니다.

시각적 작업의 경우 실용적일 때 데스크톱 및 하나의 모바일 크기 뷰포트를 추가하십시오. 참조 기반 작업의 경우 짧은 불일치 원장을 유지하십시오: 참조 증거, 렌더링된 증거, 수정 또는 의도된 편차.

Playwright 루프

Browser를 사용할 수 없거나, 사용자가 Browser 호출 실패 후 대체를 허용한 경우 이 분기를 사용하십시오.

다음 순서를 사용하십시오:

  1. package.json에서 스크립트를 찾습니다.
  2. 리포지토리의 패키지 관리자로 앱을 시작하고 요청된 호스트를 정확하게 유지합니다.
  3. 리포지토리의 e2e 스크립트가 있으면 선호합니다.
  4. 그렇지 않으면 Playwright가 구성된 경우 pnpm exec playwright test 또는 패키지 관리자에 상응하는 명령을 실행합니다.
  5. 프로젝트 Playwright 워크플로우가 없으면 pnpm exec playwright --version으로 Playwright를 확인한 다음, pnpm exec playwright screenshot <url> /tmp/frontend-check.png로 스크린샷을 캡처합니다.
  6. 더 깊은 디버깅의 경우, URL을 열고 콘솔 오류를 캡처하고 스크린샷을 찍고 대상 상호작용을 실행하는 작은 임시 Playwright 스크립트를 커밋된 소스 외부에 만듭니다.
  7. 편집 후 동일한 명령 또는 스크립트를 다시 실행합니다.

작업에 필요하고 사용자가 종속성 변경을 허용하지 않는 한 새로운 브라우저 종속성을 설치하지 마십시오.

검증 체크리스트

  • 요청된 호스트를 정확하게 유지합니다.
  • 컨트롤이 실제 UI 상태를 업데이트하는지 확인합니다.
  • 스크롤하기 전 첫 번째 뷰포트와 실용적일 때 데스크톱 및 하나의 모바일 크기 뷰포트를 확인합니다.
  • 잘림, 겹침, 읽을 수 없는 텍스트, 줄바꿈, 레이아웃 이동, 누락된 에셋, z-index 문제, 스크롤 트랩, 오래된 로딩, 깨진 상태를 찾습니다.
  • 참조 기반 작업의 경우 렌더링된 스크린샷을 참조와 비교하고 짧은 불일치 원장을 유지합니다.
  • 렌더링된 검증이 요청된 경우 빌드 통과만으로는 충분하지 않습니다.

QA 최종 응답 보고서

사소하지 않은 렌더링된 UI 검증 실행의 경우, QA 엔지니어가 코드 변경을 검증하는 것처럼 최종 응답을 작성하십시오. 응답을 통해 사용자 또는 PR 리뷰어가 무엇이 변경되었는지, 무엇이 테스트되었는지, 어떤 증거가 이를 입증하는지, 무엇이 테스트되지 않았는지 쉽게 이해할 수 있어야 합니다.

다음 형식을 사용하십시오:

  • 요약: 사용자에게 보이는 변경 사항과 QA 통과 여부를 설명하는 한두 개의 글머리 기호.
  • 환경: URL, 뷰포트, Browser 가용성 분류, Playwright가 사용된 경우 대체 사유.
  • 확인된 변경 사항: 변경된 파일 또는 표면과 예상되는 특정 사용자 대면 동작.
  • 검사: 페이지 정체성, 빈 페이지 확인, 프레임워크 오버레이 확인, 콘솔 상태, 스크린샷 증거, 상호작용 증명에 대한 통과/실패 표.
  • 상호작용 루프: 테스트된 정확한 상호작용 경로(실행된 컨트롤 또는 워크플로우 및 관찰된 상태 변경 포함).
  • 증거: QA 섹션에서 스크린샷 증거를 설명하고, 실제 스크린샷을 응답 끝에 연속 이미지로 배치하십시오. 관련 있는 이전, 이후, 상호작용, 반응형, 오류 또는 수정된 상태를 입증하는 데 유용한 만큼 많은 스크린샷을 포함하십시오.
  • 명령 / Browser API: 시끄러운 로그를 덤프하지 않고 사용된 주요 명령 및 Browser API 시퀀스를 나열합니다.
  • 남은 위험: 테스트되지 않은 뷰포트, 흐름, 브라우저, 데이터 상태 또는 알려진 제한 사항.

문제가 발견된 경우 요약 앞에 발견 사항을 먼저 제시하십시오. 각 발견 사항에는 사용자가 보는 내용, 재현 단계, 스크린샷/DOM/콘솔 증거, 알려진 경우 소유자 또는 파일, 그리고 수행된 수정 또는 남은 차단기가 포함되어야 합니다.

사용자에게 표시되어야 하는 Browser 스크린샷을 사용하는 경우, 채팅에서 참조할 수 있도록 Browser 런타임을 통해 스크린샷을 내보내거나 표시하십시오. Playwright 스크린샷을 사용하는 경우 리포지토리 외부에 저장하고 채팅에서 참조하십시오. 고유한 상태 또는 흐름을 확인하는 데 도움이 되는 경우 여러 스크린샷을 포함하십시오.

작성된 보고서 전체에 스크린샷을 산재시키지 마십시오. 맨 끝에 짧은 스크린샷 섹션을 넣고, 한 줄에 하나의 이미지로 연속 이미지 갤러리로 만드십시오. 상태를 명확히 하는 경우에만 짧은 레이블(예: 이전, 이후, 필터링된 결과, 빈 상태, 모바일)을 추가하십시오.

기본적으로 별도의 HTML 보고서를 만들지 마십시오. 사용자가 명시적으로 요청한 경우에만 독립 실행형 보고서 파일을 만들고, 사용자가 명시적으로 커밋된 아티팩트를 요청하지 않는 한 리포지토리 외부에 작성하십시오.

사용자가 명시적으로 커밋된 아티팩트를 요청하지 않는 한 리포지토리에 보고서, 스크린샷, 추적 또는 임시 스크립트를 작성하지 마십시오.

관련 스킬

  • 디자인 생성, 재설계 또는 승인된 개념에 대한 충실도가 작업인 경우 frontend-app-builder를 사용하십시오.
  • 의미 있는 React/Next.js 컴포넌트 편집 후 react-best-practices를 사용하십시오.
  • 일반 디버깅에는 Image Gen을 호출하지 마십시오. 시각적 에셋을 생성하거나 수정해야 하거나, frontend-app-builder가 이미 컨셉-구현 충실도 루프를 구동하고 있는 경우에만 사용하십시오.

최종 응답

위의 QA 최종 응답 보고서 형식을 사용하십시오. 간결하게 유지하되, PR 리뷰어가 즉시 재실행하지 않고도 검증을 신뢰할 수 있을 만큼 충분한 구체적인 증거를 포함하십시오.

Browser가 없었고 Playwright가 사용된 경우, 인앱 네비게이션, 스크린샷, DOM 스냅샷, 콘솔 로그 및 상호작용 검증을 통해 더 나은 프론트엔드 개발 경험을 위해 사용자에게 Browser 플러그인 설치를 제안하는 것으로 마무리하십시오.

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

Geruyang/agent-skills-library

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

Geruyang/agent-skills-library

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

Geruyang/agent-skills-library

Use for new frontend applications, dashboards, games, creative websites, hero sections, and visually driven UI from scratch, or when the user explicitly asks for a redesign/restyle/modernization. Builds from clean, airy, high-taste, readable image-generated concept design with section-specific references, faithful implementation, and browser testing.

Geruyang/agent-skills-library

Design UI surfaces for browser games. Use when the user asks for HUDs, menus, overlays, responsive layouts, or visual direction that must protect the playfield.

Geruyang/agent-skills-library

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

Geruyang/agent-skills-library

Guide for building, configuring, and deploying microfrontends on Vercel. Use this skill when the user mentions microfrontends, multi-zones, splitting an app across teams, independent deployments, cross-app routing, incremental migration, composing multiple frontends under one domain, microfrontends.json, @vercel/microfrontends, the microfrontends local proxy, or path-based routing between Vercel projects. Also use when the user asks about shared layouts across projects, navigation between microfrontends, fallback environments, asset prefixes, or feature flag controlled routing.

Geruyang/agent-skills-library

Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.

Geruyang/agent-skills-library

Use when sizing Public Equity Investing positions, finding equity hedges, or building an integrated position-and-hedge risk plan from a listed-equity thesis. Do not use for thesis construction, standalone event underwriting, trade execution, personal investment advice, or credit-instrument risk.

Geruyang/agent-skills-library

Integrate data visualizations into React and Next.js applications. Use when the user needs chart components, UML-like or architecture diagram components, React integration patterns, Next.js client or server boundaries, hydration-safe rendering, lazy loading, framework-aware performance, scroll-driven visual stories, or export guidance.

Geruyang/agent-skills-library

shadcn/ui expert guidance — CLI, component installation, composition patterns, custom registries, theming, Tailwind CSS integration, and high-quality interface design. Use when initializing shadcn, adding components, composing product UI, building custom registries, configuring themes, or troubleshooting component issues.

Geruyang/agent-skills-library

v0 by Vercel expert guidance. Use when discussing AI code generation, generating UI components from prompts, v0 CLI usage, v0 SDK/API integration, or integrating v0 into development workflows with GitHub and Vercel deployment.

Geruyang/agent-skills-library

Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".

관련 스킬