Todas las skills

pptx (anthropics/skills)

Crea, lee y edita presentaciones .pptx y .potx, plantillas, diseños y notas del orador.

anthropics pptx: todos los grupos superan nuestras comprobaciones de presentación (5.0 vs 4.99), la skill consume 1.4x los tokens; una ejecución del prompt de una frase generó una presentación que LibreOffice no puede abrir

Según el casoSegura

Codex CLI · gpt-6-astra

24.0 / 30

Mejora frente a sin skill: +0.01 · Según el caso · 17 ejecuciones

Según el caso: la mejora +0.01 está por debajo de +1.0. Para ser recomendada hace falta un total de 22/30, una calidad de salida de 3.5 y una mejora de +1.0.

SOTA

Aprobada

Probada con Codex.

Cubre Codex, Claude Code

Codex CLI 0.166 (nivel SOTA): 17 ejecuciones puntuadas. Una pasada aquí también cubre Claude Code según nuestra regla de niveles; no dice nada sobre el segundo nivel.

Puntuaciones

Cada dimensión va de 0 a 5 y las seis suman el total sobre 30. 5 es mejor en todas las dimensiones. Coste 5 significa barato y rápido. Instalación 5 significa fácil.

Fiabilidad de activación
5.0
Mejora frente a sin skill
2.0
Calidad de salida
5.0
Coste en tokens y tiempo
3.0
Instalación y portabilidad
4.0
Seguridad
5.0

Revisión de seguridad

Segura

Escaneo estático: 0 CRITICAL / 1 HIGH / 6 MEDIUM. Revisión manual: Segura para ejecutar en un sandbox sin red (hallazgos del escáner explicados). Un escaneo limpio no demuestra que una skill sea segura.

Instalar

npx skills@latest add anthropics/skills --skill pptx

Origen

Commit fijado: ca45fc496a3436251f191354091d557da31c15b5

Probada: 2026-11-02

Qué probamos

  • Crear una presentación — Crea pitch.pptx: una presentación de 5 diapositivas en 16:9 para el lanzamiento de un producto ficticio llamado Falcon: una diapositiva de título, una diapositiva Problema, una diapositiva Solución, una diapositiva Tracción con un gráfico de barras de ingresos trimestrales (Q1 12, Q2 18, Q3 27, Q4 35, en $k) y una diapositiva final Petición. …
  • Insertar y retitular diapositivas — En team.pptx, cambia el título de la diapositiva 2 a 'Perspectiva de ingresos' e inserta justo después una diapositiva nueva titulada 'Riesgos' con tres viñetas (retrasos de suministro, contratación, divisas). Mantén sin cambios todas las demás diapositivas y sus notas del orador. Guarda el resultado como team.pptx…
  • Extraer el esquema y la tabla — A partir de team.pptx, escribe outline.txt (un título de diapositiva por línea, en orden) y table.csv (la tabla de la diapositiva de resultados, con la fila de encabezado primero). No modifiques team.pptx.

Ventajas

  • La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
  • Calidad absoluta alta con la skill: 5.0 sobre 5.

Inconvenientes

  • Sin mejora medible frente a sin skill (+0.01, dentro del ruido).
  • El control ya obtiene 4.99: efecto techo, así que la prueba no puede mostrar mejora.
  • Salvedad de la prueba: 17 de las 18 ejecuciones previstas; la rama del prompt de una frase de t3 tiene n=1. La tanda se detuvo tras varios cierres inesperados de LibreOffice en una máquina de prueba.
  • n=2 por tarea y rama; las diferencias de menos de aproximadamente 1 punto son ruido.

