Synced from references/attention-preservation.md in content-extraction skill on 2026-05-18. Edit upstream in the skill; this file is overwritten on next sync.

Attention-Preservation Canon — beyond the 0-3s swipe

What keeps a viewer past the swipe boundary. Owned by the virality sub-agent. Extends references/shortform-virality.md (which owns the archetypal dimension — hook types, Tier-1/2/3, Schwartzberg). This file owns the temporal dimension: what must happen at clip-second 5, 12, 25, 40 for retention to hold.

The skill ships clips for A Friend. A Friend’s register is punchy, sharp, real, essence-loaded, considered, perceptive, illuminated — explicitly NOT motivational-speaker, hustle-bro, productivity-influencer, TED-pacing, Gary-Vee energy. That register constrains how attention-preservation tactics get applied here. A trick that works on TikTok-pop won’t always land for A Friend.


The retention map (by clip-second)

Algorithmic retention thresholds are not artistic goals — they’re the floor below which the clip dies. Above them, the clip can do whatever Daniel’s voice wants.

WindowRetention floorWhat MUST happenCommon failures
0–1.5s80%Hook lands; viewer can name the topic + the stake in 1 sentence.”Welcome to episode 2” / context-setting / generic intro / abstract framing.
1.5–3s75%Hook is reinforced, NOT repeated. New information that reframes the opener.Restating the hook. Pause. Filler. Off-camera glance.
3–8s70%Promise clarified. Viewer knows why they’re still here. Direction visible.Drift. Rambling. Topic dilution.
8–15s65%First proof beat — concrete fact, named decision, vivid image, contradiction deepened.Talking head with no support. Repetition of hook idea without new substance.
12–18s60%Second-hook re-engagement. New tonal/pacing shift OR specific number/quote/reframe that re-locks attention. This is the “drop-off cliff” — most clips lose 30%+ here without a deliberate second hook.Single-rate clips flatline here. Continuous monologue with no shift = swipe.
18–30s55%Climax beat — the line they’ll remember. Stake delivered.Anticlimax. Trailing off. “And so…” filler.
30–45s50%Resolution starting. Either: vulnerability landed, or contrarian explained, or vision crystallized.Repetition. Padding. Re-explaining what was already clear.
45–60s45%Close-out beat that loops the opening OR delivers a quotable promise.Fade-out. Sells-y CTA. Random thought-tail.
60s+40%Each additional 15s should earn its place via NEW substance — vulnerability, technical depth, emotional reframe.”Ich red noch ein bisschen weiter” — every additional second past 60 must justify itself.

Default target: 30–60s for short-form publication. Clips above 60s must show their substance density per second is HIGHER than at 60s, not lower. If density drops, runtime drops.


The second-hook landing window (clip-second 12-18)

The most important rule in this file. More clips fail at 12-18s than at 0-3s.

Why 12-18s? Algorithmic data (OpusClip 2026, DataSlayer TikTok algo guide, Hootsuite 2025) names this as the dominant retention cliff. The 0-3s swipe boundary screens for “is this for me.” The 12-18s drop-off screens for “is this still worth my attention.” Both gates have to clear.

What a second-hook is:

  • A new specific fact / number / named-thing introduced AFTER the opener
  • A pacing shift — speech rhythm changes, breath, beat, jolt
  • A tonal pivot — warm → sharp, abstract → concrete, declarative → vulnerable
  • A mid-clip cliffhanger — “…and that’s the thing I almost got wrong”
  • A reframe of the opening line in a new direction
  • A vivid image that wasn’t telegraphed by the opener

What a second-hook is NOT:

  • Restating the opener in different words
  • “And here’s why…” — performative pivot
  • A list-item (“the second thing is…“)
  • A quote attribution (“as Steve Jobs said…“)
  • Filler that buys time before the climax

Scoring per clip (sub-agent emits):

  • Window match (1.0): second-hook lands at clip-second 12-18 with measurable shift
  • Wide window (0.5): second-hook lands clip-second 9-11 OR 19-22 (acceptable but not ideal)
  • Missing (0.0): no second-hook detected; sub-agent proposes insertion point or recommends drop

If a clip lacks a second-hook AND can’t have one inserted, the clip should be cut to ≤12s OR rejected. A 30s clip with a flat retention curve is worse than a 10s clip that ends before the cliff.


Pacing-shift count (the rate-of-information variation rule)

A 60s clip with a single “rate” of information density flatlines around the 12-18s cliff. Two or more shifts is the floor for sub-1min publishing.

What counts as a pacing shift:

  • Sentence-length variance (long → short → long)
  • Topic-density variance (abstract → concrete → abstract)
  • Rhythmic shift (pause-punch-pause vs continuous flow)
  • Volume shift (inferred from waveform amplitude proxies)
  • Tonal pivot (warm → sharp → reflective)
  • Code-switching (German → English → German)
  • Question-then-answer self-dialogue
  • Vulnerability beat embedded in a confident arc

