brand-brief
Capture or update a small business owner's brand brief — what they sell, who buys, the action they want readers to take, recent…
Generate faceless video content cheaply and consistently. Draft a still on a cheap model, run a pre-animate quality check, then animate the approved still through kie.ai, always routing to the lowest cost model. Enforces a running spend cap with a cost ledger, applies reusable
$ npx -y skills add blotato-inc/blotato-skills --skill generate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/generateContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate faceless video content cheaply and consistently. Draft a still on a cheap model, run a pre-animate quality check, then animate the approved still through kie.ai, always routing to the lowest cost model. Enforces a running spend cap with a cost ledger, applies reusable
name: generate description: Generate faceless video content cheaply and consistently. Draft a still on a cheap model, run a pre-animate quality check, then animate the approved still through kie.ai, always routing to the lowest cost model. Enforces a running spend cap with a cost ledger, applies reusable style and character presets so a whole channel stays consistent, and outputs a publish-ready clip that hands off to Blotato for scheduling. Triggers on /generate, generate image, generate video, make a POV clip, animate this. allowed-tools: Read, Write, Edit, Bash, Glob
Make faceless video content for pennies, keep a channel visually consistent, and never blow the budget. Draft a cheap still, check it before you spend on animation, then animate only the still you approve. Output lands publish-ready.
Built for vertical social video (9:16), with a running budget ceiling, reusable presets, and a quality gate plus a Blotato publish hand-off.
| Task | Default model | Provider | Recipe | |---|---|---|---| | Image (default) | nano-banana-2 | kie.ai | models/nano-banana-2.md | | Image (text or UI in frame) | gpt-image-2-text-to-image | kie.ai | models/gpt-image-2.md | | Video (DEFAULT) | Seedance 1.0 Pro `bytedance/v1-pro-image-to-video` | kie.ai | models/seedance-1-0-pro-image-to-video.md | | Video (budget) | Seedance 1.0 Lite `bytedance/v1-lite-image-to-video` | kie.ai | models/seedance-1-0-lite-image-to-video.md | | Video (newest, EXPLICIT ONLY) | Seedance 2.5 `bytedance/seedance-2-5` | kie.ai | models/seedance-2-5-image-to-video.md |
Read the recipe file before every generation. Use gpt-image-2-text-to-image whenever the frame has readable text, a sign, a poster, or an app UI mockup. Use nano-banana-2 for everything else.
**Video model routing.** Default every standard short vertical clip to **Seedance 1.0 Pro**. Use **Seedance 1.0 Lite** as the budget option. Use **Seedance 2.5 only** when I explicitly ask for it.
**Duration.** Seedance 1.0 accepts **5 or 10 second clips only** — there is no 8-second option. **Default to 10 seconds.** If any other value is requested, **round to 5 or 10 and tell me what you did** (do not fail silently, do not stop).
**Aspect ratio / dimensions.** The clip inherits the input still's exact dimensions. So **the still IS the aspect ratio and the resolution**: generate the still at **1080x1920** (9:16). If the still isn't 1080x1920 the clip won't be either. Seedance 1.0 has no aspect ratio parameter. Do not send one.
**Resolution floor: 1080p. This is hard.** Default vertical output is **1080x1920**. Lower resolutions are not offered — do not quote them or fall back to them to save credits. A sub-1080p clip is unpublishable on TikTok (min 540x960) / Instagram Reels, so it is wasted money, not a saving. If a request cannot be served at 1080p, STOP and say so rather than dropping resolution.
1. Default to the LOWEST COST provider that runs the model well. kie.ai first. 2. If the cheapest route lacks the model, fails auth, or errors, fall back to fal.ai, then WaveSpeed AI. 3. Never hide a provider swap. Say which route ran and why.
A preset is a saved style so every clip in a series looks like it came from the same channel. Presets live in `presets/`, one markdown file each. A preset holds:
Invoke with a preset: "/generate using the pov preset: you wake up as a Roman senator." Load the preset, merge its locked fragment and its refs into the prompt, and never drift from them across the series.
Ship with these starters (edit them to your channel):
1. Load preset (if named). Merge its locked fragment, aspect ratio, and refs. 2. Draft the still (cheap). nano-banana-2, or gpt-image-2-text-to-image if the frame has text or a UI. Save the file and its prompt. Show me the still. Do not animate yet. 3. Pre-animate QA gate (see below). If any check fails, stop and report. Do not spend on video. 4. Budget gate (see below). Quote the credits, the dollars, and the remaining session budget. Wait for my explicit go. 5. Animate the approved still. Poll, download the mp4, write the log line with the real cost, append to the ledger. 6. Publish-ready hand-off (see below).
Keep a running ledger at `generations/ledger.json`. Every generation appends one line: timestamp, model, type, cost_credits, cost_usd, description.
Two caps, editable here:
Before ANY paid generation: 1. Sum the ledger for this session and this month. 2. If this run would cross a cap, STOP and tell me how far over, do not generate. 3. Otherwise, quote it like this: "This clip is 140 credits, about $0.70. Spent this session $4.10, remaining $5.90 of the $10 cap. Go?"
One approval equals one run. Never batch paid videos past the cap without a fresh go.
Video is the expensive lane, so check the still BEFORE animating. These are the real failure modes (wrong ratio gives black bars, drift breaks the illusion):
If any check fails, stop, say which one
Free Claude skills that take you from blank page to scheduled social post in one conversation. This repo is a Claude Code plugin marketplace.
Capture or update a small business owner's brand brief — what they sell, who buys, the action they want readers to take, recent…
Guides a beginner marketer end-to-end from "I don't know what to post" to a scheduled social post. Auto-runs brand-brief, idea…
Grade a social media post for VIRALITY. Scores hook strength (50% — most critical), curiosity, emotional charge,…
Schedule a finished social post to one or more platforms via the Blotato API. Handles single-platform and multi-platform…
Write a complete social media post (hook + body + CTA) from a topic or idea, sized for the target platform. Reads brand-brief.md…
Turns one long-form input (blog post, newsletter, YouTube transcript, or script) into 3 platform-native LinkedIn posts, 5…