Reseña

Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en una máquina de prueba Mac, con un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales en cada ejecución, la skill instalada (grupo con skill), sin ella (control) o sin ella pero con el requisito central de la skill comprimido en una frase añadida al prompt (grupo del prompt de una frase), 2 ejecuciones por grupo y tarea, red desactivada y escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la formulación indicada más abajo). Tres tareas: crear una presentación de 5 diapositivas en 16:9 (notas del orador en cada diapositiva, un gráfico nativo editable, viñetas reales, todo en la diapositiva y que abra en LibreOffice); en team.pptx, cambiar el título de la diapositiva 2 e insertar después una diapositiva 'Risks' con tres viñetas, manteniendo las demás diapositivas, la tabla y las notas del orador; extraer los títulos de las diapositivas y la tabla a archivos de texto sin modificar la presentación. Ambas ramas tenían las mismas copias sin conexión de pptxgenjs y python-pptx. Las comprobaciones usan python-pptx y una conversión con LibreOffice hecha sin conexión por nuestra parte. Se ejecutaron 17 de las 18 ejecuciones previstas: la tanda se detuvo antes de tiempo (ver límites), así que el grupo del prompt de una frase tiene una ejecución menos en la tarea de extracción.

Comparación de tres ramas

RamaPuntuación media (0-5)Tokens por ejecución
Sin la skill4.99114k
Prompt de una frase4.86224k
Con la skill5.0162k

Medido con Codex CLI en 17 ejecuciones, puntuado con comprobaciones basadas en reglas y sin juez LLM. Total 24.0 / 30, veredicto Según el caso.

Aviso: 17 de las 18 ejecuciones previstas: la rama de una frase de t3 tiene n=1. El lote se detuvo tras varios cierres inesperados de LibreOffice en una máquina de prueba.

Veredicto: Situacional (24.0 / 30). Fuente: anthropics/skills, skills/pptx, fijado en el commit ca45fc4. Instalación: npx skills@latest add anthropics/skills --skill pptx. Licencia: Propietaria (LICENSE.txt en el directorio del skill): evaluado en solo lectura, no redistribuido.

Qué es

El skill pptx de anthropics/skills: crear presentaciones con pptxgenjs (con una lista de trampas que corrompen archivos), editar presentaciones descomprimiendo y editando el XML de las diapositivas con scripts auxiliares (add_slide.py, clean.py, thumbnail.py), leer contenido con markitdown y validar con scripts/office/validate.py y LibreOffice. Unas 3,100 palabras en SKILL.md más scripts de Python y esquemas OOXML; licencia propietaria, evaluado en solo lectura.

Cómo lo probamos

Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un Mac de pruebas, un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales en cada ejecución, skill instalado (grupo con skill), ausente (grupo de control) o ausente con el requisito central del skill comprimido en una frase añadida al prompt (grupo de una frase), 2 ejecuciones por grupo y tarea, red desactivada, escrituras en /tmp bloqueadas. Los prompts nunca mencionan el skill (salvo la formulación indicada abajo).

Tres tareas: crear una presentación de pitch de 5 diapositivas en 16:9 (notas del orador en cada diapositiva, un gráfico nativo editable, viñetas reales, todo dentro de la diapositiva, que abra en LibreOffice); en team.pptx cambiar el título de la diapositiva 2 e insertar una diapositiva «Risks» con tres viñetas después, conservando las demás diapositivas, la tabla y las notas del orador; extraer los títulos de las diapositivas y la tabla a archivos de texto sin modificar la presentación. Ambos grupos tenían las mismas copias sin conexión de pptxgenjs y python-pptx. Las comprobaciones usan python-pptx más una conversión de LibreOffice hecha sin conexión por nuestra parte. Se hicieron 17 de las 18 ejecuciones previstas: el lote se detuvo antes de tiempo (véanse los límites), así que el grupo de una frase tiene una ejecución menos en la tarea de extracción.

  1. Crear una presentación de pitch — Crea pitch.pptx: una presentación de 5 diapositivas en 16:9 para el lanzamiento de un producto ficticio llamado Falcon: una diapositiva de título, una de Problema, una de Solución, una de Tracción con un gráfico de barras de ingresos trimestrales (Q1 12, Q2 18, Q3 27, Q4 35, en $k) y una diapositiva final de Petición. E…
  2. Insertar y retitular diapositivas — En team.pptx cambia el título de la diapositiva 2 a «Revenue outlook» e inserta justo después una diapositiva nueva titulada «Risks» con tres viñetas (retrasos de suministro, contratación, divisas). Mantén sin cambios todas las demás diapositivas y sus notas del orador. Guarda el resultado como team.pptx…
  3. Extraer esquema y tabla — De team.pptx escribe outline.txt (un título de diapositiva por línea, en orden) y table.csv (la tabla de la diapositiva de resultados, con la fila de encabezado primero). No modifiques team.pptx.

