---
title: The pitch you win
summary: A new business pitch as a film instead of a deck. Your agent researches the prospect, writes the argument, casts several voices, builds the campaign concepts as scenes and renders the whole thing on your Mac, then brings you a cut to mark up after every round.
lede: The pitch as a film, with a cut to mark up after every round
tools: get_context, list_profiles, composition_doctor, voice_status, list_fonts, check_fonts, import_fonts, import_asset, get_asset, fetch_asset, index_image, index_folder, add_media_to_project, search_projects, create_project, project_manifest, write_project_file, read_project_file, list_project_files, add_project_note, capture_page, record_page, open_browser_window, browser_policy, request_browser_site, write_composition, preview_html, render_html, author_film, render_composition, save_kit, get_kit, list_kits, remove_background, list_effects, apply_effect, list_ai_effects, preview_ai_effect, generate_video, list_voices, preview_voice, synthesize_speech, transcribe, audio_beats, music_map, mix_audio, render_ffmpeg, list_transitions, transition_motion, render_sequence, sample_frames, job_events, list_jobs, request_review, review_status, withdraw_review, commit_to_library, name_video, list_project_outputs
works_with: agent-skills, claude-design, elevenlabs
order: 5
---

A pitch deck gets read in four minutes by someone scrolling, and the best idea in it is a bullet on slide nineteen. The same argument as a film gets watched to the end in the room, forwarded to whoever missed the meeting, and remembered as a point of view rather than a list of services.

This skill makes your agent the whole production for a new business pitch. An audit or a competitive brief diagnoses a problem. A pitch argues forward: here is what we see, what we would do, and what it is worth. Diagnosis is only the setup.

> Use /groundslate-pitch-film. We are <<YOUR AGENCY>> pitching <<THE PROSPECT>>. The ask is <<WHAT YOU WANT THEM TO AGREE TO>>. It will be watched by <<WHO IS IN THE ROOM>>. Our brand is <<WHERE YOUR BRAND LIVES>>. Bring me a cut.

Everything in <<double brackets>> is yours. The ask matters most. Without it the film wanders and the close has nothing to land on.

## Install it

Copy or download SKILL.md above.

For Claude Code, save it as `~/.claude/skills/groundslate-pitch-film/SKILL.md`.

For claude.ai and the Claude desktop app, put it in a folder named `groundslate-pitch-film`, zip the folder, and upload it under Settings, Capabilities, Skills.

## The skill

````markdown
---
name: groundslate-pitch-film
description: Turn a new business pitch into a narrated film. The agent researches the prospect, writes the argument, casts several local voices, builds campaign concepts as designed scenes, renders deterministically on your Mac and brings the human a cut to mark up after every round. Use when somebody is pitching a prospect, presenting a point of view, or wants a deck to become a film.
---

# The pitch, delivered as a film

You run the production. Research, script, casting, design, render, mix and
delivery. The human answers three questions at the start and marks up a cut
at the end of every round. Between those, work on the defaults and your own
judgement.

## A pitch is not an audit

This is the failure to avoid, and it is the most common one. The research
turns up problems, problems are concrete and easy to narrate, and forty
minutes later the film is a list of things the prospect is doing wrong. That
film loses. Nobody hires the agency that made them feel stupid.

- The diagnosis is the SETUP. It earns the right to the idea, and it is over
  inside the first third.
- The film is about what you would DO, and what it is worth. Campaign
  concepts, the plan, the year, the ask.
- Caveats do not belong on screen. Every qualifier you add to protect
  yourself reads as doubt about your own idea. Say the thing.
- Never write a line about being honest, trustworthy or transparent. People
  assume it until you raise it, and raising it makes them wonder why this is
  the one honest part.
- Pitch the whole business, not the slice you were shown. If the brief is a
  website, the website is where the argument starts, not where it ends.

## Three questions up front

1. Who is pitching whom, and whose logo goes where. Get both marks before you
   author a scene.
2. The ask. One sentence: what do you want them to agree to when the lights
   come up. A retainer, a project, a next meeting, a year.
3. Who is in the room. A founder, a marketing team and a procurement panel
   need three different films.

Then state the defaults once and proceed: 1920x1080 at 30fps, several
distinct local voices, music across the whole film ducked beneath every
spoken line, and a cut in front of them at the end of every round.

## Preflight, before any promise

