# External-dependency decision records

Each file records a gap that, when opened, could not be closed by workspace code
alone. Some required an external service account (payment merchant, IdP, or
audio CDN); others required a product decision about identity, sharing, or audit
semantics. These are dated decision records, not a live gap dashboard: contracts
may now exist even when the original runbook remains useful as closure history.

Every record now uses the result-page evidence structure: dated frontmatter and
opening disposition, an exact truth table, one evidence map, proven
observations, explicit authority boundaries, portable rerun commands, source
trail, cross-references, and open questions. That shape preserves the original
decision while making later implementation progress legible without silently
turning source presence into production proof.

## Contents

- [`crypto-merchant-settlement.md`](./crypto-merchant-settlement.md) — the
  fail-closed quote and signed settlement core now ship; a production invoice
  provisioner and chain watcher remain deploy-bound.
- [`nyx-logged-observation-contract.md`](./nyx-logged-observation-contract.md) —
  decision history for the canonical logged-observation contract, distinct from
  the observation-window forecast. The contract now ships as
  `LoggedObservationSchema` in `libs/contracts/src/nyx/index.ts`.
- [`library-collection-contract.md`](./library-collection-contract.md) —
  decision history for the canonical `LibraryCollection` contract, now shipped
  from `libs/contracts/src/library/index.ts`.
- [`atelier-scene-contract.md`](./atelier-scene-contract.md) — the canonical
  `AtelierScene` decision history: recipient identity, share scope, cue-privacy
  fields, and render-pipeline reference. `AtelierSceneSchema` now ships.
- [`studio-scene-contract.md`](./studio-scene-contract.md) — what an
  authoring-side `StudioScene` needs beyond path/session/kind: scoring, voice
  mapping, and publication gates. `StudioSceneSchema` now ships.
- [`metis-course-proposal-contract.md`](./metis-course-proposal-contract.md) —
  distinguishes `MetisCourseProposal` (a creator submits an idea) from
  `MetisCourseBuild` (the curated course). `MetisCourseProposalSchema` now
  ships.
- [`real-sit-audio-cdn.md`](./real-sit-audio-cdn.md) — procedural BFF ambient
  audio and env-gated voice guidance now ship; recorded-media ingest, signed
  CDN/HLS delivery, and paid-content protection remain open.

## How to extend

When a new external dependency is identified, add a dated `reconciled-partial`
record with the same eight sections. Prefer one compact table and one restrained
flow over copied implementation snippets. Name what is already shipped, what is
deploy- or decision-bound, and the exact observation that would close the gap.
