diff options
| author | Claude <noreply@anthropic.com> | 2026-10-08 07:08:33 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-10-08 07:08:33 +0000 |
| commit | 7f0601e42b9df979dab2a780ebaf1a19358bf072 (patch) | |
| tree | adfe71c69805969323ab63ee5094f33d8225011e | |
| parent | 979d9c4fd5a6ec2f375cea69bc7ddc9f3d9eebe4 (diff) | |
Record the approach-2 decision and the furniture toggle
Approach 2 chosen, built in the phase order already proposed -- it is a
superset of approach 1, so the ad-detection work still lands first and the
library last.
Advertising is always skipped; the show own intro, cue and credits obey a
single preference defaulting to on, because that is what happens today.
The toggle settles a bootstrapping question the design had left open. A
furniture clip cannot be promoted until a second fetch occasion has
passed, so until then there is nothing to label with. The zero-gap
classification fills that gap: served length equal to declared means
nothing was inserted, so every break is furniture and position decides
which kind; otherwise a break is advertising unless a promoted clip says
otherwise. Day one is correct on the 138 zero-gap episodes and identical
to current behaviour everywhere else.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
| -rw-r--r-- | docs/superpowers/specs/2026-10-08-furniture-and-cues-design.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/superpowers/specs/2026-10-08-furniture-and-cues-design.md b/docs/superpowers/specs/2026-10-08-furniture-and-cues-design.md index 2e91362..0451a9b 100644 --- a/docs/superpowers/specs/2026-10-08-furniture-and-cues-design.md +++ b/docs/superpowers/specs/2026-10-08-furniture-and-cues-design.md @@ -140,3 +140,50 @@ for. The alternative is to skip only inserted advertising and merely mark the fu against real shows before it moves a playhead. 3. The cue prior, validated against the length gap. 4. Approach 2's library, if D3 is wanted. + +--- + +## Decisions, 2026-10-08 + +**Approach 2, built in the phase order above.** Approach 2 is a superset of approach 1, so the +sequencing recommendation stands: the ad-detection improvements land first and the library last. + +**Furniture skipping is a setting; advertising is not.** Advertising is always skipped. The show's +own intro, break cue and credits are skipped according to a single preference, default on -- +default on because that is what happens today, so defaulting it off would be an unrequested +behaviour change. + +### What this adds to the design + +**Breaks carry a kind.** `ad`, `intro`, `cue`, `outro`. The server decides it; the phone stores it +alongside the range and filters on it at playback. + +**The kind is decided by a rule that works before the library has anything in it**, which matters +because a clip cannot be promoted until a second fetch occasion has passed: + +1. If the episode's served length equals its declared length, nothing was inserted, so every + break is furniture. Position decides which: opening, closing, or `cue` in between. +2. Otherwise the episode does carry advertising, so a break is `ad` unless it matches a promoted + furniture clip. + +So day one gives correct labels for the 138 zero-gap episodes and treats everything else as +advertising -- exactly today's behaviour, which is the safe default -- and the labels get finer as +the library fills. + +**The cue stays skippable even with furniture skipping off.** A cue sits immediately before an +advertisement, so hearing it is a useful signal that something was cut. It is furniture, it obeys +the setting, and nothing special is needed. + +### Where each part lives + +- Server: `kind` on `store.Break`, decided in `skips.DetectAds` plus the zero-gap rule, carried in + the API's break objects. +- Phone: a `kind` column on `episode_midrolls` (Room schema 13), a boolean in the existing + preferences, and a filter in `MidrollSkip` and `PlayheadPolicy`. +- Readout: the episode screen names each break by kind and shows whether it will be skipped, so + the setting's effect is visible rather than inferred. + +### Open, deliberately + +How the library's clips are chosen for eviction when a show exceeds eight, beyond +least-recently-seen. Not worth settling before there is a real library to watch fill. |
