Foundation · V1 REVIEW
CONTRACT REVIEW · TEST_ONLYReview-candidate contract and local fixture evidence only · no distributed SDK, operational API, publisher parity, or decision authority
Decision records and their relationships
How DecisionCase, nine node kinds, and direction-limited edges create inspectable decision lineage.
The nine node kinds in v1
- SignalRef — opaque HARBINGER reference
- Option — human-reviewable alternative
- Assumption — explicit proposition
- EvidenceRequest — open verification question
- Task — review-work record
- Dissent — human counter-position
- Scenario — review scenario with a time horizon
- Decision — human-recorded option selection
- ReviewTrigger — condition that reopens review
Edges permit only defined directions
INFORMS, SUPPORTS, CHALLENGES, RAISES, ASSIGNS, FULFILLS, DISSENTS_FROM, MODELS, SELECTS, TRIGGERS_REVIEW, and SUPERSEDES restrict their source and target kinds. Unknown relationships and self-edges fail.
The same snapshot must produce the same digest
The review profile freezes serialization and digest behavior under `POLYA-CANONICAL-JSON-UTF8-SHA256-V1`. Unknown fields, Unicode normalization failures, cyclic lineage, and invalid time ranges fail closed.
import {
assertDecisionGraphV1,
digestDecisionGraphV1
} from "@polya/contract-ontology";
const graph = assertDecisionGraphV1(input);
const digest = digestDecisionGraphV1(graph);