luckiest-co 1.0.42 → 1.0.43
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/video-studio/ATTRIBUTION.md +1 -0
- package/skills/video-studio/CHANGELOG.md +7 -0
- package/skills/video-studio/LICENSE-logo-design +21 -0
- package/skills/video-studio/SKILL.md +8 -6
- package/skills/video-studio/references/interview.md +29 -0
- package/skills/video-studio/references/styles/bauhaus.md +6 -0
- package/skills/video-studio/references/styles/line-art.md +6 -0
- package/skills/video-studio/references/styles/liquid.md +6 -0
- package/skills/video-studio/references/styles/morph.md +6 -0
- package/skills/video-studio-art-director/ATTRIBUTION.md +3 -0
- package/skills/video-studio-art-director/CHANGELOG.md +7 -0
- package/skills/video-studio-art-director/LICENSE-logo-design +21 -0
- package/skills/video-studio-art-director/SKILL.md +57 -9
package/package.json
CHANGED
|
@@ -15,6 +15,7 @@ projects. Upstream license texts are kept beside this file.
|
|
|
15
15
|
| **motionmaxxing** by Tejas Makwana (`Tejashmakwana/motionmaxxing`, FinalMotion, finalmotion.video), commit 8c8ec0f2 | Apache-2.0 | The beat contract, render-gate posture and `NOTE.md` review note, the `endhold`, `blankframes` and `hud` gate thresholds in `scripts/qa.mjs`, the no-crossfade transition table, and the sound-arc numbers in `references/audio.md`. Rewritten in our own words; no code, runtime, media, studies or `library/` rows are copied | `LICENSE-motionmaxxing` |
|
|
16
16
|
| **mg-styles-15** by Vincentwei1021 (`vincentwei1021/mg-styles-15`) | MIT | The 15 motion-design styles in `references/styles/` (palettes, signature features, beat seeds), the shared craft checklist, and the two-round jury review rubric. Translated and rewritten for HyperFrames; no films, audio code, samples or fonts are copied | `LICENSE-mg-styles-15` |
|
|
17
17
|
| **huashu-art-motion** by alchaincyf (`alchaincyf/huashu-art-motion`) | MIT | The animation-grammar and art-style cards in `references/styles/` and `references/styles/era-styles.md`, plus the techniques noted in `CHANGELOG.md` 1.16.0. Translated from Chinese and rewritten; no engine code, scenes, fonts or images are copied | `LICENSE-huashu-art-motion` |
|
|
18
|
+
| **logo-design** by kaankiziltug (`kaankiziltug/logo-design-skill`, `skills/logo-design`) | MIT, Copyright (c) 2026 kaankiziltug | Ideas from `SKILL.md` phases 3 and 6 and `references/identity-system.md` section 6, rewritten for video: three contrasting looks before the storyboard (`references/interview.md` section 4) and the logo-construction entrance and resolve rule on four style cards. The SVG library, mark types and scripts are not included | `LICENSE-logo-design` |
|
|
18
19
|
|
|
19
20
|
Studied, not copied:
|
|
20
21
|
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog — luckiest-video-studio
|
|
2
2
|
|
|
3
|
+
## 1.17.0 — 2026-10-12
|
|
4
|
+
|
|
5
|
+
- Three looks before the storyboard (`references/interview.md` section 4, Step 2): three contrasting looks, each with a one-sentence idea, style, palette and faces, motion, and hero frame, contrasting in idea and tone cell. The user picks one or mixes them; with `--yes` the recommended one is taken and the others go in `NOTE.md`.
|
|
6
|
+
- Logo construction on the `morph`, `line-art`, `liquid` and `bauhaus` style cards: the entrance is built from the mark's own construction, and the resolve frame equals the master logo SVG (a visible difference is a Block).
|
|
7
|
+
- Uses art director 1.8.0 (idea gate, category clichés, still tests).
|
|
8
|
+
- Adapted from kaankiziltug `logo-design` (MIT); see ATTRIBUTION.md and `LICENSE-logo-design`.
|
|
9
|
+
|
|
3
10
|
## 1.16.0 — 2026-10-12
|
|
4
11
|
|
|
5
12
|
- Style library: 38 style cards in `references/styles/` plus 18 era styles in `styles/era-styles.md`, indexed by `references/styles.md`. 15 motion-design styles from mg-styles-15 (flat vector, line art, isometric, soft 3D, cel boil, paper cut collage, liquid, morph, Bauhaus, synthwave, aurora glass, variety show, sticker explainer, pixel, HUD), 9 explainer grammars and 14 art styles from huashu-art-motion. Each card: palette, motion numbers, signature features, a beat seed, sound, and how to build it in HyperFrames. Both sources MIT; famous names appear only as trigger words.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 kaankiziltug
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -4,7 +4,7 @@ description: "Make product launch videos, product demos with motion design betwe
|
|
|
4
4
|
license: See ATTRIBUTION.md
|
|
5
5
|
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
|
|
6
6
|
metadata:
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.17.0"
|
|
8
8
|
listing_id: luckiest-video-studio
|
|
9
9
|
author: luckiest
|
|
10
10
|
---
|
|
@@ -19,13 +19,13 @@ an MP4.
|
|
|
19
19
|
## Staying current
|
|
20
20
|
|
|
21
21
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
22
|
-
`{ listingId: "aff888e4-9ee9-4f73-af08-74d5d09d3c10", installedSemver: "1.
|
|
22
|
+
`{ listingId: "aff888e4-9ee9-4f73-af08-74d5d09d3c10", installedSemver: "1.17.0" }`. If it returns
|
|
23
23
|
`upToDate: false`, surface the `notice` to the user once, then continue. Do nothing
|
|
24
24
|
further if `upToDate: true`. Never block on this check; if the tool is unavailable,
|
|
25
25
|
proceed.
|
|
26
26
|
|
|
27
27
|
When the skill's work is done, call the Luckiest MCP `report_usage` tool once with
|
|
28
|
-
`{ listing_id: "luckiest-video-studio", skill_version: "1.
|
|
28
|
+
`{ listing_id: "luckiest-video-studio", skill_version: "1.17.0", matched: true, success: <true if the skill completed, false otherwise> }`.
|
|
29
29
|
Metadata only, never prompt text. Never block on it; if the tool is unavailable,
|
|
30
30
|
skip silently.
|
|
31
31
|
|
|
@@ -177,9 +177,11 @@ exists on disk.
|
|
|
177
177
|
|
|
178
178
|
Hand `brief.md` and the request to the `luckiest-video-studio-director`
|
|
179
179
|
sub-skill for the creative intent, angle, hook, energy map, and shot list. It
|
|
180
|
-
reads the brief instead of guessing. Then
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
reads the brief instead of guessing. Then offer three contrasting looks and let
|
|
181
|
+
the user pick one ([references/interview.md](references/interview.md) section 4).
|
|
182
|
+
Hand the chosen look to `luckiest-video-studio-art-director` for
|
|
183
|
+
`art-direction.json` (idea, tone cell, palette, faces, motion language). Every
|
|
184
|
+
scene obeys that file.
|
|
183
185
|
|
|
184
186
|
When the video carries narration (the brief says voice, `--voice`, or the user
|
|
185
187
|
will record) and runs 30 seconds or longer, hand the script to the
|
|
@@ -73,6 +73,35 @@ Mark every value you did not hear from the user in the "Inferred" line (write
|
|
|
73
73
|
file states is written as `<url> [confirm]`. In chat, summarize the brief in four
|
|
74
74
|
lines or fewer and give its path, then go to Step 1.
|
|
75
75
|
|
|
76
|
+
## 4. Three looks before the storyboard
|
|
77
|
+
|
|
78
|
+
Runs in Step 2, after the director's angle and before `storyboard.json` is
|
|
79
|
+
written. Never offer one look: a single option gets a yes by default and hides
|
|
80
|
+
the better film.
|
|
81
|
+
|
|
82
|
+
Draft three looks with `luckiest-video-studio-art-director` (sections 2b and 3).
|
|
83
|
+
Each is a short block:
|
|
84
|
+
|
|
85
|
+
- **Idea:** one sentence that no competitor's film fits
|
|
86
|
+
- **Style:** a style id from [styles.md](styles.md), or the user's named style
|
|
87
|
+
- **Palette and faces:** background, accent, display face
|
|
88
|
+
- **Motion:** personality and tone cell
|
|
89
|
+
- **Hero frame:** what the one screenshot-worthy frame shows
|
|
90
|
+
|
|
91
|
+
The three must contrast in idea and tone cell, not only in color. A recolor of
|
|
92
|
+
the same layout counts as one look. When the user named a style, all three use
|
|
93
|
+
it and differ in idea, hero frame, and palette within the style's rules.
|
|
94
|
+
|
|
95
|
+
Put your recommendation first and say why in one line. Ask once with
|
|
96
|
+
AskUserQuestion, "Which look should the video take?", one option per look plus
|
|
97
|
+
"Mix them" (the user says what to take from which). Write the chosen look to
|
|
98
|
+
`plan.md` under **Look** and hand it to the art director to lock. The art
|
|
99
|
+
director's style-frame candidates (its section 7) then vary composition within
|
|
100
|
+
that look.
|
|
101
|
+
|
|
102
|
+
With `--yes`, take the recommended look and list the other two in one line each
|
|
103
|
+
in `NOTE.md`.
|
|
104
|
+
|
|
76
105
|
## With --yes
|
|
77
106
|
|
|
78
107
|
Ask nothing. Infer every field from the request and the repo, write `brief.md`
|
|
@@ -35,6 +35,12 @@ Minimal techno and clicks. Each flip is a pitched click or blip, kick on quarter
|
|
|
35
35
|
## Build it in HyperFrames
|
|
36
36
|
SVG or Canvas with GSAP on a module-based coordinate system (x = col * 240). Compute beat = t / 0.5 and drive each module's step with floor and an eased fraction of the beat. Cascade phase = (col + row) * beat offset. Cue sheet shared with the audio so clicks match the flips exactly.
|
|
37
37
|
|
|
38
|
+
|
|
39
|
+
## Logo construction
|
|
40
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
41
|
+
- Construction: break the mark into grid modules (circles, quarter circles, bars). One module lands per beat in the mark's construction order, on whole grid steps. A mark that does not split into modules uses the card's rotation pivot to reveal its negative shape instead.
|
|
42
|
+
- Resolve: the freeze is the logo SVG at its true proportions, not snapped or re-colored to the poster palette, set on the grid with the card's type.
|
|
43
|
+
|
|
38
44
|
## Watch out
|
|
39
45
|
Any overshoot or bounce breaks the style. Off-grid positions from sub-pixel rounding. Colour count creep. Keep the type grid-aligned too.
|
|
40
46
|
|
|
@@ -37,5 +37,11 @@ Minimal felt piano with a soft string swell. Pen-on-paper whisper whose loudness
|
|
|
37
37
|
## Build it in HyperFrames
|
|
38
38
|
Inline SVG paths pre-joined into one path, animated with stroke-dasharray = length and stroke-dashoffset as a function of t (use getTotalLength). Camera is a transform on a parent group, computed from the path point at t (getPointAtLength) with smoothing. Glow with an SVG blur filter on a duplicate stroke. Fill via a clip or mask expanding from the anchor.
|
|
39
39
|
|
|
40
|
+
|
|
41
|
+
## Logo construction
|
|
42
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
43
|
+
- Construction: the pen draws the logo's strokes in its construction order, at the logo's own stroke width when it is a line mark. For a filled mark, draw its outline, then the line-to-fill sweep fills it from the anchor.
|
|
44
|
+
- Resolve: after the fill, the frame is the logo SVG exactly: the glow on the tip and the dimmed older lines are gone by the hold.
|
|
45
|
+
|
|
40
46
|
## Watch out
|
|
41
47
|
Shimmer on thin lines at 3px: render at 2x supersample. Do not vary line width. Keep the path truly continuous or the idea breaks. Avoid camera jitter from raw tip positions.
|
|
@@ -36,5 +36,11 @@ Bubbly gloops, pour, splash and drip, deep bass swell under a glossy synth bed.
|
|
|
36
36
|
## Build it in HyperFrames
|
|
37
37
|
WebGL2 fragment shader: sum of 2D SDF circles with smooth-min (polynomial k about 0.2 of radius), normals from the field gradient for fake 3D lighting, text as an SDF texture blended with the same field. Positions come from closed-form springs and splines of t. Cheaper fallback: SVG blur 20px+ then an feColorMatrix alpha threshold for the goo, add highlights as a second pass.
|
|
38
38
|
|
|
39
|
+
|
|
40
|
+
## Logo construction
|
|
41
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
42
|
+
- Construction: the liquid gathers into the mark's primitives one by one (largest first), with the necks snapping at the joins the mark actually has.
|
|
43
|
+
- Resolve: the metaball field converges onto the logo's SDF in the last 0.3s, the specular and rim lighting fade out, and the hold frame is the flat logo SVG in brand colors. Liquid-styled lettering is never the resolve.
|
|
44
|
+
|
|
39
45
|
## Watch out
|
|
40
46
|
Flat blob look if lighting is skipped. Necks that never snap read as jelly. Banding in gradients: add 2-3% noise. Keep wave front phase offsets seeded, not random per frame.
|
|
@@ -35,5 +35,11 @@ Rhythmic plucky arpeggio. A pitched whoosh per morph landing on the beat.
|
|
|
35
35
|
## Build it in HyperFrames
|
|
36
36
|
SVG with GSAP MorphSVGPlugin if licensed, otherwise flubber or a custom resampler: resample both paths to the same N points (about 200), rotate the start index to minimise total vertex distance, then lerp with the easing curve. All as a pure function of t. Always render mid-point stills for every morph and inspect for knots.
|
|
37
37
|
|
|
38
|
+
|
|
39
|
+
## Logo construction
|
|
40
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
41
|
+
- Construction: the chain's last morph lands on the logo's own primitives, in the order the mark is built (outer shape first, then cuts and counters). The bridge circle or capsule before the logo is the mark's largest primitive when it has one.
|
|
42
|
+
- Resolve: the final morph target is the logo's path itself, resampled from the SVG, not a hand-traced copy. Swap to the untouched SVG on the hold frame; the swap must be invisible.
|
|
43
|
+
|
|
38
44
|
## Watch out
|
|
39
45
|
Mismatched vertex counts and starting points cause knots. Skipping the intermediate circle on complex pairs. Mechanical look when squash and rotation are missing. Make beat times come from a single cue sheet.
|
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
| **prompt-images** by Replicate (`replicate/skills`, https://github.com/replicate/skills/tree/main/skills/prompt-images) | Apache-2.0, Copyright 2025 Replicate, Inc. | Adapted into `references/shot-prompting.md`: natural-language shot descriptions, naming subjects, camera, film, lighting and composition vocabulary, quoted text, editing and consistency rules, guidance and negative-prompt pitfalls. Rewritten and reordered, not copied verbatim | `LICENSE-replicate` |
|
|
11
11
|
| **"How to make AI images look less like AI"** by Pixova (https://www.pixova.io/blog/how-to-make-ai-images-look-less-like-ai) | Article, all rights reserved | Ideas only, in section 3b: directional light with hard shadows, film stock and grain, skin texture, off-center candid framing, specific environments, banned prompt words, lower CFG. No text is copied | n/a |
|
|
12
12
|
| **motionmaxxing** by Tejas Makwana (`Tejashmakwana/motionmaxxing`, FinalMotion, finalmotion.video), commit 8c8ec0f2 | Apache-2.0 | World per act, one system per film, the hero frame, and the additions to the Banned list. Rewritten in our own words; no code, runtime, media, studies or `library/` rows are copied | `LICENSE-motionmaxxing` |
|
|
13
|
+
| **logo-design** by kaankiziltug (`kaankiziltug/logo-design-skill`, `skills/logo-design`) | MIT, Copyright (c) 2026 kaankiziltug | Ideas from `SKILL.md` phases 2, 3 and 5, `references/principles.md` and `references/testing-checklist.md`, rewritten for video: the one-sentence idea tested against competitors (section 2b), the category cliché list with fresh-form exception (section 3), and the thumbnail, squint and shelf still tests (section 8). The SVG library, mark types and scripts are not included | `LICENSE-logo-design` |
|
|
13
14
|
|
|
14
15
|
## Changes in this edition
|
|
15
16
|
|
|
17
|
+
- 1.8.0: section 2b "One idea per film", "Category clichés" in section 3, and the still tests plus "Unanswered cliché" column in review, adapted from logo-design (MIT).
|
|
18
|
+
|
|
16
19
|
- 1.5.0: "Do not repeat earlier runs", a practice studied from the Motion Studio skill bundle; no code or text copied.
|
|
17
20
|
- 1.4.0: section 3b "Real, not generated", `references/shot-prompting.md`, and the "Looks generated" check.
|
|
18
21
|
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog — luckiest-video-studio-art-director
|
|
2
2
|
|
|
3
|
+
## 1.8.0 — 2026-10-12
|
|
4
|
+
|
|
5
|
+
- Section 2b: the film's idea in one sentence in `plan.md` and `art-direction.json` (`idea`, `ideaCheckedAgainst`) before the look is locked. Rejected and rewritten when it could describe a competitor's film.
|
|
6
|
+
- Section 3 "Category clichés": 5 to 8 clichés of the product's category listed as `cliches`, banned unless each is given a fresh form in one line.
|
|
7
|
+
- Section 8: thumbnail (160px), squint (8px blur) and shelf (beside 3 to 4 competitor frames) still tests on every hold frame and the hero frame, plus "Unanswered cliché" and "Still tests" columns.
|
|
8
|
+
- Adapted from kaankiziltug `logo-design` (MIT); see ATTRIBUTION.md and `LICENSE-logo-design`.
|
|
9
|
+
|
|
3
10
|
## 1.7.0 — 2026-10-12
|
|
4
11
|
|
|
5
12
|
- Section 0c: read the chosen style card; its signature features are locked and override Never ship items they need, each listed in `plan.md`. Signature features are exempt from the earlier-runs ban.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 kaankiziltug
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -20,7 +20,7 @@ user-invocable: true
|
|
|
20
20
|
license: MIT. See ATTRIBUTION.md
|
|
21
21
|
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
|
|
22
22
|
metadata:
|
|
23
|
-
version: "1.
|
|
23
|
+
version: "1.8.0"
|
|
24
24
|
listing_id: luckiest-video-studio-art-director
|
|
25
25
|
author: luckiest
|
|
26
26
|
---
|
|
@@ -35,11 +35,11 @@ confidence. Variety reads as noise.
|
|
|
35
35
|
## Staying current
|
|
36
36
|
|
|
37
37
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
38
|
-
`{ listingId: "luckiest-video-studio-art-director", installedSemver: "1.
|
|
38
|
+
`{ listingId: "luckiest-video-studio-art-director", installedSemver: "1.8.0" }`. If
|
|
39
39
|
`upToDate: false`, surface the `notice` once and continue. Never block on it.
|
|
40
40
|
|
|
41
41
|
When done, call `report_usage` once with
|
|
42
|
-
`{ listing_id: "luckiest-video-studio-art-director", skill_version: "1.
|
|
42
|
+
`{ listing_id: "luckiest-video-studio-art-director", skill_version: "1.8.0", matched: true, success: <true|false> }`.
|
|
43
43
|
Metadata only, never prompt text. Skip silently if unavailable.
|
|
44
44
|
|
|
45
45
|
## Standing rules
|
|
@@ -163,6 +163,19 @@ calm-sharp, `cinematic` to calm-soft, `default` and `yc-parody` to kinetic-soft,
|
|
|
163
163
|
|
|
164
164
|
No overshoot on pricing, money, or security content in any personality.
|
|
165
165
|
|
|
166
|
+
## 2b. One idea per film
|
|
167
|
+
|
|
168
|
+
Before locking anything below, write the film's idea as one sentence in
|
|
169
|
+
`plan.md` under **Idea**, for example "the invoice pays itself while you watch".
|
|
170
|
+
The idea is what the look serves. It is not the message line from the brief.
|
|
171
|
+
|
|
172
|
+
Test it against three competitor films, named by product. If the sentence could
|
|
173
|
+
describe any of them, it is not an idea: rewrite it with an ownable twist. If it
|
|
174
|
+
needs a second sentence to make sense, it will not read on screen: cut it down.
|
|
175
|
+
Write the sentence to `art-direction.json` as `idea`, and list the competitors
|
|
176
|
+
you checked under `ideaCheckedAgainst`. With `--yes`, still write and test it;
|
|
177
|
+
never skip to the look.
|
|
178
|
+
|
|
166
179
|
## 3. Lock the look
|
|
167
180
|
|
|
168
181
|
Fill every row with one choice:
|
|
@@ -211,6 +224,20 @@ for it.
|
|
|
211
224
|
Any of these can be right with a stated reason in `plan.md` (a calm brand that
|
|
212
225
|
fades, a held stillness). Without the reason, it is a Block in review.
|
|
213
226
|
|
|
227
|
+
### Category clichés
|
|
228
|
+
|
|
229
|
+
The never-ship list covers AI defaults. Each product category has its own
|
|
230
|
+
defaults too. Before filling the rows, list 5 to 8 visual clichés of this
|
|
231
|
+
product's category in `plan.md` under **Clichés**, for example fintech: blue,
|
|
232
|
+
upward arrows, shields, globes, coins; developer tools: a terminal typing
|
|
233
|
+
itself, green-on-black code, a glowing cursor; coffee: beans, steam, a cup.
|
|
234
|
+
Write them to `art-direction.json` as `cliches`.
|
|
235
|
+
|
|
236
|
+
A listed cliché is banned unless the film gives it a form no competitor has
|
|
237
|
+
used, written beside it in one line ("the arrow is the invoice's own fold
|
|
238
|
+
line"). Drawing the product or the category's symbol as it is never counts as
|
|
239
|
+
a fresh form.
|
|
240
|
+
|
|
214
241
|
### Do not repeat earlier runs
|
|
215
242
|
|
|
216
243
|
Before filling the rows, read every earlier `video-studio-output*/art-direction.json`
|
|
@@ -325,6 +352,9 @@ element whose motion carries no meaning.
|
|
|
325
352
|
{
|
|
326
353
|
"designSystem": { "sources": ["DESIGN.md", "client/src/index.css"], "overrides": [{ "token": "--background", "from": "#000000", "to": "#0B0B0F", "why": "video-safe black" }] },
|
|
327
354
|
"freedom": { "locked": ["palette", "faces", "accentBudget", "banned"], "guided": ["personality", "easing", "transitions", "texture"], "open": ["concept", "wow", "layout"] },
|
|
355
|
+
"idea": "the invoice pays itself while you watch",
|
|
356
|
+
"ideaCheckedAgainst": ["Stripe Invoicing launch film", "FreshBooks 2026 ad", "Wave payments promo"],
|
|
357
|
+
"cliches": [{ "item": "upward arrow", "fresh": "the arrow is the invoice's own fold line" }, { "item": "coins", "fresh": null }],
|
|
328
358
|
"style": "keynote-ui",
|
|
329
359
|
"styleOverrides": [],
|
|
330
360
|
"cell": "calm-sharp",
|
|
@@ -373,12 +403,27 @@ a frame that fails **Looks generated** (any section 3b rule).
|
|
|
373
403
|
`--review` reads `art-direction.json`, the composition files, and a rendered
|
|
374
404
|
hold frame per scene. Write `<run-dir>/qa/art-direction-review.md`:
|
|
375
405
|
|
|
376
|
-
| Scene | Matches design system | Repeats a logged correction | Color safe | Type holds | Easing in spec | Durations on base unit | Transition in family | One hero | Accent budget | Banned default | Never-ship item | Looks generated | Verdict |
|
|
377
|
-
|
|
406
|
+
| Scene | Matches design system | Repeats a logged correction | Color safe | Type holds | Easing in spec | Durations on base unit | Transition in family | One hero | Accent budget | Banned default | Never-ship item | Unanswered cliché | Looks generated | Still tests | Verdict |
|
|
407
|
+
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
408
|
+
|
|
409
|
+
Verdict is **Approve** or **Block**. Any "no", or a "yes" under Unanswered
|
|
410
|
+
cliché or Looks generated, is a direction defect. Block it and
|
|
411
|
+
name the fix.
|
|
412
|
+
|
|
413
|
+
**Still tests.** Run three checks on each scene's hold frame and on the hero
|
|
414
|
+
frame. A scene passes only if all three pass.
|
|
415
|
+
|
|
416
|
+
1. **Thumbnail:** scale the frame to 160px wide, the size of a feed thumbnail
|
|
417
|
+
or a timeline scrubber. The hero and the one line still read. If they do
|
|
418
|
+
not, enlarge or cut.
|
|
419
|
+
2. **Squint:** blur the frame about 8px at full size. The hero's silhouette
|
|
420
|
+
alone is still distinct, and nothing else competes with it.
|
|
421
|
+
3. **Shelf:** place the frame beside hold frames from 3 to 4 competitor films
|
|
422
|
+
of the same category, at the same size. It stands apart instead of blending
|
|
423
|
+
in, and it does not feel familiar. If it feels familiar and it is not this
|
|
424
|
+
brand's, it is someone else's: change it.
|
|
378
425
|
|
|
379
|
-
|
|
380
|
-
Looks generated, is a direction defect. Block it and
|
|
381
|
-
name the fix. Grep the composition files for stray `linear`, `ease`, or easing
|
|
426
|
+
Record which test failed in the table. Grep the composition files for stray `linear`, `ease`, or easing
|
|
382
427
|
values not in the spec, and durations that are not multiples of the base unit.
|
|
383
428
|
|
|
384
429
|
## 9. Corrections become rules
|
|
@@ -413,6 +458,7 @@ corrections. In `--review`, a scene that repeats a correction already logged in
|
|
|
413
458
|
|
|
414
459
|
| Symptom | Fix |
|
|
415
460
|
|---|---|
|
|
461
|
+
| Could be a competitor's film | Section 2b: rewrite the idea until no competitor's film fits it |
|
|
416
462
|
| Looks generic | Replace stock gradient and centered title with real product UI on the phi or thirds anchor |
|
|
417
463
|
| Looks cheap | Cut overshoot, cut glow, drop to one accent, add holds |
|
|
418
464
|
| Feels inconsistent | Audit easing and transitions against the spec |
|
|
@@ -430,4 +476,6 @@ Skill Me `motion-color-and-light` and `kinetic-typography` (MIT). The rule forma
|
|
|
430
476
|
freedom levels, and corrections loop follow ideas from The Design Guy, "AI finally
|
|
431
477
|
designs like me" (YouTube, 2026-09-27). Section 3b follows ideas from Pixova,
|
|
432
478
|
"How to make AI images look less like AI". `references/shot-prompting.md` is
|
|
433
|
-
adapted from Replicate `prompt-images` (Apache-2.0).
|
|
479
|
+
adapted from Replicate `prompt-images` (Apache-2.0). The one-idea gate, category
|
|
480
|
+
clichés, and still tests are adapted from kaankiziltug `logo-design` (MIT). See
|
|
481
|
+
ATTRIBUTION.md.
|