mcpField
P
papercut-hook

papercut-hook

github.com/0xs4n4tg创意与媒体9951 次安装2 周前更新
代码仓库

关于 papercut-hook

papercut-hook 是用于撰写和检查短视频开场钩子的工作流技能,分别规定口播、屏幕文字和画面层,并通过事实与一致性检查筛选方案。

主要功能

  1. 01三层钩子区块
  2. 02五个钩子方案评分
  3. 03首帧标题配置
  4. 04画面与文字一致性检查
  5. 05场景转场动作指引

适用场景

  1. 01在写脚本前设计短视频开场
  2. 02依据研究事实筛选钩子
  3. 03在 episode.json 中配置标题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/0xs4n4tg/papercut-explainer --skill papercut-hook

安装后在 Claude Code 中输入/papercut-hook确认已加载。

附带文件references/hook-patterns.md

详细介绍

Papercut hook

钩子是最重要的步骤。一条短视频的钩子由三个独立、明确的层次组成,任何一层都不能跳过或含糊带过。在脚本的其他部分之前,先把它们全部写好。

预检

  • 安装:保持精简即可。无需安装任何库。
  • 阅读 episodes/NN-slug/research/facts.md 顶部的 BRIEF(主题、格式、受众、CTA)和事实列表,以便核查每一项说法。如果没有 BRIEF,请先运行 papercut-strategy。
  • 阅读 SERIES.md,了解受众水平和地区。

HOOK 区块

HOOK
SAY:   <the first spoken sentence>
WRITE: <the frame-0 title, 2-5 words, ideally a number; the episode.json "hook">
SHOW:  <what frame 0 and the first 2 s show: the mid-action moment, the camera move>
ALIGN: <the one idea all three point at>

只有四行全部填写完并通过对齐测试后,才能构建场景。

层次规则
SHOW,第一帧展示最引人注目的时刻,并且动作已经开始。不要用交代环境的镜头、淡入或空房间。静音时也必须看得懂。
WRITE,屏幕标题封面标题(2-5 个词,最好包含数字),在第 0 帧时完整显示约 2-3 秒。它承载信息差的另一半,不能与旁白使用相同的词。
SAY,口播台词在约 10 个词内制造信息差。点明面向谁。尽早交代利害关系或数字。绝不能自己揭晓答案。不要用没有明确来源的新闻式开场(“刚刚有人发布了……”);可信的知名来源可以点名。

不要采用主线第 1 拍那种“以新闻口吻陈述”的开场(“一位独立开发者刚刚开源了……”)。改为制造信息差并交代利害关系,同时在第一句话里点出观众熟悉的大品牌。

对齐测试

你展示的、你写的和你说的都指向同一个想法。措辞可以不同,但主题不能不同。如果旁白说“你的截图泄露了”,而第 0 帧是安静的桌面,标题却在讲星星,那么每个层次都开启了不同的悬念,结果哪个都落不了地。遮住其中任意两个层次,剩下的那个仍应能暗示同一个想法。

变体与钩子检查

  1. 从 references/hook-patterns.md 的七种模式中至少选三种,写出 5 个变体(借用权威 + 赠品、点名观众再给出数字、一个物件一个数字一个反转、价格冲击、痛点、判定或冲突、自身权威)。
  2. 每项符合得 1 分:
    1. 口播台词是否在约 10 个词内制造了信息差(一个观众想要解开的疑问或悬念)?
    2. 是否点明面向谁,或交代利害关系?
    3. 是否包含一个具体数字、物件或反转,而不是含糊的说法?
    4. 是否把答案留到后面?
    5. 关闭声音时,第 0 帧和标题是否依然有效?
    6. 所有说法是否都符合事实表?
  3. 选得分最高的变体。剔除任何第 6 题不合格的变体。

第 0 帧标题(episode.json 中的 "hook")

每条短视频都以钩子开场。episode.json 中的 hook 键会从第 0 帧起在屏幕上显示封面标题(build_vo.py 会将其写入 plan.json),并在标题消失前挡住横幅。

"hook": {"lines": [["AI", "LEAKED"], ["13,000+"]], "hot": ["13,000+"], "until": "yes", "size": 108, "top": 220}
  • lines:将 WRITE 文本拆成撕裂标签,每行对应一个词数组。hot:要贴上黄色标签的词。
  • 标题会在 until 指定的词开始出现时消失(["yes", 2] 表示第 2 次出现),或者在 "hold" 指定的秒数后消失(默认 2.4 秒)。
  • 标题保持 2-5 个词,且不得与 SAY 共用词语。

钩子结束时的剪辑要带有动势

钩子若以定格姿势结束,会让衔接显得突兀,并流失刚刚吸引来的注意力。

  • 给钩子场景最后约 10 帧加入逐渐加速的推镜(先稍微拉远)。
  • 场景 2 从焦点道具上的一次撞击开始,然后镜头平稳拉回场景。例如,证据卡片用 stamp 砸在板子上,镜头从 1.17x 开始,角色从画外匆忙跑进来。
  • 在剪辑点结束标题,并设置 "hook": {"hold": <S01 seconds>},这样标题会在推镜过程中移开,而不是遮住场景 2 的开头几帧。

门槛

  • SHOW 在第 0 帧处于动作进行中,且读起来语气平淡。
  • WRITE 出现在第 0 帧,且不是口播内容。
  • SAY 在 10 个词以内打开信息缺口。
  • 三者均通过对齐测试,且 ALIGN 点明一个想法。
  • 胜出版本得分最高,并通过问题 6。

交接

在 episodes/NN-slug/papercut/STORYBOARD.md 顶部写入 HOOK 块(如果文件不存在,则创建)。记下钩子的关键词或数字;脚本的最后一行会重复它。接下来是 papercut-script,它也会将 SAY 写入 narration/script.json 的 l1_hook 行。

评论

支持 Markdown