Hook text on screen: a plan for the first three seconds, word by word
A prompt that plans what text appears in the first 3 seconds of a vertical video: the words, the moment each appears, the hold, what the picture does under it. Written so the hook works muted.
Plan the on-screen text for the first 3 seconds of a vertical video about {topic}. The video autoplays muted; the text must carry the hook alone. Output a table: Time in (s) | Text (exact words) | Hold (s) | Where in frame | What the picture does under it | Why the viewer stays. Rules: - Max 2 text events in 3 seconds. Max 5 words each. - The first text lands at 0.0-0.3 s, not after a logo. - Hold = words / 2.5 seconds, minimum 1.2 s (a parameter). - The text is one of: a number the viewer can check, a contradiction, a question with a one-word answer, a 'before' label over a 'before' picture. - Frame position: middle third, or upper third if the subject's face is in the middle; never the bottom 20 percent. - The picture under the text moves: motion toward the camera, a hand entering, a reveal; never a static frame with text on it. - The spoken hook, if any, must not be the same sentence as the text. Then write 3 alternative text pairs for A/B, each with a different hook type. Context: {what the video shows in the first 3 seconds, and the hook line if spoken}
In Claude Code, paste the prompt as a message.
Steps
- Describe the actual first 3 seconds of footage you have; the plan is for that picture, not an imagined one.
- Mock the two text events on a frame grab and look at it on a phone at arm's length before editing.
- Post the A/B pairs as separate videos a day apart; note which hook type held viewers past 3 seconds for this topic.
Tips
- Five words at 2.5 words per second is 2 seconds. Two events fill 3 seconds exactly; a third is unreadable.
- The cold open rule from real footage applies: the picture under the hook is chosen by eye for fire, water, neon, motion toward the camera, a face with an expression.
| works with | Claude Code: Runs as a skill or a prompt in the terminal; can read your files and write the result. · Claude: Paste into claude.ai or the Claude app. · ChatGPT: Paste into ChatGPT; works with any GPT model. · Any LLM: Model-agnostic: Gemini, Mistral, a local model. |
| cost | Free. No API, no key. |
| status | Unverified: written from the technique, not yet run end to end by us. |
| license | CC BY 4.0 for the text here; skills are MIT. |
| updated | 2026-11-01 |
| for agents | hook-text-on-screen-plan-prompt.md |
Related
Reading speed for on-screen text and speech: the parameters to check against
How long a text overlay must stay up and how many words a voice can carry per second, given as parameters you measure on yourself, with the formula and the two failure modes: unreadable, and slow.
Cold open, then hook: 8-10 s of best frames, hand-picked from a contact sheet
The opening that holds a viewer on real footage: 8-10 s of the strongest frames with no speech, then one line with a twist. What to look for on the sheet, and why the automatic pick is wrong.
Burned subtitles for 9:16: position, lines, characters, colour, as parameters
Settings for subtitles burned into vertical video for muted feeds: above the platform UI, two lines, about 32 characters each, white with a dark outline. Starting values, checked on a phone.
Accessible on-screen text: contrast, the bottom 20 percent, no flashing
A checklist for text that everyone can read, including people watching muted, on a small screen, in sunlight, or with photosensitivity. Eight checks, each with the parameter to test against.
Three caption variants plus hashtags, with per-platform length limits
An agent prompt that writes three captions (short, story, question) and a hashtag set per platform, counting characters and hashtags against limits you paste in from today's upload form.
Forced reasoning before scripting: goal, hook type, demo moments, emotion arc
Four questions an agent must answer in writing before it writes a line of script. Skips the generic promo every model produces when asked for one directly.