cueframe 0.4.10 → 0.7.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/LICENSE +202 -661
- package/NOTICE +10 -0
- package/README.md +9 -8
- package/dist/analyze-5OURFQXO.js +2 -0
- package/dist/chunk-56LDB4H5.js +12 -0
- package/dist/cueframe.js +103 -48
- package/dist/skills/add-music-bed/SKILL.md +12 -7
- package/dist/skills/brand-reel/SKILL.md +19 -15
- package/dist/skills/clip-a-talking-head/SKILL.md +15 -7
- package/dist/skills/composing-video/SKILL.md +59 -314
- package/dist/skills/cueframe-brand-demo/SKILL.md +9 -2
- package/dist/skills/cueframe-cli/SKILL.md +57 -52
- package/dist/skills/cueframe-component-authoring/SKILL.md +64 -38
- package/dist/skills/cueframe-compose-loop/SKILL.md +20 -6
- package/dist/skills/cueframe-compose-loop/references/builtin-insertion.md +49 -0
- package/dist/skills/cueframe-compose-loop/references/builtin-requests.json +111 -0
- package/dist/skills/cueframe-connect/SKILL.md +17 -9
- package/dist/skills/cueframe-product-video/SKILL.md +15 -7
- package/dist/skills/cueframe-scene-shot/SKILL.md +8 -0
- package/dist/skills/cueframe-storyboard/SKILL.md +27 -55
- package/dist/skills/every-format-from-one-edit/SKILL.md +14 -8
- package/dist/skills/extracting-brand-kits/SKILL.md +8 -0
- package/dist/skills/launch-video/SKILL.md +17 -11
- package/dist/skills/make-a-social-reel/SKILL.md +19 -15
- package/dist/skills/rebrand-a-video/SKILL.md +18 -16
- package/dist/skills/video-craft-standards/SKILL.md +40 -47
- package/package.json +12 -12
- package/dist/analyze-CDC4H53Q.js +0 -2
- package/dist/chunk-QS37SCWN.js +0 -73
|
@@ -5,6 +5,14 @@ description: Swaps the brand kit under an existing video and re-renders — toke
|
|
|
5
5
|
|
|
6
6
|
# Rebrand a video
|
|
7
7
|
|
|
8
|
+
## Scope and capability policy
|
|
9
|
+
|
|
10
|
+
User intent and acceptance criteria override this recipe's aesthetic defaults. Silent, typography-only, uncaptioned and slow work are valid; no universal narration, footage, CTA, beat count or score target. Contracts, factual fidelity, media bindings and current source revisions remain mandatory.
|
|
11
|
+
|
|
12
|
+
Read available tools and current project; preserve the chosen local/hosted lane. Supported local work needs no hosted registration. Do not silently install, authenticate, switch projects or upload local content. Before metered hosted work, check `get_account`, entitlements, balance and quotes. Desktop setup: https://docs.cueframe.ai.
|
|
13
|
+
|
|
14
|
+
For scoped revisions, preserve unrelated timing, media, audio and shared brand-kit state. Edit affected content; inspect relevant frames, continuous motion and affected audio. No restarted intake, new approval pause, paid judge or final export by default. Judge only when useful; scores never override acceptance failures. Stop/report after two no-improvement passes. See [preview workflow](../cueframe-compose-loop/references/preview-workflow.md).
|
|
15
|
+
|
|
8
16
|
You bring a finished video and a new brand (a kit, a website, or new colors/fonts/logo); you get
|
|
9
17
|
the same video back wearing the new identity — everything bound to brand tokens re-themes at
|
|
10
18
|
render, and the few graphics that hardcoded the old brand get found and fixed. Change one line,
|
|
@@ -23,9 +31,7 @@ Then back to the brand — most of this job is a kit definition and an audit.
|
|
|
23
31
|
in.
|
|
24
32
|
- **The new brand** (required): an existing kit id, a website to `extract_brand_kit` from
|
|
25
33
|
(colors/fonts only — ask for logo, tagline, voice), or explicit values for `create_brand_kit`.
|
|
26
|
-
- **
|
|
27
|
-
composition pointing at it re-themes. White-labeling for someone else → a NEW kit, so the
|
|
28
|
-
original stays intact.
|
|
34
|
+
- **Scope:** a title/color/logo correction edits only affected clip values or bindings. Do not upsert a shared kit for one local correction. A project-wide brand change must be explicit: a same-kit upsert affects every referencing composition. For a new identity, use a new kit when supported. Styling preserves layout; a full redesign requires explicit scope.
|
|
29
35
|
- **Tone shift**: does the new brand change the music mood too? Check the kit's `musicMood`
|
|
30
36
|
intent.
|
|
31
37
|
|
|
@@ -35,7 +41,7 @@ Use `cueframe-compose-loop`'s [preview workflow](../cueframe-compose-loop/refere
|
|
|
35
41
|
for affected graphics and saved-composition checks. Inspect motion if the kit changes timing;
|
|
36
42
|
keep the final re-render separate from previews used to resolve individual styling corrections.
|
|
37
43
|
|
|
38
|
-
1. **
|
|
44
|
+
1. **For an explicit project-wide brand change, pin the new brand as a kit.** `extract_brand_kit` or `create_brand_kit`; show the kit and
|
|
39
45
|
get sign-off — it is the contract. Then bind it: upsert in place (same kit id) to restyle,
|
|
40
46
|
or point the project at the new kit for a white-label. The kit lives on the PROJECT, not on
|
|
41
47
|
a composition op.
|
|
@@ -56,31 +62,27 @@ keep the final re-render separate from previews used to resolve individual styli
|
|
|
56
62
|
5. **Fix the holdouts surgically.** `apply_composition` edits per offending clip: rebind card
|
|
57
63
|
fields to `$brand:` tokens (so the NEXT rebrand really is one line), swap the old-wordmark
|
|
58
64
|
media, re-grade footage toward the new palette. A replaced card gets re-shelled with
|
|
59
|
-
`applyMotionPreset` in a FOLLOWING call.
|
|
60
|
-
|
|
61
|
-
don't tint it.
|
|
62
|
-
6. **Re-decide the audio — required.** A brand swap is a mood swap: check the bed against the
|
|
65
|
+
`applyMotionPreset` in a FOLLOWING call. If the requested scope is styling, retain its layout; rebuild only for an explicitly requested redesign.
|
|
66
|
+
6. **Review audio only when in scope.** A styling correction preserves existing audio and timing; for a broader brand change: check the bed against the
|
|
63
67
|
new kit's `musicMood`. Wrong mood → `search_resources` a replacement (license recorded),
|
|
64
68
|
same role and ducking, `materializeGrid` re-run if cut timing shifts. Still right → say so
|
|
65
69
|
in the delivery note. If the piece was intentionally silent, confirm that decision still
|
|
66
70
|
fits the new brand and restate it.
|
|
67
|
-
7. **
|
|
68
|
-
as `brandContext` — the brand axis is exactly the check this job needs. Fix worst-first to
|
|
69
|
-
≥ 7.5, then `create_render` → `wait_job (kind:"render")`.
|
|
71
|
+
7. **Preview the affected styling.** Check the changed color/logo/text and relevant regressions against the requested values. For broader brand review, use `score_composition` only when useful and within budget. Export with `create_render` only for requested final delivery.
|
|
70
72
|
|
|
71
73
|
## What good looks like
|
|
72
74
|
|
|
73
75
|
Quoted from `video-craft-standards` §3 (Brand-identity reel) — the bespoke test applies to every
|
|
74
76
|
card in any class:
|
|
75
77
|
|
|
76
|
-
> **
|
|
77
|
-
> system. **
|
|
78
|
+
> **DEFAULT** Every graphic is bespoke to the brand: its type, its palette as fields, its layout
|
|
79
|
+
> system. **Consider:** any layout that would look correct with another brand's hex swapped in.
|
|
78
80
|
|
|
79
|
-
> **
|
|
81
|
+
> **DEFAULT** Footage color and brand palette agree — grade toward the palette or choose footage
|
|
80
82
|
> that lives in it.
|
|
81
83
|
|
|
82
|
-
And cross-cutting: *"**
|
|
83
|
-
typography, layout, palette-as-fields) […] **
|
|
84
|
+
And cross-cutting: *"**DEFAULT** Brand/text graphics are AUTHORED — `kind:"card"` HTML (your
|
|
85
|
+
typography, layout, palette-as-fields) […] **Consider:** a brand graphic rendered from a catalog text
|
|
84
86
|
primitive."*
|
|
85
87
|
|
|
86
88
|
## Delivering
|
|
@@ -1,30 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: video-craft-standards
|
|
3
|
-
description:
|
|
3
|
+
description: Craft defaults and applicable review checklists for CueFrame videos (social reel, launch film, brand reel, talking-head clip). User intent and requested scope govern their application; factual fidelity and tool contracts remain mandatory. Triggers on "is this good enough", "quality bar", "what should a finished reel have", "review my video", or any request to make a video when no other skill has stated the bar.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Video-Craft Standards — what "finished" means
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
MUST for its artifact class is **not done** — fix it or explicitly record why
|
|
10
|
-
the rule doesn't apply. Kill criteria (**K**) mean: do not render; fix first.
|
|
8
|
+
## Scope and capability policy
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
User intent and acceptance criteria override this recipe's aesthetic defaults. Silent, typography-only, uncaptioned and slow work are valid; no universal narration, footage, CTA, beat count or score target. Contracts, factual fidelity, media bindings and current source revisions remain mandatory.
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
Read available tools and current project; preserve the chosen local/hosted lane. Supported local work needs no hosted registration. Do not silently install, authenticate, switch projects or upload local content. Before metered hosted work, check `get_account`, entitlements, balance and quotes. Desktop setup: https://docs.cueframe.ai.
|
|
13
|
+
|
|
14
|
+
For scoped revisions, preserve unrelated timing, media, audio and shared brand-kit state. Edit affected content; inspect relevant frames, continuous motion and affected audio. No restarted intake, new approval pause, paid judge or final export by default. Judge only when useful; scores never override acceptance failures. Stop/report after two no-improvement passes. See [preview workflow](../cueframe-compose-loop/references/preview-workflow.md).
|
|
15
|
+
|
|
16
|
+
These are aesthetic defaults for the named formats, not universal delivery gates. Apply only the checklist items relevant to the requested artifact; a silent typography study needs neither footage nor narration, and a title correction needs only affected evidence. User acceptance criteria govern delivery. The labels below describe recommendations; do not reject explicit creative choices using a default or a judge score.
|
|
19
17
|
|
|
20
18
|
## The controlling idea — the rule above every rule
|
|
21
19
|
|
|
22
|
-
- **
|
|
20
|
+
- **DEFAULT** For new work, consider stating the video's CLAIM in one sentence —
|
|
23
21
|
the thing a viewer should be able to repeat afterward ("real bread takes
|
|
24
22
|
48 hours and you can taste every one of them"). Not a vibe, not a tagline:
|
|
25
23
|
a claim with tension (what does this brand/story believe that its category
|
|
26
24
|
doesn't?).
|
|
27
|
-
- **
|
|
25
|
+
- **DEFAULT** Each included channel serves the requested intent, in harmony:
|
|
28
26
|
- **Footage** — each clip earns its place as proof of the claim, chosen
|
|
29
27
|
from the claim's shot list, not from search-term aesthetics.
|
|
30
28
|
- **Sound** — the bed's mood and TEMPO embody the claim (a "slow" claim
|
|
@@ -34,7 +32,7 @@ your one final render.
|
|
|
34
32
|
platform convention when the claim demands it.
|
|
35
33
|
- **Type/cards** — copy advances the argument; the tagline lands as the
|
|
36
34
|
CONCLUSION the beats have earned, never as a caption.
|
|
37
|
-
- **
|
|
35
|
+
- **Review prompts:** (1) beats reorderable without changing what the video
|
|
38
36
|
says; (2) any channel (bed, shot, card) that would fit a different claim
|
|
39
37
|
equally well; (3) a viewer who watched it cannot state the claim.
|
|
40
38
|
|
|
@@ -46,83 +44,78 @@ For scoped corrections and preview selection, use `cueframe-compose-loop`'s
|
|
|
46
44
|
motion and listen to affected audio, not only stills or judge scores. Keep the user's explicit
|
|
47
45
|
scope and acceptance criteria; approved simulated UI is not evidence of a real product capture.
|
|
48
46
|
|
|
49
|
-
- **
|
|
47
|
+
- **DEFAULT** Brand/text graphics are AUTHORED — `kind:"card"` HTML (your
|
|
50
48
|
typography, layout, palette-as-fields) shelled with `applyMotionPreset`,
|
|
51
49
|
or a custom component. Catalog text primitives are for utility only.
|
|
52
|
-
**
|
|
53
|
-
- **
|
|
50
|
+
**Consider:** a brand graphic rendered from a catalog text primitive.
|
|
51
|
+
- **DEFAULT** Audio is decided, never defaulted: a music bed (curated packs via
|
|
54
52
|
`import_resource {kind:"music-pack"}`) or ambience/loops (Freesound via
|
|
55
53
|
`search_resources kind:"sfx"`), honoring the brand kit's `musicMood`;
|
|
56
54
|
cut to the beat via `materializeGrid` when the bed drives pacing — OR an
|
|
57
55
|
explicit intentional-silence decision recorded in your delivery note with
|
|
58
|
-
the reason. **
|
|
59
|
-
- **
|
|
60
|
-
≥60% of runtime for footage-first classes.
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
-
- **
|
|
64
|
-
- **
|
|
56
|
+
the reason. **Consider:** a render whose silence nobody chose.
|
|
57
|
+
- **DEFAULT** Footage carries the video: real footage / real UI / real data
|
|
58
|
+
≥60% of runtime for footage-first classes. Typography-only work is a valid requested format.
|
|
59
|
+
- **DEFAULT** Every stock asset's provenance is recorded (provider, id, author).
|
|
60
|
+
- **DEFAULT** Safe-area respected: no critical copy in the outer ~8% of frame.
|
|
61
|
+
- **DEFAULT** One final render per approval; iterate with previews, not renders.
|
|
62
|
+
- **DEFAULT** Delivery never ends with "done": the last message carries the
|
|
65
63
|
output link and where to find it, plus the intentional-silence note if any.
|
|
66
64
|
|
|
67
65
|
## 1. Social reel — 9:16 · 8–30s
|
|
68
66
|
|
|
69
|
-
- **
|
|
67
|
+
- **DEFAULT** The hook lands inside 2 seconds: the strongest image, motion,
|
|
70
68
|
or claim opens the piece. No logo-first cold opens, no fade-in-from-black
|
|
71
69
|
preambles.
|
|
72
|
-
- **
|
|
73
|
-
palette, considered alignment and scale. **
|
|
70
|
+
- **DEFAULT** Typography is poster-grade: composed plates/fields in the brand
|
|
71
|
+
palette, considered alignment and scale. **Consider:** centered white text
|
|
74
72
|
floating on footage.
|
|
75
|
-
- **
|
|
73
|
+
- **DEFAULT** Pacing is cut-driven: a new visual beat at least every ~4s; static
|
|
76
74
|
holds >4s need motion inside the frame (reframe push, kenBurns, animated
|
|
77
75
|
card) or they die.
|
|
78
|
-
- **
|
|
76
|
+
- **DEFAULT** Ends on a deliberate beat: tagline, logo, or CTA lockup — not a
|
|
79
77
|
clip running out.
|
|
80
78
|
- **SHOULD** Cuts land on the music grid when a bed exists.
|
|
81
79
|
|
|
82
80
|
## 2. Launch film / feature announcement — 16:9 · 30–90s
|
|
83
81
|
|
|
84
|
-
- **
|
|
82
|
+
- **DEFAULT** Payoff-first hook: the OUTCOME, not the feature name
|
|
85
83
|
("Close the books two days faster" beats "Introducing the reconciliation
|
|
86
84
|
module"). No throat-clearing ("in this video we're going to…").
|
|
87
|
-
- **
|
|
85
|
+
- **DEFAULT** Narration or a bed that builds toward the reveal; pacing tightens
|
|
88
86
|
as the payoff approaches.
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
91
|
-
- **
|
|
87
|
+
- **DEFAULT** Real product surface: actual UI/screens/output — never mocked.
|
|
88
|
+
- **DEFAULT** End card with a single CTA.
|
|
89
|
+
- **DEFAULT** Captions present when narrated.
|
|
92
90
|
|
|
93
91
|
## 3. Brand-identity reel — 9:16 · 12–20s (the showcase class)
|
|
94
92
|
|
|
95
93
|
Everything in §1, plus:
|
|
96
|
-
- **
|
|
94
|
+
- **DEFAULT** Three-beat arc: opening brand moment (wordmark treatment) →
|
|
97
95
|
middle craft/proof beat (the subject's world, with an editorial device —
|
|
98
96
|
numbered chapter, pull-quote, stat) → closing tagline lockup.
|
|
99
|
-
- **
|
|
100
|
-
fields, its layout system. **
|
|
97
|
+
- **DEFAULT** Every graphic is bespoke to the brand: its type, its palette as
|
|
98
|
+
fields, its layout system. **Consider:** any layout that would look correct with
|
|
101
99
|
another brand's hex swapped in.
|
|
102
|
-
- **
|
|
100
|
+
- **DEFAULT** Footage color and brand palette agree — grade toward the palette
|
|
103
101
|
or choose footage that lives in it.
|
|
104
102
|
|
|
105
103
|
## 4. Talking-head clip — any aspect · 15–60s
|
|
106
104
|
|
|
107
|
-
- **
|
|
105
|
+
- **DEFAULT** Hook = the strongest sentence, first. Cut TO the moment;
|
|
108
106
|
never open on wind-up.
|
|
109
|
-
- **
|
|
107
|
+
- **DEFAULT** Active-speaker reframe (`focus: active-speaker` / `face`) — a
|
|
110
108
|
moving camera, not a static center crop.
|
|
111
|
-
- **
|
|
109
|
+
- **DEFAULT** Captions timed to the saved edited timeline (`captions.fromComposition`
|
|
112
110
|
after the clip edits; re-run after later edits). Speech clips must have saved duration matching playable source duration divided by
|
|
113
111
|
playbackRate.
|
|
114
112
|
The focused behind-the-speaker LOOK is an overlay text layer at
|
|
115
113
|
`zPlane:"behind-subject"` where the footage allows. Use caption-layer
|
|
116
114
|
`zPlane:"behind-subject"` only when the user explicitly wants every running
|
|
117
115
|
caption behind the speaker and the legibility gate accepts it.
|
|
118
|
-
- **
|
|
116
|
+
- **DEFAULT** Dead air and false starts cut (`addExcludedRange` /
|
|
119
117
|
`cutAndRipple`).
|
|
120
118
|
|
|
121
119
|
## Scoring discipline
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
each one to yourself BEFORE judging it; (2) walk the class checklist and list
|
|
125
|
-
every MUST as pass/fail; (3) any K fails → fix, re-preview; (4) run
|
|
126
|
-
`score_composition` when the budget allows and fix the worst criterion first.
|
|
127
|
-
The checklist is the floor; the judge is the critic; neither substitutes for
|
|
128
|
-
looking at the frames.
|
|
121
|
+
Check the requested criteria against appropriate real evidence: affected stills, continuous motion and audio when relevant. Broader review can use `score_composition` when useful and within budget; it is not mandatory for a scoped correction. The hosted judge includes a fixed caption criterion and can penalize intentionally uncaptioned work; do not add captions solely to improve that score. These skill changes do not change judge behavior. Failed user acceptance criteria remain failures regardless of score. Stop and report remaining gaps after two passes without improvement; export only for requested final delivery.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cueframe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Agent-native CLI for CueFrame — author compositions and render video from the terminal (early-access preview).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cueframe",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
],
|
|
15
15
|
"homepage": "https://docs.cueframe.ai",
|
|
16
16
|
"author": "CueFrame, Inc.",
|
|
17
|
-
"license": "
|
|
17
|
+
"license": "Apache-2.0",
|
|
18
18
|
"type": "module",
|
|
19
19
|
"bin": {
|
|
20
20
|
"cueframe": "dist/cueframe.js"
|
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
"main": "dist/cueframe.js",
|
|
23
23
|
"files": [
|
|
24
24
|
"dist",
|
|
25
|
-
"README.md"
|
|
25
|
+
"README.md",
|
|
26
|
+
"LICENSE",
|
|
27
|
+
"NOTICE"
|
|
26
28
|
],
|
|
27
29
|
"engines": {
|
|
28
30
|
"node": ">=24"
|
|
@@ -44,23 +46,21 @@
|
|
|
44
46
|
"@types/node": "^24.0.0",
|
|
45
47
|
"tsup": "^8.5.1",
|
|
46
48
|
"vitest": "^4.1.2",
|
|
47
|
-
"@cueframe/
|
|
48
|
-
"@cueframe/
|
|
49
|
-
"@cueframe/primitives": "0.1.0",
|
|
50
|
-
"@cueframe/plane": "0.1.0",
|
|
51
|
-
"@cueframe/sdk": "0.2.2"
|
|
49
|
+
"@cueframe/sdk": "^0.5.0",
|
|
50
|
+
"@cueframe/skills": "0.2.0"
|
|
52
51
|
},
|
|
53
52
|
"repository": {
|
|
54
53
|
"type": "git",
|
|
55
|
-
"url": "git+https://github.com/cueframe-ai/cueframe.git",
|
|
54
|
+
"url": "git+https://github.com/cueframe-ai/cueframe-mcp.git",
|
|
56
55
|
"directory": "packages/cli"
|
|
57
56
|
},
|
|
58
57
|
"bugs": {
|
|
59
|
-
"url": "https://github.com/cueframe-ai/cueframe/issues"
|
|
58
|
+
"url": "https://github.com/cueframe-ai/cueframe-mcp/issues"
|
|
60
59
|
},
|
|
61
60
|
"scripts": {
|
|
62
|
-
"build": "
|
|
61
|
+
"build": "tsup && node scripts/copy-agent-skills.mjs && node scripts/check-bundle-free-of-kernel.mjs",
|
|
63
62
|
"check": "tsc --noEmit",
|
|
64
|
-
"test": "vitest run"
|
|
63
|
+
"test": "vitest run",
|
|
64
|
+
"check:bundle": "node scripts/check-bundle-free-of-kernel.mjs"
|
|
65
65
|
}
|
|
66
66
|
}
|
package/dist/analyze-CDC4H53Q.js
DELETED