La puntuación es programática (tests ocultos / detección de problemas sembrados / comprobaciones de restricciones / renderizado+OCR cuando corresponde), de 0 a 5 por ejecución. Ningún juez LLM decidió ninguna puntuación.

Resultados

La frase única que recibió el tercer grupo: "Construye la presentación con objetos reales de PowerPoint: configura primero el diseño 16:9, usa un gráfico nativo editable (no una imagen), viñetas reales (nunca caracteres «•» escritos a mano), notas del orador mediante la API de notas, mantén cada forma dentro de la diapositiva y confirma que el archivo abre convirtiéndolo a PDF; al editar, cambia solo lo que se pidió, deja las demás diapositivas y sus notas como están y no dejes archivos de trabajo."

TareaPuntuación sin skillUna fraseCon skillTokens sin skillTokens una fraseTokens con skillSkill leído
t1-new4.965.05.0147k342k185k2/2
t2-edit5.04.655.0114k175k199k2/2
t3-extract5.05.05.079k80k99k2/2

Puntuación media: 4.99 sin vs 5.0 con el skill (delta +0.01). Tokens por ejecución: 114k vs 162k (1.42x); tiempo 67s vs 70s. Grupo de una frase: 4.86 (la mejora del skill frente a la frase: +0.14; la mejora de la frase frente a no usar skill: -0.12); la frase usa 224k tokens por ejecución, así que el skill consume 0.72 veces sus tokens.

Qué ocurrió

  • Sin diferencia en la puntuación: 4.99 control, 4.86 una frase, 5.00 skill. El control ya crea presentaciones correctas (5 diapositivas, notas en cada una, un gráfico nativo, sin viñetas escritas a mano, formas dentro de la diapositiva, abre en LibreOffice) y hace la edición con python-pptx sin perder notas ni la tabla.
  • El skill costó más: 162k tokens por ejecución frente a 114k (1.4x), y la versión de una frase 224k (2.0x), sobre todo en la tarea de creación (185k para el skill y 325-361k para la versión de una frase, frente a 118-176k del control).
  • Un fallo, en el grupo de una frase: su team.pptx editado abre en python-pptx pero LibreOffice no puede convertirlo (reproducido dos veces por nuestra parte); el propio agente informó de que LibreOffice se había bloqueado. Las seis presentaciones del grupo del skill se convirtieron, y las seis ejecuciones del skill ejecutaron su validate.py.
  • El skill se leyó en 6/6 ejecuciones, y en las 6 el agente usó su markitdown, validate.py y el envoltorio de LibreOffice (soffice.py). El control nunca llamó a LibreOffice; 4 de 5 ejecuciones de una frase llamaron a soffice directamente.

Puntuación por dimensiones

DimensiónPuntuaciónMotivo
1_output_quality5.0

Puntuación media de 5.00/5 con el skill (comprobaciones programáticas; véase la tabla por tarea).

2_lift_vs_no_skill2.01

+0.01 puntos frente a 4.99 sin el skill (n=2 por tarea; menos de ~1 punto es ruido).

3_trigger5.0Skill leído en 6/6 ejecuciones con skill.
4_instructions_portability4

Asume que pptxgenjs, python-pptx, markitdown y LibreOffice están instalados; orientado a sandbox Linux.

5_efficiency3

