An easy-to-host PDS on the ATProtocol, MacOS. Grandma-approved.

docs: add root CLAUDE.md with project context for MM-64

Establishes project-wide context documentation covering the Cargo
workspace structure (MM-63) and the Nix flake + devenv dev shell
(MM-64), including dev environment contracts, commands, and conventions.

authored by malpercio.dev and committed by

Tangled d41bb400 d85f81ee

+39
+39
CLAUDE.md
··· 1 + # ezpds 2 + 3 + Last verified: 2026-03-07 4 + 5 + ## Tech Stack 6 + - Language: Rust (stable channel via rust-toolchain.toml) 7 + - Build: Cargo workspace (resolver v2) 8 + - Dev Environment: Nix flake + devenv (direnv integration via .envrc) 9 + - Task Runner: just 10 + 11 + ## Commands 12 + - `nix develop --impure --accept-flake-config` - Enter dev shell (flags required; devenv needs --impure for CWD detection) 13 + - `cargo build` - Build all crates 14 + - `cargo test` - Run all tests 15 + - `cargo clippy` - Lint 16 + - `cargo fmt --check` - Check formatting 17 + 18 + ## Dev Environment 19 + - Managed entirely by Nix flake + devenv; do not install tools globally 20 + - direnv auto-activates via `.envrc` (`use flake`) 21 + - Rust toolchain pinned in `rust-toolchain.toml` (stable, with rustfmt + clippy + rust-analyzer) 22 + - Shell provides: just, cargo-audit, sqlite, pkg-config 23 + - `LIBSQLITE3_SYS_USE_PKG_CONFIG=1` is set automatically by devenv 24 + 25 + ## Project Structure 26 + - `crates/relay/` - Web relay (axum-based) 27 + - `crates/repo-engine/` - ATProto repo engine 28 + - `crates/crypto/` - Cryptographic operations 29 + - `crates/common/` - Shared types and utilities 30 + - `docs/` - Specs, design plans, implementation plans 31 + 32 + ## Conventions 33 + - Workspace-level dependency versions in root Cargo.toml; crates use `{ workspace = true }` 34 + - All crates share version (0.1.0) and edition (2021) via workspace.package 35 + - publish = false (not intended for crates.io) 36 + 37 + ## Boundaries 38 + - Never edit: `flake.lock` by hand (managed by `nix flake update`) 39 + - Never edit: `devenv.local.nix` is gitignored for local overrides only