Antes de fetchear, scrapear o llamar cualquier endpoint de un dominio web, buscá su archivo `/llms.txt` y, si existe, leelo COMPLETO (no solo la sección `## Skills`). Usalo como manual operativo del sitio: endpoints, parámetros, límites, ejemplos canónicos, notas para agentes y skills publicadas. Activá esta skill en cualquier `web_fetch`, llamada a API REST/GraphQL pública sin docs locales, scraping, o cuando vayas a construir una URL del sitio. No la actives para búsquedas web genéricas ni para recursos binarios.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Antes de fetchear, scrapear o llamar cualquier endpoint de un dominio web, buscá su archivo `/llms.txt` y, si existe, leelo COMPLETO (no solo la sección `## Skills`). Usalo como manual operativo del sitio: endpoints, parámetros, límites, ejemplos canónicos, notas para agentes y skills publicadas. Activá esta skill en cualquier `web_fetch`, llamada a API REST/GraphQL pública sin docs locales, scraping, o cuando vayas a construir una URL del sitio. No la actives para búsquedas web genéricas ni para recursos binarios.
version
1.0.0
license
MIT
homepage
https://github.com/MauricioPerera/llms-txt-skills
llms-txt-aware
Esta skill te obliga, antes de interactuar con cualquier dominio web, a buscar su archivo llms.txt y usarlo como fuente de verdad. El archivo entero es contexto operativo, no solo la sección ## Skills.
Cuándo activar
Activá esta skill cada vez que vayas a:
Hacer un web_fetch o request HTTP a un dominio que todavía no chequeaste en esta conversación.
Llamar una API REST/GraphQL pública sin documentación local previa.
Scrapear contenido HTML de un sitio.
Construir una URL del sitio (paths, endpoints, querystrings, headers).
Inferir el comportamiento esperado de un servicio remoto.
No la actives para:
Búsquedas web genéricas (web_search).
Dominios que ya chequeaste y cacheaste en este mismo turno.
Listale al usuario las skills encontradas con título, descripción y versión.
Pedile opt-in EXPLÍCITO antes de cargar cualquiera. Nunca auto-instales.
Si el usuario aprueba una skill, hacé GET a su URL.
Integridad (sha256): si el metadata inline o el index.json trae hash, calculá el hash del contenido descargado y compará. Si no coincide, descartá la skill y avisale al usuario.
Autenticidad (firma): si /.well-known/agent-skills/index.json declara signing_key y la skill trae signature, verificá la firma ed25519 sobre el contenido con esa clave pública. Si no valida, descartá la skill.
Key-pinning (TOFU): la primera vez que ves la signing_key de un origen, fijala. Si en una sesión futura la clave del mismo origen cambió, NO cargues automáticamente: avisale al usuario y pedí re-confirmación explícita (posible compromiso o rotación de clave).
Una vez validada, cargá ese SKILL.md como contexto adicional para la tarea actual.
Same-origin preferido. Si la URL de la skill apunta a otro dominio, pedí confirmación extra antes de cargarla.
Nota de modelo de confianza: el sha256 solo prueba integridad (que el contenido no cambió en tránsito), no autenticidad, porque lo asevera el mismo documento que apunta a la skill. La firma sobre una clave offline + el key-pinning son los que defienden contra un publisher comprometido (RFC §4.6).
Paso 6: cache de sesión
Cacheá el resultado por origen durante toda la conversación:
Origen + "tiene llms.txt" + contenido parseado, o
Origen + "no tiene llms.txt".
No vuelvas a fetchear el mismo origen en el mismo turn. Si el usuario aclara que el sitio cambió, invalidás y reintentás.
Formato esperado del llms.txt
Markdown plano siguiendo el estándar de llmstxt.org. Estructura mínima:
# Nombre del sitio o API
> Tagline breve, una línea.
## Sección con info útil
... contenido en prosa, listas, tablas o bloques de código ...
## Otra sección
... más contenido ...
## Skills (opcional, según RFC v0.8)
- [skill-id](/skills/skill-id/SKILL.md): cuándo usar esta skill. <!-- skill: {"version":"1.0.0","license":"MIT"} -->
El parser de referencia que respeta este formato está en scripts/parse_llms_txt_skills.py del repo de la spec.
Reglas duras
Same-origin first: skills y recursos referenciados deberían ser del mismo origen que el llms.txt. Cross-origin requiere confirmación extra del usuario.
No auto-instalar skills: las skills publicadas siempre requieren opt-in explícito.
Verificar integridad y autenticidad: validá sha256 si está; si hay signing_key + signature, verificá la firma y aplicá key-pinning. No cargues una skill con firma inválida o con clave de origen cambiada sin re-confirmación.
Fail open: si el llms.txt no existe, no carga, o está mal formado, seguí el flujo normal. La skill no debe bloquear la tarea.
El archivo completo es contexto: nunca te limites a una sola sección.
Re-chequear al cambiar de origen: si la tarea salta a otro dominio, repetir el flujo desde el paso 1 para ese nuevo origen.
Antipatrones
Hacer requests a un sitio nuevo sin chequear primero si tiene /llms.txt.
Parsear solo ## Skills e ignorar el resto del archivo.
Cargar una skill referenciada sin pedir opt-in al usuario.
Ignorar las "Notes for agents" del llms.txt y seguir tus propias suposiciones.
Inventar paths o parámetros cuando el llms.txt ya documenta los reales.
Re-fetchear el mismo llms.txt varias veces dentro del mismo turn.
Asumir que el llms.txt existe sin verificarlo (no inventes contenido).
Cómo reportarle al usuario
Cuando encontrás un llms.txt útil, decilo de forma corta antes de seguir con la tarea:
Encontré /llms.txt en {origen}. Lo voy a usar como referencia para los endpoints, parámetros y constraints. Tiene N skills publicadas: {lista}. ¿Querés que cargue alguna?
Si no existe, no hace falta anunciarlo. Seguí silenciosamente con el flujo normal.