Capturing decisions
Two ways in: plain text that stays proposed until reviewed, or reviewed records with verifiable evidence.
Plain text
Minutes, notes and messages can be sent as text with their source metadata. The extractor is deterministic and deliberately narrow: decisions it infers are stored as proposed, with the review reason inferred_decision, and appear in Needs review. Nothing inferred from prose becomes approved on its own.
Reviewed records
A reviewed record is a small JSON object with the decision, its topic, scope, status, validity and the evidence passage. The passage must appear verbatim in the source. When it cannot be verified, the record is demoted to proposed. Supersession needs an explicit supersedes identifier.
{
"external_id": "adr-7",
"kind": "decision",
"decision_type": "technology-standard",
"topic": "database",
"scope": "new-services",
"status": "approved",
"statement": "PostgreSQL is approved for new services.",
"value": "PostgreSQL",
"valid_from": "2026-02-01",
"confidence": 0.99,
"evidence": "The council approved PostgreSQL for new services."
}An admin or owner may store approved records directly. A member’s approved record is stored as a candidate and waits for review. Approving it applies any supersession it declares.
What OIDA never does
- Treat a newer message as a replacement. A contradicting assertion becomes an open conflict.
- Resolve a conflict by itself. An owner or admin picks the winner, or dismisses the conflict, with a reason.
- Store documents. Sources are referenced. Only the evidence passages are kept.
