66 lines
2.6 KiB
JSON
66 lines
2.6 KiB
JSON
{
|
||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||
"$id": "acceptance-event.schema.json",
|
||
"title": "acceptance / supersession event (P1-G #14)",
|
||
"description": "append-only 원장 <state_dir>/acceptance-events.jsonl 의 한 줄(JSON). 리포트는 불변 스냅샷이고, 리뷰 결정(수락/변경요청/차단)과 대체(supersede)는 리포트를 수정하는 대신 이 이벤트로 append 된다. acceptance_log.py 가 기록/질의한다. additionalProperties 허용(향후 확장).",
|
||
"type": "object",
|
||
"required": ["acceptance-event-id", "report-id", "decision", "effective-at"],
|
||
"properties": {
|
||
"acceptance-event-id": {
|
||
"type": "string",
|
||
"description": "이벤트 고유 id (예: ae-<UTCstamp>-<hex>)."
|
||
},
|
||
"report-id": {
|
||
"type": "string",
|
||
"description": "이 결정의 대상 report-id(불변 스냅샷)."
|
||
},
|
||
"decision": {
|
||
"type": "string",
|
||
"enum": ["accepted", "changes-requested", "blocked"],
|
||
"description": "리뷰 결정. review-output 이 emit 한다."
|
||
},
|
||
"accepted-report-id": {
|
||
"type": "string",
|
||
"description": "decision=accepted 일 때 수락된 report-id(기본 = report-id)."
|
||
},
|
||
"rejected-report-id": {
|
||
"type": "string",
|
||
"description": "decision=changes-requested|blocked 일 때 거부된 report-id(기본 = report-id)."
|
||
},
|
||
"supersedes-report-id": {
|
||
"type": "string",
|
||
"description": "이 결정이 대체하는 이전 report-id(계보). report_tags 가 이 대상들을 기본 제외한다."
|
||
},
|
||
"workflow-id": {
|
||
"type": "string",
|
||
"description": "질의 필터용(‘이 workflow 의 최신 수락 리포트?’)."
|
||
},
|
||
"role-id": {
|
||
"type": "string",
|
||
"description": "질의 필터용(‘이 role 의 최신 수락 리포트?’)."
|
||
},
|
||
"effective-at": {
|
||
"type": "string",
|
||
"description": "이벤트 발효 UTC 시각(예: 2026-07-10T12:00:00Z)."
|
||
},
|
||
"report-sha256": {
|
||
"type": "string",
|
||
"description": "선택. 수락 대상 report 파일의 sha256 — venture-decision human-gate 위조·재사용 방지 바인딩(P1 §9.4)."
|
||
},
|
||
"artifact-sha256": {
|
||
"type": "string",
|
||
"description": "결정 대상 immutable artifact revision의 sha256."
|
||
},
|
||
"artifact-kind": {"type": "string"},
|
||
"producer-role-id": {"type": "string"},
|
||
"reviewer": {
|
||
"type": "object",
|
||
"required": ["actor-id", "role-id"]
|
||
},
|
||
"authorization": {
|
||
"type": "object",
|
||
"required": ["expected-reviewer-capability", "producer-role-id", "self-review"]
|
||
}
|
||
}
|
||
}
|