@AGENTS.md
- Run
npm run buildto establish baseline - Read the relevant type definitions in
src/lib/types/before modifying store or components - Check
@web-kits/audiodocs at https://audio.raphaelsalaja.com/llms.txt for audio API questions
- Tailwind v4 strips raw
:root/.darkCSS — use@theme inline {}blocks - shadcn base-nova uses
@base-ui/react, NOT Radix — component APIs differ - react-resizable-panels uses
Panel/Group/Separator— NOTPanelGroup/PanelResizeHandle - Zustand temporal:
useStore.temporalisStoreApi, useuseZustandStore()wrapper - SVG hit areas: Always render interactive circles/elements LAST in SVG (topmost = receives events)
- Envelope overlay: Control points are HTML divs, NOT SVG circles (avoids
preserveAspectRatio="none"distortion) - GitHub Pages: All client-side fetches must prefix URLs with
NEXT_PUBLIC_BASE_PATH - Audio retrigger: Use throttle (not debounce) for live parameter updates during playback
- Next.js 16: Read docs in
node_modules/next/dist/docs/— APIs may differ from training data
- Always run
npm run buildand verify it passes - Test that spacebar still controls playback (not UI widgets)
- If modifying audio/playback code, verify stop button can always halt playback