---
title: "검토 기록의 구성 요소와 관계"
description: "DecisionCase, 아홉 node kind와 방향이 제한된 edge가 어떻게 검토 가능한 판단 계보를 만드는지 설명합니다."
updated: "2026년 8월 30일"
availability: "CONTRACT REVIEW · TEST_ONLY"
candidate_route: "/ko/docs/polya/foundations/decision-graph"
---

# 검토 기록의 구성 요소와 관계

DecisionCase, 아홉 node kind와 방향이 제한된 edge가 어떻게 검토 가능한 판단 계보를 만드는지 설명합니다.

**CONTRACT REVIEW · TEST_ONLY:** 계약 구조와 고정 테스트 데이터만 검토 가능 · 운영 API·SDK·판단 권한 없음

## v1에서 사용하는 아홉 가지 node

- SignalRef — opaque HARBINGER 참조
- Option — 사람이 비교할 대안
- Assumption — 드러낸 전제
- EvidenceRequest — 열린 검증 질문
- Task — 검토 작업 기록
- Dissent — 사람의 반대 의견
- Scenario — 시간 구간을 가진 검토 시나리오
- Decision — 사람이 기록한 option 선택
- ReviewTrigger — 재검토 조건

## edge는 허용된 방향만 가집니다

INFORMS, SUPPORTS, CHALLENGES, RAISES, ASSIGNS, FULFILLS, DISSENTS_FROM, MODELS, SELECTS, TRIGGERS_REVIEW와 SUPERSEDES는 출발·도착 node kind가 제한됩니다. 알 수 없는 관계나 self-edge는 거부됩니다.

> **완전성:** 모든 비루트 node는 DecisionCase에서 오는 활성 CASE_CONTAINS edge를 하나 가져야 합니다.

## 동일한 snapshot은 동일한 digest를 가져야 합니다

검토 후보는 `POLYA-CANONICAL-JSON-UTF8-SHA256-V1`로 직렬화와 digest를 고정합니다. unknown field, Unicode 정규화 위반, 순환 lineage 또는 잘못된 시간 범위는 fail closed 합니다.

**검토 후보 import 표면**

```js
import {
  assertDecisionGraphV1,
  digestDecisionGraphV1
} from "@polya/contract-ontology";

const graph = assertDecisionGraphV1(input);
const digest = digestDecisionGraphV1(graph);
```

> **배포 상태:** 이 import는 private review workspace의 계약 표면입니다. 공개 npm SDK 또는 운영 지원 약속이 아닙니다.

---

공개 경로: /ko/docs/polya/foundations/decision-graph
