arca-marketing-video 2.3.0 → 2.5.0
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/README.md +23 -19
- package/bin/cli.js +67 -0
- package/package.json +9 -4
- package/skills/carousel-generator/SKILL.md +4 -4
- package/skills/shorts-editor/SKILL.md +3 -3
- package/skills/storyboard-prompt/SKILL.md +8 -8
- package/skills/video-prompt/SKILL.md +68 -16
- /package/{assets → skills/_arca-marketing-assets/assets}/characters.png +0 -0
- /package/{assets → skills/_arca-marketing-assets/assets}/design-guide.png +0 -0
- /package/{assets → skills/_arca-marketing-assets/assets}/final-cta.png +0 -0
- /package/{assets → skills/_arca-marketing-assets/assets}/logo.png +0 -0
- /package/{brand.md → skills/_arca-marketing-assets/brand.md} +0 -0
package/README.md
CHANGED
|
@@ -1,32 +1,41 @@
|
|
|
1
1
|
# arca-marketing-video
|
|
2
2
|
|
|
3
|
-
A brand-driven short-form marketing
|
|
4
|
-
|
|
3
|
+
A brand-driven short-form marketing kit: **four installable Claude Code skills** that share one
|
|
4
|
+
editable brand profile and asset set. Use any skill on its own, or chain them.
|
|
5
|
+
|
|
6
|
+
## Install (into Claude Code)
|
|
5
7
|
|
|
6
8
|
```
|
|
7
|
-
|
|
9
|
+
npx arca-marketing-video # installs into ./.claude/skills (this project)
|
|
10
|
+
npx arca-marketing-video --global # installs into ~/.claude/skills (all projects)
|
|
8
11
|
```
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
That copies the four skills into your `.claude/skills/` so Claude Code auto-discovers them.
|
|
14
|
+
(If `.claude/skills/` didn't exist before, restart Claude Code once so it starts watching it.)
|
|
15
|
+
|
|
16
|
+
> `npm install arca-marketing-video` alone does **not** register the skills — Claude Code only
|
|
17
|
+
> scans `.claude/skills/`, not `node_modules/`. Run the `npx` command above.
|
|
18
|
+
|
|
19
|
+
## The four skills
|
|
11
20
|
|
|
12
21
|
| Skill | Use when you want to… |
|
|
13
22
|
| --- | --- |
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
23
|
+
| `carousel-generator` | Make a 3–5 slide Instagram carousel (4:5) |
|
|
24
|
+
| `storyboard-prompt` | Pressure-test a video idea → a clean frames-only 3×3 grid + a text breakdown |
|
|
25
|
+
| `video-prompt` | Turn a storyboard into vertical video (drives the Wyren MCP; rebuilds schematic boards with Wyren clips + HyperFrames graphics) |
|
|
26
|
+
| `shorts-editor` | Cut / caption / add graphics to existing footage → a high-retention short |
|
|
18
27
|
|
|
19
|
-
|
|
20
|
-
editor also ships `silence_cut.py` and `composition.template.html`.
|
|
28
|
+
After installing, each appears as a skill (e.g. `/carousel-generator`).
|
|
21
29
|
|
|
22
30
|
## Shared brand profile + assets
|
|
23
31
|
|
|
24
|
-
|
|
32
|
+
All four skills read brand specifics from one place, so the kit is reusable for any brand:
|
|
25
33
|
|
|
26
|
-
- `brand.md` — the brand profile
|
|
27
|
-
- `assets/` — `logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`
|
|
34
|
+
- `_arca-marketing-assets/brand.md` — the brand profile
|
|
35
|
+
- `_arca-marketing-assets/assets/` — `logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
This `_arca-marketing-assets/` folder has no `SKILL.md`, so Claude Code ignores it as a skill; the
|
|
38
|
+
skills reference it via `../_arca-marketing-assets/…`. To retarget to another brand, swap those files.
|
|
30
39
|
|
|
31
40
|
## Natural chain
|
|
32
41
|
|
|
@@ -35,11 +44,6 @@ storyboard-prompt → video-prompt → shorts-editor (original video)
|
|
|
35
44
|
carousel-generator (independent)
|
|
36
45
|
```
|
|
37
46
|
|
|
38
|
-
## Retarget to another brand
|
|
39
|
-
|
|
40
|
-
Replace `brand.md` with your own profile (keep the field structure) and swap the files in
|
|
41
|
-
`assets/`. No skill edits needed.
|
|
42
|
-
|
|
43
47
|
## License
|
|
44
48
|
|
|
45
49
|
MIT
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// Installs the four Arca marketing skills into a Claude Code skills directory.
|
|
5
|
+
// npx arca-marketing-video -> ./.claude/skills (this project)
|
|
6
|
+
// npx arca-marketing-video --global -> ~/.claude/skills (all projects)
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
const os = require('os');
|
|
11
|
+
|
|
12
|
+
const args = process.argv.slice(2);
|
|
13
|
+
|
|
14
|
+
if (args.includes('-h') || args.includes('--help')) {
|
|
15
|
+
process.stdout.write(`
|
|
16
|
+
arca-marketing-video — install the marketing skills into Claude Code
|
|
17
|
+
|
|
18
|
+
Usage:
|
|
19
|
+
npx arca-marketing-video Install into ./.claude/skills (this project)
|
|
20
|
+
npx arca-marketing-video --global Install into ~/.claude/skills (all projects)
|
|
21
|
+
npx arca-marketing-video --help Show this help
|
|
22
|
+
|
|
23
|
+
Installs: carousel-generator, storyboard-prompt, video-prompt, shorts-editor
|
|
24
|
+
(plus a shared brand profile + assets the skills read).
|
|
25
|
+
`);
|
|
26
|
+
process.exit(0);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const isGlobal = args.includes('--global') || args.includes('-g');
|
|
30
|
+
const baseDir = isGlobal ? os.homedir() : process.cwd();
|
|
31
|
+
const skillsRoot = path.join(baseDir, '.claude', 'skills');
|
|
32
|
+
const srcSkills = path.join(__dirname, '..', 'skills');
|
|
33
|
+
|
|
34
|
+
if (typeof fs.cpSync !== 'function') {
|
|
35
|
+
process.stderr.write('Error: Node 16.7+ is required (fs.cpSync). Please upgrade Node.\n');
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const skillsRootExisted = fs.existsSync(skillsRoot);
|
|
40
|
+
fs.mkdirSync(skillsRoot, { recursive: true });
|
|
41
|
+
|
|
42
|
+
const entries = fs
|
|
43
|
+
.readdirSync(srcSkills, { withFileTypes: true })
|
|
44
|
+
.filter((d) => d.isDirectory());
|
|
45
|
+
|
|
46
|
+
const installedSkills = [];
|
|
47
|
+
for (const dir of entries) {
|
|
48
|
+
const from = path.join(srcSkills, dir.name);
|
|
49
|
+
const to = path.join(skillsRoot, dir.name);
|
|
50
|
+
fs.rmSync(to, { recursive: true, force: true });
|
|
51
|
+
fs.cpSync(from, to, { recursive: true });
|
|
52
|
+
if (!dir.name.startsWith('_')) installedSkills.push(dir.name);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
process.stdout.write(`\n✓ Installed ${installedSkills.length} Arca marketing skills into ${skillsRoot}\n`);
|
|
56
|
+
for (const name of installedSkills.sort()) process.stdout.write(` • ${name}\n`);
|
|
57
|
+
process.stdout.write(` (+ shared brand profile & assets in _arca-marketing-assets)\n`);
|
|
58
|
+
|
|
59
|
+
if (!skillsRootExisted) {
|
|
60
|
+
process.stdout.write(
|
|
61
|
+
`\nNote: .claude/skills was just created — restart Claude Code once so it starts watching the folder.\n\n`
|
|
62
|
+
);
|
|
63
|
+
} else {
|
|
64
|
+
process.stdout.write(
|
|
65
|
+
`\nThe skills are available now — Claude Code detects skill changes live.\n\n`
|
|
66
|
+
);
|
|
67
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arca-marketing-video",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Brand-driven short-form marketing content kit: four
|
|
3
|
+
"version": "2.5.0",
|
|
4
|
+
"description": "Brand-driven short-form marketing content kit: four installable Claude Code skills (carousel generator, storyboard prompt, video prompt, shorts editor) plus a shared brand profile and assets. Run `npx arca-marketing-video` to install them into .claude/skills.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skill",
|
|
7
7
|
"claude",
|
|
@@ -18,10 +18,15 @@
|
|
|
18
18
|
],
|
|
19
19
|
"author": "aobalitaan",
|
|
20
20
|
"license": "MIT",
|
|
21
|
+
"bin": {
|
|
22
|
+
"arca-marketing-video": "bin/cli.js"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=16.7"
|
|
26
|
+
},
|
|
21
27
|
"files": [
|
|
28
|
+
"bin/",
|
|
22
29
|
"skills/",
|
|
23
|
-
"brand.md",
|
|
24
|
-
"assets/",
|
|
25
30
|
"README.md",
|
|
26
31
|
"LICENSE"
|
|
27
32
|
]
|
|
@@ -6,7 +6,7 @@ description: Use when creating an Instagram (or LinkedIn) image carousel of 3–
|
|
|
6
6
|
# Carousel Generator
|
|
7
7
|
|
|
8
8
|
## Brand profile (read first)
|
|
9
|
-
Read
|
|
9
|
+
Read `../_arca-marketing-assets/brand.md` first and apply it throughout: name-usage rules, tone, audience, positioning, color palette, persona, visual world, recurring objects, and logo rules. Brand assets live in `../_arca-marketing-assets/assets/` (`logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`). Use the supplied logo only — never invent or distort it. Swap `../_arca-marketing-assets/brand.md` + `../_arca-marketing-assets/assets/` to retarget this skill to another brand.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -18,15 +18,15 @@ INTAKE — ASK FIRST:
|
|
|
18
18
|
Before writing anything, ask the user for the inputs you need, then wait for their answers:
|
|
19
19
|
1. TOPIC / CONCEPT — the vague idea or angle for this carousel.
|
|
20
20
|
2. TARGET MARKET / AUDIENCE — who this is for and what they struggle with.
|
|
21
|
-
3. BRAND PROFILE — the attached or pasted
|
|
21
|
+
3. BRAND PROFILE — the attached or pasted ../_arca-marketing-assets/brand.md (brand name, positioning, tone, visual world, colors, persona, recurring objects, hook/CTA examples).
|
|
22
22
|
If the user leaves something blank, make smart assumptions and state them briefly. Do not stall unless the topic is impossible to understand.
|
|
23
23
|
|
|
24
24
|
INPUTS / VARIABLES TO FILL IN:
|
|
25
|
-
- BRAND PROFILE: [attach or paste
|
|
25
|
+
- BRAND PROFILE: [attach or paste ../_arca-marketing-assets/brand.md]
|
|
26
26
|
- TOPIC: [the vague topic or concept]
|
|
27
27
|
- TARGET MARKET: [the audience this carousel targets]
|
|
28
28
|
|
|
29
|
-
All brand specifics — brand name and how to write it, audience, positioning, core idea, tone, visual world, color palette, persona, and recurring objects — come from the attached BRAND PROFILE (
|
|
29
|
+
All brand specifics — brand name and how to write it, audience, positioning, core idea, tone, visual world, color palette, persona, and recurring objects — come from the attached BRAND PROFILE (../_arca-marketing-assets/brand.md). Read it first and apply it throughout. Do not hardcode any single brand’s details into this template.
|
|
30
30
|
|
|
31
31
|
BRAND, AUDIENCE, POSITIONING, AND TONE:
|
|
32
32
|
See the attached BRAND PROFILE. Follow its name-usage rules, target audience, positioning, "should feel like / should not feel like" guidance, and tone exactly.
|
|
@@ -12,8 +12,8 @@ on-screen graphics / zooms / SFX layered in, or a brand splash / end card.
|
|
|
12
12
|
Built on HyperFrames + ffmpeg + faster-whisper.
|
|
13
13
|
|
|
14
14
|
## Brand profile (read first)
|
|
15
|
-
Read
|
|
16
|
-
uses
|
|
15
|
+
Read `../_arca-marketing-assets/brand.md` for the brand's colors, logo rules, and persona. The brand-splash end card
|
|
16
|
+
uses `../_arca-marketing-assets/assets/final-cta.png`; the logo (`../_arca-marketing-assets/assets/logo.png`) may appear as a subtle
|
|
17
17
|
in-world mark. `silence_cut.py` and `composition.template.html` are co-located in this skill folder.
|
|
18
18
|
This skill is the final edit stage after `video-prompt` (or runs standalone on any raw footage).
|
|
19
19
|
|
|
@@ -55,7 +55,7 @@ Neither signal alone works:
|
|
|
55
55
|
- **Graphic chips:** glass pill + inline-SVG icon + short label, in the **lower-mid torso band (~y1170 of 1920)** — below the face, above the captions. "Over the people" is fine; over the face is not. One per beat, pop in / hold / pop out.
|
|
56
56
|
- **Zoom punch-ins:** scale the plate wrapper (base ~1.04) to ~1.10-1.14 on emphasis lines, ease back. Never scale below 1.0 (reveals letterbox edges). Cover-fit the plate.
|
|
57
57
|
- **SFX:** riser on the very first frame; soft whoosh on hard cuts / speaker changes; pop on each chip entrance. Keep dialogue front (SFX vol 0.25-0.35). Mixkit free SFX (`mixkit.co/free-sound-effects/<cat>/` → `assets.mixkit.co/.../<id>-preview.mp3`) is a reliable no-key source.
|
|
58
|
-
- **Brand splash:** 3s end card (a still image — use
|
|
58
|
+
- **Brand splash:** 3s end card (a still image — use `../_arca-marketing-assets/assets/final-cta.png`), brought in by a quick white flash + one signature SFX, with a subtle ken-burns zoom. Reserve that SFX for the splash only.
|
|
59
59
|
|
|
60
60
|
## Gotchas
|
|
61
61
|
| Symptom | Fix |
|
|
@@ -6,7 +6,7 @@ description: Use when pressure-testing a short-form video idea and turning it in
|
|
|
6
6
|
# Storyboard Prompt
|
|
7
7
|
|
|
8
8
|
## Brand profile (read first)
|
|
9
|
-
Read
|
|
9
|
+
Read `../_arca-marketing-assets/brand.md` first and apply its name-usage rules, tone, audience, persona, logo rules, and colors throughout. Brand assets live in `../_arca-marketing-assets/assets/` (`logo.png`, `characters.png`, `design-guide.png`, `final-cta.png`). Use the supplied logo only — never invent or distort it. The natural next step after this skill is `video-prompt` (turn the storyboard into video). Swap `../_arca-marketing-assets/brand.md` + `../_arca-marketing-assets/assets/` to retarget to another brand.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -25,7 +25,7 @@ Before doing anything, ask the user for the inputs you need, then wait for their
|
|
|
25
25
|
1. RAW CONCEPT — the video idea to pressure-test and storyboard.
|
|
26
26
|
2. VIDEO TYPE / STYLE — UGC / phone-shot (default), cinematic / movie-trailer, animation, motion-graphics, product film, skit, etc. This drives the LOOK and the first-5-seconds cold-open strategy.
|
|
27
27
|
3. TARGET MARKET / AUDIENCE — who this is for.
|
|
28
|
-
4. BRAND PROFILE — the attached or pasted
|
|
28
|
+
4. BRAND PROFILE — the attached or pasted ../_arca-marketing-assets/brand.md (brand name, positioning, tone, persona, logo rules, colors).
|
|
29
29
|
5. TARGET FORMAT — TikTok / Instagram Reels / YouTube Shorts.
|
|
30
30
|
6. PREFERRED LENGTH — or let you recommend one.
|
|
31
31
|
Ask first. Only make smart, briefly stated assumptions for whatever is still missing. Do not stall unless the concept is impossible to understand.
|
|
@@ -59,10 +59,10 @@ Raw concept:
|
|
|
59
59
|
[PASTE THE CONCEPT HERE]
|
|
60
60
|
|
|
61
61
|
Brand:
|
|
62
|
-
[BRAND NAME — see the attached brand profile (
|
|
62
|
+
[BRAND NAME — see the attached brand profile (../_arca-marketing-assets/brand.md)]
|
|
63
63
|
|
|
64
64
|
Brand profile:
|
|
65
|
-
[ATTACH OR PASTE
|
|
65
|
+
[ATTACH OR PASTE ../_arca-marketing-assets/brand.md — positioning, tone, persona, logo rules, colors]
|
|
66
66
|
|
|
67
67
|
Logo asset:
|
|
68
68
|
Use the attached brand logo if available.
|
|
@@ -322,7 +322,7 @@ For each hook, provide:
|
|
|
322
322
|
- how to make it more visual
|
|
323
323
|
- whether it can be understood without sound
|
|
324
324
|
- stickiness: is the line catchy, sharp, and quotable (a phrase the viewer could repeat)?
|
|
325
|
-
- brand fit: does the message ladder to the brand's positioning, audience, and tone (per
|
|
325
|
+
- brand fit: does the message ladder to the brand's positioning, audience, and tone (per ../_arca-marketing-assets/brand.md)?
|
|
326
326
|
|
|
327
327
|
Then score the hooks on three axes — scroll-stop power, stickiness, and brand fit — rank the top 3, and choose the single strongest hook (highest combined, never high scroll-stop but off-brand).
|
|
328
328
|
|
|
@@ -332,7 +332,7 @@ The chosen hook must be:
|
|
|
332
332
|
- fast
|
|
333
333
|
- emotionally clear
|
|
334
334
|
- catchy and memorable — a line or image worth repeating, not just clear
|
|
335
|
-
- on-brand — in the brand's voice and aligned to its message (see
|
|
335
|
+
- on-brand — in the brand's voice and aligned to its message (see ../_arca-marketing-assets/brand.md), never generic
|
|
336
336
|
- a true promise that sets up the brand's value (not a clever line that goes nowhere)
|
|
337
337
|
- easy to execute in the chosen video type
|
|
338
338
|
- not corporate
|
|
@@ -414,13 +414,13 @@ Create an ending that naturally connects back to the first frame if possible.
|
|
|
414
414
|
|
|
415
415
|
BRAND MESSAGING ALIGNMENT (non-negotiable)
|
|
416
416
|
Pull the brand's positioning, core idea, tone, target audience, audience pain, and hook/CTA examples
|
|
417
|
-
from
|
|
417
|
+
from ../_arca-marketing-assets/brand.md, and make the polished concept ladder to them:
|
|
418
418
|
- The hook and core promise must speak to the brand's exact audience and the specific pain it solves —
|
|
419
419
|
not a generic version of the topic.
|
|
420
420
|
- The payoff must implicitly prove the brand's value (the transformation the brand enables), so the
|
|
421
421
|
viewer connects the idea to what the brand does — without it feeling like an ad.
|
|
422
422
|
- Tone must match the brand's voice: keep its do's and avoid its don'ts (no hype / buzzwords / cringe,
|
|
423
|
-
or whatever
|
|
423
|
+
or whatever ../_arca-marketing-assets/brand.md specifies).
|
|
424
424
|
- The CTA should echo the brand's CTA style and lead softly and naturally to the brand.
|
|
425
425
|
- Treat the brand's hook/CTA examples as a springboard, not copy-paste — write a fresher, sharper line.
|
|
426
426
|
State in ONE line how the chosen hook + payoff + CTA map to the brand's message.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-prompt
|
|
3
|
-
description: Use when turning a
|
|
3
|
+
description: Use when turning a storyboard into a finished vertical short-form video of any type (UGC, cinematic / movie-trailer, animation, product film, etc.). Handles both photographic storyboards (clean and use as start frames) and schematic / annotated plans (do NOT upscale 1:1 — rebuild patterned to them using Wyren clips for live footage + HyperFrames for on-screen graphics). Drives the Wyren MCP — picks image/video models and resolutions, optimizes the TikTok first 5 seconds, and keeps character faces consistent across shots. Triggers on "make the video from this storyboard", "generate the short", "render the clips". Part of the arca-marketing-video kit.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Video Prompt
|
|
7
7
|
|
|
8
8
|
## Brand profile (read first)
|
|
9
|
-
Read
|
|
9
|
+
Read `../_arca-marketing-assets/brand.md` first and apply its name-usage, persona, logo rules, and colors. Brand assets live in `../_arca-marketing-assets/assets/` — feed `../_arca-marketing-assets/assets/characters.png` (persona) and `../_arca-marketing-assets/assets/logo.png` to the image/video models for consistency; use the supplied logo only, never invent or distort it. **This skill drives the Wyren MCP — load the `wyren` skill before any `mcp__wyren__*` call.** It pairs with `storyboard-prompt` (upstream) and `shorts-editor` (downstream edit). Swap `../_arca-marketing-assets/brand.md` + `../_arca-marketing-assets/assets/` to retarget to another brand.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -14,9 +14,9 @@ Create a realistic vertical short-form video from the provided 3x3 storyboard re
|
|
|
14
14
|
|
|
15
15
|
INTAKE — ASK FIRST:
|
|
16
16
|
Before generating, ask the user for any of these that are not already provided, then wait for their answers:
|
|
17
|
-
1. STORYBOARD REFERENCE — the
|
|
17
|
+
1. STORYBOARD REFERENCE — the storyboard image (and shot notes if available). Note whether it is PHOTOGRAPHIC frames or a SCHEMATIC / annotated plan (panel numbers, notes boxes, mock UI) — see STORYBOARD INTERPRETATION; it changes how the video is built.
|
|
18
18
|
2. VIDEO TYPE / STYLE — UGC / phone-shot (default), cinematic / movie-trailer, animation, motion-graphics, product film, skit, etc. Should match the storyboard's declared type. Drives the LOOK and the first-5-seconds cold open. If UGC, the phone-shot styling below applies; if not, follow that type's craft.
|
|
19
|
-
3. BRAND PROFILE — the attached or pasted
|
|
19
|
+
3. BRAND PROFILE — the attached or pasted ../_arca-marketing-assets/brand.md (brand name, logo rules, persona, colors).
|
|
20
20
|
4. TARGET MARKET / AUDIENCE — who this is for.
|
|
21
21
|
5. VIDEO SEGMENT — FULL VIDEO / PART 1 / PART 2.
|
|
22
22
|
6. TARGET DURATION.
|
|
@@ -26,7 +26,12 @@ Before generating, ask the user for any of these that are not already provided,
|
|
|
26
26
|
10. NATIVE AUDIO — whether the video model should synthesize dialogue/sound (only some models support it). Default: on if the chosen model supports `sound`.
|
|
27
27
|
Ask first. Only make smart, briefly stated assumptions for whatever is still missing, and state them briefly. If the user names a budget or "cheapest/fastest", pick the model tier accordingly and say which you picked.
|
|
28
28
|
|
|
29
|
-
Use the storyboard as the
|
|
29
|
+
Use the storyboard as the PLAN, not as footage to copy. First classify it (see STORYBOARD
|
|
30
|
+
INTERPRETATION below): if the panels are photographic, clean them and use them as start frames; if
|
|
31
|
+
they are schematic / annotated mockups (panel numbers, notes boxes, drawn phone bezels, mock UI), do
|
|
32
|
+
NOT upscale or reproduce them 1:1 — rebuild the video patterned to them, using Wyren clips for the
|
|
33
|
+
live footage and HyperFrames for the on-screen graphics. You may generate clips separately and merge
|
|
34
|
+
them (Wyren or HyperFrames), or use video-model multishot — decide smartly.
|
|
30
35
|
|
|
31
36
|
VIDEO TYPE SCOPE — read before applying the rules below.
|
|
32
37
|
This skill makes ANY video type. The LOOK follows the chosen VIDEO TYPE; the TikTok retention rules
|
|
@@ -43,6 +48,42 @@ rules) apply to EVERY type.
|
|
|
43
48
|
— render in the chosen type's craft (e.g. for a trailer: cinematic lighting, fast cutting, scale).
|
|
44
49
|
Still keep the retention rules, continuity locks, brand/logo rules, and the first-5s cold open.
|
|
45
50
|
|
|
51
|
+
STORYBOARD INTERPRETATION — PHOTOGRAPHIC vs SCHEMATIC (read before generating)
|
|
52
|
+
|
|
53
|
+
Storyboards arrive in two forms. Detect which you have before touching Wyren.
|
|
54
|
+
|
|
55
|
+
A) PHOTOGRAPHIC frames — each cell is a real / clean image of the actual scene (people, environment),
|
|
56
|
+
like the clean frame grid the `storyboard-prompt` skill now outputs.
|
|
57
|
+
→ Crop each frame to 9:16 and clean / upscale it into a start frame (GENERATION SETTINGS Step A),
|
|
58
|
+
keeping the face, then use it as the videoAI startFrame. This is the 1:1-friendly path.
|
|
59
|
+
|
|
60
|
+
B) SCHEMATIC / ANNOTATED storyboard — each panel is a rough PLAN: a drawn phone bezel, small webcam
|
|
61
|
+
tiles, mock UI cards, labels, sticky notes, captions, and a notes box (SCENE / TIME / SHOT / ANGLE
|
|
62
|
+
/ MOVE / ACTION / DIALOGUE / AUDIO / TRANSITION / RETENTION / PHONE REALISM). The example
|
|
63
|
+
"AI Operator Interview" sheet is exactly this kind.
|
|
64
|
+
→ Treat it strictly as a SHOT PLAN, never as pixels. Do NOT upscale it, do NOT reproduce panels
|
|
65
|
+
1:1, and never render the panel numbers, "Panel N" labels, notes boxes, drawn bezels, or the
|
|
66
|
+
panel's rough mock graphics as-is into the video. Instead REBUILD each beat:
|
|
67
|
+
- Read the panel's SCENE / ACTION / SHOT / ANGLE / MOVE / DIALOGUE / AUDIO / TRANSITION /
|
|
68
|
+
RETENTION as the brief for that shot.
|
|
69
|
+
- Generate the LIVE FOOTAGE with Wyren (people, faces, desk, reactions, real environment, camera
|
|
70
|
+
move) using the recurring character profile for face consistency and a fresh start frame
|
|
71
|
+
DESIGNED for that shot via image AI — not the schematic panel.
|
|
72
|
+
- Build the ON-SCREEN GRAPHICS with HyperFrames and composite them over the Wyren footage: UI
|
|
73
|
+
cards, data / deck mockups, split-desk labels, chips, checklists, route-map lines, captions,
|
|
74
|
+
progress arcs, a REC indicator, the logo — anything that is a graphic, not live action.
|
|
75
|
+
- Match each panel's layout and intent (what graphic sits where, what the person is doing), but
|
|
76
|
+
realize it as real footage + clean motion graphics in the chosen VIDEO TYPE's look.
|
|
77
|
+
|
|
78
|
+
WHO MAKES WHAT (schematic path):
|
|
79
|
+
- Wyren videoAI → live-action clips: people, faces, reactions, hands, environment, props, camera move.
|
|
80
|
+
- Wyren imageAI → designed start frames and any photographic plates feeding the clips.
|
|
81
|
+
- HyperFrames → all overlay graphics, captions, chips, UI / data mockups, transitions, logo, splash,
|
|
82
|
+
composited on top of the clips (the same graphics layer the `shorts-editor` skill uses).
|
|
83
|
+
Keep diegetic vs overlay clear: a screen the actor really looks at can be a graphic comped onto the
|
|
84
|
+
device; floating captions / chips are HyperFrames overlays. Never bake storyboard annotations into the
|
|
85
|
+
video. If you are unsure which form the storyboard is, ask the user before generating.
|
|
86
|
+
|
|
46
87
|
CORE OUTPUT
|
|
47
88
|
|
|
48
89
|
Generate a finished vertical short-form video with:
|
|
@@ -67,13 +108,18 @@ options with `mcp__wyren__list_models` and `mcp__wyren__get_model_capabilities`
|
|
|
67
108
|
the lists below are a current snapshot, not a contract, and per-model resolution/duration/startFrame
|
|
68
109
|
support changes.
|
|
69
110
|
|
|
70
|
-
Step A —
|
|
71
|
-
-
|
|
111
|
+
Step A — produce a start frame per shot (image model, `imageAI` node):
|
|
112
|
+
- PHOTOGRAPHIC storyboard (path A): crop each panel to 9:16, then upscale/clean it into a usable
|
|
113
|
+
first frame.
|
|
114
|
+
- SCHEMATIC storyboard (path B): do NOT upscale the panel. Use image AI to DESIGN a new start frame
|
|
115
|
+
for that shot from the character profile + the panel's brief (scene, action, framing), so the frame
|
|
116
|
+
is real-looking footage, not a redraw of the mockup. The panel's mock UI becomes a HyperFrames
|
|
117
|
+
overlay later, not part of this start frame.
|
|
72
118
|
- **Keep the face.** When upscaling/cleaning with the image model, instruct it to PRESERVE the
|
|
73
119
|
existing person's identity — same face, hair, age, build, and wardrobe — and only improve quality
|
|
74
120
|
(sharpen, denoise, fix artifacts). Do not let it redraw or beautify into a different face. Use an
|
|
75
121
|
image-edit-capable model (Nanobanana / Nanobanana Pro accept image input) and pass the panel plus
|
|
76
|
-
the character profile (and
|
|
122
|
+
the character profile (and `../_arca-marketing-assets/assets/characters.png`) as references, with a prompt like "enhance and
|
|
77
123
|
clean this frame, keep the exact same face and person, do not change identity." This face-preserving
|
|
78
124
|
upscale is what makes the per-shot start frames consistent across a multishot/multi-clip video.
|
|
79
125
|
- Image models (category "image"): Nanobanana (Gemini 2.5 Flash Image, 1K, image input, default),
|
|
@@ -81,7 +127,7 @@ Step A — clean storyboard frames into start frames (image model, `imageAI` nod
|
|
|
81
127
|
persona/logo consistent), Imagen 4 Fast / Standard / Ultra (text-only, 1K–2K, no image input).
|
|
82
128
|
- Image sizes: 1K / 2K / 4K depending on model. Aspect ratios: 1:1, 4:3, 9:16, 16:9.
|
|
83
129
|
- Default: Nanobanana Pro at 2K (image input + multi-reference keeps character + logo locked).
|
|
84
|
-
To feed the persona and logo, pass
|
|
130
|
+
To feed the persona and logo, pass `../_arca-marketing-assets/assets/characters.png` and `../_arca-marketing-assets/assets/logo.png` as reference images.
|
|
85
131
|
|
|
86
132
|
Step B — generate the clips (video model, `videoAI` node):
|
|
87
133
|
- Video models (category "video") and their key knobs:
|
|
@@ -101,12 +147,18 @@ Step B — generate the clips (video model, `videoAI` node):
|
|
|
101
147
|
|
|
102
148
|
Wyren execution flow (per the wyren skill's policy — load it before any `mcp__wyren__*` call):
|
|
103
149
|
1. `list_models` + `get_model_capabilities` to lock the exact image/video model, resolution, mode, duration.
|
|
104
|
-
2. `build_graph`: `imageInput` (
|
|
105
|
-
|
|
150
|
+
2. `build_graph`: `imageInput` (start-frame source, characters.png, logo.png) → `imageAI` (path A: clean/
|
|
151
|
+
upscale the photo panel; path B: design a fresh start frame) → `videoAI` (the chosen model/resolution/
|
|
152
|
+
mode/duration). Use multi-shot or per-clip nodes per the split rule.
|
|
106
153
|
3. `validate_workflow` — resolve warnings with the user.
|
|
107
154
|
4. Estimate cost with `get_pricing` (chain mode) / `estimate_product_cost`; get the user's OK to spend.
|
|
108
155
|
5. `run_workflow` (`userConfirmed: true`), then poll `get_workflow_run_status` every 5s until terminal.
|
|
109
|
-
6. Pull
|
|
156
|
+
6. Pull the clips with `get_node_outputs`.
|
|
157
|
+
7. GRAPHICS PASS (HyperFrames) — build the on-screen overlay graphics the storyboard calls for (UI/data
|
|
158
|
+
cards, chips, captions, checklists, route maps, logo, transitions) and composite them over the Wyren
|
|
159
|
+
clips. For a SCHEMATIC storyboard this pass is required (the mock UI in the panels lives here, not in
|
|
160
|
+
the footage). Hand off to the `shorts-editor` skill, which owns this HyperFrames graphics + master step.
|
|
161
|
+
8. Merge the clips + graphics into the final cut.
|
|
110
162
|
|
|
111
163
|
RECURRING CHARACTER CONSISTENCY (multishot / multi-clip)
|
|
112
164
|
|
|
@@ -117,8 +169,8 @@ FIRST, before generating any shot. Do this for each recurring character (e.g. th
|
|
|
117
169
|
|
|
118
170
|
Step 0 — build a character profile BEFORE any shot:
|
|
119
171
|
1. Generate a character profile / face reference with the image model. Use **Nanobanana Pro**
|
|
120
|
-
(up to 14 reference images, up to 4K) seeded with
|
|
121
|
-
description from
|
|
172
|
+
(up to 14 reference images, up to 4K) seeded with `../_arca-marketing-assets/assets/characters.png` and the persona
|
|
173
|
+
description from `../_arca-marketing-assets/brand.md`. Produce a clean reference: a front face + a 3/4 face (and a
|
|
122
174
|
head-to-waist) of the SAME person — consistent face, hair, skin, age, build, and wardrobe —
|
|
123
175
|
rendered in the casual phone-UGC look (natural skin texture, real lighting), NOT glamour/studio.
|
|
124
176
|
One profile image per recurring character.
|
|
@@ -173,10 +225,10 @@ Storyboard breakdown or shot notes:
|
|
|
173
225
|
[PASTE BREAKDOWN HERE]
|
|
174
226
|
|
|
175
227
|
Brand:
|
|
176
|
-
[BRAND NAME — see brand profile (
|
|
228
|
+
[BRAND NAME — see brand profile (../_arca-marketing-assets/brand.md)]
|
|
177
229
|
|
|
178
230
|
Brand profile:
|
|
179
|
-
[ATTACH OR PASTE
|
|
231
|
+
[ATTACH OR PASTE ../_arca-marketing-assets/brand.md — brand name, logo rules, persona, colors]
|
|
180
232
|
|
|
181
233
|
Logo asset:
|
|
182
234
|
Use the supplied brand logo only if available.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|