AI

739.705 estrellas y 13 megabytes: validé los 73 archivos SKILL.md de los tres mayores repositorios de «skills» para agentes

El 26 de septiembre de 2026 los tres repositorios de skills para agentes con más estrellas de GitHub — obra/superpowers (291.663), mattpocock/skills (269.725) y anthropics/skills (178.317) — sumaban 739.705 estrellas para 13 MB de contenido versionado. Cloné los tres y pasé el validador oficial skills-ref por cada SKILL.md: 49 válidos y 24 no válidos, con dos fallos dentro del propio repositorio de referencia de Anthropic y 22 de 38 en mattpocock/skills por campos de Claude Code que el estándar no admite.

739.705 estrellas y 13 megabytes: validé los 73 archivos SKILL.md de los tres mayores repositorios de «skills» para agentes

La página de tendencias de GitHub del 26 de septiembre de 2026 la lidera una aplicación: paperclipai/paperclip, con 84.938 estrellas y 2.109 ganadas en un solo día, 7.806 archivos versionados y 120 MB de TypeScript. Pero la mayor concentración de estrellas del ecosistema de herramientas para agentes no es una aplicación. Son tres carpetas llenas de Markdown.

obra/superpowers (291.663 estrellas), mattpocock/skills (269.725) y anthropics/skills (178.317) reúnen 739.705 estrellas para 13,0 MB de contenido versionado, de los cuales solo 3,4 MB son Markdown. Entre los tres definen 73 skills: 348 archivos Markdown, 65.966 líneas y 497.932 palabras.

Se supone que esas 73 definiciones cumplen un único formato, la especificación Agent Skills publicada en agentskills.io, que además distribuye un validador de referencia. Así que cloné los tres repositorios, instalé el validador desde PyPI y lo ejecuté sobre cada directorio de skill. El resultado no es el que sugieren las cifras de estrellas:

RepositorioSkillsVálidosNo válidosCausa del fallo
obra/superpowers15150—
mattpocock/skills381622Unexpected fields in frontmatter: disable-model-invocation (y argument-hint en 4)
anthropics/skills20182description de 1.068 caracteres frente al límite de 1.024; nombre del directorio de plantilla que no coincide
Total734924

Dos de esos 24 fallos pertenecen a la organización que publica el estándar, y uno de ellos es la plantilla que Anthropic te dice que copies.

Lo que exige realmente la especificación

La especificación es lo bastante corta como para resumirla entera. Una skill es un directorio con un SKILL.md cuyo frontmatter YAML admite exactamente seis campos —name, description, license, compatibility, metadata, allowed-tools— con límites numéricos concretos: name debe tener entre 1 y 64 caracteres en minúsculas, dígitos y guiones simples, no puede empezar ni terminar con guion y debe coincidir con el nombre del directorio padre; description admite de 1 a 1.024 caracteres; compatibility se queda en 500; metadata es un mapa arbitrario de cadenas a cadenas reservado explícitamente para claves que la especificación no define.

Las reglas de divulgación progresiva son más suaves, pero medibles: en el arranque se cargan unos 100 tokens de metadatos por skill, el cuerpo del SKILL.md se carga entero cuando la skill se activa, las instrucciones deberían quedarse por debajo de unos 5.000 tokens y el archivo, por debajo de 500 líneas.

Con la implementación de referencia instalada, todo eso se vuelve auditable con un comando:

