Reputation and the CLI
Veritas weights every opinion by how trustworthy its source has proven to be. That trustworthiness is itself a subjective-logic opinion — a source’s reputation — and this page covers what reputation is, what moves it, and how to read or seed it with the wh component exec veritas commands.
What reputation is
Section titled “What reputation is”A reputation is a subjective-logic opinion (belief, disbelief, uncertainty, alpha) describing how much a source’s opinions should count. Veritas holds one reputation per source per scope (covered below), and uses it to discount each incoming Certainty before consolidating:
- A source’s
beliefreputation scales its opinion. A weighted certainty is what the source believes multiplied by the source’s reputation belief, so a high-reputation source counts for close to full weight and an unknown source counts for less. - Discounting is one-directional. A source you disbelieve does not get its opinion inverted — its belief and disbelief both collapse toward uncertainty, so a distrusted source contributes close to nothing rather than the opposite of what it said.
The default reputation
Section titled “The default reputation”A source Veritas has not weighed before starts at (0.5, 0, 0.5) — half belief, half uncertainty, no disbelief. This is moderate provisional trust, not a blank slate: a brand-new source’s opinions already carry meaningful weight, and that weight shifts as the source agrees or disagrees with others.
What moves reputation
Section titled “What moves reputation”Reputation changes under exactly one condition: disagreement that later resolves.
- A lone opinion moves nothing. A source whose
Certaintyis the only one on a target has nothing to disagree with, so its reputation is unchanged. - Agreement moves nothing. When sources agree, no reputation shifts.
- Only when sources disagree on the same target does Veritas adjust the disagreeing sources’ reputations as the consolidated readout settles — a source repeatedly on the wrong side of resolved disagreements loses standing, and one repeatedly on the right side gains it.
Volume is not evidence: writing the same opinion many times changes nothing. Disagreement is the only signal.
Reputation is held per source and per scope, so a source’s track record on one kind of assertion does not automatically carry to another. Scope is derived, never set by hand:
- For a
Certainty, the scope is the shape name of the target assertion. Opinions about aWeatherClaimassertion build reputation under scopeWeatherClaim; opinions about aPriceClaimbuild a separate reputation under scopePriceClaim. - For
SupportandOpposition, the scope is the ordered shape pair of the two assertions in thePair, writtensupport-opposition:<FirstShape>-><SecondShape>.
To partition reputation by domain, model each domain as its own assertion shape — the shape name is what scopes the reputation. When you read or seed a reputation from the CLI, you pass this derived string as --scope.
Reading reputation from the CLI
Section titled “Reading reputation from the CLI”Veritas exposes its reputation store through the component CLI. Each command runs against the repo where Veritas is installed:
# List every source reputation in the repo (cursor-paginated)wh component exec veritas list-reputations --repo [your-org]/[your-repo]
# Filter to one scopewh component exec veritas list-reputations --scope WeatherClaim --repo [your-org]/[your-repo]
# Read one source's reputation in a given scopewh component exec veritas get-reputation \ --wref Source/research-team \ --scope WeatherClaim \ --repo [your-org]/[your-repo]get-reputation requires both --wref (the source thing) and --scope. A source with no recorded reputation in that scope returns the (0.5, 0, 0.5) default rather than an error.
list-reputations is the calibration view: it returns the sources that have a recorded reputation — the ones you have seeded or whose reputation has moved under disagreement — and where each one sits. Sources still at the default and oracle sources have no stored row, so they do not appear in the list. It accepts --scope to filter, --limit (1–500, default 50), and --cursor to page. Add --help after any method to see its arguments.
Seeding a reputation
Section titled “Seeding a reputation”When you already know how much to trust a source, seed its reputation instead of waiting for disagreement to calibrate it:
wh component exec veritas upsert-reputation \ --wref Source/research-team \ --scope WeatherClaim \ --belief 0.7 --disbelief 0 --uncertainty 0.3 \ --repo [your-org]/[your-repo]belief, disbelief, and uncertainty must each be in [0, 1] and sum to 1. upsert-reputation requires repo:write; the read commands require only repo:read.
A few rules keep a seed honest:
- Seed uncertainty, not certainty. Put real mass on
uncertaintyunless you have strong evidence. A seed of(0.9, 0, 0.1)tells Veritas you are nearly sure of this source — only use it when you are. - A seed still moves. Seeding is a starting point, not a lock: a seeded reputation keeps adjusting under disagreement exactly like any other. If you need a source whose trust never changes, that is an oracle, not a seed.
- Values are capped. Reputation belief is evidence-capped, so an extreme seed is clamped: upsert
(1, 0, 0)andget-reputationreads it back capped just short of total certainty. There is no fully certain reputation. - Scope to where you have evidence. A seed applies to one scope. Trusting a source on
WeatherClaimsays nothing about itsPriceClaimopinions — seed each scope you have grounds for.
Related
Section titled “Related”- Writing opinions — author Certainty, Support, Opposition; read Consensus.
- Oracles — fixed max-trust sources that never recalibrate.
- Overview — the conceptual model behind the shapes.
Hit a problem or have a question? Get in touch.