cueframe 0.4.10 → 0.6.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.
@@ -5,6 +5,14 @@ description: Retrofits a music bed (and ambience or SFX) onto an existing compos
5
5
 
6
6
  # Add a music bed
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
  > **Stock-audio limits (verified in production):** a Freesound import lands with
9
17
  > `audioRole:"sfx"` and NO beat grid — `import_resource` takes no audioRole param, and
10
18
  > `materializeGrid grid:"beat"` will 422 `grid_unavailable` on it. Set the role yourself when
@@ -12,7 +20,6 @@ description: Retrofits a music bed (and ambience or SFX) onto an existing compos
12
20
  > track (the judge expects a dedicated music track), and until curated music-pack discovery
13
21
  > exists, prefer fades over beat-cuts for stock beds — beat-grid cutting works with pack beds.
14
22
 
15
-
16
23
  You point at an existing composition that sounds empty; you get it back with a licensed bed that
17
24
  matches the brand's mood, sits correctly under any speech, and — where the bed drives pacing —
18
25
  cuts moved onto its beat grid. Attribution included, levels disciplined, one re-render.
@@ -66,9 +73,7 @@ delivery; stills and a visual judge cannot establish the mix. Recheck visuals wh
66
73
  6. **Restraint is the discipline.** A few placed sounds read; a wall of them merges into mush.
67
74
  The biggest moment gets the strongest accent ONCE. And silence stays a device — clean air
68
75
  before the first hit, a dropout before the biggest beat, is worth more than any riser.
69
- 7. **Verify, judge, re-render.** `preview_frame` the key beats to confirm nothing visual
70
- regressed; `score_composition` to confirm the piece improved (worst-first if not, ≥ 7.5 to
71
- ship); then `create_render` → `wait_job (kind:"render")` — one render, on approval.
76
+ 7. **Listen and verify the affected window.** Check intelligibility, ducking, fades and synchronization in a motion/audio preview; stills alone cannot verify a music change. Preserve existing cut timing unless retiming was requested. Broader judging is optional and budgeted; export only for requested final delivery.
72
77
 
73
78
  If, after listening, the right call is NO bed — a raw testimonial, a piece whose room tone is
74
79
  the point — that is a legitimate outcome of this skill: record the intentional-silence decision
@@ -79,13 +84,13 @@ and its reason in the delivery note instead of forcing a bed.
79
84
  Quoted from `video-craft-standards` (cross-cutting rules — every artifact); this skill exists to
80
85
  satisfy the second one:
81
86
 
