Veritas Overview
Veritas is the WarmHub component for reputation-weighted consensus. It takes opinions that different sources express about your assertions, discounts each opinion by how trustworthy its source has proven to be, and writes back a single consolidated readout — a Consensus assertion — that you can query like any other thing.
Veritas is installed as a component. Once installed, five shapes appear in your repo: Certainty, Support, Opposition, Consensus, and Oracle. The first three are inputs you write; Consensus is the output Veritas writes back; Oracle marks a source as fixed, maximum-trust ground truth.
A minimal example
Section titled “A minimal example”Veritas operates on an assertion you already have — a binary proposition such as Proposition/article-is-accurate. Write a Certainty about it, then read back the Consensus Veritas computes:
# A source wagers its reputation that the proposition is truewh assertion create --shape Certainty \ --name article-accuracy-research-team \ --about Proposition/article-is-accurate \ --data '{"belief":0.8,"disbelief":0.1,"uncertainty":0.1,"source":"Source/research-team"}' \ --repo myorg/myrepo
# Read Veritas's reputation-weighted readout for that assertionwh thing about Proposition/article-is-accurate --shape Consensus --repo myorg/myrepoThe sections below explain the opinion model and the other inputs (Support, Opposition); the routing table covers the full write and read paths.
The opinion model
Section titled “The opinion model”Every Veritas input and output is a subjective-logic opinion: a four-number tuple describing what a source believes about a binary proposition.
| Field | Meaning |
|---|---|
belief | Evidence that the proposition is true. |
disbelief | Evidence that the proposition is false. |
uncertainty | Residual ignorance — the portion of probability mass not yet committed to either side. |
alpha | Optional base rate (prior). Defaults to 0.5 when omitted. |
belief + disbelief + uncertainty must equal 1. A vacuous opinion is (0, 0, 1) — no evidence either way. A near-dogmatic opinion has uncertainty close to zero.
Trust is wagered, not declared
Section titled “Trust is wagered, not declared”A Certainty is the primitive bet. When a source writes a Certainty about an assertion, the source is wagering its reputation: if the Certainty turns out to disagree with other Certainties on the same assertion, the source’s reputation may move.
Reputation is itself an opinion — (belief, disbelief, uncertainty, alpha) describing how trustworthy a source has proven to be in a given scope. That scope depends on the kind of assertion the opinion is about — see Reputation and the CLI for the full details. Veritas adjusts this reputation as sources disagree and those disagreements resolve, and uses it to discount each incoming Certainty before consolidating. You can read a source’s reputation, or seed a new one, from the command line — see Reputation and the CLI.
The discount turns a raw Certainty into a weighted certainty — what the source believes, multiplied by how much you should trust the source. A confident statement from a high-reputation source counts for more than the same statement from an unknown source.
Support and opposition
Section titled “Support and opposition”Beyond direct certainties, Veritas also models relationships between assertions:
- A
Supportopinion says “belief in assertion A is evidence for assertion B.” - An
Oppositionopinion says “belief in assertion A is evidence against assertion B.”
Both shapes are written about an Arc of two assertions. The Arc’s from member is the antecedent and its to member is the consequent. Support and opposition pathways are independent — disbelief on a support pathway means “the support relationship does not hold,” not “the opposite relationship holds.” A Bond is symmetric and therefore cannot be the target of these directed predicates; Veritas blocks that input with guidance to use an Arc.
Veritas consolidates each pathway separately — multiple Support opinions about the same Arc are fused into one support readout, and multiple Opposition opinions are fused into an opposition readout. Each pathway’s consolidated opinion is reputation-weighted in the same way Certainties are.
Consensus
Section titled “Consensus”Consensus is the only shape Veritas writes back to your repo. It appears in two places:
- About a target assertion, consolidating that assertion’s native
Certaintyopinions — Veritas’s reputation-weighted answer to “what do we believe about this assertion?” - About an
Arc, whenSupportand/orOppositionopinions exist for that relation — consolidating each pathway’s opinions independently. (See Writing opinions — Reading the Consensus for the read path and a current limitation around distinguishing the support and opposition rows.)
Consensus is recomputed whenever a new, revised, or retracted input lands. For a fixed set of inputs and reputations, the readout is order-independent and deterministic.
When to use Veritas
Section titled “When to use Veritas”Veritas is the right fit when:
- Multiple sources express opinions about the same assertion and you need a single consolidated answer.
- You want sources to be trusted in proportion to their track record, not equally.
- Some assertions support or contradict others, and you want those relationships consolidated alongside your direct opinions (Veritas writes per-Arc
ConsensusforSupport/Oppositionopinions and propagates that relation evidence from the Arc’sfromassertion into thetoassertion’s ownConsensus). - The underlying claims are binary propositions — true/false statements suitable for subjective-logic opinions.
- You have a definitionally-trusted source — a CI gate, an adjudicator, a ground-truth record — whose opinions should anchor everyone else’s. Mark it as an oracle.
It is not the right fit when assertions describe magnitudes, categories, or other non-binary values — keep using regular assertions and aggregate them yourself.
Where the readout shows up
Section titled “Where the readout shows up”Consensus assertions are queryable through the same surfaces as any other assertion. wh thing about <target> returns them alongside the raw Certainties; pass --shape Consensus to filter to just the consolidated readouts. The SDK and HTTP API treat them identically.
Next steps
Section titled “Next steps”| Need | Page |
|---|---|
| Install Veritas and see what it creates in your repo | Install Veritas |
Write Certainty, Support, Opposition; read Consensus | Writing opinions |
| Read, seed, and understand source reputation | Reputation and the CLI |
| Pin a source to fixed, maximum trust | Oracles |