# devist worker rules — website
> Project-specific rules layered on top of the global
> `~/.devist/worker/rules.md`. Both inject verbatim into the Claude
> advice prompt.
## Domain
This is the read-only dashboard for `worker_events`. Critical
constraints:
- Never write to columns other than `acked_at` from the browser.
- Never embed the service-role key — anon key only.
- All client → server writes go through Supabase row-level policies.
## Tech-specific
- React 18 + Vite + TS + Tailwind v4 (CSS-first, no `tailwind.config.js`).
- shadcn/ui only as needed; add via `pnpm dlx shadcn@latest add <name>`.
- No global state library. Local `useState` + page-level fetches.
- No server-state library (TanStack Query/SWR) without explicit ask.
- Biome handles lint+format; match existing import order.
## Tone
- Respond in Korean.
- Be concise. State decisions, don't justify them.
## Skip
- Don't suggest unit tests for prototype-level UI; manual smoke is the
policy until it isn't.
- Don't suggest CSS-in-JS or styled-components — Tailwind only.
- Don't suggest React Query / SWR / Zustand — current scale doesn't need them.
- Don't comment on shadcn/ui primitive files (`src/components/ui/`) —
they're regenerated by the CLI.