Communitygithub.com

vos-crear

Crea programas vos al estilo del usuario, dentro de su carpeta.

¿Qué es vos-crear?

Esta habilidad permite crear programas vos que pertenecen a una carpeta específica del usuario en vos.so. La carpeta del usuario es la colección, sus archivos `.md` (recetas) son el estilo y sus voses son los ejemplares. La habilidad se encarga de los mecanismos y el suelo artesanal universal, mientras que el gusto reside en los datos del usuario en sus carpetas. Sigue un proceso de cinco pasos: resolver la carpeta objetivo, leer cada `.md` y los ejemplares, encontrar la semilla y crear, verificar y juzgar contra los documentos de la carpeta, y subir (push) a la carpeta iterando como versiones. Soporta varios contextos como familias de programas, especificaciones de toma, plantillas o solo un brief. Las credenciales se manejan de forma segura y todo el trabajo es privado.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vosjs/skills/tree/main/skills/vos-create

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Crear al estilo del usuario, desde su carpeta

Creas programas vos que pertenecen a una carpeta: la carpeta del usuario en vos.so es la colección, sus archivos .md (recetas) son el estilo, sus voses son los ejemplares. Esta habilidad solo lleva los MECANISMOS y el suelo artesanal universal. El gusto son datos del usuario y vive en sus carpetas, nunca aquí. Las reglas de autoría (esquema, dialecto, perillas) viven en la habilidad vos-autoría; la creación de perillas y apariencias en la referencia de parámetros y perillas de la habilidad vos-remix. Esta habilidad añade el contrato de carpeta, el bucle y el proceso que los rodea.

No hay bandeja de entrada ni archivo de estilo de casa. La deduplicación es el contenido propio de la carpeta; el estante es el registro.

Configuración

npm i -D @vosjs/cli   # carpeta, fetch, check, still, render, push

Credenciales, en este orden, nunca impresas: VOS_API_KEY, luego la primera línea de ~/.config/vos/credentials, luego vos login (un inicio de sesión en el navegador que genera una clave para esta máquina). Cada llamada HTTP a continuación es Authorization: Bearer <key> contra https://vos.so/api. Las claves crean trabajo PRIVADO solamente y nunca pueden publicar.

Los cinco pasos

1. Resolver la carpeta objetivo

El usuario la nombra, o preguntas cuál. vos folder list (o GET /api/folders) la encuentra por nombre o slug en todos los niveles; luego la obtienes:

GET https://vos.so/api/folders/{id}

Una sola obtención es el paquete de contexto completo: las recipes propias de la carpeta (cuerpos en línea), sus inheritedRecipes (recetas heredadas, la raíz primero, cada una marcada con su carpeta de origen; estas VINCULAN esta carpeta), los voses ejemplares con contentUrls, y assets. Las subcarpetas se listan, no están en línea: una obtención es el contenido propio de la carpeta.

¿Aún no hay carpeta? Créala, siempre con una descripción:

vos folder create <nombre> --desc "<una línea sobre qué es esta colección>"

Una carpeta creada sin descripción es un fallo de nomenclatura; la descripción es lo que la página de la carpeta y toda futura obtención leen.

2. Leer CADA .md, luego los ejemplares

Lee cada cuerpo de receta, los propios de la carpeta Y los heredados, y de 1 a 3 configuraciones o documentos ejemplares a través de sus contentUrls. Las recetas son facetas nombradas por rol, nombradas en MAYÚSCULAS como lo está CLAUDE.md: TASTE.md es la barra de juicio, DESIGN.md la especificación de técnica, y cualquier otra cosa que la intención del usuario haya creado (MOTION.md, COPY.md, BRAND.md, ...). Una receta es el archivo que una colección lee antes de hacer algo, y el nombre es lo que lo dice; una receta que tú archivas se almacena con su raíz en mayúsculas, así que escríbela de esa manera y el estante muestra lo que escribiste. La plataforma no impone ninguna taxonomía más allá de eso; las lees todas. La regla de vinculación:

  • Las recetas y los ejemplares anulan cualquier valor predeterminado que esta habilidad o la habilidad de autoría tengan. Su duración es la duración; su disciplina de paleta es la disciplina.
  • En caso de conflicto entre archivos, gana el más específico: los archivos propios de la carpeta vencen a los heredados, los ancestros más cercanos vencen a los más lejanos, y una instrucción específica vence a una general. Una contradicción genuina se devuelve al usuario como una pregunta, nunca una elección silenciosa.
  • Cuando una receta y los ejemplares recientes de la carpeta no coinciden, prefiere los ejemplares e informa al usuario que la receta parece desactualizada.