Heuristic the sub-agent applies:

  • Compute mean sentence length per 10s window of source.
  • Variance across windows > X = pacing-shift signal present.
  • Variance below threshold + clip ≥30s = “single-rate” warning. Sub-agent surfaces “consider re-arc with vulnerability/contrarian beat insertion.”

For A Friend specifically: pacing shifts should NOT come from “amped energy” tactics. They come from substance-shift, not delivery-shift. Daniel’s natural code-switching is a real shift; raising voice mid-sentence is not.


Loopability — last 3s designed to invite rewatch

The TikTok algorithm rewards clips that get rewatched (Schwartzberg + Naveen Jain rewatch-gap canon, Hootsuite 2025 retention-vs-watch-percentage data). A loop signal is when the last 3s creates an itch that the first 3s scratches.

Patterns that loop:

  • Self-referencing close: last sentence answers a question the first sentence implied. (“So we built a friend.” → opener: “Most AI lives on a screen. Mine lives in a fabric pouch.“)
  • Reframed callback: opener phrase appears in close with new meaning. (“intense beauty of existence” → opener about pixels gets answered)
  • Open-loop close: ends on an unresolved question or weight that pulls viewer back to verify they understood.
  • Two-beat tail: the brand’s signature cadence (“Private by design. Your data, your rules.”) used as close.

Patterns that do NOT loop:

  • “And that’s all I have for today” — closes the loop, viewer leaves.
  • CTA close (“Link in bio”) — algorithmic friction; viewers don’t share/save.
  • Fade-out / trailing-off — viewer’s last impression is “this didn’t land.”
  • Sells-y close — “preorder now” / “buy this” / “check it out” — A Friend brand non-negotiable.

Sub-agent scoring:

  • High = explicit loop pattern present (self-reference / reframed callback / two-beat tail)
  • Med = soft loop (open-loop close OR vivid image at end)
  • Low = no loop signal; viewer leaves with completion-feeling

For A Friend: the “promise close” rule from _brand/voice-preservation.md §4 already biases toward loopability. A promise about the world or product creates the itch better than a sells-y CTA.


Rewatch-trigger detection

Different from loopability — rewatch happens because the viewer felt they missed something. Specific patterns trigger this:

  1. Ambiguous referent that gets clarified. Opener says “this is broken” — body explains “this” = current AI tooling. Viewer wants to verify they tracked the antecedent.
  2. Named-decision earning a “wait what?“. “I set myself a 3-day limit” — the specificity creates a need to verify the number.
  3. Punchline whose weight is felt only on second pass. Daniel’s “intense beauty of existence rather than pixels on a black screen” gets sharper on rewatch because the viewer notices the cadence was rehearsed-naturally, not improvised.
  4. Compressed phrasing that requires unpacking. A two-beat that’s so dense one watch isn’t enough.

Sub-agent flags rewatch-trigger presence per clip. If 0 triggers across a 30s+ clip, the clip is “single-watch” — algorithmically inferior. Propose insertion of an ambiguous-referent or specificity-trigger via reorder.


Micro-cliffhanger seeding (clips ≥45s)

For clips longer than 45s, retention requires explicit mid-clip promise of a payoff before the close.

Patterns:

  • “…and that’s the thing I almost got wrong” → payoff in seg5
  • “Let me show you what happened next” → payoff after named beat
  • “Here’s where it gets weird” → payoff in mid-clip turn
  • “I’ll tell you why in a second, but first…” → payoff after digression

A Friend brand-fit constraints:

  • NO performative cliffhangers — “you won’t believe what happened” / “the result will shock you” → banned.
  • Cliffhangers must be SPECIFIC and EARNED — not buzz-driven.
  • Daniel’s natural cadence already produces these when he’s mid-flow (“the thing is, when I sat down to do this…”). Sub-agent surfaces existing ones; doesn’t invent fake ones.

If clip is ≥45s and has no micro-cliffhanger: sub-agent flag is “consider trim to ≤30s OR locate seeded cliffhanger in source for reorder.”


Tone-shift as re-engagement

When verbal pacing alone can’t carry a 60s+ clip, tone-shift does the work. Daniel’s natural shifts:

  • Builder pose (“ich baue” / “I’m building”) → vulnerability (“but I almost broke”) → reframe (“which made me realize”)
  • Technical depth (architecture / tools) → stakes (why this matters) → promise (what changes)
  • Vision (“the world I’m building toward”) → specificity (“which is why I’m using X today”) → call (not CTA — promise)

Sub-agent maps tone-shifts across clip. Reports:

  • 0 shifts in 60s+ clip → critical, propose drop or restructure
  • 1 shift → marginal, OK if the shift carries weight
  • 2+ shifts → strong arc, ship

For A Friend: tone-shift NEVER means “amped energy” — it means register variation. Warm → sharp → warm is a shift. Calm → louder → calm is NOT.


