ketchup-video 是一个技能(skill)。在资料中,以粗体、反引号或 /<name> 形式出现的技能,指向本技能目录旁的 ../<name>/SKILL.md 文件;不带前缀的原则名指向 ../principle-<name>/SKILL.md。需要读取该文件并遵循它。多数 pstack 技能仅供用户使用,因此技能工具无法加载它们。
用途
ketchup-video 遵循 /ketchup,但用一段带字幕的短视频来展示发生了什么,而不是用它的摘要和视觉内容。它的时间窗口从用户在 /ketchup-video 之前写的最后一条消息开始,而不是更早的 /ketchup 之前。撰写和渲染视频(在仓库之外)是它只读规则的唯一例外。回复内容是 ketchup 的开场句、嵌入的视频、一行说明你还能自己完成的剩余工作,以及行动项。当视频展示某个调用的选项时,要用视频给出的名称来称呼每个选项。如果渲染失败,用一行说明,并只给出这些调用。
幻灯片
使用工作产生的截图、录屏、diff 和数据,而不是聊天中关于它们的文字。在绘制之前,写下用户应当带走的一句话,以及每张幻灯片一行。删掉任何不改变用户认知的幻灯片。最多使用 10 张幻灯片,越少越好。这两条笔记都不放进回复中。
每张幻灯片只表达一个要点。让幻灯片建立在一张画面上,并在幻灯片之间改变它,而不是切到一张不相关的画面。一种颜色或形状在每张幻灯片上含义相同。用图片展示工作,例如系统如何运作、带每个 PR 状态的 PR 栈、修复前后的对比,或并排展示选项。用箭头、高亮和动效指向变化之处。幻灯片绝不能是项目符号列表、状态列表、表格,或没有连接关系的方框。
文字保持最少。把每个标签放在它命名的对象上,用人们会说的平实词语,而不是像“Tests: pass”这样的标签。绝不要给图片所展示的内容加说明文字,也绝不要在幻灯片之间或幻灯片下方文字中重复同一事实。
展示用户要求的每件事的结果,以及它是已完成、仍在运行、失败,还是未检查。绝不要展示仍等待用户处理的事情为已完成。展示过程中发现并修复的任何 bug。如果某个可见变化没有截图,就在其幻灯片上说明,并指出屏幕上变化了什么。只根据你掌握的事实绘制。绝不要编造数字,也绝不要绘制你没有捕获的屏幕。
字幕
给每张幻灯片一句简短字幕,约十个词,用你会告诉用户的方式说出它的要点,且只依据该幻灯片展示的内容。说明图片的含义,而不是读出它的标签。把字幕放在幻灯片下方的条带中,每张幻灯片高度相同,除字幕外为空,这样它绝不会遮住幻灯片。字号要小,但在聊天尺寸下播放视频时仍可读。
渲染
渲染一个无声的横向视频,例如 mp4,幻灯片之间有动效。每一帧都是幻灯片本身,边到边,位于其字幕条上方。用幻灯片制作帧,绝不要通过录屏制作,并把每句字幕烧录进其幻灯片的帧中,使其在幻灯片的整个停留期间保持在屏幕上。停留时间是幻灯片完全在屏幕上的时间,不计入进入或离开的动效。每张幻灯片的停留时间要足够读完它新增的文字,每三个词至少一秒。一张幻灯片新增其字幕,以及此前不在该幻灯片上的每个词,包括它更改的标签。第一张幻灯片新增其全部文字。截图内的文字不计入。
在嵌入视频之前,检查渲染出的文件。以聊天尺寸查看每张幻灯片的一帧,检查其字幕可读且没有遮挡任何内容。通过将文件帧与幻灯片匹配来测量每个停留时间,而不是用静止帧检测器,后者会把淡入淡出的微弱末端也算作静止。将每张幻灯片新增的词数与其测得的停留时间对照。修复任何在该时间内无法读完的幻灯片,重新渲染,并再次检查。