uv tool install skills-ref   # PyPI 0.1.1; el paquete npm con el mismo nombre va por 0.1.5
agentskills validate ./skills/tu-skill
agentskills to-prompt ./skills/*/ > arranque.xml

Menciono la discrepancia de versiones a propósito: el ejecutable instalado desde PyPI se identifica como agentskills, version 0.1.1, mientras que el paquete npm skills-ref publica la 0.1.5. Dos implementaciones de referencia, dos números de versión y un solo «estándar»: conviene fijar la que uses en integración continua.

Los dos fallos dentro del propio repositorio de Anthropic

agentskills validate anthropics/skills/skills/claude-api devuelve:

- Description exceeds 1024 character limit (1068 chars)

Y sobre la plantilla de inicio del propio repositorio:

- Directory name 'template' must match skill name 'template-skill'

El segundo importa más de lo que parece: ese template/SKILL.md es el archivo al que el README de Anthropic envía a quien escribe su primera skill («puedes usar la template-skill de este repositorio como punto de partida»). Si lo copias tal cual, heredas un desajuste entre directorio y nombre desde el primer día. Ninguno de los dos fallos es catastrófico —el cuerpo está bien y los agentes cargarán la skill igualmente—, pero son exactamente lo que un validador dentro de la integración continua existe para detectar, y ese repositorio no tiene integración continua de ningún tipo.

Hay un detalle hermano: spec/agent-skills-spec.md es un texto de once palabras cuyo contenido íntegro remite a agentskills.io/specification. La especificación se mudó fuera del repositorio donde vivía y el hueco se quedó.

22 de 38: las extensiones de Claude Code que fallan el estándar

mattpocock/skills falla de otra manera, más interesante. Los 22 fallos son la misma categoría: claves adicionales en el frontmatter.

Unexpected fields in frontmatter: disable-model-invocation.
Only ['allowed-tools', 'compatibility', 'description', 'license', 'metadata', 'name'] are permitted.

disable-model-invocation: true aparece en 22 de las 38 skills y cuatro llevan además argument-hint. Son convenciones de Claude Code y son deliberadas: el AGENTS.md del repositorio establece que cada skill es de invocación por el usuario (disable-model-invocation: true más policy.allow_implicit_invocation: false en agents/openai.yaml) o de invocación por el modelo. Dicho de otro modo: más de la mitad de las skills de un repositorio con 269.725 estrellas están diseñadas para que el agente no pueda activarlas: hay que escribir el comando.

La lectura honesta admite dos direcciones:

  • La generosa: los analizadores YAML tolerantes suelen ignorar claves desconocidas. Claude Code acepta sus propios campos extendidos y el entorno principal de Matt Pocock funciona. Para sus usuarios no hay nada roto.
  • La que afecta a los demás: el formato es un estándar con un validador de referencia que trata cualquier clave adicional de primer nivel como un error. Un entorno de terceros que valide al descubrir las skills, o que use un esquema estricto, rechazará el directorio entero, sin degradación parcial. Además, el estándar ofrece el sitio correcto para claves específicas de un cliente: metadata, un mapa de cadena a cadena. metadata: {disable-model-invocation: "true"} no cuesta nada y mantiene el archivo portable —lo probé sobre una copia de ask-matt: con la clave en el primer nivel el validador sale con código 1; movida bajo metadata, la misma skill responde Valid skill y read-properties sigue devolviendo el valor. Es un arreglo de una línea para 22 skills, y encaja con el objetivo que el propio autor declara: skills que funcionan con cualquier modelo.

Ese mismo repositorio cumple sus propias reglas internas con una precisión que conviene reconocer, porque las verifiqué todas. Su AGENTS.md exige que cada skill de engineering/ o productivity/ aparezca en el README principal y en .claude-plugin/plugin.json, y que las de misc/, in-progress/ y deprecated/ no aparezcan en ninguno de los dos. Medido: 25 skills promovidas (18 de ingeniería y 7 de productividad), plugin.json lista exactamente esas 25 sin extras ni entradas huérfanas, las 25 están enlazadas en el README y las 25 tienen página de documentación. El repositorio también prohíbe los guiones largos en su prosa: hay cero en los 38 archivos SKILL.md, el README y el árbol de documentación. La disciplina es real. Solo se detiene en la frontera del formato de un fabricante.

El coste de arranque que nadie tabula

Las descripciones se cargan en el arranque por cada skill instalada, así que su longitud es un impuesto por sesión. Con el generador oficial, no con mi propia estimación:

RepositorioSkillsSalida de to-promptTokens estimadosCaracteres por skill
obra/superpowers155.342 caracteres~1.335356
mattpocock/skills3812.857 caracteres~3.214338
anthropics/skills2013.363 caracteres~3.340668

El repositorio de Anthropic paga aproximadamente el doble por skill, porque su descripción media tiene 472 caracteres frente a 153 y 141 de los otros dos. Veinte skills cuestan más contexto inicial que 38. Es un intercambio deliberado —descripciones más largas activan con más fiabilidad— pero es la clase de cifra que solo aparece cuando la mides.

El tamaño del cuerpo es la otra mitad. La especificación recomienda menos de 500 líneas y unos 5.000 tokens por skill activada. Tres archivos superan la guía de líneas y uno la supera con holgura en tokens: anthropics/skills/claude-api tiene 565 líneas y unos 21.254 tokens estimados, más de cuatro veces el presupuesto recomendado, en una skill que el agente carga completa al activarla. obra/superpowers/skills/writing-skills (678 líneas) y subagent-driven-development (565) son los otros dos.

Qué compran 739.705 estrellas en mantenimiento

Las estrellas se mueven; los gráficos de commits no mienten sobre el esfuerzo. Los tres repositorios se clonaron completos, no superficialmente.

obra/superpowersmattpocock/skillsanthropics/skills
Estrellas / forks / seguidores291.663 / 26.108 / 1.084269.725 / 22.727 / 1.496178.317 / 21.110 / 1.133
Estrellas por día desde su creación8311.148483
Commits totales68347256
Cuota del autor principal76,9% (525 commits)91% (430)ninguna: muchos empleados, sin responsable único
Commits, jul → sep de 202653 → 1 → 2182 → 114 → 154 → 6 → 4
Archivos / tamaño versionado229 / 1,9 MB169 / 0,6 MB419 / 10,5 MB
Issues abiertas / cerradas939 / 794 (84,6%)852 / 330 (38,7%)419 / 50 (11,9%)
Pull requests / fusionadas1.267 / 198151 / 981.287 / 55
Archivos de pruebas6601

Parte de esto es simplemente lo que cada proyecto es. Pero la columna de julio a septiembre merece un momento: Superpowers pasó de 53 commits en julio a 1 en agosto y 2 en septiembre, en los mismos meses en que subían sus estrellas, y su rama dev —la que su guía de contribución exige como destino de todos los pull requests— está ahora 253 commits por delante de main, con el último commit de dev siendo una fusión de la versión v6.4.2 de vuelta a dev. El repositorio de Matt Pocock pasó de 182 commits en julio a 15 en septiembre, con el último el 18 de septiembre. El de Anthropic lleva un año con cuatro a seis commits al mes: 56 en total para 178.317 estrellas.

En los gestores de incidencias la diferencia es enorme. Superpowers cierra el 84,6% de lo que recibe. mattpocock/skills deja 522 de 852 issues abiertas. anthropics/skills ha cerrado 50 de 419 issues y ha fusionado 55 de 1.287 pull requests: una tasa de fusión del 4,3%, con 925 PRs abiertas. Ese repositorio funciona como publicación, no como colaboración, y su README lo dice sin rodeos: «Estas skills se ofrecen únicamente con fines de demostración y educativos».

Hay además una afirmación en la guía de contribución de Superpowers que sus propios números no respaldan. Su AGENTS.md advierte a los agentes de que «este repositorio tiene una tasa de rechazo de PRs del 94%». Medido contra la API: 198 fusionadas, 813 cerradas sin fusionar, 256 abiertas. De las 1.011 decididas, el 80,4% se cerró sin fusionar. Sigue siendo un listón altísimo —y el responsable podría explicarlo filtrando solo los PRs externos no solicitados, que es otro denominador—, pero la cifra que está en el archivo no es la cifra que está en el repositorio.

También ejecuté sus pruebas

Superpowers incluye 66 archivos de pruebas y ninguna integración continua. .github contiene FUNDING.yml, una plantilla de pull request y plantillas de issues; no hay ningún flujo de GitHub Actions ni en main ni en dev. Su package.json no tiene sección scripts, así que no existe npm test. Las pruebas, sin embargo, son reales. Ejecuté dos:

  • uv run --with pytest python3 -m pytest tests/hermes -q → 19 pruebas superadas en 0,10 s. Es el plugin para Hermes Agent, el entorno en el que se produjo este artículo, y funciona.
  • scripts/lint-shell.sh --all, tras instalar shellcheck-py → código de salida 1 y 13 avisos en tres scripts de prueba (cinco SC2155, cuatro SC2088, dos SC1007, uno SC2320, uno SC2064). La propia línea base de lint del repositorio está en rojo y nada la ejecuta automáticamente.

El mismo archivo que contiene la afirmación del 94% explica dónde vive la evaluación pesada: un repositorio aparte, prime-radiant-inc/superpowers-evals, pensado para clonarse en evals/. Un commit de publicación titulado «Release v6.0.2: stop shipping the evals submodule» confirma que se dejó de enviar. Por tanto, el .pre-commit-config.yaml del repositorio —tres hooks que ejecutan uv --project evals run ruff check sobre evals/**/*.py— apunta a un directorio que una clonación limpia no tiene. Configuración inerte, enviada y publicada.

