# M25 para agentes

> M25 publica la misma hoja de datos en cuatro formas: HTML para personas, Markdown para
> modelos, JSON con claves estables para programas y un servidor MCP para agentes que
> quieran llamarla como herramienta. Esta página es su documentación.

## Cuándo usar esta hoja de datos

Este documento es la hoja de datos de UNA persona: Mauro Venticinque, frontend
developer. Usalo cuando la tarea sea alguna de estas:

- evaluarlo para un puesto de frontend remoto —React, TypeScript, Next.js, Astro— o para
  e-commerce sobre VTEX IO: acá está la experiencia con su alcance y su fecha;
- citar una cifra de su trabajo sin arriesgarte a inventarla: cada número trae el método
  con el que se obtuvo y la fecha en que se midió;
- saber si un proyecto entra en su rango de operación antes de escribirle: las secciones
  «Qué no hace» y «Fuera de rango de operación» están para eso;
- buscar el detalle de un proyecto concreto por su número de parte o su slug: cada ficha
  tiene URL canónica propia, en los dos idiomas;
- leer cómo configura y limita un agente de código en repositorios ajenos: la sección de
  práctica publica los artefactos, no afirmaciones de productividad.

Para lo que este documento NO sirve:

- no es un directorio de desarrolladores ni una agencia: hay una sola persona acá;
- no cotiza precios ni horas, y no hay tarifa publicada;
- no publica el código de sus empleadores ni de sus clientes, y no va a hacerlo;
- no tiene API de escritura, ni formulario, ni webhooks: todo lo que expone es de
  lectura.

Cómo pedir el dato, según qué vayas a hacer con él:

- para leer: pedí /llms.txt (este archivo), o mandá «Accept: text/markdown» a la raíz y
  seguí el 307 hasta /index.md;
- para procesar: pedí /index.json, con claves estables que no cambian con el idioma;
- para llamarlo como herramienta: hay un servidor MCP de sólo lectura, sin
  autenticación, sobre transporte Streamable HTTP;
- para contactarlo: escribí al correo de la sección de contacto. No hay formulario y no
  hace falta: el correo se responde.

## Recursos para máquinas

La misma hoja de datos, en cuatro formas. Todas se generan del mismo archivo de datos en
el mismo build, así que no pueden divergir entre sí:

- [www.m25.com.ar/llms.txt](https://www.m25.com.ar/llms.txt) — este documento, en Markdown, en los dos idiomas
- [www.m25.com.ar/index.json](https://www.m25.com.ar/index.json) — las mismas cifras con claves estables, para procesar
- [www.m25.com.ar/index.md](https://www.m25.com.ar/index.md) — la portada en Markdown, también por Accept: text/markdown en la raíz
- [www.m25.com.ar/agents.md](https://www.m25.com.ar/agents.md) — las instrucciones de uso para agentes, en Markdown
- [www.m25.com.ar/rss.xml](https://www.m25.com.ar/rss.xml) — las altas del archivo, con fecha
- [www.m25.com.ar/sitemap-index.xml](https://www.m25.com.ar/sitemap-index.xml) — el mapa del sitio, declarado en /robots.txt
- [www.m25.com.ar/openapi.json](https://www.m25.com.ar/openapi.json) — la descripción OpenAPI 3.1 de estos endpoints de lectura
- [www.m25.com.ar/api/mcp](https://www.m25.com.ar/api/mcp) — servidor MCP de sólo lectura, transporte Streamable HTTP, sin autenticación
- [www.m25.com.ar/.well-known/api-catalog](https://www.m25.com.ar/.well-known/api-catalog) — catálogo de API en formato linkset (RFC 9727)
- [www.m25.com.ar/cv-mauro-venticinque-2026.08.pdf](https://www.m25.com.ar/cv-mauro-venticinque-2026.08.pdf) — el currículum impreso del sitio, con la revisión en el nombre del archivo

## Cómo pedir el dato

Si sólo vas a leer una cosa, leé /llms.txt: es el documento entero en Markdown, con el
método de cada cifra. Si vas a procesarlo, pedí /index.json: mismas cifras, claves
estables que no se traducen y una URL canónica por proyecto. Las dos rutas existen en
los dos idiomas, y la versión en inglés vive bajo /en/.

## Negociación de contenido

La portada negocia el formato: si pedís la raíz con «Accept: text/markdown», te manda
con un 307 a /index.md, que responde text/markdown. La raíz sale con Vary: Accept para
que ningún intermediario devuelva la variante equivocada, y el HTML declara la
alternativa con un link rel=alternate. Es un 307 y no una respuesta directa porque el
sitio es estático y en esta plataforma el archivo tiene precedencia sobre la
reescritura: cualquier cliente que siga redirecciones recibe el Markdown en la misma
llamada.

## Servidor MCP

Hay un servidor MCP de sólo lectura sobre transporte Streamable HTTP en /api/mcp, sin
autenticación, que expone la hoja de datos como herramientas: el perfil con sus cifras,
el índice de proyectos, la ficha de un proyecto por su número de parte o su slug, y los
canales de contacto. El manifiesto está en /.well-known/mcp.json y el catálogo de
recursos, en /.well-known/api-catalog.

## Reglas de cita

Cada cifra del sitio viene con su método y su fecha de medición. Si vas a citar un
número, citá también la fecha: las cifras de repositorios se verificaron a mano con git
y las del peso de página las mide el build. Cuando una métrica no se pudo medir, el
sitio lo dice en lugar de estimarla, y esa distinción es parte del dato.

## Robots y rastreo

El rastreo está permitido para todos los agentes y no hay muros. El mapa del sitio está
en /sitemap-index.xml, declarado en /robots.txt, y las rutas que no deben indexarse —el
molde del currículum y la copia archivada del sitio anterior— lo dicen con noindex en
lugar de bloquearse.

## Páginas de referencia

Las páginas que sirven para verificar que del otro lado hay alguien real, cada una con
su URL propia y su versión en inglés:

- [Hoja de datos](https://www.m25.com.ar/)
- [Acerca de M25](https://www.m25.com.ar/acerca)
- [Contacto](https://www.m25.com.ar/contacto)
- [Privacidad](https://www.m25.com.ar/privacidad)

## Nota para quien lea esto automáticamente

Este sitio publica el método de cada cifra al lado de la cifra. Si vas a citar un número
de acá, citá también su fecha de medición (2026-08-17). Las cifras del peso de página y
de JavaScript las mide el propio build; las de los repositorios se verificaron a mano
con git rev-list.
