Communitygithub.com

G-resentation

Convierte «hacer una presentación PPT» en un flujo de producción completo, desde la solicitud hasta la entrega: extrae requisitos y audiencia, fija el número de diapositivas, selecciona la ruta de creación, produce tres muestras, genera por lotes, valida y archiva.

¿Qué es G-resentation?

G-resentation es una habilidad de agente de IA diseñada para orquestar la creación completa de presentaciones (PPT, diapositivas, materiales de informe). Su función principal no es dibujar diapositivas, sino gestionar el flujo de trabajo: desde interrogar al usuario para definir requisitos claros, estructurar el contenido, seleccionar la ruta de creación más adecuada (HTML, imágenes o PPTX editable), hasta delegar la ejecución en otras habilidades especializadas, validar los resultados finales y archivar versiones. Es ideal cuando el contenido aún no está definido y se necesita crear una presentación desde cero. No debe usarse si ya se dispone de un esquema completo que solo requiere maquetación. La habilidad impone reglas estrictas, como congelar el número de diapositivas después de la aprobación del esquema, generar primero tres diapositivas de muestra antes de la producción masiva, y verificar cada entrega con una lista de control. Soporta múltiples plataformas y lenguajes de programación (Python 3.10+), y se integra con otras habilidades como `frontend-slides` (HTML) o `ppt-master` (PPTX). Su enfoque metódico y basado en pasos garantiza que cada presentación cumpla con las expectativas del público objetivo y los requisitos técnicos, minimizando iteraciones y errores.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/QinyuTan/G-resentation/tree/HEAD/skills/g-resentation

Preguntar en tu IA favorita

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

Documentación

¿Qué hace G-resentation?

Convierte «hacer una presentación PPT» en un flujo de producción completo, desde la solicitud hasta la entrega. El nombre viene de grill me in presentation: primero te interroga hasta que no puedas dar respuestas vagas, luego se pone manos a la obra.

Esta habilidad solo orquesta: pregunta los requisitos, define la estructura, selecciona la ruta de creación, delega el trabajo en las habilidades de creación adecuadas y finalmente valida. No dibuja diapositivas por sí misma.

La primera vez que la uses, ejecuta python3 "<SKILL_DIR>/scripts/doctor.py". Te dirá qué falta y qué comando ejecutar después; la ruta completa de inicio se encuentra en QUICKSTART.md.

Límites

  • Usar: cuando el contenido aún no está definido y necesitas crear un material de presentación desde cero.
  • No usar: si ya tienes un esquema página por página y solo necesitas maquetación, o si solo quieres embellecer, modificar una diapositiva o convertir el formato; en esos casos, invoca directamente la habilidad de creación.
  • Prioridad de activación: esta habilidad primero selecciona la ruta y luego llama a la habilidad de creación. No dejes que la habilidad de creación se salte el paso 0 porque también pueda «generar presentaciones».

Estructura del proyecto

Cada trabajo tiene su propia carpeta decks/<slug>/. Los nombres de archivo son fijos y cada paso posterior solo reconoce estos nombres:

decks/<slug>/
├── brief.md      Especificación de requisitos (salida del paso 0)
├── outline.md    Guión página por página (P01, P02…)
├── assets/
│   ├── sources/  Material original para verificar hechos
│   └── media/    Imágenes, logotipos, capturas de pantalla que realmente se usan en las diapositivas
├── out/          Producto final
└── versions/     Archivo de versiones

Para trabajos pequeños, se puede omitir la creación de assets/ y versions/.

Scripts

Los tres scripts solo hacen tareas deterministas, no reemplazan el juicio humano. Solo usan la biblioteca estándar y cualquier Python 3.10+ puede ejecutarlos sin necesidad de paquetes adicionales.

<SKILL_DIR> es la ruta absoluta del directorio donde reside esta habilidad; sustitúyelo antes de ejecutar. Los comandos a continuación son universales en macOS / Linux / Git Bash. En PowerShell, escribe "$S\xxx.py" en lugar de "$S/xxx.py".

S="<SKILL_DIR>/scripts"

python3 "$S/new_deck.py" q4-review --title "Revisión Q4"      # Crea la carpeta del proyecto y dos plantillas vacías
python3 "$S/new_deck.py" weekly-sync --small                  # Trabajo pequeño
python3 "$S/check_outline.py" decks/q4-review                 # Verifica numeración consecutiva, seis campos y comparación con la línea base congelada
python3 "$S/snapshot.py" decks/q4-review outline              # Archiva la versión, incrementa automáticamente v01, v02…

