.claude/skills/scene-engine/SKILL.md
Motor de escenas de Kiyoko AI. Usar cuando se trabaje con escenas, prompts de imagen/video, timeline, camara, o generacion de contenido audiovisual. Referencia completa en docs/v6/MY DOCUMENT/kiyoko-motor-escenas-spec.md
npx skillsauth add placidovenegas/kiyoko-AI scene-engineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Leer SIEMPRE antes de trabajar: docs/v6/MY DOCUMENT/kiyoko-motor-escenas-spec.md
| Tabla | Relacion | Contenido |
|-------|----------|-----------|
| scenes | video → N escenas | Escena: titulo, descripcion, dialogo, notas, duracion, arc_phase |
| scene_camera | escena → 1 camara | Plano dominante + lighting + mood + reasoning |
| scene_prompts | escena → N prompts | image, video, narration, analysis (versionados) |
| scene_video_clips | escena → N clips | Clips base + extensiones (parent_clip_id encadena) |
| scene_characters | escena ↔ personajes | Que personajes, role_in_scene |
| scene_backgrounds | escena ↔ fondos | Que fondo, angle override, time_of_day override |
| scene_media | escena → N media | Resultados generados |
| timeline_entries | video → N entries | Segundo a segundo: que pasa, camera, audio, props |
| Tabla | Campos clave para prompts |
|-------|--------------------------|
| characters | prompt_snippet, ai_prompt_description, visual_description, hair_description, signature_clothing, accessories |
| backgrounds | prompt_snippet, ai_prompt_description, location_type, time_of_day, available_angles |
| style_presets | prompt_prefix, prompt_suffix, negative_prompt, generator_config |
| prompt_templates | template_text, variables |
| Tabla | Campos clave |
|-------|-------------|
| projects | style (enum), ai_brief, global_prompt_rules, color_palette, custom_style_description |
| videos | platform, video_type, target_duration_seconds, description, aspect_ratio |
| profiles | creative_video_types, creative_platforms, creative_purpose |
| project_ai_agents | tone, creativity_level, video_style_context |
| project_ai_settings | image_provider, video_provider, video_base_duration_seconds, video_supports_extension |
| narrative_arcs | phase, start_second, end_second |
arc_phase: hook | build | peak | close
camera_angle: wide | medium | close_up | extreme_close_up | pov | low_angle | high_angle | birds_eye | dutch | over_shoulder
camera_movement: static | dolly_in | dolly_out | pan_left | pan_right | tilt_up | tilt_down | tracking | crane | handheld | orbit
scene_type: original | improved | new | filler | video
scene_status: draft | prompt_ready | generating | generated | approved | rejected
prompt_type: image | video | narration | analysis
project_style: pixar | realistic | anime | watercolor | flat_2d | cyberpunk | custom
video_type: long | short | reel | story | ad | custom
target_platform: youtube | instagram_reels | tiktok | tv_commercial | web | custom
personaje.prompt_snippet → SI EXISTE, usar TAL CUAL como base del personajefondo.prompt_snippet → SI EXISTE, usar TAL CUAL como base del settingstyle_preset.prompt_prefix → va AL INICIO del promptproyecto.style → define el estilo base ("3D animated Pixar-style" etc.)style_preset.prompt_suffix → va AL FINAL del promptproyecto.global_prompt_rules → reglas que SIEMPRE aplican| Generando | Imagenes de referencia | |-----------|----------------------| | Key frame | Ref personaje(s) + ref fondo | | Video base | Refs personajes + ref fondo + KEY FRAME generado | | Video extension | Refs personajes + ref fondo + LAST FRAME del clip anterior | | Transicion | Refs personajes + ultimo frame escena anterior + primer frame escena siguiente |
{style_preset.prompt_prefix}
{proyecto.style} scene, {escena.description}.
Character: {personaje.prompt_snippet}.
{personaje.hair_description}. {personaje.signature_clothing}.
Setting: {fondo.prompt_snippet}.
Camera: {camara.camera_angle} shot, {camara.camera_movement}.
Lighting: {camara.lighting}. Mood: {camara.mood}.
{video.aspect_ratio} aspect ratio.
{style_preset.prompt_suffix}
scene → 1 scene_video_clips (base) → N timeline_entries
scene (metadata.is_extended = true)
├─ clip A (base, parent=null)
│ └─ last_frame_url → input de clip B
└─ clip B (extension, parent=clip_A)
└─ last_frame_url → input de clip C (si hay)
scene (scene_type='filler', is_filler=true, metadata.is_transition=true)
└─ clip (1-2s, con su propio prompt imagen+video)
scene_camera = plano DOMINANTE (1:1).
Cada timeline_entry.metadata = camara de ESE segmento temporal:
{
"camera_angle": "close_up",
"camera_movement": "dolly_in",
"shot_type": "detail_insert"
}
| Fase | % del video | Proposito | |------|------------|-----------| | hook | 5-10% | Captar atencion | | build | 40-50% | Desarrollar historia | | peak | 20-30% | Climax | | close | 5-10% | Cierre |
Suma de duraciones de escenas = video.target_duration_seconds. Cada escena tiene su arc_phase.
description y target_duration_secondsstyle definidoprompt_snippet o visual_descriptionprompt_snippet o descriptionreference_image_url → usarla como refreference_image_url → usarla como refscene_characters asignadosscene_backgrounds asignadoscene_camera configuradaprompt_snippet o visual_descriptionprompt_snippet o descriptiontesting
Auditar componentes UI para consistencia visual, compliance con design system, accesibilidad y patrones Notion/Supabase. Usar cuando se quiera verificar calidad visual del proyecto.
data-ai
Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
tools
Cuando necesites crear, modificar o borrar tablas, enums, indices, RLS policies o seeds en Supabase. También para ejecutar SQL vía MCP.
development
Reorganizar y refactorizar componentes en carpetas por dominio. Eliminar duplicados, extraer componentes reutilizables, mejorar imports.