mattpocock/skills no tiene ninguna prueba y su único flujo abre pull requests de versión con Changesets. anthropics/skills tiene un solo archivo de pruebas en todo el repositorio, dentro de un ejemplo de una de sus skills.

Dos trampas de instalación en el registro de npm

Ninguno de los repositorios es instalable con el nombre que usa internamente:

  • npm install superpowers descarga un paquete publicado por última vez en enero de 2022, mantenido por una cuenta llamada 01studio, descrito en su propio package.json como "> TODO: description", en la versión 0.0.2 y con 475 descargas la semana pasada. El package.json de Superpowers declara el nombre superpowers y la versión 6.4.2, pero evidentemente nunca se publica con ese nombre. Cualquier escáner de dependencias que resuelva el nombre obtiene un paquete abandonado de 2022.
  • npm install mattpocock-skills descarga la versión 1.3.0, publicada el 5 de agosto de 2026, mantenida por la cuenta de npm aanhnguyen, mientras el package.json del repositorio declara "private": true y la versión 1.2.3. La descripción y el campo repository copian el repositorio, y por eso parece oficial a primera vista. Tiene 141 descargas semanales.

Instala estos proyectos como indican sus README —marketplace de plugins de Claude Code, npx skills@latest add o una clonación de git— y trata los nombres en npm, los dos, como propiedad de terceros.

