con un clic
katto
katto contiene 20 skills recopiladas de Konadu-Akwasi-Akuoko, con cobertura ocupacional por repositorio y páginas de detalle dentro del sitio.
Skills en este repositorio
Add a music bed underneath the voiceover, animation, and SFX of a HyperFrames video. Runs a short brainstorm (via the superpowers:brainstorming skill) to settle vibe and layer count, asks the human to curate the actual tracks (the skill does NOT recommend music — taste is human), then bakes a single deterministic music-bed.wav with ffmpeg, snaps the layer boundaries to natural narration pauses, and wires the bed into the composition as compositions/music.html. Use when the user asks to "add a music bed", "score this video with music", "underscore the video", "lay music under the narration", "add background music", or anything similar on a HyperFrames video that already has VO + SFX. Runs after video-director's SFX pass (Step H + the final reconcile), not before — music sits beneath SFX.
Generate a video's English captions.srt from its Scribe v2 transcript — and, only when explicitly asked, translate it into the 13 languages YouTube auto-dubs (Arabic, German, Spanish, French, Hindi, Indonesian, Italian, Japanese, Polish, Portuguese, Russian, Turkish, Vietnamese). By DEFAULT this skill produces the English captions and STOPS. Use it for "create the SRT", "generate captions for this video", "make the captions" (English only); generate the 13 translations only on an explicit localization request — "translate the captions", "translate to all languages", "do the localization", "dub it", "make the multilingual subtitles", "prep for multi-language upload". Always run from inside or against a `videos/<slug>-<date>/` folder.
Guided generator that turns an approved script + transcript into a production-ready YouTube description for a hyper-frames video. Reads outline.md, script.md, voiceover.txt, transcript.json, narration-map.json (optional), and seo/research.json (optional) from a `videos/<slug>-<date>/` folder; researches citations for concrete claims via WebSearch in parallel; composes hook, explainer, chapters with real timestamps, sources, and hashtags; writes `<video-dir>/description.md` and copies it to the clipboard via pbcopy. Use when the user says "write the description", "draft the YouTube description", "generate the video description", "fill in the description", "make the description for this video", or names a `videos/<slug>-<date>/` folder and asks for a description.
Extract a CSS or motion effect from a video composition into the shared design-catalog/ at the repo root, generalize it for reuse, and regenerate the viewer index. Use when the user says "add this to the design catalog", "catalog this effect", "save this snippet for reuse", "extract this into the catalog", "make this reusable", or points at a snippet and asks for it to be cataloged. Also use when finishing a composition and wanting to harvest standout effects before moving on.
Ingest a YouTube video into the repo-root inspiration libraries. DEFAULT for a whole-video URL is COMBINED ingest — motion-beat references into motionGraphicsInspo/ AND a pacing study into pacingInspo/, sharing one download. Narrower asks route to one mode - a clip window ("the beat at 1:12") captures a single motion beat; "motion only"/"scan for motion refs" does just the motion library; "ingest the pacing"/"study the cut cadence" does just the pacing library. Use whenever the user says "add a motion reference", "ingest this video", "add this to the library", "ingest this VFX clip", "build the motion library", "grab the motion from this video", "ingest this video's pacing", or hands over a YouTube URL for the inspiration libraries. Trigger even if the user doesn't name the skill — if the task is turning a YouTube video or beat into a reference our authoring skills can draw from, this is the skill. NOT for consuming references while authoring a video (that's video-director) and NOT for the ffmpeg mechanics (t
Guided generator that turns a topic + research notes into a TTS-ready video script in the project's house style. Use this skill whenever the user wants to write, draft, plan, or outline a script for a hyper-frames video — phrases like "write a script about X", "I want to make a video on Y", "draft a voiceover about Z", "outline a video on W", or "let's do a video on V" should all trigger it. Also use when the user mentions starting a new video folder under `videos/`, since this skill handles folder scaffolding too. The skill encodes a writing voice, not a structural recipe; it does NOT impersonate any creator.
Turn a finished long-form hyper-frames video into ~5 (up to 10) vertical 9:16 Shorts that funnel back to it, each ending on a Cleo-Abram-style subscribe CTA. Two-phase and human-in-the-loop — Phase 1 selects self-contained beats from the parent and drafts each clip's script + a staggered upload plan for review; Phase 2 builds one approved Short at a time (voiceover → portrait HyperFrames composition → vertical cover → 1080×1920 render). Publishing fans the finished render out to TikTok / Instagram / X / LinkedIn / YouTube by driving the `opusclip` plugin skill (`project create --skip-curate` → `post schedule`), or YouTube-only via the `youtube-studio` MCP / manual Studio. Use when the user says "make shorts from this video", "cut this into shorts", "generate the shorts", "create vertical clips", "turn this into reels/tiktoks", "schedule/post the shorts", or names a finished `videos/<slug>-<date>/` folder and asks for Shorts. Runs after a long-form video's script.md + transcript.json exist (ideally after it's
Curate the studio idea backlog — read ONLY the unjudged raw_signal delta in tools/studio/studio.db, apply qualitative worth-pursuing judgment (keep or discard with a one-line rationale, NEVER a grade or score), insert keepers into the ideas table, and mark every raw row judged. Use when the user says "curate the wire", "curate studio ideas", "process the raw signal", "what's new on the wire", "turn discovery into ideas", "run the studio-ideas skill", or after a studio discovery run. This skill is the intelligence for tools/studio — the server and CLI decide nothing.
Guided generator that turns a hyper-frames video's working title into three production-ready YouTube thumbnails (1280x720) or Shorts/TikTok covers (1080x1920). Each variant REPLICATES the layout of a real, high-performing thumbnail picked from the `thumbnailInspo/` reference library (composition from the reference; the channel's "Specimen" style vocabulary — Inter 900 2-tone headline + JetBrains Mono stat tell + precision pointer + accent palette — for the voice), PAIRED with a corpus-derived YouTube title, in an iterative render-and-score review loop. Use whenever the user wants to create, draft, generate, design, or A/B test thumbnails AND/OR titles for a hyper-frames video — phrases like "make a thumbnail", "I need thumbnails", "generate thumbnail variants", "design a cover", "write the title", "title this video", or any request that names a `videos/<slug>-<date>/` folder and asks for a thumbnail or title. Vertical/Shorts/TikTok mode activates when the invoking message contains any of: vertical, portrait,
Take a raw voice recording at `videos/<slug>/audio/raw.mp3`, transcribe it with ElevenLabs Scribe v2, dispatch the audio-cut-decider sub-agent to plan first-pass cuts, and write both `transcript.json` and `cuts.json` so the user can preview and refine in `tools/audio-editor`. Use when the user says "transcribe my recording", "plan cuts for this audio", "prep this recording for the editor", or hands you a path to a raw recording and asks to clean it up. This skill does NOT render the final `audio/voiceover.mp3` — saving cuts in the editor only writes `cuts.json`; rendering (apply cuts → cut audio) is a one-line `cut-video --mode audio` pass it hands off. The inverse flow (re-transcribing an already-rendered `voiceover.mp3`) is documented under "After the cuts are applied".
Author a HyperFrames video incrementally from an approved `script.md` + Scribe v2 `transcript.json`, a few sentences at a time, anchoring every animation to real transcript word timings and wiring each block into `index.html`. Use this whenever the user wants to turn a script into a composition — "build the video", "author the composition", "animate this script", "direct this video", "keep going on the video", "continue the composition", "do the next scene" — or names a `videos/<slug>-<date>/` folder that has `script.md` + `transcript.json` + `design.md` and asks to make it move. Use it even when the user doesn't say "video-director" by name; if the task is turning narrated script text into HyperFrames scenes, this is the skill. It DIRECTS the `hyperframes` / `hyperframes-cli` / `hyperframes-registry` plugin skills (it sequences, tracks state, and wires — it does not replace them), resumes cleanly across sessions by reading what's already mounted, and runs a visual-QA loop on every scene. It also owns the **S
Post-publish packaging QA for an uploaded YouTube video. Reads the live metadata via the youtube-studio MCP, checks title / tags / description / captions against the channel's packaging rules (docs/creator-patterns.md §5–§6), and FIXES what the MCP allows — title, description, tags, thumbnail, and captions — under a strict preview-then-confirm gate. Use after a video is uploaded, or when the user says "QA my upload", "check this video's packaging/metadata", "audit my latest upload", "did I publish that right", "run the publish checklist", "check the tags/title/description/captions on <video>". Takes an explicit video ID or defaults to the channel's latest upload.
Turn an approved script.md into a voiceover (ElevenLabs Multilingual v2) and a word-level transcript (Scribe v2) in one run, with light annotation (ALL-CAPS anchors + SSML <break> tags) behind a hard checkpoint before any API credits are spent. Project default for YouTube videos — long-form stable, plain-prose match. Use when the user says "generate the voiceover", "voice this script", "tts the script", "make the audio", or after the script-writer skill's hand-off prompt. Outputs land at audio/voiceover.mp3 and transcript.json at the video folder root.
Turn an approved script.md into a voiceover (ElevenLabs v3) and a word-level transcript (Scribe v2) in one run, with an LLM-driven beat-aware annotation step (curated audio tags, ellipses, anchor-driven ALL-CAPS) behind a hard checkpoint before any API credits are spent. Use when the user explicitly requests v3 (passes `with v3` to the script-writer hand-off) or when a video genuinely needs inline audio tags for per-beat emotional shifts. The project default for YouTube videos is `voiceover-elevenlabs-v2` — invoke that unless v3's tag-driven expressiveness is specifically wanted. Outputs land at audio/voiceover.mp3 and transcript.json at the video folder root.
Mine YouTube autocomplete + top-N video metadata for a topic into <video-dir>/seo/research.json, then surface a 5-line digest of searchable nouns, demand phrases, saturation warnings, and hook-shape data. Use when the user wants to research a topic before titling or scripting — phrases like "research SEO for this video", "what are competitors using", "what should I title this", "do keyword research", "research the topic before I write". Also invoked programmatically by other skills (script-writer, thumbnail-and-title-generator) when their consumer hooks detect a missing seo/research.json. Backed by the tools/youtube-seo/ Python CLI; this skill handles natural-language invocation, topic resolution, the digest, and follow-ups.
Read YouTube channel analytics, moderate comments, edit video metadata, upload videos, schedule publishes, and insert/update captions via the youtube-studio MCP server. Use when the user asks "how is my channel doing", "what's working / what's not", "moderate my held comments", "rewrite this video's title/description/tags", "set a thumbnail on this video", "upload this video", "schedule this video", "add captions to this video", "what should I do next on YouTube", "weekly channel review", or anything that requires reading or acting on YouTube Studio data. The skill encodes the cheap-quota call orders and the write-gate rules — invoke it before reaching for any `mcp__youtube-studio__*` tool.
Use when changing the SQLite schema — adding a table, column, or index, or altering how existing data is stored in katto's app database.
Use when creating a new UI surface or feature area in the React app (a new sidebar tab, panel, window, or major view under src/features/).
Use when adding, renaming, or changing the signature of a Tauri command in src-tauri — any new IPC surface between the Rust core and the React UI.
Use when changing any snapshot-frozen emitter in katto-engine — FCPXML, SRT/VTT, or ffmpeg filtergraph text — or when an insta snapshot test fails after an engine change.