CoDNA Request access
Contents

Docs Decisions

Architecture decision records

One record per decision that would be expensive to reverse. Each states what was chosen, what was rejected, and what it costs — the rejected options matter as much as the choice, because the next person to question a decision deserves to know it was already considered.

# Decision Status
0001 Record architecture decisions Accepted
0002 Single org per deployment Accepted
0003 Go, shipped as a single static binary Accepted
0004 Three spaces: raw, wiki, output Accepted
0005 Postgres is truth, Typesense is derived Accepted
0006 Inline markdown links with relative .md hrefs Accepted
0007 QuickJS on wazero for user automations Accepted
0008 Tombstone deletion with pending link decisions Accepted
0009 Transactional outbox for all derived state Accepted
0010 CoDNA does not call an LLM Accepted
0011 OCI containers, Podman first, three deployment strategies Accepted
0012 MCP authenticates via OAuth against your IdP Accepted
0013 No administrators; management is a token, not a person Accepted
0014 Standing folder shares Accepted
0015 Images and files belong to a page Accepted
0016 An export is imported into raw, and a newer export adds versions Accepted
0017 Recordings become raw transcripts, through a transcription service Accepted
0018 Meetings are held through a meetings service and recorded one person to a track Accepted
0019 Diagrams are Mermaid text, drawn by the web UI Accepted
0020 Anyone who can edit a page can share it Accepted
0021 An agent is a member of an instance, and knows what is shared with it Accepted
0022 A skill is a page in the wiki's skills folder, and agents are told which they can read Accepted

Format: Context · Decision · Consequences · Alternatives rejected.