- This is a single-module Vite + React + TypeScript app.
- Most product code lives in
src/; deployment lives in.github/workflows/deploy.yml; release notes and process docs live indocs/. - Pushes to
maintrigger the live Firebase Hosting deploy, so prefer feature branches and PRs unless the user explicitly wants a livemainupdate.
- Start with
README.mdfor setup, scripts, and env vars. - Read
docs/deployment.mdanddocs/release-checklist.mdbefore changing CI or release behavior. - When touching the new layout/mobile flow, read
docs/ux-effects-plan.md. - When touching the React Flow renderer or alternate view modes, read
docs/react-flow-structured-view-plan.md. - When touching public attribution, Wikimedia references, or API-identification behavior, also check
README.mdandNOTICE.
- Read the existing code and docs before changing behavior.
- Prefer minimal, local changes over broad rewrites.
- If a task spans multiple files, the most likely hotspots are
src/App.tsx,src/GraphManager.ts,src/components/*,src/features/structured-view/*,src/hooks/useGraphState.ts, and matching tests undersrc/. - Search/pathfinding UX work most often lands in
src/components/SearchStatusOverlay.tsx,src/components/ConnectionStatusBar.tsx, and the path/queue orchestration insidesrc/App.tsx. - Do not commit generated local artifacts such as
.preview.*or.playwright-cli/. - If instructions or release steps seem stale, call that out explicitly in the handoff.
- For graph-layout changes, sanity-check first-load behavior with at least two root topics in
webmode before calling the UX done. - For Wikimedia/API wording, verify against official Wikimedia policy pages and keep the UI notice,
README.md, andNOTICEaligned.
- Install dependencies with
npm ci. - Core local checks are
npm run lint,npm run test, andnpm run build. - Use
npm run checkas the default pre-merge gate. - If UI, search, or mobile interaction behavior changes, also run
npm run smoke. - Local smoke runs need the same Playwright setup that CI uses:
npm install --no-save playwrightandnpx playwright install chromium.
- The requested behavior is implemented on the intended branch.
npm run checkpasses locally.npm run smokepasses when UI/search/mobile behavior changed.- Any required docs or workflow notes were updated alongside the code change.