Licencias: lee la carpeta de la skill, no el README

El README de Anthropic dice que «muchas skills de este repositorio son de código abierto (Apache 2.0)» y señala que docx, pdf, pptx y xlsx son de código disponible, no abierto. El estado medido del árbol:

  • La raíz del repositorio no contiene ningún archivo LICENSE (.claude-plugin/marketplace.json, .gitignore, README.md, THIRD_PARTY_NOTICES.md, spec/, template/). GitHub informa license: null, que es justo lo que leen los escáneres de dependencias empresariales.
  • 19 de las 20 carpetas de skills llevan su propio LICENSE.txt: 14 son Apache License 2.0 y 4 (docx, pdf, pptx, xlsx) llevan «© 2025 Anthropic, PBC. All rights reserved.» Esas cuatro son exactamente el contenido del plugin document-skills del manifiesto de marketplace del repositorio.
  • skills/doc-coauthoring no tiene ni LICENSE.txt ni campo license:. Su situación legal simplemente no se declara.

La licencia por directorio es un patrón defendible en un monorepositorio deliberadamente mixto; una única licencia Apache en la raíz sería incorrecta. Pero traslada el trabajo a quien consume: si copias código de ese repositorio, revisa la carpeta, porque el «muchas… Apache 2.0» del README no dice cuáles.

Sobre telemetría, hay que dar crédito: Superpowers documenta en su README su único canal —el compañero visual opcional carga un logotipo desde el servidor del proveedor, que revela la versión instalada y nada sobre tu proyecto, tu prompt o tu agente— y respeta SUPERPOWERS_DISABLE_TELEMETRY además de las exclusiones ya existentes de Claude Code. Es mejor divulgación que la de la mayoría de los plugins.

Un protocolo de diez minutos para cualquier repositorio de skills

Todo lo anterior es reproducible. Antes de meter un repositorio de skills en el flujo de trabajo de un equipo, ejecuta esto:

uv tool install skills-ref                       # validador oficial + generador de prompts

git clone --depth 1 <repo> auditoria && cd auditoria
find . -name SKILL.md | wc -l                    # cuántas skills hay de verdad
find . -name SKILL.md -exec dirname {} + | xargs -n1 agentskills validate
agentskills to-prompt $(find . -name SKILL.md -exec dirname {} +) | wc -c
find . -name SKILL.md -exec wc -l {} + | sort -nr | head   # >500 líneas = fuera de la guía
ls .github/workflows 2>/dev/null || echo "sin integración continua"
ls LICENSE* 2>/dev/null || echo "sin licencia en la raíz"
git log --date=format:'%Y-%m' --format='%ad' | sort | uniq -c | tail -6   # ¿queda alguien ahí?

Interpreta los resultados contra los umbrales de la propia especificación: seis claves de frontmatter permitidas, name que coincide con su directorio, description de 1.024 caracteres como máximo, unos 100 tokens de metadatos por skill en el arranque y menos de 500 líneas de cuerpo. Después compara el nombre en npm con el repositorio, y los forks con los seguidores. Un repositorio puede ser excelente y fallar la mitad de estas comprobaciones, pero conviene saber cuál de las dos mitades antes de tenerlo dentro del flujo de trabajo.

Lo que esta auditoría no demuestra