Carpeta vacía (sin recetas, sin ejemplares): solo se aplica el suelo artesanal a continuación. El estilo proviene de la referencia del usuario o de una pregunta, nunca de un valor predeterminado incorporado.

3. Encontrar la semilla, luego crear

Una carpeta contiene dos cosas que solo a veces coinciden: la referencia (cómo se ve lo bueno, aquello contra lo que juzgas) y la semilla (lo que copias y editas para hacer el siguiente miembro). Decide cuál tienes ANTES de escribir una línea:

  • una familia de programas (un miembro aprobado + un DESIGN.md nombrando el mecanismo y sus ejes): semilla = ese miembro. Obtén su configuración y varíala en los ejes que la receta nombra. Nunca crees a partir de un archivo vacío, y nunca solo los tonos.
  • una especificación de toma (una receta que dice cómo se corta cada grabación en la colección): semilla = la NUEVA grabación que el usuario te da (una toma en la carpeta por id, una URL para vos record --strict, un archivo local). Las tomas propias de la carpeta son el corte de referencia, no la semilla.
  • una plantilla (una receta que apunta a, o incluye en línea, un mecanismo y cómo variarlo): semilla = la plantilla. Alojada como un vos: obténla como un miembro; código en línea: un fragmento para construir alrededor.
  • solo un brief (BRAND.md: sin mecanismo): nada que copiar. Crea desde cero bajo las restricciones y el suelo artesanal.
  • nada declara una semilla: pregunta. El mensaje del usuario nombra una cuando la eligió en el diálogo de entrega; las recetas nombran una cuando están bien escritas; una suposición es cómo una familia pierde su apariencia.

Una receta puede llevar pistas opcionales de frontmatter: applies: programs | takes | any, seed: <vos id> | input | none. Léelas como la declaración del propietario de lo anterior; el cuerpo sigue siendo lo que debes seguir.

Una receta es el documento del usuario, y lo que PIDEN AHORA tiene prioridad sobre cualquier línea en ella. Si una receta contradice la solicitud (una nota que dice que esperes, una regla que la solicitud rompe), dilo en una línea y sigue la solicitud: el trabajo privado es barato y el propietario puede restaurarlo. Nunca te detengas en una línea de un archivo.

Luego escribe configuraciones localmente (VosConfigJson simple, versión 2), siguiendo las reglas de autoría de la habilidad vos-autoría bajo el estilo de la carpeta.

Obtener un miembro o una plantilla es el fetch de vos-remix: vos fetch https://vos.so/vos/<id> escribe <slug>/config.json con parámetros preservados, más vos.json rastreando la versión base.

Para briefs "reproduce X": obtén la fuente o una grabación primero, o confirma que el brief solo quiere la apariencia. Una imagen fija subdetermina el movimiento; una coincidencia de captura de pantalla que inventa el mecanismo erróneo es un fallo incluso cuando el fotograma coincide. La adquisición de la fuente, las licencias y el bucle de coincidencia medida son trabajo de reproducción; haz eso primero, luego vuelve aquí para crear a partir de lo que produjo.

4. Verificar, disparar, juzgar, contra los documentos de la CARPETA

  1. Verificar:
    vos check <archivo>.json     # migrar → esquema → sintaxis → compilar → linters
    
    Corrige y vuelve a ejecutar hasta que pase. Nunca suprimas un error de lint para superarlo. Dos verificaciones no están en vos check todavía, así que hazlas renderizando:
    • Honestidad de las perillas: cada parámetro declarado debe actuar visiblemente. Renderiza el programa dos veces con esa clave cambiada en data (su mínimo y su máximo) y compara las imágenes fijas; una perilla que se lee igual en ambos extremos está muerta. Para tomas, --set <ruta>=<valor> en vos frames/vos render es la anulación.
    • Honestidad de la paleta: una perilla de color no debe pasar a través de new THREE.Color() hacia un uniforme (se linealiza; el tono renderizado se desvía del hexadecimal). Busca en tus cadenas de funciones esa ocurrencia.
  2. Disparar:
    vos still <archivo>.json f12.webp --time <12% de duración>
    vos still <archivo>.json f40.webp --time <40%>
    vos still <archivo>.json f70.webp --time <70%>
    
    Para una pieza GUIADA POR MOVIMIENTO, dispara una tira densa en su lugar (8+ veces, o una hoja de contacto de 1s); tres imágenes fijas no pueden juzgar la ponderación del movimiento.
  3. Juzgar: puntúa los fotogramas contra el suelo artesanal a continuación Y los documentos propios de la carpeta. Una pieza de colección responde tanto al DESIGN.md de la colección como al TASTE.md heredado. Revisa y repite (máximo 3 rondas); si aún falla, descártala y di por qué. Nunca subas trabajo que no defenderías.