The cut-down imperative (most important meta-rule)

When in doubt, cut more. Length is not a virtue.

Daniel’s stated frustration (2026-05-03 verbatim, paraphrased): “Master clip 1:50 ist zu lang. Auch DaVinci-Cuts mit 1:30 waren zu lang. Sub-agent muss BRUTAL kürzen, gegen virale Metriken abgleichen, dann übergeben.”

The sub-agent’s default bias is aggressive trim, not “preserve all substance.” Specifically:

  • A 115s master should typically yield a 30-60s shipped clip, not a 90s one.
  • “Substance” that doesn’t align to ONE pillar / ONE I-believe-that / ONE arc gets cut.
  • “Substance” that fails the second-hook landing window gets cut.
  • “Substance” that doesn’t earn its second on the retention curve gets cut.
  • A weak segment between two strong ones gets cut even if the weak one has nice content. Adjacent strength compounds.

The rule: every kept second must beat the retention floor for its window. If the second can’t, drop it and the rest tightens.

This is the rule that produces a 50s clip from a 115s master. Without it, the sub-agent just markups; with it, the sub-agent ACTS.


Anti-Brain-Rot constraint

A Friend explicitly does NOT do brain-rot content. The sub-agent must distinguish “engagement-aware” from “engagement-bait”:

Engagement-aware (allowed)Engagement-bait (banned)
Specific number paired with stakeSpecific number for shock value alone
Vulnerability with named contextPerformed vulnerability (“I cried last night”)
Contrarian frame backed by reasoningContrarian for views (“everyone’s wrong about X”)
Curiosity gap with real payoffCuriosity gap with weak payoff or none
Pacing-shift via substancePacing-shift via “amped” energy
Two-beat cadence (brand voice)Rising-intonation lift-statement
Tool-naming with combinationBuzzword soup
Open-loop close”Wait for it…” → underwhelming reveal
Pillar-aligned dramaManufactured drama

Sub-agent gate: if a proposed cut maximizes retention via engagement-bait pattern, it’s auto-rejected with BRAIN-ROT-PATTERN-DETECTED flag. The brand register from references/aesthetic-register-anti-slick.md is the upstream filter; this is the downstream check.


Sub-agent scoring summary (extends parent rubric)

Existing rubric (Tier-1/2/3 + 6 hook archetypes + Schwartzberg three-test + 3 engagement-design checks) stays. New attention-preservation dimensions feed retention_risk_notes and virality-pass.md:

DimensionScoreWhat it checks
Second-hook landing window1.0 / 0.5 / 0.0Lands clip-second 12-18 / ±3s outside / missing
Pacing-shift countN (target ≥2 per 30-60s)Sentence-length variance + topic-density variance
LoopabilityHigh / Med / LowLast 3s pattern present
Rewatch triggerListSpecific triggers detected (ambiguous referent / named decision / compressed phrasing / etc.)
Micro-cliffhanger seedingY/N (required ≥45s)Mid-clip promise of payoff
Tone-shifts mappedN (target ≥1 per 60s+)Register variation, NOT delivery variation
Anti-brain-rot passPASS / FAILNo engagement-bait patterns
Cut-down recommendedΔ secondsAggressive trim from current arc

The Cut-down recommended field is the load-bearing one. The sub-agent’s primary job is recommending HOW MUCH to cut beyond what silence-removal does.


What the sub-agent does NOT do

  • Does NOT enforce these rules as hard gates — surfaces them as proposals for Daniel’s review.
  • Does NOT auto-merge into cut-plan.json — outputs virality-pass.md sidecar.
  • Does NOT rewrite Daniel’s words — every proposed opener / segment is verbatim from transcript.txt.
  • Does NOT score against general short-form virality — scores against A Friend’s register specifically.
  • Does NOT include B-roll cues (parent skill’s job).

Sources & canon basis

  • references/shortform-virality.md — parent canon (hook archetypes, retention floors, scoring rubric). This file ASSUMES familiarity with parent canon.
  • OpusClip “5 TikTok Hook Types 2026” — retention cliff at 12-18s named explicitly.
  • DataSlayer “TikTok Algorithm 2025” — algorithm makes first distribution decision at 1.5s, retention re-evaluated at clip midpoint.
  • Hootsuite “TikTok Algorithm Works 2025” — average percentage viewed (APV) > completion rate; 70%+ APV is short-form benchmark.
  • Schwartzberg Get to the Point — three-test (I-believe-that / so-what / why-test) embedded in parent skill Step 4f.
  • Naveen Jain rewatch-gap research — loop signal as algorithmic reward.
  • Nathan Barry “compression as care” — substance-density per second is the right metric, not runtime.
  • A Friend brand pack: _brand/pillars.md (7 pillars), _brand/voice-preservation.md (banned vocab, two-beat, code-switching, “feels like me” gate).

When the sub-agent cites a rule, it cites THIS file or one of these sources. Not a generic creator-economy article.