The database
Commons uses PostgreSQL, a database that stores information in tables. It keeps records and relationships together, checks that references are valid, and supports reliable updates. Search vectors also live in PostgreSQL. The Objects table holds the core knowledge records. Other tables hold identities, original evidence, activity and supporting data:
Connections can link Objects, Users, Artifacts and Traces. Some tables also have direct ownership references, such as an Artifact’s owning Object.
An Object is an atomic unit of information
An Object is a small record about one thing: a task, decision, organisation or occurrence. It has a title, description, body and fields for its kind.
The formatted title, description and body must fit 500 tokens, including formatting. Keep long documents in Artifacts and link them to a concise Object. Oversized Objects are rejected rather than shortened automatically.
Users and Traces are separate records, not Object kinds. A Thread identifies a conversation; its messages and activity are stored separately in
trace_items.
Evidence and relationships
A Source describes a work. Its Artifacts keep the original text or files. A Note can record a finding and connect it to the Source it came from. Give each Connection a specific meaning, such as “derived from” or “depends on”, and explain why it exists. A saved claim is still a claim; keeping its evidence lets someone check it.Adapt it to your organisation
Every organisation has different work and vocabulary. Start with existing kinds and fields. A supplier can be an Entity; procurement work can be a Task with a project field. New kinds or fields may require changes to validation, migrations, search, tools and the UI. Update and test those together so agents and the app use the same structure. See Customisation and Overlays. The repository’sdocs/atomic-schema.md defines the exact tables and fields.