1.42x tokens (162k vs 114k por ejecución) y 1.04x tiempo (70s vs 67s).

6_safety_hygiene5

Scripts leídos: soffice.py (lanzador de LibreOffice; compila un pequeño shim LD_PRELOAD solo en Linux cuando los sockets están bloqueados), thumbnail.py, add_slide.py, clean.py y validadores; sin red, sin acceso a credenciales.

Límites de esta prueba

  • El lote se detuvo en 17 de 18 ejecuciones: LibreOffice se bloqueó repetidamente en el ordenador de pruebas mientras los agentes (sobre todo en los grupos del skill y de una frase) convertían presentaciones a PDF, y el usuario nos pidió que paráramos. Todos los resultados provienen de ejecuciones que terminaron; falta una ejecución de extracción del grupo de una frase.
  • Comprobaciones por reglas (estructura, notas, gráfico, límites, apertura); no se juzgó la calidad visual de las diapositivas ni se ejercitó la guía de diseño del skill (paletas de color, ideas de diseño).
  • Presentaciones pequeñas; 5 y 3 diapositivas. No se probaron la edición basada en plantillas, combinar/dividir ni los comentarios.
  • Las conversiones de las comprobaciones se hicieron sin conexión por nuestra parte; el uso propio de LibreOffice por parte de los agentes en el ordenador de pruebas es lo que provocó los bloqueos.
  • n = 2 por grupo y tarea: las diferencias de menos de ~1 punto son ruido.
  • La puntuación basada en reglas mide lo que las comprobaciones pueden ver; no puede juzgar el gusto ni si un resultado es el mejor posible.

Seguridad

Véase security.md. Escaneo: 0 CRITICAL / 1 HIGH / 6 MEDIUM. Veredicto: seguro de ejecutar (sandbox sin red). Un escaneo limpio no demuestra que un skill sea seguro.

Conclusión

En presentaciones pequeñas, Codex a secas con python-pptx ya producía archivos correctos y válidos, así que las trampas y el validador del skill añadieron alrededor de un 40% de tokens sin subir la puntuación. Su validador y sus pasos de conversión son útiles para presentaciones más grandes o basadas en plantillas, algo que esta prueba no cubrió. Ten en cuenta que el propio flujo del skill llama a LibreOffice, que puede ser inestable en algunos escritorios.

Transcripción

