Short Videos — Hermes-Native Video Script Pipeline
Produce a 90-second universal short-video script and standalone LinkedIn post using Hermes tools directly. No tmux, no Claude Code CLI.
Configuration Variables
| Variable |
Default |
Description |
{{REPO_ROOT}} |
(required) |
Path to your Git repository root, e.g. ~/projects/my-content-repo |
{{RP_VIDEO_DIR}} |
{{REPO_ROOT}}/short_videos |
Directory holding numbered video folders under the repo root |
Before running the pipeline, set {{REPO_ROOT}} to your actual content repository path. All file operations reference this variable — never hardcode absolute paths.
Prerequisites
- Hermes Agent (runtime environment)
- Git repo (your content repository — clone it to
{{REPO_ROOT}})
- GitHub / Git remote configured for push
- HeyGen (optional) — scripts are HeyGen-ready but work on any teleprompter platform
- Python 3 for word-count verification
When to Use
- User says "create a short video about..." or "make a reel on..."
- User wants a LinkedIn post that stands alone (not marketing for a video or article)
- User needs a HeyGen script for their digital twin
Outputs Produced
| File |
Format |
Description |
video-script.md |
Markdown (90s, timestamped blocks) |
Universal teleprompter script for HeyGen/Reels/Shorts/LinkedIn Video |
linkedin-post.md |
Markdown |
Standalone LinkedIn post (no article link, ≤3,000 chars, 5 hashtags) |
quality-report.md |
Markdown |
Fact-check, word count, British English, hook strength, character count |
Repo & Conventions
- Repo path:
{{REPO_ROOT}}
- Video folders:
{{RP_VIDEO_DIR}}/NN_slug/ — numbered sequentially, zero-padded to 2 digits (01, 02, 03...)
- Root files:
CLAUDE.md (project instructions), techblogger.md (writer persona), md_to_html.py
- Sibling pipeline:
medium-story writes to unpublished_stories/ — this pipeline writes to {{RP_VIDEO_DIR}}/ in the same repo
Pipeline Steps
Step 1: Sync the repo
terminal(command="git -C {{REPO_ROOT}} pull --ff-only origin main", timeout=30)
Step 2: Read context files and find next video number
Read these files from the repo root:
CLAUDE.md — project-level instructions
techblogger.md — writer persona
Find the next video number:
terminal(command="ls {{RP_VIDEO_DIR}}/ 2>/dev/null | grep -E '^[0-9]+_' | sed 's/_.*//' | sort -n | tail -1")
If the folder doesn't exist yet, start at 01. Otherwise next = that value + 1, zero-padded to 2 digits.
Step 3: Research the topic
Spawn a research subagent via delegate_task. The research must produce:
- One sharp angle / thesis — the single most provocative or useful truth about this topic
- 3-5 concrete facts or statistics (UK/EU sources preferred; US only where no EU equivalent exists)
- One real-world example or incident that makes the abstract tangible
- Quotable phrasing candidates — short, punchy, tweetable sentences
- Audience relevance — why does this matter right now to infrastructure and security professionals?
Step 4: Create video directory
terminal(command="mkdir -p {{RP_VIDEO_DIR}}/NN_slug/")
Step 5: Run three parallel agents
Use delegate_task with tasks: [...] to spawn all three simultaneously. Pass research context to each.
Agent A — Universal Video Script (video-script.md)
Write a 90-second teleprompter script for the presenter's HeyGen digital twin, designed for:
- Instagram Reels (9:16, vertical, mobile-first, caption-dependent viewers)
- LinkedIn Video (square or 9:16, professional audience, often watched muted)
- YouTube Shorts (9:16, vertical, algorithm-driven discovery)
Script structure — use exactly this format:
TOPIC: [topic name]
SPOKEN WORD COUNT TARGET: 200–230 words
PLATFORMS: Instagram Reels · LinkedIn Video · YouTube Shorts
---
[HOOK] 00:00–00:05
Spoken: ...
On-screen text: ...
Stage direction: ...
B-roll / graphic: ...
[SETUP] 00:05–00:20
Spoken: ...
On-screen text: ...
Stage direction: ...
B-roll / graphic: ...
[INSIGHT 1] 00:20–00:40
Spoken: ...
On-screen text: ...
Stage direction: ...
B-roll / graphic: ...
[INSIGHT 2] 00:40–01:00
Spoken: ...
On-screen text: ...
Stage direction: ...
B-roll / graphic: ...
[PAYOFF] 01:00–01:20
Spoken: ...
On-screen text: ...
Stage direction: ...
B-roll / graphic: ...
[CTA] 01:20–01:30
Spoken: ...
On-screen text: ...
Stage direction: ...
B-roll / graphic: ...
---
CAPTION (universal — use for all three platforms):
[3-5 lines: hook, core insight, 5 hashtags. No "link in bio".]
THUMBNAIL CONCEPT:
[One sentence describing a still frame that works as a cover image across all platforms.]
Script rules:
- Hook lands within the first 3 seconds — bold claim, provocative question, or counterintuitive fact
- Spoken text must sound natural read aloud at steady pace — no bullet points, no headers, no jargon dumps
- On-screen text: max 6 words per frame — reinforce spoken word, don't duplicate verbatim
- Stage directions: brief cues (e.g. "lean forward slightly", "pause for emphasis")
- B-roll/graphic: practical suggestions (e.g. "terminal output animation", "NCSC logo fade in")
- British English throughout
- No mid-sentence dashes — use commas, colons, or semicolons
- No fluffy openers — do not start with "I've been in infrastructure for X years"
- End CTA must be platform-neutral — no "swipe up", no "link in bio". Use "follow for more", "drop a comment", or "save this one"
Word count verification (mandatory after each draft):
After writing the script, extract and count the spoken words to verify the total is within 200–230:
python3 -c "
import sys, re
text = open(sys.argv[1]).read()
# Match 'Spoken: <text>' lines in inline-colon format
blocks = re.findall(r'^Spoken:\\s*(.*?)$', text, re.MULTILINE)
total = sum(len(b.split()) for b in blocks)
print(f'Spoken word count: {total}')
if total < 200: print('TOO LOW — expand spoken sections')
elif total > 230: print('TOO HIGH — trim spoken sections')
else: print('Within target range.')
"
Run this after every edit to the spoken text until the count is between 200 and 230. Do not guess — verify.
Agent B — LinkedIn Post (linkedin-post.md)
Write a standalone LinkedIn post — not marketing for a video or article. It stands alone as a piece of insight content.
- Hook line: must stop the scroll in the first sentence
- Body: 3-6 short paragraphs, each punchy and self-contained
- No "link in comments" — there is no link
- No "watch my video" language — this post exists independently
- 3,000 character hard limit (LinkedIn cap) — count carefully
- End with a question or provocation that invites comments
- Exactly 5 hashtags at the end
- British English, no mid-sentence dashes
- Do not open with "I've been in infrastructure for X years" or any years-of-experience framing
Agent C — Quality Check (quality-report.md)
Review both video-script.md and linkedin-post.md once drafted, producing a report covering:
- Fact accuracy — verify each statistic and claim; flag anything unverifiable or misleading
- Spoken word count — count spoken sections of video script; flag if outside 200-230 words
- Timing sense-check — does script feel paced correctly for 90 seconds at natural speech rate?
- British English — flag any Americanisms
- Dash check — flag any mid-sentence em dashes or en dashes used as parenthetical breaks
- LinkedIn character count — report exact count and flag if over 3,000
- Hook strength — rate the video hook and LinkedIn hook on 1-5 scale with reasoning
- CTA check — confirm video CTA contains no platform-specific mechanics
If issues found, list as actionable items. Do not rewrite the files — report only.
Step 6: Commit and push
terminal(command="cd {{REPO_ROOT}} && git add {{RP_VIDEO_DIR}}/NN_slug/ && git commit -m 'Add short video NN: [topic summary]' && git push", timeout=30)
Always push. Never leave new video content uncommitted.
Writer Voice & Style Guide
This section is derived from analysing a practitioner's published work across multiple platforms. The patterns below describe what the voice actually sounds like — not a theoretical style guide.
Core Voice
- Practitioner, not pundit. Speaks from experience managing real infrastructure at scale.
- British English always. -ise not -ize, colour, favour, behaviour, defence, whilst, amongst, licence, harbour, realise, analyse.
- Dry, understated wit. Surfaces naturally when the situation is absurd. "The catch, in this case, is that there is not one." / "I collect them the way people collect gym memberships: with great optimism and almost zero follow-through."
- Leads with impact, then explains mechanism. The human/operational consequence first, the technical explanation second.
Short Video Script Voice (90 seconds, spoken)
Because the short video format compresses everything, the voice translates differently:
- Hook lands by reframing or surprising. Not a question. Not a clickbait opener. A short, sharp statement of the unexpected truth.
- Sentences are shorter than in articles but maintain the same rhythm. 15-25 words spoken per sentence. Still precise. Still British English. Still no filler.
- "Here is the thing" / "Here is what matters" are still banned. Say the thing. Don't announce you're about to say it.
- End CTA is direct and platform-neutral: "Follow for more." / "Drop a comment." / "Save this one." Never "swipe up", never "link in bio."
LinkedIn Post Voice (standalone)
- Opens like telling a colleague what happened. "Ran the NCSC exercise with Rui this week." / "Microsoft Edge decrypts every single saved password the moment it launches."
- No emoji-headlines. No "🛑 What would you do if...?" — that's ad copy, not the writer's voice.
- 3-6 short paragraphs, each punchy. 3,000 character hard limit. Every sentence earns its place.
- No "with over 20 years of experience" framing — authority comes from the content, not the opener.
- Ends with a question or provocation that invites comments.
- Exactly 5 hashtags.
What NEVER Appears
- ❌ Mid-sentence dashes (em dashes, en dashes) — use commas or parentheses
- ❌ AI transition phrases: "Here's what matters", "What this means is", "Here's the thing"
- ❌ Corporate jargon: "data estate", "operational reality", "measured in inconvenience"
- ❌ Fluffy openers: "In today's digital landscape"
- ❌ Credentials-first: "With over 20 years of experience..."
- ❌ Ad-copy hooks: "Not hypothetically. In the next 60 seconds."
- ❌ Paired oppositions (language-model parallelism)
- ❌ American spellings — ever
- ❌ "It is important to note that" — just note it
- ❌ "Furthermore", "Moreover", "Additionally" — use "And"
The Test
Read it aloud. If it sounds like a LinkedIn post from someone trying to sound authoritative, cut it. If it sounds like someone who just got off a call with a vendor who overpromised and underdelivered — that is the voice.
Pre-Publish Checklist
Before saving any script or LinkedIn post, run this check:
| Pattern |
Fix |
| "delve", "tapestry", "realm", "leverage" |
Replace with plain English |
| "in order to" |
Replace with "to" |
| "it is worth [verb]ing" |
Replace with "Let me [verb]" |
| "it is important to note that" |
Delete |
| "Furthermore," / "Moreover," |
Replace with "And" or nothing |
| "Not only... but also" |
Simplify |
| "By [verb]ing..." (sentence opener) |
Rephrase |
| "One of the most [adjective]" |
Be specific or delete |
| "In today's [X]" / "In an era of" |
Delete entirely |
| Contractions missing |
Add don't/won't/it's/can't |
Run this checklist before returning. If any pattern appears, rewrite.
- Authority comes from tone and insight, not from stating credentials
Pitfalls
- Research agents may fabricate statistics. The quality check agent catches these — trust but verify. The quality report is a genuine check, not a rubber stamp.
- LinkedIn post is standalone. No "link in bio/description" CTA. The quality agent enforces this.
- Video script CTA must be platform-neutral. No "swipe up", no "link in bio". Use "follow for more", "drop a comment", "save this one".
- Spoken word count target is 200-230 words. Shorter scripts feel rushed or sparse; longer scripts exceed 90 seconds at natural speech rate.
- Hook must land within 3 seconds. Vertical video viewers decide whether to watch in the first 1-2 seconds. The hook is the single most important element.
- Git authentication: If
git push fails, report the error. The files exist locally — don't lose them.
- Delegate_task context limits: For the video script agent especially, the output format is very specific. Include the full script template in the context to ensure correct structure.
1---2name: short-videos3description: Produce 90-second universal short-video scripts (HeyGen / Instagram Reels / LinkedIn Video / YouTube Shorts) and standalone LinkedIn posts using native Hermes tools. No Claude Code dependency.4license: MIT5---67# Short Videos — Hermes-Native Video Script Pipeline89Produce a 90-second universal short-video script and standalone LinkedIn post using Hermes tools directly. **No tmux, no Claude Code CLI.**1011## Configuration Variables1213| Variable | Default | Description |14|----------|---------|-------------|15| `{{REPO_ROOT}}` | *(required)* | Path to your Git repository root, e.g. `~/projects/my-content-repo` |16| `{{RP_VIDEO_DIR}}` | `{{REPO_ROOT}}/short_videos` | Directory holding numbered video folders under the repo root |1718Before running the pipeline, set `{{REPO_ROOT}}` to your actual content repository path. All file operations reference this variable — never hardcode absolute paths.1920## Prerequisites2122- **Hermes Agent** (runtime environment)23- **Git repo** (your content repository — clone it to `{{REPO_ROOT}}`)24- **GitHub / Git remote** configured for push25- **HeyGen** (optional) — scripts are HeyGen-ready but work on any teleprompter platform26- Python 3 for word-count verification2728## When to Use2930- User says "create a short video about..." or "make a reel on..."31- User wants a LinkedIn post that stands alone (not marketing for a video or article)32- User needs a HeyGen script for their digital twin3334## Outputs Produced3536| File | Format | Description |37|------|--------|-------------|38| `video-script.md` | Markdown (90s, timestamped blocks) | Universal teleprompter script for HeyGen/Reels/Shorts/LinkedIn Video |39| `linkedin-post.md` | Markdown | Standalone LinkedIn post (no article link, ≤3,000 chars, 5 hashtags) |40| `quality-report.md` | Markdown | Fact-check, word count, British English, hook strength, character count |4142## Repo & Conventions4344- **Repo path:** `{{REPO_ROOT}}`45- **Video folders:** `{{RP_VIDEO_DIR}}/NN_slug/` — numbered sequentially, zero-padded to 2 digits (01, 02, 03...)46- **Root files:** `CLAUDE.md` (project instructions), `techblogger.md` (writer persona), `md_to_html.py`47- **Sibling pipeline:** `medium-story` writes to `unpublished_stories/` — this pipeline writes to `{{RP_VIDEO_DIR}}/` in the same repo4849## Pipeline Steps5051### Step 1: Sync the repo5253```bash54terminal(command="git -C {{REPO_ROOT}} pull --ff-only origin main", timeout=30)55```5657### Step 2: Read context files and find next video number5859Read these files from the repo root:60- `CLAUDE.md` — project-level instructions61- `techblogger.md` — writer persona6263Find the next video number:64```bash65terminal(command="ls {{RP_VIDEO_DIR}}/ 2>/dev/null | grep -E '^[0-9]+_' | sed 's/_.*//' | sort -n | tail -1")66```67If the folder doesn't exist yet, start at `01`. Otherwise next = that value + 1, zero-padded to 2 digits.6869### Step 3: Research the topic7071Spawn a research subagent via `delegate_task`. The research must produce:72- **One sharp angle / thesis** — the single most provocative or useful truth about this topic73- **3-5 concrete facts or statistics** (UK/EU sources preferred; US only where no EU equivalent exists)74- **One real-world example or incident** that makes the abstract tangible75- **Quotable phrasing candidates** — short, punchy, tweetable sentences76- **Audience relevance** — why does this matter right now to infrastructure and security professionals?7778### Step 4: Create video directory7980```bash81terminal(command="mkdir -p {{RP_VIDEO_DIR}}/NN_slug/")82```8384### Step 5: Run three parallel agents8586Use `delegate_task` with `tasks: [...]` to spawn all three simultaneously. Pass research context to each.8788#### Agent A — Universal Video Script (`video-script.md`)8990Write a 90-second teleprompter script for the presenter's HeyGen digital twin, designed for:91- **Instagram Reels** (9:16, vertical, mobile-first, caption-dependent viewers)92- **LinkedIn Video** (square or 9:16, professional audience, often watched muted)93- **YouTube Shorts** (9:16, vertical, algorithm-driven discovery)9495**Script structure — use exactly this format:**9697```markdown98TOPIC: [topic name]99SPOKEN WORD COUNT TARGET: 200–230 words100PLATFORMS: Instagram Reels · LinkedIn Video · YouTube Shorts101102---103104[HOOK] 00:00–00:05105Spoken: ...106On-screen text: ...107Stage direction: ...108B-roll / graphic: ...109110[SETUP] 00:05–00:20111Spoken: ...112On-screen text: ...113Stage direction: ...114B-roll / graphic: ...115116[INSIGHT 1] 00:20–00:40117Spoken: ...118On-screen text: ...119Stage direction: ...120B-roll / graphic: ...121122[INSIGHT 2] 00:40–01:00123Spoken: ...124On-screen text: ...125Stage direction: ...126B-roll / graphic: ...127128[PAYOFF] 01:00–01:20129Spoken: ...130On-screen text: ...131Stage direction: ...132B-roll / graphic: ...133134[CTA] 01:20–01:30135Spoken: ...136On-screen text: ...137Stage direction: ...138B-roll / graphic: ...139140---141142CAPTION (universal — use for all three platforms):143[3-5 lines: hook, core insight, 5 hashtags. No "link in bio".]144145THUMBNAIL CONCEPT:146[One sentence describing a still frame that works as a cover image across all platforms.]147```148149**Script rules:**150- Hook lands within the first 3 seconds — bold claim, provocative question, or counterintuitive fact151- Spoken text must sound natural read aloud at steady pace — no bullet points, no headers, no jargon dumps152- On-screen text: max 6 words per frame — reinforce spoken word, don't duplicate verbatim153- Stage directions: brief cues (e.g. "lean forward slightly", "pause for emphasis")154- B-roll/graphic: practical suggestions (e.g. "terminal output animation", "NCSC logo fade in")155- British English throughout156- No mid-sentence dashes — use commas, colons, or semicolons157- No fluffy openers — do not start with "I've been in infrastructure for X years"158- End CTA must be platform-neutral — no "swipe up", no "link in bio". Use "follow for more", "drop a comment", or "save this one"159160**Word count verification (mandatory after each draft):**161After writing the script, extract and count the spoken words to verify the total is within 200–230:162163```bash164python3 -c "165import sys, re166text = open(sys.argv[1]).read()167# Match 'Spoken: <text>' lines in inline-colon format168blocks = re.findall(r'^Spoken:\\s*(.*?)$', text, re.MULTILINE)169total = sum(len(b.split()) for b in blocks)170print(f'Spoken word count: {total}')171if total < 200: print('TOO LOW — expand spoken sections')172elif total > 230: print('TOO HIGH — trim spoken sections')173else: print('Within target range.')174"175```176177Run this after every edit to the spoken text until the count is between 200 and 230. Do not guess — verify.178179#### Agent B — LinkedIn Post (`linkedin-post.md`)180181Write a standalone LinkedIn post — **not** marketing for a video or article. It stands alone as a piece of insight content.182183- Hook line: must stop the scroll in the first sentence184- Body: 3-6 short paragraphs, each punchy and self-contained185- No "link in comments" — there is no link186- No "watch my video" language — this post exists independently187- 3,000 character hard limit (LinkedIn cap) — count carefully188- End with a question or provocation that invites comments189- Exactly 5 hashtags at the end190- British English, no mid-sentence dashes191- Do not open with "I've been in infrastructure for X years" or any years-of-experience framing192193#### Agent C — Quality Check (`quality-report.md`)194195Review both `video-script.md` and `linkedin-post.md` once drafted, producing a report covering:1961971. **Fact accuracy** — verify each statistic and claim; flag anything unverifiable or misleading1982. **Spoken word count** — count spoken sections of video script; flag if outside 200-230 words1993. **Timing sense-check** — does script feel paced correctly for 90 seconds at natural speech rate?2004. **British English** — flag any Americanisms2015. **Dash check** — flag any mid-sentence em dashes or en dashes used as parenthetical breaks2026. **LinkedIn character count** — report exact count and flag if over 3,0002037. **Hook strength** — rate the video hook and LinkedIn hook on 1-5 scale with reasoning2048. **CTA check** — confirm video CTA contains no platform-specific mechanics205206If issues found, list as actionable items. Do not rewrite the files — report only.207208### Step 6: Commit and push209210```bash211terminal(command="cd {{REPO_ROOT}} && git add {{RP_VIDEO_DIR}}/NN_slug/ && git commit -m 'Add short video NN: [topic summary]' && git push", timeout=30)212```213214Always push. Never leave new video content uncommitted.215216## Writer Voice & Style Guide217218This section is derived from analysing a practitioner's published work across multiple platforms. The patterns below describe what the voice actually sounds like — not a theoretical style guide.219220### Core Voice221222- **Practitioner, not pundit.** Speaks from experience managing real infrastructure at scale.223- **British English always.** -ise not -ize, colour, favour, behaviour, defence, whilst, amongst, licence, harbour, realise, analyse.224- **Dry, understated wit.** Surfaces naturally when the situation is absurd. "The catch, in this case, is that there is not one." / "I collect them the way people collect gym memberships: with great optimism and almost zero follow-through."225- **Leads with impact, then explains mechanism.** The human/operational consequence first, the technical explanation second.226227### Short Video Script Voice (90 seconds, spoken)228229Because the short video format compresses everything, the voice translates differently:230231- **Hook lands by reframing or surprising.** Not a question. Not a clickbait opener. A short, sharp statement of the unexpected truth.232- **Sentences are shorter than in articles but maintain the same rhythm.** 15-25 words spoken per sentence. Still precise. Still British English. Still no filler.233- **"Here is the thing" / "Here is what matters"** are still banned. Say the thing. Don't announce you're about to say it.234- **End CTA is direct and platform-neutral:** "Follow for more." / "Drop a comment." / "Save this one." Never "swipe up", never "link in bio."235236### LinkedIn Post Voice (standalone)237238- **Opens like telling a colleague what happened.** "Ran the NCSC exercise with Rui this week." / "Microsoft Edge decrypts every single saved password the moment it launches."239- **No emoji-headlines.** No "🛑 What would you do if...?" — that's ad copy, not the writer's voice.240- **3-6 short paragraphs, each punchy.** 3,000 character hard limit. Every sentence earns its place.241- **No "with over 20 years of experience"** framing — authority comes from the content, not the opener.242- **Ends with a question or provocation** that invites comments.243- **Exactly 5 hashtags.**244245### What NEVER Appears246247- ❌ Mid-sentence dashes (em dashes, en dashes) — use commas or parentheses248- ❌ AI transition phrases: "Here's what matters", "What this means is", "Here's the thing"249- ❌ Corporate jargon: "data estate", "operational reality", "measured in inconvenience"250- ❌ Fluffy openers: "In today's digital landscape"251- ❌ Credentials-first: "With over 20 years of experience..."252- ❌ Ad-copy hooks: "Not hypothetically. In the next 60 seconds."253- ❌ Paired oppositions (language-model parallelism)254- ❌ American spellings — ever255- ❌ "It is important to note that" — just note it256- ❌ "Furthermore", "Moreover", "Additionally" — use "And"257258### The Test259260Read it aloud. If it sounds like a LinkedIn post from someone trying to sound authoritative, cut it. If it sounds like someone who just got off a call with a vendor who overpromised and underdelivered — that is the voice.261262### Pre-Publish Checklist263264Before saving any script or LinkedIn post, run this check:265266| Pattern | Fix |267|---------|-----|268| "delve", "tapestry", "realm", "leverage" | Replace with plain English |269| "in order to" | Replace with "to" |270| "it is worth [verb]ing" | Replace with "Let me [verb]" |271| "it is important to note that" | Delete |272| "Furthermore," / "Moreover," | Replace with "And" or nothing |273| "Not only... but also" | Simplify |274| "By [verb]ing..." (sentence opener) | Rephrase |275| "One of the most [adjective]" | Be specific or delete |276| "In today's [X]" / "In an era of" | Delete entirely |277| Contractions missing | Add don't/won't/it's/can't |278279Run this checklist before returning. If any pattern appears, rewrite.280- **Authority** comes from tone and insight, not from stating credentials281282## Pitfalls283284- **Research agents may fabricate statistics.** The quality check agent catches these — trust but verify. The quality report is a genuine check, not a rubber stamp.285- **LinkedIn post is standalone.** No "link in bio/description" CTA. The quality agent enforces this.286- **Video script CTA must be platform-neutral.** No "swipe up", no "link in bio". Use "follow for more", "drop a comment", "save this one".287- **Spoken word count target is 200-230 words.** Shorter scripts feel rushed or sparse; longer scripts exceed 90 seconds at natural speech rate.288- **Hook must land within 3 seconds.** Vertical video viewers decide whether to watch in the first 1-2 seconds. The hook is the single most important element.289- **Git authentication:** If `git push` fails, report the error. The files exist locally — don't lose them.290- **Delegate_task context limits:** For the video script agent especially, the output format is very specific. Include the full script template in the context to ensure correct structure.