docs(audio): specify the phase 3c contract
Phase 3c is delivered in four slices so an interrupted phase never leaves the runtime worse than it started: contract, lifecycle and voices, automation, and measured master protection. Slice 2 replaces working scaffolding, and slice 4 cannot close without user-observed measurement. Record that split in the implementation plan. This commit is slice 1, the contract. Format Specification section 16 adds automation tracks with three modes and four interpolation curves, their placement in the shared resolution pipeline, the seven-state lifecycle with its permitted transitions, the engine-owned internal release gain, a per-node table for computing determinable one-shot endings, voice ceilings with an eviction order that always releases rather than hard-stops, the master protection contract, and unlock and pause behavior for audio. Automation reuses the modulation registry rather than introducing a second answer to which properties vary over time, and a track is declared inside the graph that owns its target, so section 14.4 stands: automation does not widen the external surface of a node property. Close the container gap the new fields opened by adding `automation` to the graph object in 14.3 and `release` to the recipe object in 15.16. Master protection is specified in shape and provisional in value. Finite-sample handling is normative because a NaN in the output buffer is unacceptable at any ceiling; the peak ceiling, numerical tolerance, and release behavior await GC6 measurement. No runtime change. There is no lifecycle state machine, no voice ceiling is enforced, and `automation` and `release` are still rejected as unknown fields. No sound has been heard from any build. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_011FWPdCqKaaDnP9NC3JAwh6
This commit is contained in:
@@ -20,6 +20,19 @@
|
||||
|
||||
Every phase ends with tests and an evidence record. A failed gate stops dependent work; it does not silently weaken the requirement.
|
||||
|
||||
## Phase 3c delivery slices
|
||||
|
||||
Phase 3c is delivered in four slices. Each slice ends green, committed, and pushable on its own, so an interrupted phase never leaves the runtime in a worse state than it started. Slice 2 in particular replaces working scaffolding, and must not be started unless it can be finished.
|
||||
|
||||
| Slice | Content | Depends on | Blocked by |
|
||||
| --- | --- | --- | --- |
|
||||
| 3c-1 — Contract | Format Specification section 16: automation tracks and precedence (PRD 54), lifecycle states and release (PRD 57), determinable one-shot endings, voice ceilings and eviction, master protection shape (PRD 58), unlock and pause behavior (PRD 117-118). Documentation only; no runtime change. | Sections 14-15 | — |
|
||||
| 3c-2 — Lifecycle and voices | The seven-state machine, internal release gain, determinable-ending computation, voice ceilings with eviction, and full disposal. Replaces the fixed development timer currently used to release a one-shot. | 3c-1 | — |
|
||||
| 3c-3 — Automation | Automation tracks, the three modes, the four interpolation curves, and their placement between binding and override in the shared resolution pipeline. Touches the Phase 2 resolution path, so it carries the widest regression surface in Phase 3. | 3c-1, 3c-2 | — |
|
||||
| 3c-4 — Master protection | Replaces the placeholder master chain with the measured contract: peak ceiling, numerical tolerance, release behavior, and finite-sample handling, confirmed against real output. | 3c-2 | **User-observed.** Requires GC6 measurement and audible verification on real hardware; cannot be closed by automated tests. |
|
||||
|
||||
Slices 3c-1 through 3c-3 can be implemented and verified without an audio device. Slice 3c-4 and the PRD 129 audio acceptance challenge cannot: they need measured output and listening observations from a real browser, which the recorded test boundary assigns to user-performed runs. Phase 3 is not accepted until 3c-4 and the audio challenge close, regardless of the state of the first three slices.
|
||||
|
||||
An installment is complete only when its own contract, implementation, tests, and evidence record are all in place. A contract installment is reviewed against its PRD sections and the shared contracts before its dependent installment begins; the Phase 3a review, which closed four blocking defects before Phase 3b started, is the worked example.
|
||||
|
||||
## MVP completion-criteria map
|
||||
|
||||
Reference in New Issue
Block a user