Skip to content

keryx reel lock

Description

Approve a selected asset and freeze it, so regeneration can't silently re-mangle it. reel lock <kind> [index] records that a selected asset has been reviewed and approved. Once locked, a voice pick / cards pick / cards set / music pick (or take re-roll) of that asset refuses without --force, and reel make leaves it alone.

This is the durable fix for the problem that a good VO read — or a carefully respelled pronunciation — can be re-mangled by take variance on any regeneration (spec 0025). Locking turns "this one is right" into an explicit, recorded, auditable state rather than a hope.

Usage

keryx reel lock <kind> [index] --workspace <slug>
  • kindvo | card | music | cover.
  • index — the 1-based line (VO) or card number; omitted for the singleton music / cover.

The asset must already be selected (you lock what you've picked). State is recorded under locked in workspace.yaml — central, auditable, and untouched by reel prune:

locked:
  vo:    [1, 3, 5]
  cards: [2]
  music: true
  cover: true

Behaviour

  • Guards the pick paths. A locked asset won't be overwritten by a pick/set/re-roll unless you pass --force — so a bulk re-roll can't clobber an approved read.
  • reel make skips it. Make already skips selected assets; a locked one is never offered for regeneration even if its selection is later missing.
  • Reproducibility signal. reel plan and reel build report how many selected assets are locked; when every selected asset is locked, the reel is reproducible from committed inputs.
  • Prune-safe. reel prune clears only candidate takes + cache; it never disturbs a selection or the recorded lock state.

Example

# Approve the VO on line 3 and the cover; a later re-roll won't touch them.
keryx reel lock vo 3 --workspace my-post
keryx reel lock cover --workspace my-post

keryx voice pick 3 2 --workspace my-post          # refused: line 3 is locked
keryx voice pick 3 2 --workspace my-post --force  # explicit override

keryx reel plan --workspace my-post               # → "assets: N selected, N locked — reproducible…"

See also