Skip to content

Architecture decision records

Each record captures one decision: the context that forced it, the options considered, and the consequences we accepted. Records are immutable once accepted; a changed decision gets a new record that amends or supersedes the old one. Proposals that precede decisions live in ../rfcs/.

ADR Title Status
0001 Python library with a sans-IO core Accepted
0002 One write path: commands through Workspace.commit Accepted
0003 Artifact types are Pydantic subclasses with library-defined patch kinds Accepted
0004 Optimistic concurrency and append-only revisions Accepted
0005 One durable event log per workspace Accepted, amended by 0021
0006 Agent integration as a pydantic-ai capability Accepted, amended by 0017
0007 Live output is owned by the caller, not the log Accepted
0008 Agent perception: change notes, fresh rendering, steering Accepted
0009 Write policies and non-blocking proposals Accepted
0010 Pausing with pydantic-ai deferred tools Accepted
0011 Workspace-scoped artifacts and tenant-scoped handles Accepted
0012 Surfaces: WebSocket thread protocol, REST commands, MCP Accepted
0013 A library with adapters and a reference implementation Accepted
0014 Trunk-based development with RFCs, ADRs and evergreen docs Accepted
0015 Quality gates Accepted
0016 MIT license Accepted
0017 Application toolsets register on the agent; the capability emits capability events Accepted
0018 Core's host contract: needs, commit and record Accepted
0019 One storage protocol behind workspace handles Accepted
0020 Running agents in threads Accepted
0021 SQL storage with one dialect-neutral implementation Accepted
0022 Surfaces over one command handler Accepted
0023 The documentation site Accepted, amended by 0026
0024 The reference implementation as a workspace member Accepted
0025 Distributed as artifactr-ai, imported as artifactr Accepted
0026 Publishing the documentation site from main Accepted

To add a record, copy template.md to the next number and add a row above.