OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
PRIMARY cross-domain seam (SEAMS §3.6, S-06). On successful escalation, the handler emits two ordered outbox messages alongside the review's own state change:
1.
`audit.event.append { eventKind: 'review.escalated', retentionClass: 'regulatory', payload: { reviewId, fromStatus, toTier, escalationReason, decidedBy, decidedAt } }`. `auditEventId` is returned in the output for traceability.
2.
If `notifyOwners === true`, `governance.notification.dispatch { policyRefs: subject.policyRefs[], escalationContext: { reviewId, tier, auditEventId } }`. `governanceNotificationId` is returned in the output (optional field).
Per SEAMS §1.4 transactional outbox: state change + outbox row commit atomically; downstream callees are idempotent on `(reviewId, escalation-version)` so replays are safe.
Capability: `review.escalate` (+ implicit `review.act`). Per SEAMS §1.5, missing capability returns `FORBIDDEN`. Idempotency: required.
Tier vocabulary (`'tier-1' | 'tier-2' | 'admin'`) aligns with `lib.identity-rbac` role tiers (DOMAIN_NOTES §9 Q1; coordinated with W5).