---
title: "PÓLYA v1 data contract"
description: "Review the candidate package, schemas, primary functions, and exact external-reference binding rules."
updated: "30 August 2026"
availability: "CONTRACT REVIEW · TEST_ONLY"
candidate_route: "/docs/polya/reference/contract"
---

# PÓLYA v1 data contract

Review the candidate package, schemas, primary functions, and exact external-reference binding rules.

**CONTRACT REVIEW · TEST_ONLY:** Review-candidate contract and local fixture evidence only · no distributed SDK, operational API, publisher parity, or decision authority

## Review package and schemas

- package: `@polya/contract-ontology`
- version: `1.0.0-review.1`
- graph: `polya.decision-graph.v1`
- case ref: `polya.decision-case-ref.v1`
- HARBINGER ref: `harbinger.signal-brief-ref.v1`
- RAIFFA ref: `raiffa.eligibility-gate-ref.v1`

> **STATUS:** private · contract review · local TEST_ONLY until publisher parity opens

## Primary validation functions

Verification checks shape, trust, signature, lifetime, tenant, scope, and exact binding. Consumption adds a replay claim. Neither path reinterprets the external reference content.

**Static contract surface**

```ts
assertDecisionGraphV1(input)
digestDecisionGraphV1(input)
assertCaseTransition(from, to)
issueDecisionCaseRefV1(graph, options)
verifyHarbingerSignalBriefRefV1(ref, options)
consumeHarbingerSignalBriefRefV1(ref, options)
verifyRaiffaEligibilityGateRefV1(ref, options)
consumeRaiffaEligibilityGateRefV1(ref, options)
```

## Bind external references as opaque envelopes

- SignalBriefRef rejects raw body and confidence fields
- DecisionCaseRef digest binds the validated whole snapshot
- EligibilityGateRef compares actorId and DecisionCaseRef id, digest, and issuer exactly
- Expiry, forgery, replay, and scope mismatch fail

> **Authority:** Consuming a valid ELIGIBLE gate still returns authority NONE.

---

Published route: /docs/polya/reference/contract
