本文へ移動
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.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

このスキルの問題を報告する