En Windows, python3 podría ser un marcador de posición de la Tienda. Verifica primero con python3 -V. Si no funciona, usa python o py -3. Todos los scripts aceptan cualquier intérprete que funcione.

Si check_outline.py sale con un código distinto de 0, corrige primero antes de continuar. Después de congelar, ejecútalo de nuevo; listará las diferencias de páginas con respecto a versions/v01-outline/. Esta es la red de seguridad para «modificar P07 solo por número de página».

Dependencias externas (opcionales, instalar según necesidad)

Esta habilidad es solo una capa de orquestación y no empaqueta ninguna herramienta de creación. Las cuatro siguientes se utilizan según la ruta seleccionada; si faltan, se aplica una degradación:

DependenciaRutaQué hacer si no está instalada
frontend-slidesPresentación HTMLCrear un único archivo HTML manualmente o usar las dos rutas siguientes
guizang-ppt-skillOtro estilo de presentación HTMLUsar frontend-slides como alternativa
ppt-masterPPTX editableDegradar a HTML o generar imágenes, e indicar «No se ha generado PPTX» en la página
imagegenGenerar imágenes por páginaExportar capturas de pantalla HTML como PNG

Todas se instalan con npx skills add <owner/repo>. Consulta los repositorios respectivos para más detalles. Cuando falten dependencias, informa al usuario exactamente qué ruta falta y qué impacto tiene; no finjas que se puede generar el resultado.

ppt-master tiene dependencias fuera de la biblioteca estándar (python-pptx, PyYAML, skia-pathops, uharfbuzz, etc.). No escribas la ruta del intérprete de otro; primero detecta:

PY=$(command -v python3 || command -v python)
"$PY" -c "import pptx, yaml, pathops, uharfbuzz" 2>/dev/null \
  || echo "Faltan dependencias: pide al usuario que ejecute pip install -r <PPT_MASTER_DIR>/requirements.txt en ese entorno Python"

Después de pasar esta verificación, ejecuta su validación de integridad "$PY" "<PPT_MASTER_DIR>/scripts/attribution_guard.py". Si el código de salida no es cero, detente; no lo corrijas ni lo omitas.

Material y verificación de hechos

Habla sobre el «presente». No te bases en la memoria. Si tienes la habilidad aihot instalada, úsala para obtener las últimas novedades. Es una API pública de solo lectura que no requiere clave:

curl -sL "https://aihot.virxact.com/api/v1/items?mode=selected&window=7d&q=<palabra clave>&limit=10"
curl -sL "https://aihot.virxact.com/api/v1/hot-topics"
  • mode=selected es el grupo seleccionado. Si la consulta con q devuelve vacío, prueba con mode=all e indica «No ha entrado en la selección».
  • Guarda la respuesta original obtenida en assets/sources/ para verificaciones posteriores; no la incluyas en los archivos de entrega.
  • En el pie de página, solo indica la fuente original de terceros (publicador, nombre del informe, fecha). No parafrasees resúmenes de sitios de noticias ni uses sus enlaces como referencia.
  • Permite uso personal y no comercial. Para entregas comerciales a clientes, facturación o redistribución por lotes, primero obtén autorización según sus términos; no asumas que se puede usar por defecto.
  • Si la habilidad no está instalada o la consulta falla, recurre a búsquedas públicas o pide al usuario que proporcione los datos, e indica hasta cuándo están actualizados.

Flujo de trabajo

1. Clasificar el trabajo

El único criterio: ¿Se puede deshacer este trabajo si algo sale mal?

  • Cliente externo, revisión formal, archivado o difusión, entrega entre departamentos → trabajo grande.
  • Reunión interna semanal, círculo pequeño de conocidos, se puede rehacer en cualquier momento → trabajo pequeño.

Después de clasificar, informa con una frase: «Voy a tratar esto como un trabajo grande» o «Es pequeño, solo llena esta tabla». El usuario puede cambiar la clasificación y luego continuar.

2. Preguntar requisitos (puerta)

  • Trabajo pequeño: Dale al usuario assets/brief-template.md para que lo llene. Si faltan campos, pregunta por los huecos; no adivines por él.
  • Trabajo grande: Haz una pregunta a la vez. Primero contenido, luego las cuatro dimensiones de la audiencia, finalmente la forma. Las preguntas y el lenguaje se encuentran en references/step0.md.