- `get_context` and confirm the PROFILE by name. Everything lands in the
  active profile and the human can switch it at any moment. Pass `profile=`
  on every library call after that.
- `composition_doctor` proves the render path now rather than at scene twelve.
- `voice_status` for the narration engine. Relay its fix sentence verbatim.
- `list_fonts` for the families the font library resolves, then `check_fonts`
  on each page once it is written: it preflights a page, not a family.
  `render_html` refuses a missing font rather than substituting it.
- `create_project` named for the prospect and the quarter, and hold the `prj_`
  id. Everything binds to it. See the source of truth section: this is the
  part that decides whether anyone can pick the work up after you.

## Research the prospect, then capture them

Your own research skills do the reading. GroundSlate does the pictures, and
for a pitch the pictures are mostly the prospect's own estate.

- `capture_page` for stills and `record_page(scroll=True)` for footage of
  their site, their booking flow, their menu, their locations, their
  competitors. A film about a business should contain that business.
- `consent="reject"` so a cookie banner is never in your plate.
- Capture answers to the human's site policy. `browser_policy` reads it,
  `request_browser_site` asks with your reason, and only they can grant it.
- `fetch_asset` with the project id for images that already exist on the web,
  so they download, index, bind and carry a source receipt in one call. Leave
  `recognize` off: enrolling a prospect's staff as identities in this profile
  is not something a pitch should do on its way past.
- Harvest wide. A pitch that reuses one photograph six times looks like it was
  made from one photograph. Count how many times each asset reaches the
  screen and fix the ones that repeat.

Then distill to a spine you can say out loud in four sentences. If you cannot,
the film does not have an argument yet and no amount of design will hide it.

## Cast several voices

One voice for thirteen minutes is a lecture. Cast the film.

- `list_voices` in the profile that holds them, which may not be the profile
  the film is in. `preview_voice` before you commit.
- Give the roles different jobs: the argument, the evidence, the client's own
  world, the close. A roll of place names or product names in many voices is
  a cheap and very effective texture.
- `synthesize_speech` takes `lines` as a LIST OF PLAIN STRINGS. Pass a dict
  and it is stringified and spoken aloud, punctuation and all.
- A cloned voice inherits its source recording. A dull recording produces a
  voice that drops word final consonants, so plurals vanish and "machines"
  becomes "machine". Measure the acoustics rather than trusting a transcript,
  and if a voice fails this way the real fix is a brighter reference, not
  another take. Synthesis is deterministic: the same text in the same voice
  returns the same audio, so re-recording without changing the words is a
  no-op.
- Write to fit. If a line has to be time compressed to reach its slot the read
  gets denser toward the end and a listener hears it as rushing. Cut words
  instead.

## Campaign concepts are scenes, not bullets

The creative is the reason they hire you, so it gets the most screen time and
the best design.

- One concept per scene block, named, with the idea stated in a single line
  set large, then shown rather than described.
- Show the artefact. A campaign concept as a headline plus a body paragraph is
  a slide. As a poster, a phone screen, a door, a room, a page, it is an idea.
- Reuse one visual system across the concepts so they read as a body of work
  from one agency rather than four unrelated ideas.
- Vary composition between scenes and never inside one.

## The scene rules that survive contact

- One statement per scene, set large enough to read from the back of a room.
  A line that will not cut is two scenes.
- Small type is only ever verbatim evidence. A sentence set small is the
  narration leaking onto the picture.
- Motion is how a thing arrives and leaves, not a state it lives in. Type
  enters, settles, holds still while it is being read.
- The layout is fixed from t=0. Nothing already on screen moves because
  something new arrived.
- Fill the frame. Half an empty frame is type set too small.

## The close is the ask, and it should be cut to the music

The last thirty seconds are the only part everyone remembers.

- `audio_beats` the bed you are closing on and get its real tempo. Do not
  trust a single reading: verify it against a click of known tempo, because
  a beat tracker can report 117.5 for a track that is exactly 120.
- Lift the bed to a round tempo with `atempo` if it is close, then build the
  close on the bar. At 120 BPM a bar is 2.000 seconds, which at 30fps is
  exactly 60 frames.
- Cut the close on bar lines with HARD CUTS. A dissolve smears a downbeat.
- Prove the lock by measuring: the error between each cut and its bar line
  should be CONSTANT. A constant offset is a locked tempo; a growing one is
  drift, and drift means the tempo is wrong.
