# YSD-0125 — Rights-policy decision tree and legal escalation

- **Status:** approved (2026-07-18)
- **Priority:** P0 EXT — blocking (production rollout gated via YSD-0139)
- **Decision owner:** @GreyChimp
- **Drafted:** 2026-07-18 by Claude Code (claude-fable-5)
- **Approval:** approved as recommended by @GreyChimp on 2026-07-18; outcome
  recorded in decision-log.json; review by 2027-07-18

## Question

What rights decision tree, allowed-action vocabulary, blocked defaults, and
expiry/deletion objectives govern sources?

## Recommendation

Adopt the Section 4.1 design: RightsGrant model (YSD-4001 fields), the twelve
separately-controlled actions of YSD-4002 as the allowed-action vocabulary,
deny-by-default for every action without a matching grant, review-required as an
explicit third outcome, legal-review escalation to the decision owner with
documented SLA, expiry enforcement blocking access immediately (YSD-3062), and
deletion completing within a documented service objective (YSD-3063).

## Options considered

- A simpler allow/deny enum — rejected by proposal §25.2: a four-value enum is
  not a policy system.
- Blocking-only warnings everywhere — rejected: YSD-4038 requires advisory-only
  where the proposal does not authorize blocking.

## Consequences

- Section 4.1 items implement the resolver; policy-table tests (YSD-4014) encode
  this tree exhaustively.
- The live-media playback-grant flow is the implementation pattern to generalize
  (schema-inventory conflict #7).

## Machine-enforced outcome (once approved)

Rights resolver + policy tables + YSD-4015 bypass tests enforce the tree; no
client/worker path may skip the central decision.
