Skip to main content

Architecture decision records

This directory records stable architectural decisions for the Bitrate monorepo. ADRs explain why the repository uses a pattern; CLAUDE.md and .claude/rules/ explain how to apply it day to day.

ADRDecision
0001Turborepo + pnpm multi-runtime monorepo
0002Feature-Sliced Design for web-player
0003Next.js App Router
0004OpenAPI-first client and TanStack Query
0005Zustand target for client state
0006Shared UI package, tokens, Base UI, shadcn methodology
0007React Hook Form + Zod
0008Repository-owned AI agent layer
0009shadcn produces package-owned compositions
0010App Router files stay thin; views own screens
0011Retire apps/web in favor of apps/web-player
0012Ticket-driven agent commands, GitHub Projects, and Obsidian sync
0013apps/docs vs .claude — ownership boundary and drift detection
0014What in obsidian/ is committed vs local-only
0015graphify and the obsidian/ vault are decoupled
0016Retire the obsidian/ ticket/board mirror for live GitHub queries
0017Remove the obsidian/ working-notes vault
0018Consolidate .agents//AGENTS.md into .claude/ only
0019Remove the graphify:obsidian convenience wrapper
0020Single-file CMAF + Range index + MSE for audio playback
0020Expand /sp-sync-docs to root onboarding docs and .claude/ self-consistency
0021Default to agent dispatch across all commands and ordinary tasks
0022App-scoped developer agents, unattended /sp-auto pipeline, retire sp-ticket
0023Hand-write the design tokens as CSS; retire the token generator
0024Rebrand the project from spotify-clone to Bitrate
0025Remove the Kottster admin panel
0026pnpm 11; pnpm-workspace.yaml is the only home for pnpm settings

Create new records from template.md. Accepted decisions are changed by a superseding ADR rather than silently rewriting history.