Independientemente del tipo, después de preguntar, parafrasea en tres frases: «Esto es para quién, qué quieres que hagan y qué deben recordar después de verlo». Solo después de que el usuario confirme, escribe brief.md.

3. Guión página por página (puerta)

Escribe outline.md siguiendo los siete campos de references/step0.md. Cada página tiene un número, empezando por P01 en orden secuencial. El título va en la misma línea que el número; los otros seis campos se colocan debajo. Al escribirlo, usa el P1 Guión página por página de references/prompts.md, reemplazando todos los [ ] con el contenido real de brief.md. Después de escribir, ejecuta check_outline.py. Si los números no son consecutivos o faltan títulos o campos, no se considera terminado.

Después de la confirmación, congela: ejecuta inmediatamente snapshot.py <deck> outline para guardar la línea base. A partir de este momento, el número de páginas y la numeración no pueden modificarse. Cualquier adición o eliminación de páginas requiere la aprobación del usuario. Cualquier reordenación debe informar: «P07 original → ahora P05». En adelante, cualquier «modificar la página X» solo se refiere al número de página.

4. Seleccionar ruta + tres diapositivas de muestra (puerta)

Primero adivina, luego confirma: basándose en el brief, deduce una ruta y explica las razones para que el usuario la rechace. No preguntes directamente «¿Cuál prefieres?». Los criterios y la forma de invocación se encuentran en references/paths.md.

Las diapositivas de muestra deben ser las tres más difíciles: la portada, la página con más información, y la página con el gráfico o flujo más complejo. Entrega el producto real (HTML navegable, PNG visible, PPTX abrible). No des capturas de pantalla. Solo después de confirmar la dirección, procede a la producción completa. Los prompts de las tres rutas (P3 / P4 / P6) ya incluyen el requisito de las diapositivas de muestra en este paso; no es necesario escribirlo por separado.

5. Producción

Según la ruta, llama a la habilidad correspondiente y usa el prompt asociado:

RutaPrompt utilizadoHabilidad
Presentación webP3frontend-slides o guizang-ppt-skill
Generar imágenesP4, y opcionalmente P5imagegen; P5 usa ppt-master
PPTX editableP6ppt-master

Si hay imágenes de referencia o altos requisitos visuales, primero añade P2 Desglose de estilo antes del prompt. Si no hay imágenes de referencia, omítelo; el estilo seguirá el predeterminado de la habilidad de creación.

Todos los [ ] en los prompts deben reemplazarse con el contenido real de brief.md. No envíes ningún prompt con [ ] sin reemplazar.

Genera de diez en diez páginas. Después de cada lote, informa «P11–P20 listas». No interrumpas el ritmo; solo detente para preguntar si una página no se puede generar.

Antes de usar ppt-master, verifica que el intérprete pueda importar sus paquetes. Si no puede, pide al usuario que instale su requirements.txt. No escribas rutas de entornos virtuales de otros:

PY=$(command -v python3 || command -v python)
"$PY" -c "import pptx, yaml, pathops, uharfbuzz" || echo "Faltan dependencias; consulta la sección de dependencias externas"

6. Validación + archivado

Revisa elemento por elemento según las cuatro categorías de references/checklist.md. Para la versión web, ábrela en el navegador integrado y pruébala: pasar páginas, zoom, desconexión de red. Para cualquier elemento que no cumpla, usa P7 Modificación de una sola página con el número de página y una captura de pantalla; solo modifica una página a la vez. Para problemas similares en varias páginas, explica el alcance de manera uniforme y luego realiza una revisión completa.

Antes de la entrega, ejecuta snapshot.py <deck> final para guardar una versión.

7. Instrucciones de entrega

Dilo en una frase: desde qué archivo abrir, qué condiciones de ejecución se requieren y qué limitaciones conocidas existen.

Reglas estrictas

  • En cada punto de control, haz solo preguntas concretas («¿Esta dirección de las tres páginas es correcta? ¿Qué no lo es?»). No preguntes «¿Qué le parece?».
  • No inventes hechos, números ni casos. Cuando los datos entren en conflicto o falten, detente y pregunta; no adivines.
  • Si un requisito no se puede cumplir, indica claramente la limitación y las alternativas; no lo degrades en silencio.
  • Si el mismo problema no mejora después de dos rondas, primero investiga la causa; no sigas generando repetidamente.
  • En todo el flujo, solo haz dos pausas: una para las muestras y otra para la validación final. No confirmes página por página en el medio.

Skills relacionados