82
- > **MUST** Audio is decided, never defaulted: a music bed (curated packs via
87
+ > **DEFAULT** Audio is decided, never defaulted: a music bed (curated packs via
83
88
  > `import_resource {kind:"music-pack"}`) or ambience/loops (Freesound via
84
89
  > `search_resources kind:"sfx"`), honoring the brand kit's `musicMood`; cut to the beat via
85
90
  > `materializeGrid` when the bed drives pacing — OR an explicit intentional-silence decision
86
- > recorded in your delivery note with the reason. **K:** a render whose silence nobody chose.
91
+ > recorded in your delivery note with the reason. **Consider:** a render whose silence nobody chose.
87
92
 
88
- > **MUST** Every stock asset's provenance is recorded (provider, id, author).
93
+ > **DEFAULT** Every stock asset's provenance is recorded (provider, id, author).
89
94
 
90
95
  And from §1: *"**SHOULD** Cuts land on the music grid when a bed exists."*
91
96
 
@@ -5,6 +5,14 @@ description: Produces a 12–20 second 9:16 brand-identity reel — three-beat a
5
5
 
6
6
  # Brand 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 bring a brand (a website, a kit, or just a logo and a palette) plus footage of its world;
9
17
  you get back a 12–20 second vertical reel with a three-beat arc — wordmark moment, craft/proof
10
18
  beat, tagline lockup — where every graphic could belong to this brand and no other.
@@ -23,8 +31,7 @@ this job.
23
31
  - **The brand** (required): a brand kit on the project, a website to `extract_brand_kit` from,
24
32
  or explicit colors + fonts + wordmark. Extraction gets colors/fonts only — ask for the tagline
25
33
  and voice.
26
- - **Footage of the brand's world** (required): product, workshop, hands, city — the craft beat
27
- needs a real subject. Ask before defaulting to stock.
34
+ - **Leading material:** brand typography, abstract motion, product, workshop, hands or city as requested. Footage is optional for a silent typography study; do not demand it or default to stock.
28
35
  - **Tone**: default premium-calm unless the brand's voice says otherwise.
29
36
 
30
37
  ## Workflow
@@ -33,13 +40,10 @@ Use `cueframe-compose-loop`'s [preview workflow](../cueframe-compose-loop/refere
33
40
  for stills and motion windows. For a small revision, preserve the approved arc and inspect the
34
41
  affected behavior and regressions; reserve full-film judging and export for the relevant review/delivery.
35
42
 
36
-
37
43
  0. **Find the claim (before anything else).** Interrogate the brand/material
38
44
  for its tension — what it believes that its category doesn't — and write
39
45
  the claim in one sentence. Derive the shot list, the bed's mood/tempo, the
40
- pacing, and every card's copy FROM that sentence. If you cannot state the
41
- claim, you are not ready to compose (video-craft-standards: the
42
- controlling idea is kill-level).
46
+ pacing, and every card's copy FROM that sentence. For a visual identity study, the desired visual experience can be the intent; no factual claim is required.
43
47
 
44
48
  1. **Pin the brand as engine state.** `extract_brand_kit` from their site or `create_brand_kit`
45
49
  from what they gave you; set `brandKitId` on the project. Show the kit and let them override
@@ -49,7 +53,7 @@ affected behavior and regressions; reserve full-film judging and export for the
49
53
  2. **Import the world.** `import_media` their footage; `get_media_context` for what's actually
50
54
  in it. Choose footage that lives in the palette — or plan a `color-grade` toward it. Footage
51
55
  color and brand palette must agree.
52
- 3. **Plan the three beats.** Opening brand moment (a wordmark treatment, not a logo dump) →
56
+ 3. **Plan the requested arc.** A three-beat example: Opening brand moment (a wordmark treatment, not a logo dump) →
53
57
  middle craft/proof beat (the subject's world plus one editorial device: a numbered chapter, a
54
58
  pull-quote, a stat with a source) → closing tagline lockup. Write one line of intent per beat
55
59
  before authoring.
@@ -60,13 +64,13 @@ affected behavior and regressions; reserve full-film judging and export for the
60
64
  the card, then shell it with `applyMotionPreset` in a FOLLOWING `apply_composition` call. The
61
65
  test: if another brand's hex swapped in would still look correct, the layout isn't bespoke
62
66
  enough — redo it.
63
- 6. **Decide the audio — required.** `search_resources` for a bed honoring the kit's
67
+ 6. **Honor the audio decision.** If silence was requested, preserve it without searching for a bed. Otherwise, when music serves the plan: `search_resources` for a bed honoring the kit's
64
68
  `musicMood`; place it `audioRole:"music"`, then `materializeGrid { grid:"beat" }` and land
65
69
  the three beat boundaries on the grid. A brand reel almost always wants a bed; if the brand's
66
- voice truly calls for silence, record that decision and the reason in the delivery note.
70
+ voice calls for silence, preserve that decision.
67
71
  7. **Preview each beat, then get judged.** `preview_frame` at t=0, each beat boundary, and the
68
72
  final lockup; describe each still before scoring. `score_composition` with the brand facts as
69
- `brandContext` and your arc as `editorialIntent`; fix the worst axis first, ship at ≥ 7.5.
73
+ `brandContext` and your arc as `editorialIntent`; fix the worst axis first, fix relevant acceptance failures.
70
74
  8. **One final render.** `create_render` → `wait_job (kind:"render")`.
71
75
 
72
76
  ## What good looks like
@@ -74,19 +78,19 @@ affected behavior and regressions; reserve full-film judging and export for the
74
78
  Quoted from `video-craft-standards` §3 (Brand-identity reel) — read the full section; §1's
75
79
  social-reel rules apply underneath it:
76
80
 
77
- > **MUST** Three-beat arc: opening brand moment (wordmark treatment) → middle craft/proof beat
81
+ > **DEFAULT** Three-beat arc: opening brand moment (wordmark treatment) → middle craft/proof beat
78
82
  > (the subject's world, with an editorial device — numbered chapter, pull-quote, stat) → closing
79
83
  > tagline lockup.
80
84
 
81
- > **MUST** Every graphic is bespoke to the brand: its type, its palette as fields, its layout
82
- > system. **K:** any layout that would look correct with another brand's hex swapped in.
85
+ > **DEFAULT** Every graphic is bespoke to the brand: its type, its palette as fields, its layout
86
+ > system. **Consider:** any layout that would look correct with another brand's hex swapped in.
83
87
 
84
- > **MUST** Footage color and brand palette agree — grade toward the palette or choose footage
88
+ > **DEFAULT** Footage color and brand palette agree — grade toward the palette or choose footage
85
89
  > that lives in it.
86
90
 
87
91
  And the cross-cutting card rule:
88
92
 
89
- > **MUST** Brand/text graphics are AUTHORED — `kind:"card"` HTML […] **K:** a brand graphic
93
+ > **DEFAULT** Brand/text graphics are AUTHORED — `kind:"card"` HTML […] **Consider:** a brand graphic
90
94
  > rendered from a catalog text primitive.
91
95
 
92
96
  ## Delivering
@@ -5,6 +5,14 @@ description: Cuts a podcast, talk, or interview into shorts that open on the str
5
5
 
6
6
  # Clip a talking head
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 point at long-form footage of people talking; you get back one or more 15–60 second clips
9
17
  that each open on the strongest sentence, keep a moving camera on whoever is speaking, cut the
10
18
  dead air, and caption every word from the real transcript.
@@ -70,23 +78,23 @@ correction, retain the approved edit and check relevant regressions without auto
70
78
  depth title or ignored speaker crop is not preview evidence.
71
79
  9. **Preview, judge, render once per clip.** `preview_frame` at t=0 and each cut; describe each
72
80
  still (is the framed person the one talking? is the top of the head in frame?).
73
- `score_composition` with the clip's claim as `editorialIntent`; fix worst-first to ≥ 7.5,
81
+ `score_composition` with the clip's claim as `editorialIntent`; fix relevant acceptance failures,
74
82
  then `create_render` → `wait_job (kind:"render")`.
75
83
 
76
84
  ## What good looks like
77
85
 
78
- Quoted from `video-craft-standards` §4 (Talking-head clip) — the full checklist is the bar:
86
+ Quoted from `video-craft-standards` §4 (Talking-head clip) — apply the relevant defaults under the scope policy:
79
87
 
80
- > **MUST (K)** Hook = the strongest sentence, first. Cut TO the moment; never open on wind-up.
88
+ > **DEFAULT** Hook = the strongest sentence, first. Cut TO the moment; never open on wind-up.
81
89
 
82
- > **MUST** Active-speaker reframe (`focus: active-speaker` / `face`) — a moving camera, not a
90
+ > **DEFAULT** Active-speaker reframe (`focus: active-speaker` / `face`) — a moving camera, not a
83
91
  > static center crop.
84
92
 
85
- > **MUST** Captions timed to the edited clip (`captions.fromComposition`); behind-speaker
86
- > placement where the footage allows it. **MUST** Dead air and false starts cut
93
+ > **DEFAULT** Captions timed to the edited clip (`captions.fromComposition`); behind-speaker
94
+ > placement where the footage allows it. **DEFAULT** Dead air and false starts cut
87
95
  > (`addExcludedRange` / `cutAndRipple`).
88
96
 
89
- Plus the cross-cutting audio rule: *"Audio is decided, never defaulted […] **K:** a render whose
97
+ Plus the cross-cutting audio rule: *"Audio is decided, never defaulted […] **Consider:** a render whose
90
98
  silence nobody chose."*
91
99
 
92
100
  ## Delivering