A minimalistic opinionated Bluesky web client

docs: capture data-layer rebuild design (CONTEXT.md, ADRs 0001-0015, plans 0001-0002) master

Output of a /grill-with-docs session pinning the architectural decisions for ripping out the Mastodon-API-shaped adapter (src/utils/atproto-adapter.ts and its v1/v2 surface) and rebuilding Bluepy's data layer ATProto-native. Phase (b) is big-bang via an AFK coding agent; this design is the spec. - CONTEXT.md: glossary — At-URI, Permalink, PDS, AppView, Active AppView, Bluesky AppView, plus a dialogue showing how they relate. - ADRs 0001-0011: foundational decisions — at-URI URL form, @atproto/api over atcute (library swap deferred), domain verbs + hooks + lexicon types, three-client dispatch (pds/active-appview/bsky-appview), mutations with selective optimistic, Zustand for UI state, hook-level loading (no Suspense), flat pagination shape, cache-key factory + account scoping, session lifecycle (OAuth lib owns OAuth, Zustand owns UI), render pipeline (facet rendering + sanitizer outside data layer). - ADRs 0012-0015: compose-specific — intent-keyed multi-draft, upload-on-submit (because ATProto has no deleteBlob), all-or-nothing submit pipeline with warn-on-aux-fail for threadgate/postgate, author picker for multi-account users. - docs/plan/0001-data-layer-rebuild.md: Phase (b) spec — file structure, per-module signatures, provider tree, consumer migration patterns, acceptance criteria (incl. zero new `as any` in touched code). - docs/plan/0002-compose-flow.md: compose subsystem spec — state model, facet detection, mentions autocomplete, link card via cardyb, submit pipeline, video upload via service auth, acceptance criteria.