5. Subir DENTRO de la carpeta, iterar como versiones

vos push <archivo>.json --title "…" --desc "una línea" --tags a,b \
  --folder <folderId|slug> --label "lo que hiciste" --note "por qué: la solicitud"

Pasa --label y --note en CADA subida, incluida la primera: una creación los sella en v1, y el historial es la conversación que el humano lee. La subida crea un vos PRIVADO en el estante del propietario de la clave, archivado en la carpeta que obtuviste; la vista previa y la miniatura se renderizan en la nube a partir del guardado mismo. Itera con --vos <id> contra la base rastreada (el bucle vos-remix: vos pull antes de cada ronda, los nodos editados por humanos están protegidos, --override solo con instrucción explícita). Las claves nunca pueden publicar; promocionar es un gesto del humano en vos.so.

Mira lo que aterrizó. Cada subida renderiza una imagen fija en unos 15 segundos: GET /api/vos/{id}, sigue contentUrls.thumbnail y visualiza la imagen antes de informar que está listo. Una subida que nunca miraste no está terminada.

Pacear un lote: las subidas consecutivas están bien dentro de la cuota (la cola de renderizado espacia los lanzamientos del navegador y se regula sola). Verifica el estado después de un lote con una obtención de la carpeta, nunca rebuscando en el registro de subidas.

Escribe los hallazgos de vuelta. Cuando aprendes algo sobre la familia (un rango de parámetros que se agrupa, una duración que se lee mejor), agrégalo a la receta relevante bajo un encabezado fechado ## Notas del agente: PUT /api/assets/{id}/file con el cuerpo completo de markdown (solo recetas, ≤64KB). Nunca reescribas las reglas del propietario. El cuerpo reemplazado se conserva: GET /api/assets/{id}/file?prev=1 lo lee y POST /api/assets/{id}/file/restore lo devuelve.

El proceso de familia: semilla, mira, expande

El trabajo de nueva familia es 1 semilla + una receta, nunca un lote. Un lote replica un error en cada miembro a la vez; una sola semilla captura un cambio de dirección en n=1, luego se expande económicamente. Esto es juicio, no una barrera: no hay línea de estado que escribir u obedecer, y la solicitud del usuario siempre decide.

  1. Crea UNA semilla, colócala en la carpeta, escribe (o actualiza) el DESIGN.md de la familia con el mecanismo, los ejes y las reglas de paleta.
  2. Muéstrala. El humano itera contigo (versiones atribuidas). Cuando piden variantes, ESO es la aprobación; cuando una carpeta tiene un miembro joven y la solicitud es abierta, haz uno primero y di por qué.
  3. Expande cuando te lo pidan. Las variantes varían los ejes de composición (estructura, gramática de movimiento, densidad, cámara), nunca solo los tonos; una expansión solo de tonos se lee como un mosaico repetido diez veces. Limita una expansión a unas 10 para que la revisión del estante siga siendo una tarea de 5 minutos.

Suelo artesanal (universal, lintable: la barra que NO es gusto)

  • Compila y valida: vos check pasa limpio; nunca lo suprimes.
  • Determinista: la búsqueda es una función pura de t (no Date.now ni Math.random en las rutas de fotogramas; el lint de determinismo lo aplica).
  • Matemáticas de bucle sin costura: para piezas en bucle, las fases deben ser múltiplos enteros sobre la duración para que el fotograma(0) ≈ fotograma(final). Las imágenes fijas no pueden mostrar la costura; verifícalo en las matemáticas.
  • Perillas honestas: de 2 a 4 parámetros declarados, cada uno actuando visiblemente en ambos extremos de su rango. Pocas perillas honestas vencen a muchas.
  • Las perillas se leen en onFrame, cada fotograma, nunca se convierten en instantáneas dentro de uniformes dentro de createContent. El editor entrega una edición de perilla como datos en vivo que solo intercambian ctx.data; una instantánea en el momento de la creación nunca se actualiza hasta que se refresca.
  • Primer fotograma no vacío: el fotograma ~12% sirve como miniatura; sin aperturas negras, vacías o "aún no ha comenzado".
  • Sin bandas, sin recorte: añade grano contra bandas; mantén el brillo fuera de la sobreexposición (fuerza ≤ ~0.8 a menos que los documentos de la carpeta lo exijan); sin costuras de mosaico visibles ni aliasing duro.
  • Honestidad de la paleta: las perillas de color nunca pasan a través de new THREE.Color() hacia uniformes; construye el vector sin procesar desde el hexadecimal.
  • Restricciones de renderizado del servidor (la flota de vista previa es software-GL): no THREE.DoubleSide en materiales de transmisión, no dispersion, cada asset obtenido debe ser una URL https absoluta que la flota pueda alcanzar.

