본문으로 건너뛰기
cccskills
무료GitHub에 공개

browser-verification

Drive Chrome via the claude-in-chrome MCP to exercise plan.md::Verify steps for a shipped feature. Loads deferred MCP tool schemas, asserts console/network cleanliness, records a GIF for the PR. Used by the browser-verifier agent.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Browser Verification Skill

Version: 1.0 | Working Directory: repo root

Execute the Verify section of docs/features/<slug>/plan.md against http://localhost:3000 (frontend) talking to http://localhost:8000 (backend). Fail loudly on console errors or API 4xx/5xx. Record a GIF artifact.

Prerequisites (confirm before starting)

  1. User has uvicorn running on :8000 (backend) — confirm with curl -s http://localhost:8000/health | grep ok.
  2. User has npm run dev running on :3000 (frontend) — confirm with curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 returning 200.
  3. If either is down, stop and ask the user to start it. Do not try to start dev servers from the agent.

MCP Tool Schema Loading (MANDATORY)

mcp__claude-in-chrome__* tool schemas are deferred — calling them without loading fails with InputValidationError. Load each tool before first use:

ToolSearch query: "select:mcp__claude-in-chrome__tabs_context_mcp,mcp__claude-in-chrome__tabs_create_mcp,mcp__claude-in-chrome__navigate,mcp__claude-in-chrome__find,mcp__claude-in-chrome__form_input,mcp__claude-in-chrome__read_page,mcp__claude-in-chrome__get_page_text,mcp__claude-in-chrome__read_console_messages,mcp__claude-in-chrome__read_network_requests,mcp__claude-in-chrome__gif_creator,mcp__claude-in-chrome__javascript_tool"

Always start a session with tabs_context_mcp — never reuse a tab ID from a prior session.

Canonical Flow

  1. Load tool schemas (ToolSearch select:...)
  2. tabs_context_mcp → see what's open; if the user doesn't explicitly want to reuse a tab, call tabs_create_mcp for a fresh tab
  3. gif_creator — start recording with a name like <slug>_verify.gif, aiming at the new tab
  4. navigate(http://localhost:3000<path>) to the start of the flow
  5. read_page to confirm the page loaded; fail fast if the expected container isn't present
  6. For each step in plan.md::Verify:
    • find(selector) to locate the element
    • form_input to type values or click via computer / javascript_tool for non-form interactions
    • read_console_messages with a pattern filter to check for level: "error"
    • read_network_requests filtered to origin http://localhost:8000 — any status >= 400 is a failure
  7. gif_creator — stop recording; save to docs/features/<slug>/verify.gif
  8. Report PASSED or FAILED with the transcript

Assertion Rules

SignalResult
Any console.error during the flowFAILED
Any network 4xx or 5xx to NEXT_PUBLIC_API_URL originFAILED
Expected text/selector missing after navigateFAILED
console.warnLogged, non-blocking
3xx redirects (login gating)Expected when the plan says "redirects to /admin/login"

Dialog / Alert Avoidance

Do not trigger alert(), confirm(), prompt(), or browser modals. They block all further MCP events and freeze the session. If the plan's Verify section includes a confirm-to-delete flow, warn and use javascript_tool to pre-accept the dialog via window.confirm = () => true before the click.

Output Format

VERIFY: PASSED
slug: <slug>
artifact: docs/features/<slug>/verify.gif
steps:
  - navigate /products/shirt → 200
  - Add to cart clicked → cart count = 1
  - /cart loaded → subtotal = $10.00
  - Checkout submitted → redirected to /thank-you/<id>
console: clean
network: 4 requests, all 2xx

or

VERIFY: FAILED
slug: <slug>
artifact: docs/features/<slug>/verify.gif
failure: console.error at step 3 — "Cannot read properties of undefined (reading 'stock')"
transcript:
  - navigate /products/shirt → 200
  - Add to cart clicked → console.error ← FAIL

Rabbit-Hole Guard

Stop after 2–3 failed attempts at the same step and return FAILED. Do not explore unrelated pages to debug. Don't refresh/retry loops — report and exit.

Exemplar Plan Verify Sections

The browser-verifier should interpret plan Verify sections that read like:

## Verify
1. Open http://localhost:3000 — product grid shows at least one card
2. Click a product card — detail page shows name, price, "Add to cart" button
3. Click "Add to cart" — header cart count increments
4. Navigate to /cart — line item shows with correct quantity
5. Navigate to /checkout, fill email + shipping, submit — redirected to /thank-you/<uuid>

Translate each numbered step into the MCP call sequence described in Canonical Flow.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Supabase Postgres + Storage + Auth operations from FastAPI — service-role client, RLS-aware queries, additive SQL migrations under backend/db/migrations, the create_order RPC, and the product-images bucket. Use when adding tables/columns, writing queries, calling RPCs, or working with Storage.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

shanraisshan/learning-x-claude22026년 5월 7일 업데이트

Build FastAPI endpoints in the layered router → service → Supabase pattern, with Pydantic v2 schemas, JWT/admin gating, and consistent HTTPException-based domain errors. Use when adding/modifying any endpoint under backend/.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

shanraisshan/learning-x-claude22026년 5월 7일 업데이트

pytest + httpx + TestClient patterns for the FastAPI backend. Dependency overrides for auth, FakeSupabase mocking, HTTPException assertions. Use when writing or reviewing backend/tests/test_*.py.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

shanraisshan/learning-x-claude22026년 5월 7일 업데이트

Pre-PR code review checklist for this repo. Plan alignment, security gates, layering, dead code, API-surface completeness. Used by the code-reviewer agent.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

shanraisshan/learning-x-claude22026년 5월 7일 업데이트

Integrate with the FastAPI backend through the typed wrapper in frontend/lib/api.ts, attach Supabase JWTs for admin calls, and handle errors via ApiError. Use when adding/modifying API calls or wiring auth.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

shanraisshan/learning-x-claude22026년 5월 7일 업데이트

Build pages and components in the Next.js 15 App Router (RSC by default, "use client" only when needed), Tailwind for styling, typed props, and the existing CartProvider for cart state. Use when creating or modifying pages, layouts, components, or forms in frontend/.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

shanraisshan/learning-x-claude22026년 5월 7일 업데이트

shanraisshan의 스킬 모두 보기

이 스킬의 문제 신고