SOMA docs
Reference

Non-goals

Explicit things we're not doing, and the reasons behind each.

From CLAUDE.md. These are not TODOs — they're decisions.

Architecture

  • No new top-level tables. New domain = new entities.type. Everything is the graph. See Design philosophy.
  • No Qdrant, Neo4j, or Redis on MVP. pgvector + Postgres + Inngest cover every access pattern we currently need. Adding another datastore multiplies ops cost and query surface for zero user-visible benefit.
  • No separate microservices. One deployable. Migration history explains the Vercel-only decision.
  • No GraphQL. Server actions (for writes) + TanStack Query over plain route handlers (for reads) cover every client need without a schema layer.

Design

  • No light mode on MVP. Dark-first. Warm canvas. One amber accent. Deferred until after public launch.
  • No second accent color. Differentiation comes from per-entity chip colors (--chip-*), not a second brand color.
  • No hard-coded colors / sizes / spacing in components. Tokens only. See packages/ui/src/tokens/*.css.

Code hygiene

  • No docstrings or trailing summaries in code. Comment only where the why is non-obvious (hidden constraints, subtle invariants, workarounds for specific bugs).
  • No splitting an entity-mutating op between app and tool. The tool owns the write. The app calls the tool.

Observability

  • No skipping Langfuse tracing on agent paths. Without traces, debugging is impossible. A PR that adds a new agent surface without startTrace(...) is incomplete.

Secrets

  • No committing secrets. Doppler is the single source of truth. Every process that needs secrets runs under doppler run -- <cmd> or uses the Doppler-synced Vercel env.