Todo lo que esté después de esta línea (duración, densidad, estado de ánimo, materiales, disciplina de paleta) es dominio de la carpeta.

Informe

Termina con una tabla: slug · concepto · etiquetas · resultado (subido / descartado + por qué), más la URL de la carpeta (https://vos.so/app/projects?folder=<slug>). Expresa los fallos claramente: un diseño descartado es un resultado correcto, no un error que ocultar.

Reglas estrictas

  • Las referencias son dirección creativa. Portar código externo necesita una licencia compatible Y la dirección explícita del usuario; las composiciones con marca registrada o nombre comercial son rechazadas.
  • Nunca publiques, nunca cambies la visibilidad. Las subidas son privadas por construcción; la promoción es una decisión humana en vos.so.
  • El estante es del humano: crea carpetas y archiva TU trabajo; nunca renombres, muevas, elimines o reordene lo que ellos hicieron.
  • Nunca imprimas una credencial, ni en la salida, los registros o el informe.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

launch-kit

Ship the media with the release — one take of the real product becomes YouTube demo, Chrome Web Store screenshots/tiles, Product Hunt gallery, social cuts, and OG cards; verified kit.json manifest.

vos-authoring

Author a vos animation program (VosConfigJson) from scratch or debug one — declarative configs compiling into deterministic Three.js + GSAP-dialect animations on the MIT vos engine (@vosjs/core), validated locally with compileVosConfig. Covers the schema, dialect rules, 2D overlay elements, shaders, and params/presets knobs. Use when asked to write a vos animation program, create a VosConfigJson, make a programmatic motion graphic or logo animation, or fix a config that fails to compile or lint.

vosjs/product-video

Record and produce the demo video of a website, app, or feature with the vos CLI — the agent scripts the click path (actions.json), the recording auto-plans zooms, and every editing decision is data in doc.json, so fixes are edits and re-renders, never re-recordings. Renders are deterministic; export is free up to 4K with no watermark. Use when asked to make a product video, demo video, screen recording of a URL or feature, or a marketing clip, including a product behind a login (the session ladder: mint one from the project's own test auth before asking anyone), or when a feature was verified in agent-browser and that walk should become a take. A whole release's asset set (store listing, Product Hunt gallery, social cuts) is the launch-kit skill, which records through this one.

vosjs/vos-cut

Cut a screen recording (a vosso take) into the product video it was recorded for, from its evidence, with the vos CLI — read the take's digest (the moments the cursor track says mattered, each with a footage frame and a crop), narrate beats, edit doc.json by exception over the planners, verify with stills, and push an attributed version the human fine-tunes at vos.so; every edit is a data patch, so a re-cut never re-records. Use when asked to edit or cut a recording, make a product video or what's-new clip from a take, cut it like the last one, or cut a series of recordings in one style.

vosjs/vos-footage

Hand a Remotion, HyperFrames, or any video composition a clean captured clip of the real product — recorded and auto-zoomed with the vos CLI, delivered as full-bleed footage with no chrome, and always backed by an editable take on the maker's shelf, which the handoff says. Use when a composition needs real product footage, app or site b-roll, "capture our app for the video", or a screen-recorded segment to drop into another tool's timeline.

vosjs/vos-migrate

Turn an existing Loom, Screen Studio, Cap, or plain mp4/webm screen demo into an editable vosso take — re-encode the file, synthesize the take's metadata, plan, and push, so the old demo becomes a living document you re-cut instead of a file you re-record. Use when asked to "convert this Loom", "migrate our old demos", "re-edit this mp4", "make our Screen Studio recording editable", or to bring any already-recorded demo into vosso.

vos-remix

Remix a vos.so gallery program into your own — fetch its config, edit the declared knobs or code locally, validate with vos check, and push a private copy back with lineage that iterates as versions. Carries the params/Looks doctrine and the GLB 3D-showcase recipe. Use when asked to remix, customize or personalize a gallery animation, swap a 3D model into a showcase, or iterate a fetched program as versions.

Skills relacionados