Skip to Content
ArchitectureADR Index

ADR Index

Architecture Decision Records live in docs/adrs/ in the monorepo. Each one captures a single durable decision — the context, the options considered, and why the chosen shape won — because the codebase’s invariants (one authored truth per money fact, deterministic ids, fail-closed resolution) are only defensible if the reasoning behind them survives the people who made them. They are the authoritative decision history: these docs summarize them, but when a page and an ADR disagree, the ADR wins, and CLAUDE.md requires an ADR before any schema change that contradicts DATA-MODEL.md.

Files follow a simple convention, and prose cites them by full filename:

docs/adrs/NNNN-kebab-case-title.md # zero-padded, append-only # in code comments / PR descriptions / docs: # See docs/adrs/0033-tenant-resolution-and-multi-tenant-selection-security-model.md

Numbers are assigned append-only by whoever lands the ADR; because several branches have landed ADRs concurrently, a few numbers collided (see the callout below) — which is exactly why citations should use the full filename. Filenames below are relative to docs/adrs/.

Numbering collisions. ADR numbers 0042 and 0043 were each assigned twice (two files share each number), and 0045/0047 are re-numbered duplicates of the 0042/0043 content (“convertible-instrument conversion events” and “PCAP allocation authority gates” respectively). When citing, use the full filename, not just the number.

#TitleFile
0001Canonical Record Contract0001-canonical-record-contract.md
0002Runtime / Persistence / Trace Separation0002-runtime-persistence-trace-separation.md
0003Source-to-Ledger Pipeline Boundaries0003-source-to-ledger-pipeline-boundaries.md
0004Bank Follow-on Actions (design-only)0004-bank-follow-on-actions.md
0005Fund accounting on ASC 946 (fair value) + ASC 820 (hierarchy)0005-asc-946-820-fair-value-accounting.md
0006Deterministic content-addressed IDs vs UUIDv7 surrogates0006-deterministic-vs-surrogate-ids.md
0007Accounting-entity / fund / book separation + identifier policy0007-accounting-entity-fund-and-identifier-policy.md
0008Partners’-capital GL accounts + composed-close ledger identity (Acceptance Lab)0008-acceptance-lab-partner-capital-gl-and-composed-close-identity.md
0009Carta-faithful fund accounting: GL vs partners’-capital subledger0009-carta-faithful-fund-accounting-gl-vs-partners-capital-subledger.md
0010PCAP per-LP component balances are a projection layer, not a second ledger0010-pcap-component-balance-projection-layer.md
0011Venture fund economics: management fee, carry waterfall, expense & transfer rules0011-venture-waterfall-fee-and-carry-economics.md
0012Cloudflare Durable Object hosted demo persistence0012-cloudflare-durable-object-hosted-demo-persistence.md
0013Locked-beginning roll-forward anchor (live per-LP PCAP)0013-locked-beginning-roll-forward-anchor.md
0014Ownership-snapshot allocation basis for unrealized mark allocations0014-ownership-snapshot-allocation-basis.md
0015Permissioned sharing and LP portal read models0015-permissioned-sharing-and-lp-portal-read-models.md
0016Unified audit events and platform analytics RLS0016-unified-audit-events-and-platform-analytics-rls.md
0017Single-source GL: partner-capital facts live on the dimensioned GL0017-single-source-gl-partner-capital.md
0018Entity routing: typed money-bearing edges + fail-closed resolver0018-entity-routing-and-fund-structure-graph.md
0019Economic terms: the payload IS the IR0019-economic-terms-payload-as-ir.md
0020Relationship layer (companies & persons) + schema namespacing convention0020-relationship-layer-and-schema-namespacing.md
0021KPI metric domain (metric) and the collection loop (collection)0021-kpi-metric-domain-and-collection-loop.md
0022Cross-tenant sharing / A2b portco plane (sharing)0022-cross-tenant-sharing-and-a2b-portco-plane.md
0023Decoupled tenancy: WorkOS-org ⊥ tenant, operator pattern0023-decoupled-tenancy-workos-org-tenant-and-the-operator-pattern.md
0024Portal login gate + login-app deferral0024-portal-login-gate.md
0025Complete the namespace: migrate public tables into schemas (pre-GA capstone)0025-complete-the-namespace-existing-public-tables-pre-ga.md
0026In-tenant authorization: Postgres-authoritative, identity-bound, transaction-bound (P0)0026-in-tenant-authorization-capabilities-roles-presets.md
0027Authorization platform: versioned roles, ReBAC scopes, principals, obligations0027-authorization-platform-roles-scopes-principals-obligations.md
0028Family-scoped account report taxonomy for role-less charts0028-account-report-taxonomy.md
0029Source-document malware-scan engine and event-driven scan pipeline0029-source-document-malware-scan-engine.md
0030Source-document per-tenant encryption and crypto-shredding (V2)0030-source-document-per-tenant-encryption-and-crypto-shred.md
0031Source-document upload browser→API transport (same-origin Cloudflare forward)0031-source-document-upload-browser-api-transport.md
0032Role mutation is a gated write of a pinned role version0032-role-mutation-gated-writes-of-pinned-versions.md
0033Tenant resolution & the multi-tenant selection security model0033-tenant-resolution-and-multi-tenant-selection-security-model.md
0034All-subledger per-LP capital (amends ADR-0017)0034-all-subledger-per-lp-capital.md
0035GP/Manager-borne expense reimbursement via ManCo intercompany0035-gp-manager-borne-expense-reimbursement.md
0036Reporting dimension display is configuration, decoupled from posting policy0036-reporting-dimension-display-config-decoupled-from-posting-policy.md
0037Generic reusable approval (maker-checker) system0037-generic-approval-maker-checker-system.md
0038Global reference organization identity for issuers0038-global-reference-organization-identity.md
0039CRM interaction, task, and activity privacy0039-crm-interaction-task-privacy.md
0040Capital-call funding receipts are confirmed-side cash attribution0040-capital-call-funding-receipts-confirmed-cash-attribution.md
0041Effect-native backend execution, failure, and observability0041-effect-native-backend-execution-failure-and-observability.md
0042 (a)Convertible-instrument conversion events (SAFE / note → equity)0042-convertible-instrument-conversion-events.md
0042 (b)Observable HTTP API failure boundary and response contract0042-observable-http-api-failure-boundary.md
0043 (a)Account identity, canonical posting roles, and effective-dated chart versions0043-account-identity-canonical-roles-and-chart-versions.md
0043 (b)PCAP allocation authority gates for fair-value marks0043-pcap-allocation-authority-gates.md
0044Tenant, organization, WorkOS bootstrap, and first-admin access0044-tenant-organization-workos-bootstrap-and-first-admin.md
0045Convertible-instrument conversion events — duplicate of 0042 (a)0045-convertible-instrument-conversion-events.md
0046Deferred-recognition schedules0046-deferred-recognition-schedules.md
0047PCAP allocation authority gates — duplicate of 0043 (b)0047-pcap-allocation-authority-gates.md
0048Config-versioning kernel: one envelope, composed domain detail tables, one config schema0048-config-versioning-kernel.md
0049Durable-work execution kernel and typed workflow boundaries0049-durable-work-execution-kernel.md

Reading clusters

Each cluster links to the section of these docs that explains the implemented result:

For the recurring patterns these decisions add up to, see the design principles.

Last updated on