docs(bdd): scenario for transcript reuse — re-analysis never re-fetches
Capture the ADR-021 promise as a mapped BDD scenario: re-analyzing a stored video reads the stored transcript and does not fetch captions. Since paste-a-URL and the onboarding burst summarize through the same engine chokepoint (resolveTranscript, store-first), this one scenario covers their reuse path too — there is exactly one gated caption entry point (youtube.FetchTranscript → WaitFetchGate) and one engine caller in front of it, so the dedup is structural, not per-feature. Mapped to TestProcessNewVideo_SecondSummarizeDoesNotRefetch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,5 +31,16 @@ Feature: Summarize new videos from subscribed channels
|
||||
When the watcher sees "Designing for Attention" again
|
||||
Then Tapir does not produce a second summary for it
|
||||
|
||||
Scenario: Re-analyzing a stored video does not re-fetch its transcript
|
||||
Given a transcript for "Designing for Attention" is already stored
|
||||
When the video is summarized again
|
||||
Then Tapir reads the stored transcript
|
||||
And Tapir does not fetch captions from YouTube
|
||||
|
||||
# Captions-first is the core path (ADR-007). Audio-download + speech-to-text is
|
||||
# deferred and intentionally has no scenario here yet.
|
||||
#
|
||||
# Transcript persistence (ADR-021): the stored transcript is shared, keyed by
|
||||
# (provider, provider_video_id) and read before any caption fetch, so the
|
||||
# re-analysis scenario above also covers paste-a-URL and the onboarding burst —
|
||||
# both summarize through the same engine chokepoint.
|
||||
|
||||
@@ -67,6 +67,7 @@ var scenarioCoverage = map[string]string{
|
||||
"A subscribed channel posts a video with no usable transcript": "TestVideoWithNoTranscriptIsSkipped",
|
||||
"A channel I am not subscribed to posts a video": "TestUnsubscribedChannelVideoIsNotProcessed",
|
||||
"The same video is not summarized twice": "TestAlreadySummarizedVideoIsNotReprocessed",
|
||||
"Re-analyzing a stored video does not re-fetch its transcript": "TestProcessNewVideo_SecondSummarizeDoesNotRefetch",
|
||||
}
|
||||
|
||||
var (
|
||||
|
||||
Reference in New Issue
Block a user