diff --git a/CLAUDE.md b/CLAUDE.md index 985c8f7a..cba0979d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,3 +1,25 @@ +## What eventsourcing owns + +eventsourcing is a set of event sourcing libraries for TypeScript, built on Effect and published to npm as the `@codeforbreakfast/eventsourcing-*` packages. An agent here decides and changes: + +- the event store interface and its in-memory, filesystem and PostgreSQL implementations +- the write side and read side: aggregates, commands and projections +- the protocol, the transport contracts and their in-memory and WebSocket implementations, and the server that puts them together +- the testing contracts that any store or transport implementation can run against itself +- `bun-test-effect` and `eslint-effect`, the Effect testing and lint helpers published from this repo +- the todo-app example and the docs under `docs/` +- versioning, changesets and releases of every package above + +## What it does not own + +- **Effect itself** belongs to the upstream Effect project. An agent here adapts to Effect's API and reports bugs upstream, and does not patch or fork it. +- **Bun, Turbo, PostgreSQL and the other tools** belong to their upstream projects. +- **An application built on these libraries** belongs to whoever builds it. That covers its domain events, aggregates, projections and read models. +- **A deployment** belongs to whoever runs it. That covers the PostgreSQL database, its migrations as applied, the hosting, the credentials, and how a WebSocket server is exposed to a network. +- **The events in a user's store** belong to that user. An agent here never needs real event data, and invents any example it uses. + +An agent may decline an ask that falls outside this remit, and should say which owner above the ask belongs to. + # 🚨 CRITICAL GIT WORKTREE WORKFLOW - DO THIS FIRST! 🚨 **BEFORE ANY CODE CHANGES - USE WORKTREES:**