Records of agent runs mix facts of very different strength. A test suite that passed is not the same as an agent that said “done”, and an edge copied from a spawn record is not the same as an edge guessed from timestamps. OCP keeps the difference in the data: every edge, signal and inferred label carries an evidence tier, and an outcome may carry one too.

The tiers

Two enums use these words. Inferred structure (edges, origins, roles, phases, model ids, artifact kinds) uses verified, reported or heuristic. Judgements (signals, preferences, task labels) can also be asserted, and so can an outcome’s evidence, which is open vocabulary with these four words recommended. See Evidence tiers.

Rules of thumb for producers

  • Missing evidence is asserted. A reader treats an outcome without evidence as the weakest tier, so write the tier whenever you know it.
  • Never upgrade a tier without new mechanical evidence. If a reviewer said “accept”, that is reported, however trustworthy the reviewer is. If you then run the tests, write a new signal with verified.
  • Name what produced the verdict. outcome.via names the gate or review node, and receipt holds a short label such as tests pass 42/42.
  • Prefer the harness’s own records. A parent id the harness wrote is verified; the same link rebuilt from timestamps is heuristic.

How consumers use tiers

A consumer weighs evidence by tier. A learner might trust a verified success more than a reported one and discount asserted outcomes heavily; a dashboard might show only verified results by default. OCP does not fix the weights, only the words, so that every reader can make the call with the same information. Cost has its own version of this: cost.basis says whether token counts were measured for that attempt or allocated from a coarser total. See Cost.

Privacy