@officexapp/vidfarm-devcli 0.21.27 → 0.21.29
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.
- package/.agents/skills/editor-capabilities/SKILL.md +52 -0
- package/.agents/skills/vidfarm/SKILL.md +58 -5
- package/.agents/skills/vidfarm/recipes/bulk-scripting-with-a-regime.md +65 -0
- package/.agents/skills/vidfarm/recipes/cutout-graphics-for-explainers.md +78 -7
- package/.agents/skills/vidfarm/recipes/local-edit-render-approve.md +4 -3
- package/.agents/skills/vidfarm/recipes/retheme-template.md +1 -1
- package/.agents/skills/vidfarm/references/assets-and-sourcing.md +3 -3
- package/.agents/skills/vidfarm/references/automation-and-local-dev.md +92 -1
- package/.agents/skills/vidfarm/references/editor-workflows.md +135 -6
- package/.agents/skills/vidfarm/references/hooks-and-virality.md +237 -0
- package/.agents/skills/vidfarm/references/onboarding.md +5 -5
- package/.agents/skills/vidfarm/references/primitives.md +5 -1
- package/.agents/skills/vidfarm/regimes/README.md +77 -0
- package/.agents/skills/vidfarm/regimes/explainer.QA_REGIME.md +82 -0
- package/.agents/skills/vidfarm/regimes/hooks.QA_REGIME.md +117 -0
- package/.agents/skills/vidfarm/regimes/product-demo.QA_REGIME.md +92 -0
- package/.agents/skills/vidfarm/regimes/short-form.QA_REGIME.md +163 -0
- package/.agents/skills/vidfarm/regimes/ugc-testimonial.QA_REGIME.md +82 -0
- package/SKILL.director.md +685 -32
- package/SKILL.md +22 -3
- package/demo/dist/app.js +103 -103
- package/dist/src/cli.js +987 -11
- package/dist/src/devcli/handoff.js +162 -0
- package/dist/src/devcli/interaction-mode.js +154 -0
- package/dist/src/devcli/qa-check.js +593 -0
- package/dist/src/devcli/qa-regime.js +396 -0
- package/dist/src/devcli/sticker-pack.js +396 -0
- package/dist/src/devcli/storyboard.js +243 -0
- package/package.json +8 -1
- package/public/serve-shells/tools-image.html +378 -265
- package/public/serve-shells/tools-video.html +760 -167
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ugc-testimonial
|
|
3
|
+
video_type: UGC / talking-head testimonial — a person on camera vouching for a product
|
|
4
|
+
checks:
|
|
5
|
+
duration_sec: 12-60
|
|
6
|
+
aspect: 9:16
|
|
7
|
+
first_frame_visual: required
|
|
8
|
+
first_frame_text: required
|
|
9
|
+
captions: required
|
|
10
|
+
audio: required
|
|
11
|
+
font_regime: required
|
|
12
|
+
max_text_cards: 2
|
|
13
|
+
max_simultaneous_text: 1
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# UGC / Testimonial QA Regime
|
|
17
|
+
|
|
18
|
+
For the format where a person talks to camera about a product they use. The entire value of the format is that it **doesn't look produced** — so most of this regime is about what NOT to add.
|
|
19
|
+
|
|
20
|
+
## The one test
|
|
21
|
+
|
|
22
|
+
> **Would this survive being posted from the speaker's own account, with no brand involved?**
|
|
23
|
+
|
|
24
|
+
If the answer needs the brand's permission, budget, or logo, it isn't UGC — it's an ad wearing UGC's clothes, and the audience reads that in under a second. The failure is not "it looks cheap"; it's "it looks funded," and funded means skippable.
|
|
25
|
+
|
|
26
|
+
## Structure
|
|
27
|
+
|
|
28
|
+
| Beat | Runtime | Job |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| **Situation** | 0:00–0:03 | The problem, as a thing that happened to *them*. Not a claim about the product |
|
|
31
|
+
| **Turn** | 0:03–0:10 | What they tried, what changed. The product enters here, never in the first line |
|
|
32
|
+
| **Demonstration** | the middle | Screen or hands. The product doing the thing, on their real account/desk/kitchen |
|
|
33
|
+
| **Honest limit** | before the close | What it doesn't do / who it isn't for. **The credibility beat** |
|
|
34
|
+
| **Close** | final beat | What they'd tell a friend. Not a CTA read |
|
|
35
|
+
|
|
36
|
+
**The product enters second, never first.** A testimonial that opens on the product is a commercial. It opens on the *situation* — and situations are also what survives a cold algorithm (see the `hooks` regime).
|
|
37
|
+
|
|
38
|
+
## Rules
|
|
39
|
+
|
|
40
|
+
### Rule 1 — first person, specific, and falsifiable
|
|
41
|
+
|
|
42
|
+
"It saves me time" is an ad line. "I used to spend Sunday night on this and now I don't" is a testimonial. Every claim should be a thing that happened, with a when and a how much. Vague praise reads as paid; specific mundane detail reads as real.
|
|
43
|
+
|
|
44
|
+
### Rule 2 — one honest limit, said out loud
|
|
45
|
+
|
|
46
|
+
The beat that makes everything else believable. It is not a disclaimer and it does not go at the end as fine print — it goes in the body, in the speaker's own voice, and it should cost you something real. A testimonial with no limit is a review nobody believes.
|
|
47
|
+
|
|
48
|
+
### Rule 3 — never claim an outcome the viewer's situation can't reproduce
|
|
49
|
+
|
|
50
|
+
Results-may-vary in tiny type does not fix a headline result. If the number depends on the speaker's audience, budget, or luck, either say what it depended on or don't say the number.
|
|
51
|
+
|
|
52
|
+
### Rule 4 — production floor: deliberately low
|
|
53
|
+
|
|
54
|
+
- **Audio is the only thing allowed to be good.** Bad audio is the one production sin the format doesn't forgive; everything else *should* look handheld.
|
|
55
|
+
- **No b-roll montage, no music swell, no logo sting, no lower-third name card.** A brand logo on screen converts this from a testimonial into an ad.
|
|
56
|
+
- **Captions verbatim**, weight 700–900, safe zone, one line at a time. Never kinetic VFX captions — produced captions are the single loudest "this was made by a marketing team" signal.
|
|
57
|
+
- **At most two standalone text cards** in the whole video, and only to surface a number the speaker said out loud.
|
|
58
|
+
- **Frame 0:** the speaker already mid-sentence, in frame, with a caption up. Not a title card, not a product shot, not black.
|
|
59
|
+
|
|
60
|
+
### Rule 5 — disclosure is not optional
|
|
61
|
+
|
|
62
|
+
Paid, gifted, or affiliate relationships get disclosed on screen and in the caption. Beyond the legal exposure, an undisclosed relationship that surfaces later costs more trust than the video ever bought.
|
|
63
|
+
|
|
64
|
+
## Bulk-generation notes
|
|
65
|
+
|
|
66
|
+
The natural variant axis here is **the situation, not the script**: five different opening situations pointing at the same turn and demonstration. Varying the adjectives instead of the situation gives you five videos that are one video — and the algorithm treats near-duplicates accordingly.
|
|
67
|
+
|
|
68
|
+
If you're generating variants with different speakers/avatars, hold the honest-limit beat constant. It's the load-bearing one, and it's the one an AI rewrite is most likely to quietly soften into nothing.
|
|
69
|
+
|
|
70
|
+
## Pre-flight checklist
|
|
71
|
+
|
|
72
|
+
- [ ] The first line is a situation that happened to the speaker, not a product claim
|
|
73
|
+
- [ ] The product enters in the second beat or later
|
|
74
|
+
- [ ] Every claim is specific enough to be falsifiable (a when, a how much, a what happened)
|
|
75
|
+
- [ ] There is one honest limit, in the body, in the speaker's own voice
|
|
76
|
+
- [ ] No outcome is promised that the viewer's situation couldn't reproduce
|
|
77
|
+
- [ ] The demonstration shows the real thing on a real account/desk, not a mockup
|
|
78
|
+
- [ ] Audio is clean; nothing else looks produced
|
|
79
|
+
- [ ] No logo sting, no music swell, no lower-third, no kinetic captions
|
|
80
|
+
- [ ] Any paid/gifted/affiliate relationship is disclosed on screen and in the caption
|
|
81
|
+
- [ ] Frame 0 shows the speaker mid-sentence with a legible caption
|
|
82
|
+
- [ ] In a batch: this variant's *situation* differs from its siblings, not just its wording
|