- End on the ask, then the mark, held.

## Everything happens inside GroundSlate

The tools run on the human's Mac, in the background, on a queue. They are
faster than you and they cost none of your context.

- `write_composition` writes an authored page where the renderers can open it.
  Never reach for a filesystem bridge outside GroundSlate.
- `render_sequence` assembles N clips and N-1 seams in one call and encodes
  every frame exactly once. `author_film` expresses scenes and seams as one
  composition.
- `mix_audio` IS the ducking. Pass voice and music, take the `ffmpeg_argv` it
  returns, bake it with `render_ffmpeg`. Its `threshold` is a linear amplitude
  and not decibels, which is the one parameter people get wrong.
- `list_transitions` catalogs both engines and `transition_motion` explains a
  move. Choose on the measured `seam_seconds`, not the `cost` tier.
- `generate_video` for AI plates. Keep clips short, blur them before use, and
  author the camera move yourself from `t` rather than asking the model for
  one: a model's move is whatever it decided and cannot be dialled down
  without another render.

Do not bake early. A film that exists only as a finished file has to be
rebuilt in full for a one word change.

## Timing is frames

- A transition overlaps its two shots and never adds time. A cut runs
  `sum(clip frames) - sum(seam frames)`.
- Declare durations that land on whole frames. 18.15 seconds at 30fps is
  544.5 frames and floors to 544, and nothing warns you.
- Once audio is placed against scene starts, a duration change moves every
  scene after it. Freeze durations before you place a cue.
- Verify frame counts with ffprobe on the delivered file. A shared queue can
  lose a job without writing a file and without a terminal state.
- Keep one pixel format and one colour range across the whole film.

## Motion has a floor

- A drift under about 0.3 px per frame emits identical frames, and a ground
  crushed to near black cannot register motion at all. Clear 8 px per second
  on a ground you can see.
- Text over a moving plate is not a moving scene. If you paused the plate,
  would the scene still be moving? Measure the type and graphic layers
  separately from the background.

## An instrument that cannot fail is not evidence

- Prove the red before you trust the green.
- Whisper restores plurals its language model expects, so a transcript will
  tell you a word was spoken when the audio does not contain it. Never use a
  transcript as evidence for anything acoustic.
- Beware a default that is indistinguishable from a real answer.
- Look at the thing. Looking settles cases measurement cannot.

## Never invent a fact about the prospect

- Numbers only they have stay as visible placeholders. A price you guessed
  will be the one thing they notice.
- If a claim needs a source you do not have, cut the claim.
- A generated answer, screenshot or quote presented as real is the fastest way
  to lose a pitch and the account.

## The project is the source of truth

The test is concrete: a DIFFERENT agent, tomorrow, given only the profile and
the project id, must be able to pick this up and continue. If they cannot, the
production failed however good the film is.

- `write_project_file` for the spine, the script, the cue tables, the note map
  from every review round, the voice ids and the measurements that surprised
  you.
- `add_project_note` for a decision AND its reason. The reason is the part a
  later agent cannot reconstruct.
- Bind media as it arrives. `commit_to_library` the finals with the project.
- Nothing important lives only in the conversation or in a scratch directory.

## Show them, every round

- End every round with `request_review(source, ask, agent=, profile=)`.
  ALWAYS pass an `ask`: with one the window carries a verdict bar, without one
  it is a show that accepts notes and gives no way to submit them. ALWAYS pass
  `agent=`, or you are recorded as the human and the raise skips your review.
- Read `placed` back and say what it says: `opened`, `waiting` (running but
  not frontmost, so the Dock icon is bouncing), or `saved` (app is shut).
- `review_status` for the notes. Each carries an anchor with a time and
  sometimes a drawn region. Work from the anchor, not your reading of the
  sentence.
- `withdraw_review` takes back a superseded question of your own. It refuses
  one that has been answered or commented on, which is correct.
- Report per note: DONE, NOT DONE or PARTIAL, with evidence. A claim is not
  evidence. Never report a note done that you did not verify.

## Report like a producer

- Keep working while renders run. Never make somebody watch a progress bar.
- Say what resolved and what did not after every batch step.
- End with where the film is, what it is called, the ask it closes on, and
  anything you could not verify.
````
