launch-kit
GitHub该技能用于生成包含共享产品、演员和风格实体的协调营销素材包。通过锁定模型和实体确保多帧静态图及视频剪辑的一致性,按阶段产出并保存资源以供复用。
Trigger Scenarios
Install
npx skills add nodetool-ai/nodetool --skill launch-kit -g -y
SKILL.md
Frontmatter
{
"name": "launch-kit",
"description": "Produce a NodeTool campaign with shared product and cast entities, stills, and multiple video cuts. Use for a coordinated asset set."
}
Load /storyboard-core first. It carries the loop, the tool contract and
the gating this skill assumes. Everything below is what changes when the deliverable is
a set rather than a cut.
What makes this job type its own
Keep the grade and cast consistent across the requested campaign deliverables. Use the passes below as an organizing pattern, scaled to the brief.
So: one entity set, one board style string, one image model, one video model, fixed
at phase A and reused verbatim through phase D. Changing the image model mid-kit is how
a kit ends up looking like two kits.
Produce the requested campaign
Use phases as progress checkpoints. Continue within the authorized deliverables and budget. Pause for a user-requested review or a missing decision that changes the output or spending scope. Do not reconfirm authorization already given. When the brief does not fix the deliverable counts (frames, clips, cuts), confirm them with the user before the first clip pass.
A — Cast and lock
- Product entity from the flat: save the asset,
create_entity {kind: "prop"}with a descriptor of geometry and finish. Keep the other angles (three-quarter, back, top, on-figure) as plain assets. An entity is one image asset, so it carries one reference into a prompt. - Character entity from the on-body photo. Descriptor is face, hair and build, with no wardrobe — wardrobe belongs in shot text so the same person can change outfits across the kit.
- Optionally a style entity:
create_entity {kind: "style", palette}. A style entity applies to every shot on every board, which is exactly what a kit wants. find_modelonce each fortext_to_imageandimage_to_video. Write them and the entities onto the board withset_board.memory_savethe grade, the model ids, the board id and the entity ids, with the ids inresources. This is what makes the kit resumable next week —share_resultwould be discarded with the run.
Report entity ids, the grade, and model ids. Continue with the requested assets.
B — Still campaign frames
Produce the requested number and mix of stills. Use take selection when the user reserved that choice. A stills-only request ends here. Otherwise continue to the authorized video deliverables with the selected frames.
Vary the crop in camera.framing; the still prompt reads it, with the angle and lens,
so it needs no repeat in action. Give product-only frames an explicit entity_ids naming the product
alone, so the model's descriptor does not season a frame she is not in.
Report the selected asset ids and continue within the requested scope.
C — Social cuts
Use the brief's clip count, durations, and ratios, animated from the selected phase-B stills. Honor any requested approval of those stills. Reuse them to keep the look consistent.
A separate board per aspect ratio — aspect_ratio is a board field, not a shot field,
so one board cannot serve 9:16 and 16:9. Same entities, same style, same models on each.
To animate an approved phase-B still on the new board without re-rendering it,
edit_storyboard → {op: "add_keyframe_version", target, asset_id} attaches it as the
shot's selected still. It only fits when that still was framed for the new ratio.
Report clip asset ids. Continue if the requested kit includes a longer film.
D — The long film
Build the longer piece at the requested duration and aspect ratio, with stable slugs and timing. Assemble it, then finish the sound:
edit_timeline → get_state, then set_clip_params {muted: true} on the "Shot Audio"
clips under any voiceover, and add music with generate_music + add_track +
add_media_clip at a low volumeDb.
validate_timeline before calling it done.
Spend
Report shot and frame counts per phase before each render — never a dollar figure, as
nothing prices a render. Afterwards, get_cost_summary gives what the kit actually
cost.
A twelve-frame still pass is cheap; three clip passes plus a 30-second film is not. If the user is deciding, that is the ratio to tell them.
Recovering a kit later
list_storyboards shows shot counts and how many shots have a still and a clip.
memory_search finds the phase-A note with the grade and the entity ids. Together
those are enough to resume without re-deriving the look.
Brief
Adapt these examples to the user's brief. Example deliverables, style choices, and approval checkpoints apply only when the user adopts them.
Launch kit for [BRAND] [SKU] from the attached flat and on-body photos.
Stop after each phase and wait for me.
A. Cast and lock. Product entity from the flat (descriptor = geometry and
finish). Character entity from the on-body photo (descriptor = face, hair and
build, no wardrobe). Pick one image model and one video model with find_model
and write both onto the board. Grade: [cold film / warm daylight / black
studio]. memory_save the grade, both model ids and every entity id.
B. Twelve still campaign frames, mixed crops, on-figure and product-only. Stills
only — stop before clips. Product-only frames get entity_ids naming the
product alone.
C. Three 9:16 clips, 6-8s, animated from stills I approved in B. Do not
re-render those stills. A separate board for the vertical ratio.
D. One 30s 16:9 film, slugged and timed. Assemble, mute the Shot Audio clips
under the voiceover, add a music bed low, then validate_timeline.
Same grade and the same two models from A through D. Report counts before each
render, not dollars.
Version History
-
97aad94
Current 2026-10-19 19:18
修复了交付的技能与当前代码不符的问题,包括过时的工具名称、参数和环境变量,以及重叠的触发器和漂移的合同。
- 9b979bc 2026-09-22 23:29


