一键导入
add-db-migration
Use when changing the SQLite schema — adding a table, column, or index, or altering how existing data is stored in katto's app database.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when changing the SQLite schema — adding a table, column, or index, or altering how existing data is stored in katto's app database.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
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.
| name | add-db-migration |
| description | Use when changing the SQLite schema — adding a table, column, or index, or altering how existing data is stored in katto's app database. |
Migrations are numbered, embedded, and forward-only. Shipped migrations are immutable.
M::up(...) to the migrations list in src-tauri/src/db/migrations.rs. Never modify an existing entry — even a typo ships as a new migration.PRAGMA table_info guard pattern (check column presence before ALTER TABLE ADD COLUMN) — same pattern as hyper-frames' ensureColumns.migrations_apply_on_fresh_memory_db) must still pass — it runs the full ladder on Connection::open_in_memory().src-tauri/src/db/<aggregate>.rs (functions take &Connection, return typed rows). No SQL anywhere else.test_db() helper (all migrations applied, production pragmas minus WAL).just check.ideas and raw_signal keep column parity with hyper-frames/tools/studio/server/lib/db.ts — external tools (studio-discover, the curation pattern) write to them directly. Renaming their columns is a breaking change to tools we don't own here.ideas — AI suggests, the human decides. If a change adds a numeric judgment column, it's wrong by design.events is append-only: no UPDATE or DELETE paths on it (pruning by age is the one exception and lives in a single housekeeping function).