Skip to content

Guard caption-risk cross-talk routing to caption quality review [#583] #1305

Description

@dale053

User-facing improvement

A creator reviewing a cross-talk moment that makes captions unreliable already sees an
"Open caption quality review" link — the routing is implemented. But the routing is unguarded:
a future refactor could silently remove it and the creator would lose the hand-off link with no
CI failure to warn about it. This PR adds the test that preserves that hand-off.

Workflow / taste rule it advances

Clean and balance episode audio with simple controls … presented as creator-facing quality
choices.
Caption-risk cross-talk is not resolved by silencing a speaker — it is handed off to
the caption quality screen where the creator reviews the actual caption lines. The fix-routing
test preserves that decision in code.

Advances #584 P1 (preview smoke tests and regression guard) and protects #583 P1
(connected preview screens).

Problem

pause-crosstalk-cleanup.html is in CLEANUP_FLOW (loads cleanup-nav.js, linked from
preview/index.html). Its evaluate() already declares:

// lines 598-608
} else if (kind.captionRisk) {
  state = "caption";
  issue = {
    title: `${kind.title} (${moment.at})`,
    action: kind.suggest,
    tone: "blocker",
    fixScreen: "audio-caption-quality-review.html",
    fixLabel: "caption quality review",
  };

Line 1037 renders the link: openLink.href = issue.fixScreen;

There is no fix-routing test. A future PR that touches evaluate() or kinds could silently
break this hand-off.

Required file changes

New file: prototype/pause-crosstalk-cleanup-fix-routing.test.js

Four guards — no changes to the HTML file:

  1. cleanup-nav.js loaded; pause-crosstalk-cleanup in CLEANUP_FLOW
  2. fixScreen: "audio-caption-quality-review.html" declared on the captionRisk check
  3. audio-caption-quality-review.html exists via fs.existsSync and is in the shell
  4. openLink.href = issue.fixScreen present in source

Verification

node prototype/pause-crosstalk-cleanup-fix-routing.test.js
node preview/shell-coverage.test.js
npm test

No UI change — creator experience is unchanged. No preview notes needed.


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions