{"schemaVersion":1,"locale":"es","statusMeaning":"Implemented in this publication. Not an independent certification, live audit, ranking or citation guarantee.","scope":"Public HTML publication and the documented read interfaces. Runtime availability depends on the deployment.","groups":[{"id":"discovery","title":"Descubrimiento","items":[{"id":"D01","status":"implemented","title":"Rastreo público","detail":"robots.txt permite el contenido público y anuncia el sitemap.","evidence":[{"href":"/robots.txt","label":"robots.txt"}]},{"id":"D02","status":"implemented","title":"Mapa XML del contenido","detail":"El sitemap se construye desde el catálogo publicado, incluidas las fichas individuales.","evidence":[{"href":"/sitemap.xml","label":"Sitemap"}]},{"id":"D03","status":"implemented","title":"Índice navegable sin JavaScript","detail":"Todas las páginas tienen enlaces HTML en un índice organizado por tipo.","evidence":[{"href":"/es/site-index","label":"HTML"}]},{"id":"D04","status":"implemented","title":"Catálogo JSON paginado","detail":"URLs canónicas, tipos, idiomas, fechas disponibles y enlaces a las representaciones.","evidence":[{"href":"/api/content-index?locale=es&limit=5","label":"HTTP / JSON"}]},{"id":"D05","status":"implemented","title":"Guía llms.txt","detail":"Índice para clientes que usan esta propuesta. Se genera desde el mismo catálogo.","evidence":[{"href":"/es/llms.txt","label":"llms.txt"}]},{"id":"D06","status":"implemented","title":"Descubrimiento desde cada página","detail":"El HTML y las cabeceras Link anuncian formatos alternativos y el catálogo de APIs.","evidence":[{"href":"/es/access#discovery","label":"HTML / Link"}]}]},{"id":"representations","title":"Contenido y representaciones","items":[{"id":"F01","status":"implemented","title":"Contenido entregado por el servidor","detail":"El texto principal está en la respuesta HTML inicial, antes de ejecutar JavaScript.","evidence":[{"href":"/es/education","label":"HTML"}]},{"id":"F02","status":"implemented","title":"Markdown por URL","detail":"Cada página admite .md. La raíz inglesa usa /index.md.","evidence":[{"href":"/es/education.md","label":"Markdown"}]},{"id":"F03","status":"implemented","title":"JSON por URL","detail":"Contenido, títulos, secciones, enlaces, idioma y datos estructurados en un documento.","evidence":[{"href":"/es/education.json","label":"HTTP / JSON"}]},{"id":"F04","status":"implemented","title":"Negociación HTTP de contenido","detail":"Accept selecciona Markdown o JSON explícitos; Vary: Accept separa las representaciones.","evidence":[{"href":"/es/access#formats","label":"Accept / Vary"}]},{"id":"F05","status":"implemented","title":"Una fuente para los tres formatos","detail":"Markdown y JSON se derivan del elemento main del HTML, sin una biografía paralela para bots.","evidence":[{"href":"/es/bio.json","label":"HTTP / JSON"}]},{"id":"F06","status":"implemented","title":"Estructura conservada","detail":"Listas, tablas, código, enlaces y referencias a imágenes sobreviven a la serialización.","evidence":[{"href":"/es/blog/rag-pipeline-architecture-chunking-reranking-evaluation.md","label":"Markdown"}]},{"id":"F07","status":"implemented","title":"Decoración fuera del contenido","detail":"Navegación, controles y sellos decorativos no se incluyen en Markdown ni JSON.","evidence":[{"href":"/es/projects.json","label":"HTTP / JSON"}]}]},{"id":"citations","title":"Identidad, atribución y citas","items":[{"id":"C01","status":"implemented","title":"URL canónica por documento","detail":"HTML, Markdown, JSON y resultados de búsqueda remiten a la misma publicación.","evidence":[{"href":"/es/projects/citable-publication.json","label":"HTTP / JSON"}]},{"id":"C02","status":"implemented","title":"Secciones con anclas","detail":"Los encabezados tienen identificadores para enlazar un pasaje concreto.","evidence":[{"href":"/es/access.json","label":"HTTP / JSON"}]},{"id":"C03","status":"implemented","title":"Identidad consistente","detail":"Person utiliza un identificador estable y enlaza los perfiles públicos del autor.","evidence":[{"href":"/index.json","label":"JSON-LD"}]},{"id":"C04","status":"implemented","title":"Datos estructurados por contenido","detail":"Perfil, artículos, proyectos y credenciales publican sus datos estructurados junto al texto visible.","evidence":[{"href":"/es/projects/citable-publication.json","label":"JSON-LD"}]},{"id":"C05","status":"implemented","title":"Autor y fechas declaradas","detail":"Los artículos identifican al autor y conservan fechas de publicación y modificación disponibles.","evidence":[{"href":"/es/feed.json","label":"JSON Feed"}]},{"id":"C06","status":"implemented","title":"Evidencia y límites de proyectos","detail":"Los proyectos enlazan repositorios, revisiones y resultados publicados con su alcance.","evidence":[{"href":"/es/projects/mcp-contract-harness","label":"Fuentes / Sources"}]}]},{"id":"retrieval","title":"Recuperación y contexto","items":[{"id":"R01","status":"implemented","title":"Búsqueda sobre el texto publicado","detail":"BM25 busca en pasajes extraídos del HTML del build. El puntaje mide coincidencia textual.","evidence":[{"href":"/api/search?q=recall&locale=es&limit=3","label":"HTTP / JSON"}]},{"id":"R02","status":"implemented","title":"Filtros y paginación explícitos","detail":"Idioma, tipo, offset, limit y next permiten recorridos acotados y reproducibles.","evidence":[{"href":"/api/search?q=agent&locale=es&kind=blog&limit=2","label":"HTTP / JSON"}]},{"id":"R03","status":"implemented","title":"Resultados con cita y versión","detail":"Cada resultado entrega un extracto, citationUrl y contentHash del documento indexado.","evidence":[{"href":"/api/search?q=recall&locale=es&limit=1","label":"HTTP / JSON"}]},{"id":"R04","status":"implemented","title":"Lectura por sección","detail":"section selecciona un encabezado y sus subsecciones, con hash propio y hash de la fuente.","evidence":[{"href":"/api/content?path=/es/access&format=json&section=search","label":"HTTP / JSON"}]},{"id":"R05","status":"implemented","title":"Ventanas de contexto en MCP","detail":"La lectura admite límites y continuación por caracteres Unicode. El hash identifica la fuente completa.","evidence":[{"href":"/es/access#mcp","label":"MCP"}]}]},{"id":"interfaces","title":"Contratos e interfaces","items":[{"id":"I01","status":"implemented","title":"Catálogo de APIs RFC 9727","detail":"Un Linkset anuncia los endpoints y enlaza su contrato y documentación.","evidence":[{"href":"/.well-known/api-catalog","label":"Linkset"}]},{"id":"I02","status":"implemented","title":"Contrato OpenAPI 3.1","detail":"Operaciones, parámetros, límites, respuestas y errores están documentados para clientes HTTP.","evidence":[{"href":"/.well-known/openapi.json","label":"OpenAPI"}]},{"id":"I03","status":"implemented","title":"JSON Schema de documentos y pasajes","detail":"Los dos tipos de respuesta tienen esquemas diferenciados y cabecera describedby.","evidence":[{"href":"/.well-known/schemas/publication.json","label":"JSON Schema"}]},{"id":"I04","status":"implemented","title":"MCP de solo lectura","detail":"Herramientas para listar, buscar y leer con el SDK oficial y transporte HTTP sin sesión persistente.","evidence":[{"href":"/es/access#mcp","label":"MCP / HTTP"}]},{"id":"I05","status":"implemented","title":"Errores estructurados RFC 9457","detail":"Las APIs de documentos, búsqueda, catálogo, inventario y feeds devuelven problem+json en errores controlados.","evidence":[{"href":"/.well-known/openapi.json","label":"Problem Details"}]}]},{"id":"freshness","title":"Actualización e integridad","items":[{"id":"V01","status":"implemented","title":"SHA-256 del contenido","detail":"Los documentos explican qué campos entran en el hash. Identifica una versión, no certifica su veracidad.","evidence":[{"href":"/es/education.json","label":"HTTP / JSON"}]},{"id":"V02","status":"implemented","title":"Inventario del build","detail":"URLs y hashes paginados, versión del conjunto y fecha de generación para comparar snapshots.","evidence":[{"href":"/api/publication?locale=es&limit=3","label":"HTTP / JSON"}]},{"id":"V03","status":"implemented","title":"Lecturas condicionales","detail":"ETag e If-None-Match permiten recibir 304 sin retransmitir documentos sin cambios.","evidence":[{"href":"/es/access#integrity","label":"ETag / 304"}]},{"id":"V04","status":"implemented","title":"Metadatos sin descargar el cuerpo","detail":"HEAD está disponible en documentos, búsqueda, catálogo, inventario y feeds.","evidence":[{"href":"/es/access#integrity","label":"HEAD"}]},{"id":"V05","status":"implemented","title":"Feeds de publicaciones","detail":"JSON Feed y Atom incluyen el texto del artículo; RSS publica resúmenes. Fechas y enlaces salen de los archivos fuente.","evidence":[{"href":"/es/feed.json","label":"JSON Feed / Atom / RSS"}]}]},{"id":"accessibility","title":"Lectura y acceso","items":[{"id":"A01","status":"implemented","title":"Idiomas explícitos","detail":"HTML declara el idioma del contenido; JSON y las respuestas de documentos lo conservan.","evidence":[{"href":"/es/access.json","label":"HTTP / JSON"}]},{"id":"A02","status":"implemented","title":"Versiones EN y ES enlazadas","detail":"hreflang enlaza las versiones disponibles y declara x-default.","evidence":[{"href":"/es/blog","label":"HTML head"}]},{"id":"A03","status":"implemented","title":"Semántica HTML nativa","detail":"main, encabezados, listas, tablas y enlaces expresan la estructura del contenido.","evidence":[{"href":"/es/education","label":"HTML"}]},{"id":"A04","status":"implemented","title":"Fotos con referencias, sellos decorativos","detail":"Las fotos se conservan. Los sellos de proyectos son elementos vacíos con aria-hidden.","evidence":[{"href":"/es/projects","label":"HTML / aria-hidden"}]},{"id":"A05","status":"implemented","title":"APIs públicas sin sesión","detail":"Las APIs de lectura HTTP admiten CORS y OPTIONS. No requieren cuenta, cookies ni clave.","evidence":[{"href":"/api/content-index?locale=es&limit=1","label":"CORS / OPTIONS"}]}]},{"id":"boundaries","title":"Coherencia y límites","items":[{"id":"B01","status":"implemented","title":"Perfil versionado","detail":"Páginas y APIs usan la misma copia versionada del perfil profesional.","evidence":[{"href":"/api/ai-profile","label":"HTTP / JSON"}]},{"id":"B02","status":"implemented","title":"Índice generado desde el HTML","detail":"El build rechaza anclas ausentes o duplicadas y páginas esperadas que no fueron indexadas.","evidence":[{"href":"/es/access#measurement","label":"Build"}]},{"id":"B03","status":"implemented","title":"Lectura acotada al sitio","detail":"El lector acepta rutas públicas conocidas y limita tamaño, tiempo y redirecciones de la fuente.","evidence":[{"href":"/es/access#boundaries","label":"Contrato / Contract"}]},{"id":"B04","status":"implemented","title":"Contenido tratado como fuente","detail":"Las herramientas MCP identifican los textos como fuentes no confiables para dar instrucciones al agente.","evidence":[{"href":"/es/access#mcp","label":"MCP instructions"}]},{"id":"B05","status":"implemented","title":"Checklist legible por máquinas","detail":"Esta lista y su JSON usan el mismo registro. Cada control tiene identificador y enlace de evidencia.","evidence":[{"href":"/api/capabilities?locale=es","label":"HTTP / JSON"}]}]}]}