ワンクリックで
testing-pd-hunter-frontend
Test the PD-Hunter Next.js frontend end-to-end. Use when verifying UI changes, routing, or data display.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Test the PD-Hunter Next.js frontend end-to-end. Use when verifying UI changes, routing, or data display.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | testing-pd-hunter-frontend |
| description | Test the PD-Hunter Next.js frontend end-to-end. Use when verifying UI changes, routing, or data display. |
enriched_bounties.json present at repo root (used by api-server.ts as fallback)cd frontend
npm install
npm run build # generates static export in out/
Use static build, NOT dev server for testing routes with output: "export". The dev server has strict generateStaticParams enforcement that may differ from production behavior.
npm install -g serve
serve frontend/out -l 3002 --no-clipboard
# WITHOUT -s flag (SPA mode breaks static routing)
Clean URLs work automatically with serve (e.g., /bounty/commaai-flash--42 maps to commaai-flash--42.html).
Do NOT use serve -s — it enables SPA fallback that serves index.html for all routes, breaking static page routing.
Do NOT use Python http.server — it doesn't handle clean URLs (requires .html extension).
/bounty/{owner}-{repo}--{number}bountySlug() function in frontend/src/lib/utils.ts generates slugs/bounty/2281) resolve directly to the bounty/bounty/42) show a disambiguation page (BountyDisambiguation.tsx)./data/enriched_bounties.json/data/enriched_bounties.json# Lint and typecheck
cd frontend && npm run lint && npx tsc --noEmit
# Check build generates expected page count
npm run build 2>&1 | grep "Generating static pages"
# Verify no duplicate static paths
ls frontend/out/bounty/ | sort | uniq -d # should be empty
# Verify collision files exist separately
ls frontend/out/bounty/ | grep -E '(flash--42|website--42)'
npm run dev) might fail with "missing param in generateStaticParams" for dynamically added routes — use static build insteadserve package requires explicit --no-clipboard on headless environmentsNone — no authentication required for local testing.