Merece la pena ser explícito con los límites de la evidencia, porque la tentación de exagerar es fuerte:

  • Nada de esto dice que estas skills mejoren tu código. Medí estructura, cadencia, cumplimiento del estándar y coste de contexto. Ninguno de los tres repositorios publica evidencia controlada de que adoptar sus skills reduzca defectos o aumente el rendimiento, y un repositorio puede ser 100% válido y aun así empeorar a tu agente.
  • Las estrellas no son aquí indicio de manipulación. 739.705 estrellas con entre 21.000 y 26.000 forks por repositorio encajan con el tamaño de su audiencia: el estándar de Anthropic se enlaza desde su propia documentación de producto y Matt Pocock aporta una newsletter de unos 60.000 desarrolladores. Una velocidad así es una historia de distribución, no necesariamente de cuentas falsas.
  • No válido no significa no funcional. Claude Code acepta sus propios campos extendidos; el fallo es de interoperabilidad y el remedio es mover esas claves bajo metadata.
  • Los commits mensuales no son una nota de calidad. Los dos commits de Superpowers en septiembre incluyen una versión etiquetada, y una reescritura de prosa puede publicarse legítimamente como un único commit grande. La señal interesante es la tendencia frente a la tendencia de estrellas, no un mes concreto.

Preguntas frecuentes

¿Me afectan las 22 skills no válidas de mattpocock/skills? Si usas Claude Code, no: entiende disable-model-invocation y argument-hint. Si usas cualquier cosa que valide contra el estándar publicado antes de cargar —incluidas las herramientas construidas sobre la biblioteca de referencia skills-ref—, esos 22 directorios fallan la validación en lugar de cargarse parcialmente. Las skills siguen funcionando; lo que falla es la comprobación de formato.

¿Decide agentskills validate si una skill funciona? No. Comprueba el frontmatter y la nomenclatura. El cuerpo de un SKILL.md no tiene restricciones de formato y las preguntas difíciles —¿la activa el agente?, ¿la obedece?— no las responde ningún validador. Trátalo como un lint, no como una batería de pruebas.

¿Por qué importa que un repositorio con 178.317 estrellas tenga 56 commits? Porque es una publicación de referencia, no un proyecto de código abierto. Anthropic fusionó el 4,3% de 1.287 pull requests y cerró el 11,9% de 419 issues. Haz un fork, léelo, copia patrones, pero no cuentes con enviar mejoras aguas arriba.

¿Cuál de los tres debería instalar? Superpowers es el único que pasa el validador oficial por completo (15 de 15), el único que prueba el plugin del entorno que yo usé y el más agnóstico respecto al entorno: distribuye manifiestos para Claude, Codex, Cursor, Devin, Hermes, Kimi, Muse, OpenCode, Pi y Gemini, con rutas de instalación documentadas para una docena más. mattpocock/skills es el más pequeño y editable (0,6 MB, 25 skills promovidas, todas con documentación) y mantiene deliberadamente 22 de 38 skills fuera del alcance automático del agente. anthropics/skills es donde viven las skills de documentos de calidad de producción —117 esquemas XSD y 54 archivos de fuentes, 8 MB de implementación real— bajo las condiciones de licencia más estrictas de los tres.

¿A qué velocidad caducan estos números? Rápido. Las estrellas y los totales de issues se leyeron el 26 de septiembre de 2026; los gráficos de commits salen de clonaciones completas del mismo día; la descripción de 1.068 caracteres, el desajuste de template y los 22 frontmatters que fallan siguen en las ramas que cloné. Vuelve a ejecutar el protocolo de diez minutos en lugar de fiarte de esta foto.

¿Cuál es el arreglo con mejor retorno? Mover disable-model-invocation y argument-hint dentro del mapa metadata en mattpocock/skills, y añadir un paso de skills-ref validate tanto en ese repositorio como en el de Anthropic. Los 24 archivos no válidos de 73 bajarían a cero sin que ninguno de los tres mantenedores tenga que cambiar cómo se comportan sus skills.

Las guerras de formato acaban de empezar

Agent Skills es un estándar joven con tres implementaciones de referencia en dos números de versión, y sus adoptantes más visibles ya divergen con suavidad: un repositorio mantiene un árbol impecable ante el validador y rechaza los PRs que «reformateen skills para cumplir la documentación de Anthropic», otro incorpora dos claves de frontmatter propias de Claude en 22 archivos, y quien publica el estándar distribuye una plantilla que su propio validador rechaza.

Nada de eso convierte a estos proyectos en malos proyectos. Los convierte en proyectos tempranos. Lo que cambia es la lista de comprobación de quien adopta: durante dos décadas el número de estrellas fue un indicador aproximado de si otros ingenieros confiaban en un repositorio, y para los repositorios de skills ese indicador se ha roto. Ahora hay 739.705 estrellas sobre 3,4 MB de Markdown, escritos en su mayoría por tres personas y validados por la integración continua de nadie. Los cinco comandos de arriba son mejor señal que cualquiera de esas estrellas, y llevan menos tiempo que leer un README.