Skip to content

Caption modes: verbatim vs. key-term (redundancy vs. accessibility) #38

@jbrecht

Description

@jbrecht

Source: instructional-designer pedagogy review, docs/reviews/2026-06-13-pedagogy-review.md (Part 2, item #5 — Medium impact / High feasibility, "Next").

User story

As a tutorial author, I want a key-term caption mode in addition to verbatim captions, so I can reduce redundancy load for sound-on learners while still teaching vocabulary — keeping full verbatim captions as the accessible default.

Context / correction to the review

The review proposes captions: 'full' | 'keyterms' | 'off'. The actual config field today is subtitles: 'burn' | 'sidecar' | 'off' (packages/core/src/types.ts:130), generated in packages/core/src/post/subtitles.ts (SRT) and packages/core/src/post/captions.ts (burned pills). This issue should map the new mode onto the existing subtitles option rather than introduce a parallel captions field — decide whether key-term-vs-verbatim is an orthogonal axis (a new option, e.g. captionText: 'verbatim' | 'keyterms') or folded into the existing enum. Recommend an orthogonal option so burn/sidecar/off (delivery) stays separate from verbatim/keyterm (content).

Scope

  1. Add a content mode that emits only signaled labels / key vocabulary per step instead of the full narration sentence.
  2. Author surface for declaring key terms per step (e.g. an opts.keyTerms?: string[], or derive from signaled callout labels). Define how terms are sourced.
  3. verbatim remains the default (accessibility-correct).

Acceptance criteria

  • An author can select key-term captions; verbatim remains default.
  • Key-term captions render in both burn and sidecar delivery.
  • A documented way to specify key terms per step.
  • Localizable via translations.
  • Documented in docs/getting-started.md (currently describes captions at :83-85).

Open decision (for maintainer)

Where key terms come from — explicit per-step authoring vs. auto-derived from callout/signal labels. Recommend explicit author field for v1 (predictable), auto-derivation later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions