원클릭으로
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.