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
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "discover_builtin",
|
|
4
|
+
"tool": "list_catalog",
|
|
5
|
+
"arguments": {
|
|
6
|
+
"projection": "component-library",
|
|
7
|
+
"origin": "builtin",
|
|
8
|
+
"limit": 10,
|
|
9
|
+
"q": "Wheel"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "resolve_exact_builtin",
|
|
14
|
+
"tool": "resolve_builtin_component",
|
|
15
|
+
"arguments": {
|
|
16
|
+
"collection": "curated-looks",
|
|
17
|
+
"id": "builtin:reference-component-wheel-full",
|
|
18
|
+
"revision": "2577db06c45171396e2f0199b2616877dfa25f3f68be0ec75fefea8e6a54755b"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "read_insertion_witnesses",
|
|
23
|
+
"tool": "get_composition",
|
|
24
|
+
"arguments": {
|
|
25
|
+
"projectId": "observed-project",
|
|
26
|
+
"componentExecutionVersions": "3",
|
|
27
|
+
"includeDependencies": "true"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "insert_exact_builtin",
|
|
32
|
+
"tool": "apply_template",
|
|
33
|
+
"arguments": {
|
|
34
|
+
"template": "builtin:reference-component-wheel-full",
|
|
35
|
+
"body": {
|
|
36
|
+
"projectId": "observed-project",
|
|
37
|
+
"documentSha256": "2577db06c45171396e2f0199b2616877dfa25f3f68be0ec75fefea8e6a54755b",
|
|
38
|
+
"insert": {
|
|
39
|
+
"startTime": 3,
|
|
40
|
+
"idPrefix": "wheel-insertion-1"
|
|
41
|
+
},
|
|
42
|
+
"expectedRevision": 1,
|
|
43
|
+
"commandId": "insert-wheel-1",
|
|
44
|
+
"values": {},
|
|
45
|
+
"media": {
|
|
46
|
+
"image1": {
|
|
47
|
+
"sample": true
|
|
48
|
+
},
|
|
49
|
+
"image2": {
|
|
50
|
+
"sample": true
|
|
51
|
+
},
|
|
52
|
+
"image3": {
|
|
53
|
+
"sample": true
|
|
54
|
+
},
|
|
55
|
+
"image4": {
|
|
56
|
+
"sample": true
|
|
57
|
+
},
|
|
58
|
+
"image5": {
|
|
59
|
+
"sample": true
|
|
60
|
+
},
|
|
61
|
+
"image6": {
|
|
62
|
+
"sample": true
|
|
63
|
+
},
|
|
64
|
+
"image7": {
|
|
65
|
+
"sample": true
|
|
66
|
+
},
|
|
67
|
+
"image8": {
|
|
68
|
+
"sample": true
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"componentExecutionVersions": [
|
|
72
|
+
3
|
|
73
|
+
],
|
|
74
|
+
"expectedBrandIdentity": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "wait_for_score",
|
|
80
|
+
"tool": "wait_job",
|
|
81
|
+
"arguments": {
|
|
82
|
+
"kind": "verify",
|
|
83
|
+
"id": "returned-job-id"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "render_inserted_wheel",
|
|
88
|
+
"tool": "create_render",
|
|
89
|
+
"arguments": {
|
|
90
|
+
"projectId": "observed-project",
|
|
91
|
+
"body": {
|
|
92
|
+
"compositionId": "observed-composition",
|
|
93
|
+
"format": {
|
|
94
|
+
"aspectRatio": "16:9",
|
|
95
|
+
"fps": 30,
|
|
96
|
+
"resolution": "fhd"
|
|
97
|
+
},
|
|
98
|
+
"intent": "final"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "wait_for_render",
|
|
104
|
+
"tool": "wait_job",
|
|
105
|
+
"arguments": {
|
|
106
|
+
"kind": "render",
|
|
107
|
+
"id": "returned-render-id",
|
|
108
|
+
"projectId": "observed-project"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
]
|
|
@@ -5,8 +5,17 @@ description: Use when CueFrame is not connected yet, the user asks how to connec
|
|
|
5
5
|
|
|
6
6
|
# Connect CueFrame
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
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
|
+
|
|
16
|
+
First inspect available CueFrame tools and their current project context. If the requested work is supported by an existing connection, use it without installing again. Preserve the user's chosen local or hosted lane. Local-only desktop work needs no hosted registration; desktop connection instructions are at https://docs.cueframe.ai. This public plugin connects to the hosted product at `https://api.cueframe.ai/v1/mcp`.
|
|
17
|
+
|
|
18
|
+
When a required capability is missing, explain the limitation and the supported alternative. Setup is warranted only when requested or necessary for an authorized tool action. Do not silently install across clients, launch authentication, switch projects or upload local content. For CLI setup, select the intended client using its supported flags rather than wiring every detected host. Resume the original task after setup.
|
|
10
19
|
|
|
11
20
|
- **Claude Code:** offer to run
|
|
12
21
|
`claude mcp add --transport http cueframe https://api.cueframe.ai/v1/mcp` — a browser
|
|
@@ -14,7 +23,7 @@ resume the user's original task immediately afterward.
|
|
|
14
23
|
- **Claude.ai / Claude Desktop:** Settings → Connectors → add a custom connector with
|
|
15
24
|
`https://api.cueframe.ai/v1/mcp`.
|
|
16
25
|
- **Other agents (Cursor, Codex, VS Code, Windsurf, Zed, Antigravity CLI, Copilot CLI, …):**
|
|
17
|
-
|
|
26
|
+
use `npx -y cueframe@0.7 install --help` to select the intended client; preserve existing configuration and avoid duplicate installs.
|
|
18
27
|
- **ChatGPT:** the CLI cannot wire it because there is no local config to write; add
|
|
19
28
|
`https://api.cueframe.ai/v1/mcp` as a custom connector instead.
|
|
20
29
|
- **No account (pay per call):** connect
|
|
@@ -24,22 +33,21 @@ resume the user's original task immediately afterward.
|
|
|
24
33
|
Do not ask the user to configure a model provider for CueFrame. This connection exposes CueFrame's
|
|
25
34
|
tools; the host agent keeps using its already-selected CueFrame Gateway, BYOK, or local model.
|
|
26
35
|
|
|
27
|
-
##
|
|
36
|
+
## Confirm the capabilities needed for the task
|
|
28
37
|
|
|
29
38
|
Connected is not the same as working, and finding out at the first *paid* call is the expensive
|
|
30
|
-
way.
|
|
39
|
+
way. Use available read-only discovery for the selected lane:
|
|
31
40
|
|
|
32
41
|
1. **Discover the surface.** List the tools your host now exposes. You should see the compose loop
|
|
33
42
|
(`new_composition`, `apply_composition`, `validate_composition`, `create_render`) alongside
|
|
34
43
|
discovery reads (`list_catalog`, `list_media`, `get_account`). There are also resources
|
|
35
44
|
(`cueframe://scene-shot` for 3D product shots) and workflow prompts — a flat tool list is not
|
|
36
45
|
the whole surface.
|
|
37
|
-
2. **
|
|
46
|
+
2. **For hosted work, smoke-call `get_account` before spending.** It takes no arguments, costs nothing, and answers the questions
|
|
38
47
|
worth knowing before you spend: which org the key is bound to, the plan, per-feature
|
|
39
48
|
entitlements and — the one that matters — `balance`, not `included`. CueFrame is credit-funded,
|
|
40
49
|
so rendering, generation, preview stills, the judge and the Director all draw on ONE shared
|
|
41
|
-
wallet.
|
|
50
|
+
wallet. A successful `get_account` proves that read is authorized; check the specific capability and current quote separately. Local tools without metered hosted work do not need this hosted call.
|
|
42
51
|
|
|
43
52
|
If a later call fails on scope, the error names the exact missing permission (for example
|
|
44
|
-
`billing:read`, which `get_usage` needs and a creative-only key will not have).
|
|
45
|
-
that scope rather than guessing at the surface.
|
|
53
|
+
`billing:read`, which `get_usage` needs and a creative-only key will not have). Explain the missing permission and use an authorized setup path; do not broaden credentials automatically.
|
|
@@ -5,6 +5,14 @@ description: Use when turning a screen recording (with cursor/click events) into
|
|
|
5
5
|
|
|
6
6
|
# CueFrame — Product Video recipe
|
|
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
|
A **use-case recipe**, not new framework surface. CueFrame's engine only knows
|
|
9
17
|
primitives (`upload` → `composition put` → `render`, the `reframe` viewport, the
|
|
10
18
|
overlay/effect primitives). This skill is the *judgment* on top: how to turn a
|
|
@@ -13,7 +21,7 @@ to author, not how to transport it.
|
|
|
13
21
|
|
|
14
22
|
**Drive the primitives over MCP if you can call tools** (`new_composition` /
|
|
15
23
|
`apply_composition` / `validate_composition` / `create_render` — see the
|
|
16
|
-
`cueframe-connect` skill for the one-line setup). The `npx -y cueframe …` commands
|
|
24
|
+
`cueframe-connect` skill for the one-line setup). The `npx -y cueframe@0.7 …` commands
|
|
17
25
|
written out below are the same operations for a terminal or CI job with no MCP
|
|
18
26
|
host; see the `cueframe-cli` skill.
|
|
19
27
|
|
|
@@ -56,7 +64,7 @@ style's) over each window. Result → `source.reframe.segments` on the clip.
|
|
|
56
64
|
## 3. Compose
|
|
57
65
|
|
|
58
66
|
One video track, the screen recording as a media clip carrying the reframe.
|
|
59
|
-
`npx -y cueframe composition put <projectId> -b @composition.json` (see `cueframe-cli`).
|
|
67
|
+
`npx -y cueframe@0.7 composition put <projectId> -b @composition.json` (see `cueframe-cli`).
|
|
60
68
|
Choose `-a 16:9` for landscape product video, `9:16` for social.
|
|
61
69
|
|
|
62
70
|
## 4. Polish — layer overlay primitives (this is what makes it look "produced")
|
|
@@ -94,21 +102,21 @@ check framing with `preview_frame` and click/zoom timing with an affected-window
|
|
|
94
102
|
For a small revision, verify that change and relevant regressions without exporting the whole film.
|
|
95
103
|
When delivering the finished video:
|
|
96
104
|
|
|
97
|
-
`npx -y cueframe render <projectId> -o out.mp4 --json`. Verify the output (ffprobe +
|
|
105
|
+
`npx -y cueframe@0.7 render <projectId> -o out.mp4 --json`. Verify the output (ffprobe +
|
|
98
106
|
sample frames) before declaring done.
|
|
99
107
|
|
|
100
108
|
## Worked examples — composition JSON
|
|
101
109
|
|
|
102
110
|
These are **orientation, not the contract.** The live wire schema is
|
|
103
|
-
`npx -y cueframe schema composition`, and the way to know a draft is correct is
|
|
104
|
-
`npx -y cueframe composition validate -b @composition.json` — it runs the same
|
|
111
|
+
`npx -y cueframe@0.7 schema composition`, and the way to know a draft is correct is
|
|
112
|
+
`npx -y cueframe@0.7 composition validate -b @composition.json` — it runs the same
|
|
105
113
|
validator the server enforces, with no save and no render. Discover + validate
|
|
106
114
|
before you render; never spend a render to find a schema mistake.
|
|
107
115
|
|
|
108
116
|
Each block below is a complete `@composition.json` (the bare object `composition put`
|
|
109
117
|
accepts: top-level `v`, `format`, `tracks`, optional `captions`). All five validate
|
|
110
118
|
against the real wire schema + save invariants (swap the `<…MediaId>` placeholders for
|
|
111
|
-
real `npx -y cueframe upload` ids). Conventions that keep them valid:
|
|
119
|
+
real `npx -y cueframe@0.7 upload` ids). Conventions that keep them valid:
|
|
112
120
|
|
|
113
121
|
- Tracks hold **`contents`** (not `clips`); each clip wraps a `source`.
|
|
114
122
|
- A clip's `source.kind` must match the track `kind`: `media` → `video`/`image`/`audio`
|
|
@@ -290,4 +298,4 @@ Talking-head with an `active-speaker` reframe and a `heroText` title at `zPlane:
|
|
|
290
298
|
background. See EX3 / EX4 below.
|
|
291
299
|
- This recipe lives in a skill on purpose: the engine stays use-case-free; the
|
|
292
300
|
product opinions (style, which primitives, layout) live here and ship via
|
|
293
|
-
`npx -y cueframe install`. Add sibling recipes (`cueframe-podcast-clip`, …) the same way.
|
|
301
|
+
`npx -y cueframe@0.7 install`. Add sibling recipes (`cueframe-podcast-clip`, …) the same way.
|
|
@@ -5,6 +5,14 @@ description: Author a CueFrame 3D world-object shot as canonical SceneShotSpecV2
|
|
|
5
5
|
|
|
6
6
|
# CueFrame scene shots
|
|
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
|
Use `scene.add` and `scene.update` through `apply_composition`. Author the scene JSON; CueFrame owns the generated wrapper, preparation, resource admission, previews, and export.
|
|
9
17
|
|
|
10
18
|
Before authoring, read `cueframe://scene-shot`. It serves the canonical generated `SceneShotSpecV2` schema, exact operation contracts, supported brand tokens, refusal rules, and a copyable nested slab-and-page recipe. Do not infer fields from an older example.
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cueframe-storyboard
|
|
3
3
|
description: >-
|
|
4
|
-
Use BEFORE composing when starting a NEW video from scratch and you need to plan its structure — turning a rough ask ("make a launch video", "30s promo", "an explainer for our API") into a concrete beat flow. Owns the intake + storyboard step: interview the user for the brief, resolve the format from the platform, and
|
|
4
|
+
Use BEFORE composing when starting a NEW video from scratch and you need to plan its structure — turning a rough ask ("make a launch video", "30s promo", "an explainer for our API") into a concrete beat flow. Owns the intake + storyboard step: interview the user for the brief, resolve the format from the platform, and plan beats from the leading material and requested format. Triggers on "plan a video", "storyboard", "structure this video", "outline the video", "where do I start", or any new-video ask that has no structure yet. Hand off to composing-video for per-beat craft.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# CueFrame Storyboard: brief → flow
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
and use `cueframe-compose-loop`'s [preview workflow](../cueframe-compose-loop/references/preview-workflow.md)
|
|
11
|
-
to verify the requested change; do not restart intake, Director authoring, or final export by default.
|
|
9
|
+
## Scope and capability policy
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
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.
|
|
14
12
|
|
|
13
|
+
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.
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
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).
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
components → seed) executes a plan instead of a guess. Craft — grounded-vs-slop, the verify loop — belongs
|
|
22
|
-
to the sibling **composing-video** skill; this skill gets you a flow, then hands off to it.
|
|
17
|
+
This is a new-video planning workflow. For revisions to an approved plan, preserve its structure
|
|
18
|
+
and use `cueframe-compose-loop`'s [preview workflow](../cueframe-compose-loop/references/preview-workflow.md)
|
|
19
|
+
to verify the requested change; do not restart intake, Director authoring, or final export by default.
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
not want one — it would be a blind model with none of your context. Plan here, in the open, with the user.
|
|
21
|
+
Plan here from the user's context. Direct authoring uses the available composition/component tools; hosted Director authoring is an optional execution lane when `create_brief` and `compose` are actually exposed. Neither lane substitutes for deciding the user's acceptance criteria.
|
|
26
22
|
|
|
27
23
|
## 1. Interview for the brief — ask only what you can't infer
|
|
28
24
|
|
|
@@ -32,7 +28,7 @@ infer**, and STATE what you assume for the rest. Never wall them with a form.
|
|
|
32
28
|
- **Goal / intent** *(required)* — what is this video FOR? launch, promo, explainer, demo, teaser, recap.
|
|
33
29
|
- **Platform** *(sets the format)* — reels / tiktok / shorts → **9:16, ~20s** · youtube → **16:9, ~45s** ·
|
|
34
30
|
linkedin / x → **1:1, ~20s** · web → **16:9, ~30s**. (Or an explicit aspect ratio + duration.)
|
|
35
|
-
- **Audience**, **tone** (punchy / premium-calm / playful / authoritative), **CTA**, **must-includes**
|
|
31
|
+
- **Audience**, **tone** (punchy / premium-calm / playful / authoritative), optional **CTA**, **must-includes**
|
|
36
32
|
(a number, a name, a screen), **references** (a style to echo), **brand kit**.
|
|
37
33
|
|
|
38
34
|
If the ask is "make a launch video for our API," you already have goal + a hint of audience — ask "Reels,
|
|
@@ -41,48 +37,25 @@ you'd rather it feel calm/premium."* One or two questions, not seven.
|
|
|
41
37
|
|
|
42
38
|
## 2. Structure the flow — the storyboard
|
|
43
39
|
|
|
44
|
-
Lay the duration into **beats** using the
|
|
45
|
-
**hook → context → body → proof → cta → outro** (use what the piece needs
|
|
46
|
-
hook → body → cta). For each beat decide:
|
|
40
|
+
Lay the requested duration into **beats** using the available editorial vocabulary
|
|
41
|
+
**hook → context → body → proof → cta → outro** (use only what the piece needs; no fixed count or required CTA). For each beat decide:
|
|
47
42
|
|
|
48
43
|
- a one-line **intent** (what this beat does for the viewer),
|
|
49
44
|
- a **duration** (they sum to the target; the hook earns attention in ~3s),
|
|
50
|
-
- a **media need
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
change after a render, so this is where you converge on structure. On their go, **persist the plan with
|
|
65
|
-
`create_brief`** — the beats/goal/format/gates you just elicited map 1:1 onto its fields, and the plan stops
|
|
66
|
-
being chat-ephemeral (it survives the session, carries a cost quote, and is honored field-by-field):
|
|
67
|
-
|
|
68
|
-
1. `import_media` / `generate_media` for each beat's media need,
|
|
69
|
-
2. `create_brief` — goal, audience, platform/format, durationSec, tone, cta, locale, and the beats
|
|
70
|
-
(each with its editorial intent and, when you're cutting real footage, MOMENT PINNING
|
|
71
|
-
`source: {mediaId, startSec, endSec}` from the transcript — honored to-the-frame or refused).
|
|
72
|
-
Relay the response's **quote** (compose + estimated render) BEFORE composing.
|
|
73
|
-
3. `compose { briefId }` — the Director authors FROM your brief; every field is honored or the
|
|
74
|
-
compose is refused loudly naming the field. Gates: put `holdAt: ["layout"]` in the brief's `gates` when
|
|
75
|
-
the user wants to approve the storyboard mid-flight; `autoApprove: true` for hands-off.
|
|
76
|
-
4. `score_composition` / `consult` to fix the weakest beat,
|
|
77
|
-
5. `create_render` for the MP4.
|
|
78
|
-
|
|
79
|
-
**Two graphic media — pick per beat, and review accordingly:** a `card` (verbatim HTML in
|
|
80
|
-
`seededGraphics`) is a STATIC graphic — cheap, approve it from a still; a **component**
|
|
81
|
-
(`create_component`, `useCurrentFrame`) is MOTION — a still is one frame, so preview it before trusting it.
|
|
82
|
-
Seeded graphics you author into the brief are carried VERBATIM as locked clips — the Director never
|
|
83
|
-
re-authors them; `exclusions` bans graphic kinds you never want it to author.
|
|
84
|
-
|
|
85
|
-
Then load **composing-video** and apply its craft to make each beat good.
|
|
45
|
+
- a **media need**, if any: actual footage, product action, sourced data, diagrams, typography or abstract motion as requested,
|
|
46
|
+
- optional graphics, captions and voice; preserve requested silence and deliberate holds.
|
|
47
|
+
|
|
48
|
+
Choose the leading material first: narration, recorded speech, product action, visual/music motion or observational sequence. Read `get_media_context` when source facts or transcript timings affect the plan. Discover existing primitives with `list_catalog` when available; custom authored graphics are also valid. Never invent a catalog entry, media ID, transcript or factual product capture.
|
|
49
|
+
|
|
50
|
+
## 3. Execute the plan in the available lane
|
|
51
|
+
|
|
52
|
+
Give a concise outline when useful. Continue within existing authorization; request approval only when the user requested a review gate or a decision is genuinely missing.
|
|
53
|
+
|
|
54
|
+
**Direct authoring:** use the exposed composition operations and existing project assets, then the scoped preview workflow. A local project does not require hosted registration, `create_brief`, `compose` or a paid judge. Read the actual local contracts; desktop setup is documented at https://docs.cueframe.ai.
|
|
55
|
+
|
|
56
|
+
**Hosted Director, when available and selected:** check `get_account` and current quotes before metered imports, generation or composition. Persist the accepted plan with `create_brief`, including only supported fields. Pin recorded moments with `source: {mediaId, startSec, endSec}` where supported. Relay its compose/render quote before `compose {briefId}`. Use `holdAt` only for a requested gate and `autoApprove` only when authorized and supported. Do not silently upload local content or move to a different project to obtain this lane.
|
|
57
|
+
|
|
58
|
+
Review with stills plus motion/audio evidence appropriate to the affected content. Cards can animate; a still alone cannot verify their motion. Use `score_composition` for broader review only when useful; export with `create_render` when final delivery is requested. Then load **composing-video** for applicable craft guidance.
|
|
86
59
|
|
|
87
60
|
## Related skills & positioning
|
|
88
61
|
|
|
@@ -100,5 +73,4 @@ This skill owns **structure/intake**; its siblings own execution and craft — d
|
|
|
100
73
|
|
|
101
74
|
You own the **vision** (the one idea and the flow for *this* video) and **data correctness** (a wrong
|
|
102
75
|
number you supply is rendered faithfully — the mistake is yours). CueFrame owns being faithful, legible,
|
|
103
|
-
and giving you real footage + real components to plan against. Reason from this;
|
|
104
|
-
for a re-render of an approved composition or a single trivial one-off.
|
|
76
|
+
and giving you real footage + real components to plan against. Reason from this; use this planning flow only when new work needs structure.
|
|
@@ -5,6 +5,14 @@ description: Derives content-aware 9:16, 1:1, and 4:5 siblings from one finished
|
|
|
5
5
|
|
|
6
6
|
# Every format from one edit
|
|
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 finish ONE edit; you get back its siblings for every platform — 9:16 for
|
|
9
17
|
Reels/TikTok/Shorts, 1:1 and 4:5 for feeds — derived content-aware from the master,
|
|
10
18
|
subject-tracked rather than letterboxed, each judged and rendered on its own. The edit decisions
|
|
@@ -54,9 +62,8 @@ A correction to one sibling does not require rendering the master or the other u
|
|
|
54
62
|
note repeats it. If a sibling needs a different bed, `search_resources` honoring the brand
|
|
55
63
|
kit's `musicMood` and swap it on that sibling only.
|
|
56
64
|
6. **Judge each sibling as its own artifact.** `score_composition` per sibling with the
|
|
57
|
-
master's vision as `editorialIntent`.
|
|
58
|
-
|
|
59
|
-
≥ 7.5.
|
|
65
|
+
master's vision as `editorialIntent`. Changing aspect ratio does not change the approved editorial intent, pacing or acceptance criteria. Fix worst-first to
|
|
66
|
+
meet the applicable acceptance criteria.
|
|
60
67
|
7. **Render each approved sibling.** `create_render` → `wait_job (kind:"render")` per
|
|
61
68
|
composition. One final render per approval; iterate with previews.
|
|
62
69
|
|
|
@@ -64,15 +71,14 @@ A correction to one sibling does not require rendering the master or the other u
|
|
|
64
71
|
|
|
65
72
|
Quoted from `video-craft-standards` (cross-cutting rules — every artifact):
|
|
66
73
|
|
|
67
|
-
> **
|
|
74
|
+
> **DEFAULT** Safe-area respected: no critical copy in the outer ~8% of frame.
|
|
68
75
|
|
|
69
|
-
> **
|
|
76
|
+
> **DEFAULT** One final render per approval; iterate with previews, not renders.
|
|
70
77
|
|
|
71
|
-
> **
|
|
78
|
+
> **DEFAULT** Delivery never ends with "done": the last message carries the output link and where
|
|
72
79
|
> to find it, plus the intentional-silence note if any.
|
|
73
80
|
|
|
74
|
-
And the class rule that governs each sibling:
|
|
75
|
-
*"**MUST (K)** The hook lands inside 2 seconds"* — a derived 16:9 to its own class. Derivation
|
|
81
|
+
And the class rule that governs each sibling: apply the original brief at the new dimensions; aspect ratio alone does not impose a social-reel hook or pacing. Derivation
|
|
76
82
|
changes the frame, never the bar.
|
|
77
83
|
|
|
78
84
|
## Delivering
|
|
@@ -6,6 +6,14 @@ description: >-
|
|
|
6
6
|
|
|
7
7
|
# Extracting brand kits: reference pixels → a kit the engine honors
|
|
8
8
|
|
|
9
|
+
## Scope and capability policy
|
|
10
|
+
|
|
11
|
+
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.
|
|
12
|
+
|
|
13
|
+
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.
|
|
14
|
+
|
|
15
|
+
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).
|
|
16
|
+
|
|
9
17
|
## The one idea
|
|
10
18
|
|
|
11
19
|
**No summarization anywhere in the path.** A reference described in prose converges on house style
|
|
@@ -5,6 +5,14 @@ description: Turns screen recordings and product footage into a 30–90 second 1
|
|
|
5
5
|
|
|
6
6
|
# Launch 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 real screen recordings or product footage plus the one outcome the feature delivers;
|
|
9
17
|
you get back a 30–90 second 16:9 announcement that opens on the payoff, shows the actual product
|
|
10
18
|
doing the real thing, builds under a bed or narration, and lands on a single CTA.
|
|
@@ -50,34 +58,32 @@ affected window and regressions without automatically rerunning the full-film ju
|
|
|
50
58
|
HTML in the brand's type and palette — persisted first, then shelled with
|
|
51
59
|
`applyMotionPreset` in a FOLLOWING `apply_composition` call. One CTA on the end card, held
|
|
52
60
|
long enough to read, plus the date if there is one.
|
|
53
|
-
6. **Audio
|
|
61
|
+
6. **Audio when requested or appropriate.** Preserve explicit silence; otherwise: `search_resources` for a bed honoring the brand kit's
|
|
54
62
|
`musicMood`, energy arcing toward the reveal; place it `audioRole:"music"`,
|
|
55
63
|
`materializeGrid { grid:"beat" }`, and land beat boundaries and the reveal on the grid. If
|
|
56
64
|
narrated: the VO is the rhythm authority instead — cut to the voice and duck the bed under
|
|
57
|
-
it.
|
|
58
|
-
reason in the delivery note.
|
|
65
|
+
it. Explicit silence is a supported creative choice.
|
|
59
66
|
7. **Caption narration.** For transcribed voice, save the edits first, then call
|
|
60
67
|
`captions.fromComposition` with the narration track ID in a separate `apply_composition`
|
|
61
68
|
call. Speech clips must have saved duration matching playable source duration divided by
|
|
62
69
|
playbackRate. Re-run after later edits. Use authored word timings for generated VO without a
|
|
63
|
-
transcript, and style legibly via `setCaptionStyle`.
|
|
70
|
+
transcript, and style legibly via `setCaptionStyle`. Caption narration when requested or appropriate; preserve an explicit uncaptioned format.
|
|
64
71
|
8. **Preview, judge, one render.** `preview_frame` at t=0, hook-end, the reveal, and the end
|
|
65
72
|
card; describe each still — is that a REAL capture on screen? Then `score_composition` with
|
|
66
|
-
the payoff line as `editorialIntent`; fix
|
|
73
|
+
the payoff line as `editorialIntent`; fix relevant acceptance failures; `create_render` →
|
|
67
74
|
`wait_job (kind:"render")`.
|
|
68
75
|
|
|
69
76
|
## What good looks like
|
|
70
77
|
|
|
71
|
-
Quoted from `video-craft-standards` §2 (Launch film / feature announcement) —
|
|
72
|
-
wins:
|
|
78
|
+
Quoted from `video-craft-standards` §2 (Launch film / feature announcement) — these are format defaults:
|
|
73
79
|
|
|
74
|
-
> **
|
|
80
|
+
> **DEFAULT** Payoff-first hook: the OUTCOME, not the feature name ("Close the books two days
|
|
75
81
|
> faster" beats "Introducing the reconciliation module"). No throat-clearing.
|
|
76
82
|
|
|
77
|
-
> **
|
|
78
|
-
> approaches. **
|
|
83
|
+
> **DEFAULT** Narration or a bed that builds toward the reveal; pacing tightens as the payoff
|
|
84
|
+
> approaches. **DEFAULT** Real product surface: actual UI/screens/output — never mocked.
|
|
79
85
|
|
|
80
|
-
> **
|
|
86
|
+
> **DEFAULT** End card with a single CTA. **DEFAULT** Captions present when narrated.
|
|
81
87
|
|
|
82
88
|
And cross-cutting: *"Footage carries the video: real footage / real UI / real data ≥60% of
|
|
83
89
|
runtime for footage-first classes."*
|
|
@@ -5,6 +5,14 @@ description: Turns footage into a finished 9:16 social reel — hook inside 2 se
|
|
|
5
5
|
|
|
6
6
|
# Make a social reel
|
|
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 hand over footage (a file URL, a talk, a product moment); you get back a 9:16 reel of 8–30
|
|
9
17
|
seconds that opens on its strongest image, cuts on the music, carries brand-grade type, and ends
|
|
10
18
|
on a deliberate beat — with a download link, not a "done".
|
|
@@ -32,20 +40,17 @@ Use `cueframe-compose-loop`'s [preview workflow](../cueframe-compose-loop/refere
|
|
|
32
40
|
for layout and motion evidence. A follow-up tweak preserves the approved brief; inspect the
|
|
33
41
|
affected window and regressions without automatically rerunning the full-film judge or export.
|
|
34
42
|
|
|
35
|
-
|
|
36
43
|
0. **Find the claim (before anything else).** Interrogate the brand/material
|
|
37
44
|
for its tension — what it believes that its category doesn't — and write
|
|
38
45
|
the claim in one sentence. Derive the shot list, the bed's mood/tempo, the
|
|
39
|
-
pacing, and every card's copy FROM that sentence.
|
|
40
|
-
claim, you are not ready to compose (video-craft-standards: the
|
|
41
|
-
controlling idea is kill-level).
|
|
46
|
+
pacing, and every card's copy FROM that sentence. Use the requested visual experience as intent when the piece makes no factual claim.
|
|
42
47
|
|
|
43
48
|
1. **Import and read the footage.** `import_media` (public https URL), poll `list_media` until
|
|
44
49
|
ready, then `get_media_context` — faces, transcript, word timings. The context tells you
|
|
45
50
|
where the hook lives; don't guess.
|
|
46
51
|
2. **Pick the hook before you touch the timeline.** The strongest image, motion, or claim in the
|
|
47
52
|
footage — the outcome, not the feature name, is the hook. If the best moment is at 0:47, the
|
|
48
|
-
reel opens at 0:47.
|
|
53
|
+
reel opens at 0:47. A logo-first opening remains valid when explicitly requested.
|
|
49
54
|
3. **Seed the timeline.** `new_composition` at 9:16, then `apply_composition`: clips trimmed to
|
|
50
55
|
the beats you chose, a new visual beat at least every ~4 seconds. Cut TO moments; never let a
|
|
51
56
|
clip run out.
|
|
@@ -56,7 +61,7 @@ affected window and regressions without automatically rerunning the full-film ju
|
|
|
56
61
|
palette-as-fields, considered alignment — persisted first, then shelled with
|
|
57
62
|
`applyMotionPreset` in a FOLLOWING `apply_composition` call. Catalog text primitives are
|
|
58
63
|
utility only.
|
|
59
|
-
6. **
|
|
64
|
+
6. **Honor requested silence or existing audio.** When a bed is appropriate, search a bed with `search_resources` honoring
|
|
60
65
|
the brand kit's `musicMood`, place it as an `audioRole:"music"` clip, then `materializeGrid`
|
|
61
66
|
`{ grid:"beat" }` and land your cut points and transition midpoints on the markers. If the
|
|
62
67
|
piece is genuinely better silent, that is a decision — record it and its reason in the
|
|
@@ -71,28 +76,27 @@ affected window and regressions without automatically rerunning the full-film ju
|
|
|
71
76
|
don't karaoke a beat with no speech.
|
|
72
77
|
8. **Look, then get judged.** `preview_frame` at t=0, hook-end, and every beat boundary;
|
|
73
78
|
describe each still in words before scoring it. Then `score_composition` with your one-line
|
|
74
|
-
vision as `editorialIntent` — fix the worst criterion first.
|
|
75
|
-
3–5 passes.
|
|
79
|
+
vision as `editorialIntent` — fix the worst criterion first. Meet the applicable acceptance criteria; budget
|
|
80
|
+
up to 3–5 passes only for broader review.
|
|
76
81
|
9. **One final render.** `create_render` → `wait_job (kind:"render")`. Iterate with previews,
|
|
77
82
|
not renders.
|
|
78
83
|
|
|
79
84
|
## What good looks like
|
|
80
85
|
|
|
81
|
-
Quoted from `video-craft-standards` §1 (Social reel) —
|
|
82
|
-
wherever they disagree:
|
|
86
|
+
Quoted from `video-craft-standards` §1 (Social reel) — these are defaults for this format, subject to the scope policy above:
|
|
83
87
|
|
|
84
|
-
> **
|
|
88
|
+
> **DEFAULT** The hook lands inside 2 seconds: the strongest image, motion, or claim opens the
|
|
85
89
|
> piece. No logo-first cold opens, no fade-in-from-black preambles.
|
|
86
90
|
|
|
87
|
-
> **
|
|
88
|
-
> alignment and scale. **
|
|
91
|
+
> **DEFAULT** Typography is poster-grade: composed plates/fields in the brand palette, considered
|
|
92
|
+
> alignment and scale. **Consider:** centered white text floating on footage.
|
|
89
93
|
|
|
90
|
-
> **
|
|
94
|
+
> **DEFAULT** Pacing is cut-driven: a new visual beat at least every ~4s […] **DEFAULT** Ends on a
|
|
91
95
|
> deliberate beat: tagline, logo, or CTA lockup — not a clip running out.
|
|
92
96
|
|
|
93
97
|
And the cross-cutting audio rule:
|
|
94
98
|
|
|
95
|
-
> **
|
|
99
|
+
> **DEFAULT** Audio is decided, never defaulted […] **Consider:** a render whose silence nobody chose.
|
|
96
100
|
|
|
97
101
|
## Delivering
|
|
98
102
|
|