Registro de ejecuciones: pptx (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Columnas: tarea, grupo-ejecución, puntuación (0-5), tokens, segundos, comprobaciones superadas, archivos de la skill que abrió el agente.

t1-new control-1: puntuación 4.92, tokens 117727, s 118.4, comprobaciones 1/2, no abrió nada
t1-new control-2: puntuación 5.0, tokens 176319, s 129.0, comprobaciones 2/2, no abrió nada
t1-new oneliner-1: puntuación 5.0, tokens 324776, s 128.1, comprobaciones 2/2, no abrió nada
t1-new oneliner-2: puntuación 5.0, tokens 360676, s 134.3, comprobaciones 2/2, no abrió nada
t1-new treatment-1: puntuación 5.0, tokens 183150, s 123.4, comprobaciones 2/2, abrió pptx
t1-new treatment-2: puntuación 5.0, tokens 187890, s 110.7, comprobaciones 2/2, abrió pptx
t2-edit control-1: puntuación 5.0, tokens 115865, s 43.4, comprobaciones 2/2, no abrió nada
t2-edit control-2: puntuación 5.0, tokens 113982, s 42.2, comprobaciones 2/2, no abrió nada
t2-edit oneliner-1: puntuación 4.31, tokens 147330, s 67.2, comprobaciones 1/2, no abrió nada

17 ejecuciones, 3 artefactos

Resultado de ejemplo

SOTA · With the skill: create_pitch.js (t1-new, run 1, Codex)

const pptxgen=require('pptxgenjs'); const p=new pptxgen();p.layout='LAYOUT_WIDE';p.title='Falcon launch';p.author='Falcon';p.theme={headFontFace:'Arial',bodyFontFace:'Arial',lang:'en-US'}; const dark='192620',green='C2F36B',muted='56665C'; function t(s,text,x,y,w,h,size=20,color=dark,bold=false){s.addText(text,{x,y,w,h,fontSize:size,fontFace:'Arial',color,bold,margin:0});} function base(n,d=false){const s=p.addSlide();s.background={color:d?dark:'FFFFFF'};t(s,'FALCON / LAUNCH',.65,.35,6,.25,10,d?green:muted,true);t(s,String(n).padStart(2,'0'),12,6.9,.6,.25,10,d?'FFFFFF':muted);return s;} function list(s,items,x,y,w,h,color=dark,size=22){s.addText(items.map((text,i)=>({text,options:{bullet:{indent:size},hanging:4,breakLine:i<items.length-1}})),{x,y,w,h,fontFace:'Arial',fontSize:size,color,margin:0,paraSpaceAfter:23,valign:'top'});} function box(s,x,y,w,h,color){s.addShape(p.ShapeType.roundRect,{x,y,w,h,fill:{color},line:{color,transparency:100},radius:.15});} let s=base(1,true);t(s,'Falcon',.75,1.45,8,1.1,66,'FFFFFF',true);t(s,'Turn team plans into\nforward motion.',.75,2.85,8,1.5,34,'FFFFFF');t(s,'One workspace for priorities, owners, and progress.',.75,4.85,8,.7,20,'B9C8BE');s.addShape(p.ShapeType.chevron,{x:10,y:1.8,w:1.2,h:3.3,fill:{color:green},line:{color:green}});s.addShape(p.ShapeType.chevron,{x:11.4,y:2.5,w:.6,h:1.9,fill:{color:'71964A'},line:{color:'71964A'}});t(s,'Fictional product • Illustrative launch pitch',.75,6.5,8,.3,11,'B9C8BE');s.addNotes('Introduce Falcon as a fictional work-management product for growing teams. Its promise is to turn plans into coordinated action through shared priorities, owners, and progress. All business details are illustrative; quarterly revenue was supplied for this pitch.'); s=base(2);t(s,'Problem',.65,1,10,.65,40,dark,true);t(s,'Work moves faster than the tools tracking it.',.65,1.85,12,.6,25,muted);list(s,['Priorities scatter across chats, docs, and spreadsheets.','Unclear ownership delays decisions and handoffs.','Manual updates hide risks until deadlines slip.'],.8,3,7.1,3);box(s,9,2.85,3.55,3.15,'F0F5F1');t(s,'The cost',9.35,3.2,2.8,.4,20,muted,true);t(s,'More chasing.\nLess shipping.',9.35,3.95,2.8,1.3,30,dark,true);s.addNotes('Growing teams often keep priorities in multiple places, leaving owners and dependencies unclear. Explain how this creates time spent chasing updates. These are product assumptions for a fictional launch, not research findings.'); s=base(3);t(s,'Solution',.65,1,10,.65,40,dark,true);t(s,'One shared view. A clear next step.',.65,1.85,12,.6,25,muted);[['01','Align priorities',['Capture goals in one place.','Link tasks to outcomes.']],['02','Assign owners',['Give every task an owner.','Make deadlines visible.']],['03','Advance work',['Track progress together.','Flag blockers early.']]].forEach((a,i)=>{let x=.65+i*4.1;box(s,x,2.9,3.8,3.3,'F0F5F1');t(s,a[0],x+.3,3.2,1,.5,28,'638831',true);t(s,a[1],x+.3,4,3.2,.6,23,dark,true);list(s,a[2],x+.3,4.9,3.1,1.1,dark,16);});s.addNotes('Walk through the proposed workflow: align on priorities, assign owners, and advance work with visible progress and blockers. These are conceptual features of the fictional Falcon product. Emphasize the va [... excerpt: first 3200 of 5381 characters]

Ver Pro