@officexapp/vidfarm-devcli 0.21.59 → 0.21.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vidfarm
3
- skill_version: 0.21.59
3
+ skill_version: 0.21.60
4
4
  description: Use Vidfarm as a director. Run a strategy **consultation** (the `brainstorm/*` chain — cold-start interview, awareness stages, persuasive angles, hooks, product placement). Answer "give me content ideas" / "what should I post" / "I need 30 videos this month" from the bundled idea banks (50 content frames x 5 awareness stages x 44 problem angles). Browse/add inspiration videos, browse the free public raws catalog BY CATEGORY (curated shelves like scroll-stoppers/greenscreen/reaction — the cheapest way to source footage for one video, and a ready-made clip pool for bulk scripting N variants), fork a template into a composition, edit it in the Trackpad Editor (timeline-based like Premiere/DaVinci), auto-decompose source video into scenes, render to MP4, approve into a shareable post, and schedule it. Includes login, provider keys, discovery, versioning, uploads/downloads, and billing. Every step is available as raw REST; `vidfarm-devcli` wraps those routes and composes the file-backed scripting flows.
5
5
  ---
6
6
 
@@ -488,7 +488,7 @@ You may be running as the **in-web AI chat** (the /editor copilot, the chat dock
488
488
  | `references/hooks-and-virality.md` | ~295 ln | **Before writing ANY hook, caption script, or re-theme**, and before a hook-variant batch. The four charges, three gates, banned openers, loop mechanics. This is the craft; the rest of the pack is mechanics |
489
489
  | `references/reviewing-renders.md` | ~140 ln | **Before you report a video as done**, or grade someone else's. The holistic pass, the common defects, frozen-render and audio verification |
490
490
  | `references/onboarding.md` | ~80 ln | Cold-start interviews, **consultations** (the `brainstorm/*` chain), strategy docs, durable director context |
491
- | `references/content-ideas.md` | ~335 ln | **"Give me content ideas" / "what should I post" / a month of posts.** The three banks — 50 content frames, the 5-stage awareness ladder (with each stage's frames, angles and permitted ask), and 44 problem angles — plus **the subject pool** (adjacent topics inside the niche, so 50 frames are not 50 versions of one sentence), the monthly stage mix, the frame × angle × stage grid, and frame → format notes |
491
+ | `references/content-ideas.md` | ~490 ln | **"Give me content ideas" / "what should I post" / a month of posts.** The three banks — 50 content frames, the 5-stage awareness ladder (with each stage's frames, angles and permitted ask), and 44 problem angles — plus **the subject pool** (adjacent topics inside the niche, so 50 frames are not 50 versions of one sentence), the monthly stage mix, the frame × angle × stage grid, and frame → format notes |
492
492
  | `references/rest-api.md` | ~85 ln | Only when the user asks for REST, an endpoint/schema, or direct HTTP integration. It is an index — follow its domain links; do not preload it into ordinary director conversations |
493
493
 
494
494
  **Recipes — step-by-step procedures. When a recipe matches the task, prefer it over the broad reference.**
@@ -4,7 +4,7 @@ Read this when a director says **"give me content ideas"**, "what should I post"
4
4
 
5
5
  **This also runs FIRST for a brand-new director, before the cold-start interview.** It needs one line of offer, not an interview; it is offline, free, and keyless; and it hands the director 20+ titled videos in about a minute. That is the easiest win available on turn one, and their reactions to the list ("this one, not that one") are better raw material than anything an interview gets cold. Run it, save `content-ideas.md`, then offer the interview as the way to turn ideas into a strategy — `references/onboarding.md` → *Start with content ideas*.
6
6
 
7
- **What this is — three banks, not one.** An idea is a point in a small grid, and this reference holds all three axes:
7
+ **What this is — four banks, not one.** An idea is a point in a small grid, and this reference holds every axis:
8
8
 
9
9
  | Axis | Bank | Question it answers |
10
10
  |---|---|---|
@@ -12,12 +12,13 @@ Read this when a director says **"give me content ideas"**, "what should I post"
12
12
  | **Frame** | 50 content frames | *What is the video the story of?* (`the rise of`, `then vs now`, `one decision that changed everything`) |
13
13
  | **Awareness** | 5 stages | *What does the viewer already know?* (unaware → problem-aware → solution-aware → product-aware → most-aware) |
14
14
  | **Angle** | 44 problem angles | *From which side do we talk about the problem?* (the hidden cost, the myth, the confession, the honest downside) |
15
+ | **Format** | 40 ad formats | *What does the finished video look like?* (an iPhone note, a Reddit thread, a tier list, a warning label, a claymation) |
15
16
 
16
17
  The subject axis carries a **distance**: how far from the offer the video is allowed to sit. Distance is what produces genuinely different videos rather than differently-shaped ones, and the **turn back to the offer** is what keeps distance from becoming irrelevance — see *Distance* below. Freeze the subject at distance zero and no amount of frames or angles will save the list.
17
18
 
18
- A **frame** is a reusable shape for a video's subject — not a hook line, not a script. You pour the director's topic into it: `the rise of` + `dropshipping supplements` → *"The rise of the supplement dropship store"*. An **angle** decides which face of the problem that video shows; the same frame at two angles is two genuinely different videos. An **awareness stage** decides who it is allowed to be for — the same idea aimed at a stranger and at a buyer needs different first ten seconds and a different ask.
19
+ A **frame** is a reusable shape for a video's subject — not a hook line, not a script. You pour the director's topic into it: `the rise of` + `dropshipping supplements` → *"The rise of the supplement dropship store"*. An **angle** decides which face of the problem that video shows; the same frame at two angles is two genuinely different videos. An **awareness stage** decides who it is allowed to be for — the same idea aimed at a stranger and at a buyer needs different first ten seconds and a different ask. A **format** decides what the thing on screen actually is — the same idea as an iPhone note, as a tier list, and as a warning label is three shoots, three thumbnails, and three different scroll behaviours.
19
20
 
20
- **The grid is where the volume comes from.** 50 frames × 44 angles × 5 stages, over a pool of adjacent subjects, is not a number to take literally, but it is why "I need 30 videos this month" is an easy ask, not a hard one. Vary **two** axes across a set and it never reads as repeats. Vary only one and it does — and the axis most often left frozen is the subject, because the offer line is right there and it is easy to paste.
21
+ **The grid is where the volume comes from.** 50 frames × 44 angles × 5 stages × 40 formats, over a pool of adjacent subjects, is not a number to take literally, but it is why "I need 30 videos this month" is an easy ask, not a hard one. Vary **two** axes across a set and it never reads as repeats. Vary only one and it does — and the axis most often left frozen is the subject, because the offer line is right there and it is easy to paste.
21
22
 
22
23
  **How to use it (the loop).**
23
24
 
@@ -26,8 +27,9 @@ A **frame** is a reusable shape for a video's subject — not a hook line, not a
26
27
  3. **Spread across awareness stages, not just frames.** Most directors post everything at one stage — usually product-aware, because that is the stage they live in — and then wonder why the account does not grow. Cover the ladder deliberately; the default monthly mix is in *Spreading a month across the ladder* below. Say the stage next to each idea.
27
28
  4. **Pick frames and angles, don't dump the lists.** Choose 10–20 combinations that actually fit the topic. Label each idea `frame · angle · stage` so the director can say "more like that one" and you know exactly which axis they mean.
28
29
  5. **Write each idea as a title, not a frame.** Output `"The one pricing mistake that killed our first 400 orders"`, not `"one mistake that changed everything — about pricing"`. A frame that stays abstract is not an idea yet.
29
- 6. **Then run it through the hook harness.** A content idea is the *subject*; it is not the four charges. Every idea a director picks still needs hook / loop / payoff / bait written before the timeline `references/hooks-and-virality.md`. The frames on this list are deliberately curiosity-shaped, which makes the loop easy to name, but never skip that pass.
30
- 7. **Batch it properly.** If the director wants the whole set produced, that is scripting mode with a `HARNESS.md` — `recipes/bulk-scripting-with-a-harness.md`. One idea per video, one line in the plan file, with its stage and angle recorded so the set stays balanced.
30
+ 6. **Give each idea a format.** The title says what the video is about; the format says what it *looks like* see *The ad formats* below. Name it on the line (`iphone notes`, `tier list`, `warning`) so the shoot is decided before production, and rotate it so a month does not arrive as thirty talking heads.
31
+ 7. **Then run it through the hook harness.** A content idea is the *subject*; it is not the four charges. Every idea a director picks still needs hook / loop / payoff / bait written before the timeline — `references/hooks-and-virality.md`. The frames on this list are deliberately curiosity-shaped, which makes the loop easy to name, but never skip that pass.
32
+ 8. **Batch it properly.** If the director wants the whole set produced, that is scripting mode with a `HARNESS.md` — `recipes/bulk-scripting-with-a-harness.md`. One idea per video, one line in the plan file, with its stage and angle recorded so the set stays balanced.
31
33
 
32
34
  **Give lots when asked.** "Give me content ideas" means volume. Return **20+ titled ideas** by default, grouped by frame family or by awareness stage, not three polite suggestions. The director prunes; you supply.
33
35
 
@@ -355,6 +357,83 @@ An angle is **which side of the problem the video approaches from**. It is not a
355
357
  - the cost of waiting — the same decision made now vs in six months, priced
356
358
  - the first-mover gap — what the early ones get that the late ones cannot
357
359
 
360
+ ### The ad formats — 40 executions
361
+
362
+ A format is **what the finished video is, as an object**. Not what it is about (frame), not which side of the problem it comes from (angle), not who it is for (stage), and not the first line (hook). `the hidden cost` `of the van receipts` `for a problem-aware viewer` is an idea; whether it arrives as an iPhone note, a Trustpilot screenshot or a claymation is the format, and the director still has to choose one before anybody films.
363
+
364
+ **Why it is a bank and not a taste decision.** Left to taste, a director shoots the same talking head forty times and blames the ideas. The format is also the axis that costs the least to vary — the research, the title and the script survive a format swap intact — so it is the cheapest way to turn one idea that worked into four posts that do not read as reposts.
365
+
366
+ `vidfarm ideas --formats` prints the bank; `--format <family or name>` filters it.
367
+
368
+ **Fake-artifact formats — the video pretends to be something that is not an ad**
369
+
370
+ - iphone notes — the pitch typed into the notes app, screen-recorded, no production at all
371
+ - text message — the conversation that sells it, two people, read at the speed of reading
372
+ - email screenshot — a real inbox: a complaint, a supplier reply, a refund thread
373
+ - google search — the query they actually type, and what the results fail to answer
374
+ - reddit style — the thread, the top comment, the reply that names the product
375
+ - ig story — the casual story frame, sticker and all, reposted as the ad
376
+ - trustpilot reviews — the review wall, scrolled, with the one-star ones left in
377
+ - breaking news — the news lower-third and the anchor voice, applied to a small thing
378
+ - native — no ad markers at all: it looks like the platform's ordinary content
379
+
380
+ **List & ranking formats — the count is the promise**
381
+
382
+ - x reasons why — the numbered case, one reason per beat, the count in the first frame
383
+ - x signs — a checklist the viewer scores themselves against
384
+ - tier list — S to F on screen, the product placed last and defended
385
+ - hack 101 — one trick, taught properly, in under a minute
386
+ - stat headline — one number, held on screen, everything else in service of it
387
+
388
+ **Two-column formats — the comparison is the argument**
389
+
390
+ - us vs them — the direct competitive split, named or unnamed
391
+ - us vs us — the old version against the new one; no competitor is needed
392
+ - new vs old — the category's past against its present
393
+ - problem vs solution — left frame breaks, right frame works, same input
394
+ - myth vs fact — the repeated sentence, then the correction, side by side
395
+ - venn diagram — two circles, and the product sits in the overlap
396
+
397
+ *These six overlap with the contrast frames above, and that is not a duplicate — `problem vs solution` as a **frame** is what the video is the story of, and as a **format** it is the split on screen. Use one as the format only when the frame is a contrast too. A video cannot carry two comparisons; that is the "do not stack two frames" rule wearing a new hat.*
398
+
399
+ **Pattern-interrupt formats — it opens by refusing to sell**
400
+
401
+ - don't buy this — the disqualification opener, then who it *is* for
402
+ - don't be an idiot — the blunt correction; earns attention, spends goodwill
403
+ - we're sorry — the apology format: an owned mistake, then the fix
404
+ - side effect — the benefit stated as a warning label
405
+ - zero stars — the worst review, read out, and answered
406
+ - you can avoid — the outcome named first, the escape route second
407
+
408
+ **Alert & urgency formats — the shape of an announcement, not an ad**
409
+
410
+ - warning — the hazard sign, the deadline, the consequence of waiting
411
+ - low stock alert — the shelf, the count, the date it runs out
412
+ - case of emergency — break-glass framing: the thing to do when it goes wrong
413
+ - bundle offer — what is in the box, itemised, priced against the parts
414
+
415
+ **Proof formats — something visibly changes on camera**
416
+
417
+ - customer testimonial — their words, their room, their number
418
+ - transformation — before and after in one cut, same frame, same light
419
+ - crossed out problems — the list of pains, struck through one at a time
420
+
421
+ **Made-look formats — the production style carries it**
422
+
423
+ - whiteboard — drawn while spoken; the hand is the retention device
424
+ - doodle — rough marker illustration over the footage
425
+ - meme — the format the niche already shares, recaptioned at a real pain
426
+ - claymation — stop-motion or clay-look; the craft is the scroll-stopper
427
+ - greenscreen — the presenter keyed over the artifact they are reacting to
428
+ - text on skin — the words written on a hand, an arm, a face
429
+ - ai podcast — two synthetic hosts discussing it, clipped like a podcast
430
+
431
+ **Choosing one.** Match the format to the stage, not to the mood. Fake-artifact and made-look formats carry stage 1 and 2, because they read as content rather than as an ad. Two-column and list formats carry stage 3, because they explain. Proof and pattern-interrupt formats carry stage 4, because they answer an objection. Alert formats carry stage 5, and only stage 5 — a warning label shown to a stranger is a scroll.
432
+
433
+ **The honesty rule, and it is the important one.** Several of these formats work by imitating a *record*: a review wall, an inbox, a search result, a news bulletin, a stock count. An imitation of a record that states something untrue is a fabricated record, and it is the client's problem the moment it posts. So: use a real screenshot where a real one exists; where the artifact is staged, keep every claim inside it true and checkable; never stage a third party's review, message or verdict; and never invent a deadline or a stock number that is not real. The same flag-it-for-checking rule from *Distance* applies to every number the artifact shows.
434
+
435
+ **Do not let the format become the idea.** "Let's do a tier list" is not a content idea — it is a shoot with nothing in it. Pick the subject, the angle and the stage first; the format is the last field, and it is the one you change when an idea that worked deserves a second post.
436
+
358
437
  ### Frame × angle × stage — the grid
359
438
 
360
439
  The grid is the answer to "give me 30 different videos" and to "I already made a video about that."
@@ -364,25 +443,26 @@ The grid is the answer to "give me 30 different videos" and to "I already made a
364
443
  3. Pick an **angle** that fits that stage (each stage above lists its five).
365
444
  4. Pick a **frame** that carries the angle (each stage above lists its six).
366
445
  5. Write the title. If the title does not say the angle out loud, the pairing was wrong — go back to step 3, not step 4.
446
+ 6. Pick a **format** the stage can carry, and write it on the row. It is the last field, and the only one you may change on its own.
367
447
 
368
448
  Worked example, one topic (`bookkeeping for solo trades`), one frame family, four angles, four different videos:
369
449
 
370
- | Stage | Angle | Frame | Title |
371
- |---|---|---|---|
372
- | 1 | the daily friction | the psychology of | *"Why every tradie has a glovebox full of receipts"* |
373
- | 2 | the hidden cost | why it failed | *"The £3,400 a year that disappears in your van"* |
374
- | 3 | the false solution | myth vs reality | *"A shoebox is not a filing system, and HMRC agrees"* |
375
- | 4 | the price objection | cheap vs expensive | *"£49 a month vs the accountant's £900 catch-up bill"* |
450
+ | Stage | Angle | Frame | Format | Title |
451
+ |---|---|---|---|---|
452
+ | 1 | the daily friction | the psychology of | native | *"Why every tradie has a glovebox full of receipts"* |
453
+ | 2 | the hidden cost | why it failed | stat headline | *"The £3,400 a year that disappears in your van"* |
454
+ | 3 | the false solution | myth vs reality | myth vs fact | *"A shoebox is not a filing system, and HMRC agrees"* |
455
+ | 4 | the price objection | cheap vs expensive | us vs them | *"£49 a month vs the accountant's £900 catch-up bill"* |
376
456
 
377
457
  **When a director says "I already covered that."** Hold the frame, change the angle. Same subject, new video, and it is the cheapest idea in the bank to produce because the research is already done.
378
458
 
379
459
  **When a set feels repetitive.** Check which axis you froze — and check the **subject** first, because it is the one that hides. Thirty ideas that vary only the frame, on one pasted offer sentence, at one stage and one angle, are thirty versions of one video. Vary two axes minimum, and never let the subject be the constant.
380
460
 
381
- ### Frame → format notes
461
+ ### Frame → build notes
382
462
 
383
- The frame also suggests how to build it, which saves a planning round:
463
+ The frame also suggests how to build it, which saves a planning round. This is the *default* build; a format from the bank above overrides it:
384
464
 
385
- | Frame family | Natural format | Build notes |
465
+ | Frame family | Natural build | Build notes |
386
466
  |---|---|---|
387
467
  | Contrast (`then vs now`, `cheap vs expensive`) | Split screen or A/B beat pairs | Cheapest to produce — two stills or two clips per beat. Great for the cutout/sticker explainer style. |
388
468
  | Hidden-knowledge (`what nobody noticed`, `the untold story`) | Talking head, or footage + kinetic captions | The loop writes itself; state the timestamp it closes at anyway. |
@@ -404,3 +484,6 @@ The frame also suggests how to build it, which saves a planning round:
404
484
  - **Do not hand over a distant idea with no turn written.** A video about Napoleon's field library, for a book app, is a great video and a dead one until somebody writes the line that reaches the offer. Write the turn with the idea, in the same breath, or drop the idea.
405
485
  - **Do not let the whole list become dated trivia.** "Be concrete" pushes a model straight into "in 1978, a man…". Fifty history videos is one idea fifty times, exactly like the frozen subject. Spread the proof types.
406
486
  - **Do not state a date, a number or a record without flagging it for checking.** The editor films what the brief says. A wrong figure is the director's problem the moment it posts, not the writer's.
487
+ - **Do not pick the format first.** "Let's do a tier list" is a shoot with no idea in it. The format is the last field on the row, after the subject, the angle and the stage.
488
+ - **Do not run one format for a month.** Thirty talking heads and thirty tier lists fail the same way, and the format is the cheapest axis to rotate — the script survives the swap.
489
+ - **Do not fabricate the artifact a format imitates.** A staged review wall, a staged inbox, an invented stock count or an invented deadline is a fabricated record with the client's name on it. Use the real screenshot, or keep every claim inside the staged one true.
package/SKILL.director.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vidfarm
3
- skill_version: 0.21.59
3
+ skill_version: 0.21.60
4
4
  description: Use Vidfarm as a director. Run a strategy **consultation** (the `brainstorm/*` chain — cold-start interview, awareness stages, persuasive angles, hooks, product placement). Answer "give me content ideas" / "what should I post" / "I need 30 videos this month" from the bundled idea banks (50 content frames x 5 awareness stages x 44 problem angles). Browse/add inspiration videos, browse the free public raws catalog BY CATEGORY (curated shelves like scroll-stoppers/greenscreen/reaction — the cheapest way to source footage for one video, and a ready-made clip pool for bulk scripting N variants), fork a template into a composition, edit it in the Trackpad Editor (timeline-based like Premiere/DaVinci), auto-decompose source video into scenes, render to MP4, approve into a shareable post, and schedule it. Includes login, provider keys, discovery, versioning, uploads/downloads, and billing. Every step is available as raw REST; `vidfarm-devcli` wraps those routes and composes the file-backed scripting flows.
5
5
  ---
6
6
 
@@ -488,7 +488,7 @@ You may be running as the **in-web AI chat** (the /editor copilot, the chat dock
488
488
  | `references/hooks-and-virality.md` | ~295 ln | **Before writing ANY hook, caption script, or re-theme**, and before a hook-variant batch. The four charges, three gates, banned openers, loop mechanics. This is the craft; the rest of the pack is mechanics |
489
489
  | `references/reviewing-renders.md` | ~140 ln | **Before you report a video as done**, or grade someone else's. The holistic pass, the common defects, frozen-render and audio verification |
490
490
  | `references/onboarding.md` | ~80 ln | Cold-start interviews, **consultations** (the `brainstorm/*` chain), strategy docs, durable director context |
491
- | `references/content-ideas.md` | ~335 ln | **"Give me content ideas" / "what should I post" / a month of posts.** The three banks — 50 content frames, the 5-stage awareness ladder (with each stage's frames, angles and permitted ask), and 44 problem angles — plus **the subject pool** (adjacent topics inside the niche, so 50 frames are not 50 versions of one sentence), the monthly stage mix, the frame × angle × stage grid, and frame → format notes |
491
+ | `references/content-ideas.md` | ~490 ln | **"Give me content ideas" / "what should I post" / a month of posts.** The three banks — 50 content frames, the 5-stage awareness ladder (with each stage's frames, angles and permitted ask), and 44 problem angles — plus **the subject pool** (adjacent topics inside the niche, so 50 frames are not 50 versions of one sentence), the monthly stage mix, the frame × angle × stage grid, and frame → format notes |
492
492
  | `references/rest-api.md` | ~85 ln | Only when the user asks for REST, an endpoint/schema, or direct HTTP integration. It is an index — follow its domain links; do not preload it into ordinary director conversations |
493
493
 
494
494
  **Recipes — step-by-step procedures. When a recipe matches the task, prefer it over the broad reference.**
@@ -3643,7 +3643,7 @@ Read this when a director says **"give me content ideas"**, "what should I post"
3643
3643
 
3644
3644
  **This also runs FIRST for a brand-new director, before the cold-start interview.** It needs one line of offer, not an interview; it is offline, free, and keyless; and it hands the director 20+ titled videos in about a minute. That is the easiest win available on turn one, and their reactions to the list ("this one, not that one") are better raw material than anything an interview gets cold. Run it, save `content-ideas.md`, then offer the interview as the way to turn ideas into a strategy — `references/onboarding.md` → *Start with content ideas*.
3645
3645
 
3646
- **What this is — three banks, not one.** An idea is a point in a small grid, and this reference holds all three axes:
3646
+ **What this is — four banks, not one.** An idea is a point in a small grid, and this reference holds every axis:
3647
3647
 
3648
3648
  | Axis | Bank | Question it answers |
3649
3649
  |---|---|---|
@@ -3651,12 +3651,13 @@ Read this when a director says **"give me content ideas"**, "what should I post"
3651
3651
  | **Frame** | 50 content frames | *What is the video the story of?* (`the rise of`, `then vs now`, `one decision that changed everything`) |
3652
3652
  | **Awareness** | 5 stages | *What does the viewer already know?* (unaware → problem-aware → solution-aware → product-aware → most-aware) |
3653
3653
  | **Angle** | 44 problem angles | *From which side do we talk about the problem?* (the hidden cost, the myth, the confession, the honest downside) |
3654
+ | **Format** | 40 ad formats | *What does the finished video look like?* (an iPhone note, a Reddit thread, a tier list, a warning label, a claymation) |
3654
3655
 
3655
3656
  The subject axis carries a **distance**: how far from the offer the video is allowed to sit. Distance is what produces genuinely different videos rather than differently-shaped ones, and the **turn back to the offer** is what keeps distance from becoming irrelevance — see *Distance* below. Freeze the subject at distance zero and no amount of frames or angles will save the list.
3656
3657
 
3657
- A **frame** is a reusable shape for a video's subject — not a hook line, not a script. You pour the director's topic into it: `the rise of` + `dropshipping supplements` → *"The rise of the supplement dropship store"*. An **angle** decides which face of the problem that video shows; the same frame at two angles is two genuinely different videos. An **awareness stage** decides who it is allowed to be for — the same idea aimed at a stranger and at a buyer needs different first ten seconds and a different ask.
3658
+ A **frame** is a reusable shape for a video's subject — not a hook line, not a script. You pour the director's topic into it: `the rise of` + `dropshipping supplements` → *"The rise of the supplement dropship store"*. An **angle** decides which face of the problem that video shows; the same frame at two angles is two genuinely different videos. An **awareness stage** decides who it is allowed to be for — the same idea aimed at a stranger and at a buyer needs different first ten seconds and a different ask. A **format** decides what the thing on screen actually is — the same idea as an iPhone note, as a tier list, and as a warning label is three shoots, three thumbnails, and three different scroll behaviours.
3658
3659
 
3659
- **The grid is where the volume comes from.** 50 frames × 44 angles × 5 stages, over a pool of adjacent subjects, is not a number to take literally, but it is why "I need 30 videos this month" is an easy ask, not a hard one. Vary **two** axes across a set and it never reads as repeats. Vary only one and it does — and the axis most often left frozen is the subject, because the offer line is right there and it is easy to paste.
3660
+ **The grid is where the volume comes from.** 50 frames × 44 angles × 5 stages × 40 formats, over a pool of adjacent subjects, is not a number to take literally, but it is why "I need 30 videos this month" is an easy ask, not a hard one. Vary **two** axes across a set and it never reads as repeats. Vary only one and it does — and the axis most often left frozen is the subject, because the offer line is right there and it is easy to paste.
3660
3661
 
3661
3662
  **How to use it (the loop).**
3662
3663
 
@@ -3665,8 +3666,9 @@ A **frame** is a reusable shape for a video's subject — not a hook line, not a
3665
3666
  3. **Spread across awareness stages, not just frames.** Most directors post everything at one stage — usually product-aware, because that is the stage they live in — and then wonder why the account does not grow. Cover the ladder deliberately; the default monthly mix is in *Spreading a month across the ladder* below. Say the stage next to each idea.
3666
3667
  4. **Pick frames and angles, don't dump the lists.** Choose 10–20 combinations that actually fit the topic. Label each idea `frame · angle · stage` so the director can say "more like that one" and you know exactly which axis they mean.
3667
3668
  5. **Write each idea as a title, not a frame.** Output `"The one pricing mistake that killed our first 400 orders"`, not `"one mistake that changed everything — about pricing"`. A frame that stays abstract is not an idea yet.
3668
- 6. **Then run it through the hook harness.** A content idea is the *subject*; it is not the four charges. Every idea a director picks still needs hook / loop / payoff / bait written before the timeline `references/hooks-and-virality.md`. The frames on this list are deliberately curiosity-shaped, which makes the loop easy to name, but never skip that pass.
3669
- 7. **Batch it properly.** If the director wants the whole set produced, that is scripting mode with a `HARNESS.md` — `recipes/bulk-scripting-with-a-harness.md`. One idea per video, one line in the plan file, with its stage and angle recorded so the set stays balanced.
3669
+ 6. **Give each idea a format.** The title says what the video is about; the format says what it *looks like* see *The ad formats* below. Name it on the line (`iphone notes`, `tier list`, `warning`) so the shoot is decided before production, and rotate it so a month does not arrive as thirty talking heads.
3670
+ 7. **Then run it through the hook harness.** A content idea is the *subject*; it is not the four charges. Every idea a director picks still needs hook / loop / payoff / bait written before the timeline — `references/hooks-and-virality.md`. The frames on this list are deliberately curiosity-shaped, which makes the loop easy to name, but never skip that pass.
3671
+ 8. **Batch it properly.** If the director wants the whole set produced, that is scripting mode with a `HARNESS.md` — `recipes/bulk-scripting-with-a-harness.md`. One idea per video, one line in the plan file, with its stage and angle recorded so the set stays balanced.
3670
3672
 
3671
3673
  **Give lots when asked.** "Give me content ideas" means volume. Return **20+ titled ideas** by default, grouped by frame family or by awareness stage, not three polite suggestions. The director prunes; you supply.
3672
3674
 
@@ -3994,6 +3996,83 @@ An angle is **which side of the problem the video approaches from**. It is not a
3994
3996
  - the cost of waiting — the same decision made now vs in six months, priced
3995
3997
  - the first-mover gap — what the early ones get that the late ones cannot
3996
3998
 
3999
+ ### The ad formats — 40 executions
4000
+
4001
+ A format is **what the finished video is, as an object**. Not what it is about (frame), not which side of the problem it comes from (angle), not who it is for (stage), and not the first line (hook). `the hidden cost` `of the van receipts` `for a problem-aware viewer` is an idea; whether it arrives as an iPhone note, a Trustpilot screenshot or a claymation is the format, and the director still has to choose one before anybody films.
4002
+
4003
+ **Why it is a bank and not a taste decision.** Left to taste, a director shoots the same talking head forty times and blames the ideas. The format is also the axis that costs the least to vary — the research, the title and the script survive a format swap intact — so it is the cheapest way to turn one idea that worked into four posts that do not read as reposts.
4004
+
4005
+ `vidfarm ideas --formats` prints the bank; `--format <family or name>` filters it.
4006
+
4007
+ **Fake-artifact formats — the video pretends to be something that is not an ad**
4008
+
4009
+ - iphone notes — the pitch typed into the notes app, screen-recorded, no production at all
4010
+ - text message — the conversation that sells it, two people, read at the speed of reading
4011
+ - email screenshot — a real inbox: a complaint, a supplier reply, a refund thread
4012
+ - google search — the query they actually type, and what the results fail to answer
4013
+ - reddit style — the thread, the top comment, the reply that names the product
4014
+ - ig story — the casual story frame, sticker and all, reposted as the ad
4015
+ - trustpilot reviews — the review wall, scrolled, with the one-star ones left in
4016
+ - breaking news — the news lower-third and the anchor voice, applied to a small thing
4017
+ - native — no ad markers at all: it looks like the platform's ordinary content
4018
+
4019
+ **List & ranking formats — the count is the promise**
4020
+
4021
+ - x reasons why — the numbered case, one reason per beat, the count in the first frame
4022
+ - x signs — a checklist the viewer scores themselves against
4023
+ - tier list — S to F on screen, the product placed last and defended
4024
+ - hack 101 — one trick, taught properly, in under a minute
4025
+ - stat headline — one number, held on screen, everything else in service of it
4026
+
4027
+ **Two-column formats — the comparison is the argument**
4028
+
4029
+ - us vs them — the direct competitive split, named or unnamed
4030
+ - us vs us — the old version against the new one; no competitor is needed
4031
+ - new vs old — the category's past against its present
4032
+ - problem vs solution — left frame breaks, right frame works, same input
4033
+ - myth vs fact — the repeated sentence, then the correction, side by side
4034
+ - venn diagram — two circles, and the product sits in the overlap
4035
+
4036
+ *These six overlap with the contrast frames above, and that is not a duplicate — `problem vs solution` as a **frame** is what the video is the story of, and as a **format** it is the split on screen. Use one as the format only when the frame is a contrast too. A video cannot carry two comparisons; that is the "do not stack two frames" rule wearing a new hat.*
4037
+
4038
+ **Pattern-interrupt formats — it opens by refusing to sell**
4039
+
4040
+ - don't buy this — the disqualification opener, then who it *is* for
4041
+ - don't be an idiot — the blunt correction; earns attention, spends goodwill
4042
+ - we're sorry — the apology format: an owned mistake, then the fix
4043
+ - side effect — the benefit stated as a warning label
4044
+ - zero stars — the worst review, read out, and answered
4045
+ - you can avoid — the outcome named first, the escape route second
4046
+
4047
+ **Alert & urgency formats — the shape of an announcement, not an ad**
4048
+
4049
+ - warning — the hazard sign, the deadline, the consequence of waiting
4050
+ - low stock alert — the shelf, the count, the date it runs out
4051
+ - case of emergency — break-glass framing: the thing to do when it goes wrong
4052
+ - bundle offer — what is in the box, itemised, priced against the parts
4053
+
4054
+ **Proof formats — something visibly changes on camera**
4055
+
4056
+ - customer testimonial — their words, their room, their number
4057
+ - transformation — before and after in one cut, same frame, same light
4058
+ - crossed out problems — the list of pains, struck through one at a time
4059
+
4060
+ **Made-look formats — the production style carries it**
4061
+
4062
+ - whiteboard — drawn while spoken; the hand is the retention device
4063
+ - doodle — rough marker illustration over the footage
4064
+ - meme — the format the niche already shares, recaptioned at a real pain
4065
+ - claymation — stop-motion or clay-look; the craft is the scroll-stopper
4066
+ - greenscreen — the presenter keyed over the artifact they are reacting to
4067
+ - text on skin — the words written on a hand, an arm, a face
4068
+ - ai podcast — two synthetic hosts discussing it, clipped like a podcast
4069
+
4070
+ **Choosing one.** Match the format to the stage, not to the mood. Fake-artifact and made-look formats carry stage 1 and 2, because they read as content rather than as an ad. Two-column and list formats carry stage 3, because they explain. Proof and pattern-interrupt formats carry stage 4, because they answer an objection. Alert formats carry stage 5, and only stage 5 — a warning label shown to a stranger is a scroll.
4071
+
4072
+ **The honesty rule, and it is the important one.** Several of these formats work by imitating a *record*: a review wall, an inbox, a search result, a news bulletin, a stock count. An imitation of a record that states something untrue is a fabricated record, and it is the client's problem the moment it posts. So: use a real screenshot where a real one exists; where the artifact is staged, keep every claim inside it true and checkable; never stage a third party's review, message or verdict; and never invent a deadline or a stock number that is not real. The same flag-it-for-checking rule from *Distance* applies to every number the artifact shows.
4073
+
4074
+ **Do not let the format become the idea.** "Let's do a tier list" is not a content idea — it is a shoot with nothing in it. Pick the subject, the angle and the stage first; the format is the last field, and it is the one you change when an idea that worked deserves a second post.
4075
+
3997
4076
  ### Frame × angle × stage — the grid
3998
4077
 
3999
4078
  The grid is the answer to "give me 30 different videos" and to "I already made a video about that."
@@ -4003,25 +4082,26 @@ The grid is the answer to "give me 30 different videos" and to "I already made a
4003
4082
  3. Pick an **angle** that fits that stage (each stage above lists its five).
4004
4083
  4. Pick a **frame** that carries the angle (each stage above lists its six).
4005
4084
  5. Write the title. If the title does not say the angle out loud, the pairing was wrong — go back to step 3, not step 4.
4085
+ 6. Pick a **format** the stage can carry, and write it on the row. It is the last field, and the only one you may change on its own.
4006
4086
 
4007
4087
  Worked example, one topic (`bookkeeping for solo trades`), one frame family, four angles, four different videos:
4008
4088
 
4009
- | Stage | Angle | Frame | Title |
4010
- |---|---|---|---|
4011
- | 1 | the daily friction | the psychology of | *"Why every tradie has a glovebox full of receipts"* |
4012
- | 2 | the hidden cost | why it failed | *"The £3,400 a year that disappears in your van"* |
4013
- | 3 | the false solution | myth vs reality | *"A shoebox is not a filing system, and HMRC agrees"* |
4014
- | 4 | the price objection | cheap vs expensive | *"£49 a month vs the accountant's £900 catch-up bill"* |
4089
+ | Stage | Angle | Frame | Format | Title |
4090
+ |---|---|---|---|---|
4091
+ | 1 | the daily friction | the psychology of | native | *"Why every tradie has a glovebox full of receipts"* |
4092
+ | 2 | the hidden cost | why it failed | stat headline | *"The £3,400 a year that disappears in your van"* |
4093
+ | 3 | the false solution | myth vs reality | myth vs fact | *"A shoebox is not a filing system, and HMRC agrees"* |
4094
+ | 4 | the price objection | cheap vs expensive | us vs them | *"£49 a month vs the accountant's £900 catch-up bill"* |
4015
4095
 
4016
4096
  **When a director says "I already covered that."** Hold the frame, change the angle. Same subject, new video, and it is the cheapest idea in the bank to produce because the research is already done.
4017
4097
 
4018
4098
  **When a set feels repetitive.** Check which axis you froze — and check the **subject** first, because it is the one that hides. Thirty ideas that vary only the frame, on one pasted offer sentence, at one stage and one angle, are thirty versions of one video. Vary two axes minimum, and never let the subject be the constant.
4019
4099
 
4020
- ### Frame → format notes
4100
+ ### Frame → build notes
4021
4101
 
4022
- The frame also suggests how to build it, which saves a planning round:
4102
+ The frame also suggests how to build it, which saves a planning round. This is the *default* build; a format from the bank above overrides it:
4023
4103
 
4024
- | Frame family | Natural format | Build notes |
4104
+ | Frame family | Natural build | Build notes |
4025
4105
  |---|---|---|
4026
4106
  | Contrast (`then vs now`, `cheap vs expensive`) | Split screen or A/B beat pairs | Cheapest to produce — two stills or two clips per beat. Great for the cutout/sticker explainer style. |
4027
4107
  | Hidden-knowledge (`what nobody noticed`, `the untold story`) | Talking head, or footage + kinetic captions | The loop writes itself; state the timestamp it closes at anyway. |
@@ -4043,6 +4123,9 @@ The frame also suggests how to build it, which saves a planning round:
4043
4123
  - **Do not hand over a distant idea with no turn written.** A video about Napoleon's field library, for a book app, is a great video and a dead one until somebody writes the line that reaches the offer. Write the turn with the idea, in the same breath, or drop the idea.
4044
4124
  - **Do not let the whole list become dated trivia.** "Be concrete" pushes a model straight into "in 1978, a man…". Fifty history videos is one idea fifty times, exactly like the frozen subject. Spread the proof types.
4045
4125
  - **Do not state a date, a number or a record without flagging it for checking.** The editor films what the brief says. A wrong figure is the director's problem the moment it posts, not the writer's.
4126
+ - **Do not pick the format first.** "Let's do a tier list" is a shoot with no idea in it. The format is the last field on the row, after the subject, the angle and the stage.
4127
+ - **Do not run one format for a month.** Thirty talking heads and thirty tier lists fail the same way, and the format is the cheapest axis to rotate — the script survives the swap.
4128
+ - **Do not fabricate the artifact a format imitates.** A staged review wall, a staged inbox, an invented stock count or an invented deadline is a fabricated record with the client's name on it. Use the real screenshot, or keep every claim inside the staged one true.
4046
4129
 
4047
4130
  ## Primitive: image_remove_background
4048
4131
 
package/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vidfarm
3
- skill_version: 0.21.59
3
+ skill_version: 0.21.60
4
4
  description: Entry point for making, editing, and rendering short-form video with Vidfarm. Use when the task is to create a video, ad, explainer, or social clip; to edit or re-theme an existing composition; to source footage or audio; or to run a batch of video variants. Routes to the full director skill and the `vidfarm` CLI.
5
5
  ---
6
6
 
@@ -278,4 +278,6 @@ Also served at `vidfarm.cc`: `/flash-harness.md` (**the weak-model process harne
278
278
 
279
279
  **Then ask the gigworker one more question: the RUN MODE.** It decides which stages of every task stop for them — `full-interactive` (shortlist · plan · raws · cut), `quick-interactive` (shortlist · cut), `auto-batch` (cut only — build the batch unattended, review it in one sitting), `auto-submit` (nothing; opt-in, in their own words). The middle two are the common ones. `vidfarm clipper-run mode` explains all four and saves the answer, `vidfarm clipper-run next` says what to do right now, and `vidfarm clipper-run gate <task>` exits non-zero while a human gate is open — so `gate && gigs submit …` cannot send an unreviewed cut. Full section: `/marketplace.md` → *The four run modes*.
280
280
 
281
+ **Then offer the CLIPPER DASHBOARD — `vidfarm dashboard` — and expect a yes.** Three of the four run modes stop to make a human *watch a video*, and a terminal cannot play one; without the dashboard the gigworker reads a path out of `REVIEW_QUEUE.md`, opens the file by hand, and types a verb, once per task. `vidfarm dashboard` is that queue as one localhost page over the same `CLIPPER/` folder — no key, no network, no account: the cut plays and seeks, the buyer's brief sits beside it, the checks are tickable and the unticked ones pre-fill the rejection note, the shortlist candidates play side by side (`1`/`2`/`3` to pick), and `A`/`C`/`D`/`U` answer the gate. Every button calls the same `clipper-run` transition the CLI calls, so the page and the terminal can never disagree. Ask once, record it in `MISSION.md` as `dashboard: yes | no`, and never depend on it — a gigworker who declines keeps `REVIEW_QUEUE.md`, `clipper-run review` and the `gate` rail exactly as they were. Full section: `/agentic-clipper.md` § 3⅘.
282
+
281
283
  **Before ANY proof is submitted, run the sanity check — every time, on every side of the loop.** `vidfarm gigs verify-proof --proof <url> --clean-master ./final-clean.mp4` needs no api key. It loads each proof url the way a stranger's browser would (no key, no cookie) and exits non-zero on a 403 bucket, a 404, an s3 AccessDenied body served as `video/mp4`, an **expiring presigned url** (read access dies before the buyer swipes), a `localhost`/Drive/Dropbox link, or a 0-byte file. It then checks the delivery is split the right way: the **watermarked** cut public in `proofs[]`, the **clean master** sealed in `private_note` (`--clean-master`) — recommended, not required, so putting the unwatermarked final in the proof itself only warns, and `--clean-in-proof` says you meant it. `vidfarm gigs submit` runs the same check and refuses a failing proof. The two gates are different questions: `clipper-run gate` = *did a human watch it*, `gigs verify-proof` = *can the buyer open it*. Full section: `/marketplace.md` → *the sanity check before you send*.
package/clipper.md CHANGED
@@ -144,7 +144,9 @@ Read and report back to the user, in plain language:
144
144
  - **`available_funds` / `contract_address`** — whether the gig can pay on-chain (see Phase 5).
145
145
  - **`default_rate_limit_count` / `default_rate_limit_minutes`** — your ceiling. Never poll past it.
146
146
  - **`task_timeout`** — how long you may hold a task before it expires on you.
147
- - **`review_timeout`** — proofs auto-approve after this (default 48h) if the client doesn't review.
147
+ - **`review_timeout`** — seconds until an unreviewed proof auto-approves. **`-1` means never**:
148
+ the client reviews every proof by hand, so nothing pays until they say so. Every vidfarm
149
+ vending machine is `-1`. Read this field before you count on a deadline.
148
150
 
149
151
  **Then judge honestly, out loud:** can you actually deliver this brief with Vidfarm on this
150
152
  machine? If the gig wants 4K motion-graphics work and cost mode is `minimize`, say so now. A gig
@@ -402,8 +404,10 @@ Check the response:
402
404
  - **`409`** — duplicate `task_identifier`. You already submitted this one; don't resubmit.
403
405
  - **`410`** — the task expired while you were rendering. Ask the client for an extension, or move on.
404
406
 
405
- Proofs auto-approve after `review_timeout` (default 48h) if the client doesn't review. Price is
406
- locked at submission time, so a client lowering the price later can't reduce what they already owe.
407
+ Proofs auto-approve after `review_timeout` if the client doesn't review unless it is `-1`,
408
+ which is manual review and never auto-approves. Every vidfarm vending machine is `-1`, so on
409
+ those your proof waits for a human verdict however long that takes. Price is locked at submission
410
+ time, so a client lowering the price later can't reduce what they already owe.
407
411
 
408
412
  ---
409
413