Soluciones

El mapa

Las diez soluciones son los bloques —son lo que se construye y se vende—. Las seis etapas son el eje de arriba: nomenclatura del recorrido, no módulos. Cada bloque abarca las etapas donde opera: por eso Agent Registry es un solo bloque sobre dos etapas y no dos cosas.

Se puede vender hoy A medias No existe Desde acá se cobra
Dos de diez se pueden vender hoy, y las dos viven en la etapa 01 —la que no cobra—. Todo lo que factura está en rojo. El producto tiene su parte terminada exactamente donde no gana plata.
Por qué los bloques largos empiezan donde empiezan. Agent Identity, Reputation y Certification arrancan en la 03: antes no hay agente publicado del que verificar identidad, acumular historial o certificar nada. Policy Engine y Trust & Audit arrancan en la 04: antes de que exista una sala no hay interacción que gobernar ni que registrar. Si alguna vez aparecen colgando de Ver o Existir en una landing, es un error.
Este mapa es el índice del grupo: cada bloque lleva a su sección. Y la única etapa sin solución es Operar, que es coherente —no se promete lo que no existe—. Lo que se construye no son las etapas ni las soluciones: son las 42 piezas que aparecen dentro de cada una.

Para quién es esto, y por qué existe.

El problema que resuelve

Cada vez más gente pregunta, compara y decide dentro de un asistente de IA. El asistente solo puede responder con lo que alcanza, y a la mayoría de las organizaciones no llega: la venta se la lleva quien sí alcanzó —casi siempre el catálogo más grande, nunca la tienda más cercana—. Y no queda rastro: no es un carro abandonado ni una visita perdida, es no haber aparecido nunca en la propia analítica.

Qué es, en una línea

El análisis muestra qué ve un asistente de IA cuando busca lo que ofreces. Si hay brechas, armamos tu agente —el ARTwin— y lo publicamos donde los asistentes lo encuentren. Los asistentes de las personas preguntan, tu agente responde, y cuando corresponde, transacciona. Una conexión cubre todas las superficies, incluidas las que aún no existen.

Tres industrias, un mismo camino

El análisis y quedar legible van para las tres. Lo que cambia es qué significa el catálogo (etapa Existir) y los ejemplos individualizados de Responder y Operar.

IndustriaQué esQué es su catálogo
RetailTiene checkout: carro y posibilidad de comprar.Productos, con precio y stock.
ServiciosPresta un servicio, tangible o intangible.Servicios disponibles — sin stock, necesariamente.
SistemasDa software: licencias o servicios relacionados.Servicios y licencias — sin stock.

En la landing esas tres industrias se presentan como cuatro perfiles —tienda en línea, empresa de servicios, software y SaaS, institución o sitio informativo—: el cuarto es una Servicios que no vende, y publica qué informa, a quién atiende y dónde se hace cada trámite.

Soluciones

Agent Score

«Mide qué tan preparada está tu empresa.»

Opera en

Ver

01, gratis · ARAIS

Estado

Vendible

En producción.

Piezas

1

y no la bloquea

Qué hace

Recorre un sitio una sola vez y responde qué encuentra un asistente de IA cuando alguien pregunta por lo que esa organización hace. Devuelve un puntaje sobre 26 puntos en 4 capas, con la evidencia citable y el instante en que se observó. Es gratis y el informe es del comercio aunque nunca siga.

Requerimiento técnico

Ya construido. Lo que queda es endurecerlo:
  • Contrato de entrada: POST /api/analizar {correo} — el dominio sale de lo que va después del arroba. El resultado no se devuelve ahí: se manda un enlace al correo, y abrirlo es el acto de verificación.
  • Una sola pasada a la red (ADR-0013). Todo lo demás se deriva de la captura.
  • Invariante: el puntaje se calcula solo sobre los puntos aplicables y no se publica bajo MINIMO_PUBLICABLE = 8.
  • Deuda crítica, cerrada en rama (2-sep-2026): render.ts:288 ya sale de inf.puntaje.total desde el 26-ago (commit d8e7420); el stream y el correo de reenvío (analizar.ts:220 y :111) desde el PR #3, con la prueba de identidad pruebas/denominador.mts —identidad de los dos valores, no solo numerador ≤ denominador—, pendiente de merge.

Consumo en tokens

Esta solución no consume tokens. Gratis siempre. No se cobra ni ahora ni después: es el gancho de adquisición.

Tablero de avance

9 de 9 subfuncionalidades listas9 listo0 a medias

Pendientes, a decidir con el CustomerRoom

El tablero de arriba mide las nueve subfuncionalidades del ARAIS y está completo. Esto es otra cosa: seis cabos que el ARAIS deja abiertos y que no se resuelven dentro del ARAIS, porque los seis terminan en el panel del cliente. Francisco los aparcó el 4-sep-2026 para decidirlos al armar el CustomerRoom, y se anotan acá para que ninguno se pierda por el camino.

PendienteQué hay hoyPor qué espera al CustomerRoom
Volver a medir cuando el ARTwin se activa
RQ-ARAIS-2
No existe. El ARAIS mide una vez y termina ahí: activar un tenant no dispara nada, y un tenant puede activarse con un gemelo viejo sin que el puntaje se recalcule nunca. Es el paso que convierte el informe en venta: el comercio ve subir el número que le mostró el problema. La capacidad de re-medir es del ARAIS y se puede construir ya; el disparador es del ARTag y vive en el CustomerRoom. Ojo: el análisis reutiliza informes de hasta 6 horas (recienteDe) y no hay forma de forzar captura nueva, así que sin eso el recálculo no mediría el cambio.
El comparador devuelve una proyección, no un delta
motor/comparar.ts
compararAntesYDespues() recibe un informe y un gemelo, no dos mediciones. Dos de sus resultados —L04 y T12— se declaran «resuelto» sin verificar nada, y su salida cita L07 y L08, que dejaron de existir cuando la capa se renumeró a S23–S26. Sin una sola prueba. Es la pieza que el CustomerRoom necesitaría para mostrar el antes y el después. Reusarla tal cual publicaría una proyección como si fuera una medición, que es exactamente lo que I5 prohíbe. El recálculo necesita comparador propio.
El informe no se puede revocar de verdad
AR-21
El HTML ya va con no-store (P7, cerrado el 2-sep), pero eso no cubre el JSON: motor/almacen.ts lo guarda con access: 'public' y cacheControlMaxAge de un año, en una URL de ruta predecible. Los dos comentarios del código se contradicen entre sí. Revocar exige saber qué existe y de quién es: lo cierra el índice, que es la misma pieza que el CustomerRoom necesita para tener cuentas. No se arregla con una cabecera.
La supresión a los 90 días está prometida y no existe
AR-31 · AR-34
La política publicada el 2-sep promete, en dos idiomas, que el objeto normalizado se elimina a los 90 días si la organización no activa. No hay un solo del() en el repositorio, ni cron, ni TTL de 90 días: los blobs se escriben con TTL de un año. Es el único pendiente que ya está publicado como promesa, así que no espera por comodidad sino por dependencia: la purga necesita el índice. Mientras tanto convive una promesa que el sistema no puede cumplir.
El costo que se reporta es un piso, no el costo
A14
La fórmula es tokens × tarifa en los cinco asistentes. El cobro por búsqueda no está modelado en ninguno, y en grok se midió que la diferencia existe y pesa. El rótulo correcto vive en el CLI y en cuatro comentarios, pero no viaja con el dato: Informe.costo no tiene un campo que diga que la búsqueda no está incluida. No se estima: ninguno de los cinco publica ese precio de forma usable —el de xAI llega en una unidad sin escala documentada— e inferirlo sería inventar una cifra (A15). Cuando el CustomerRoom muestre consumo, ese número tiene que declarar qué incluye.
Una maqueta con la marca vieja y el nombre de un cliente, servida y sin noindex agentroom.io/app responde 200 con el título «Vado · Panel de Ergosur»: 53 KB de HTML estático, la marca anterior cinco veces y el nombre del cliente diez, indexable. No pide credencial y no trae datos embebidos, así que la exposición es el nombre, no los datos. Es la maqueta de lo que será el panel, así que se decide cuando se decida el CustomerRoom: se retira, se le pone noindex, o se reemplaza por el panel de verdad. Lo que no puede quedar es servida como está, con la marca que se deprecó y un cliente nombrado.
SubfuncionalidadPiezaEstadoQué falta
Captura del sitio—ListoUna pasada, respetando robots.txt bajo el mismo user-agent con que se identifica.
Clasificación de perfil—ListoRetail, servicios, sistemas o institución. Define qué puntos aplican.
Capa Legibilidad L01–L06—ListoCompleta.
Capa Transaccionabilidad T07–T14—ListoCompleta.
Capa Resolución R15–R22—ListoCompleta.
Capa Sondas S23–S26P23ListoLos cinco asistentes verificados contra su API real. El veredicto deja de ser binario: con cinco existe parcial. grok entró el 4-sep tras reescribir su adaptador contra la Agent Tools API —el anterior mandaba search_parameters, que xAI descontinuó, y apuntaba a grok-3, que ya no existe—. Se eligió la variante no-reasoning midiendo: la de razonamiento gastó 2.517 tokens de salida contra 1.114, con 1.812 de razonamiento puro. Llamada real: 7 dominios citados, USD 0,052040. El cobro por búsqueda sigue sin modelar en los cinco (A14): xAI no lo publica y su cost_in_usd_ticks no documenta la escala, así que inferirla sería inventar una cifra.
Cálculo con denominador—ListoMINIMO_PUBLICABLE = 8 respetado.
Entrega del informe—Listorender.ts:288 corregido el 26-ago (d8e7420, verificado 2-sep). El stream (analizar.ts:220, :111) y listar-blobs.mts:8 corregidos el 2-sep en el PR #3 con prueba de identidad, mergeado a main el 2-sep. Cifra reconciliada el 2-sep: 92 de los 279 informes en disco (23-ago) tienen evaluados > 16 y sus 279 HTML imprimían /16; describe el estado anterior al 26-ago.
PruebasP21Listo16 suites pasan y hay gate en CI en verde sobre un push real (PR #1, 2-sep-2026). Cobertura de criterio de los 26: 26 de 26 (PR #5). Mergeado a main el 2-sep, con protección de rama activa y el check requerido: un PR sin el gate en verde queda bloqueado.
Soluciones

AI Radar

«Descubre si tu empresa existe para las IA.»

Opera en

Ver

01, gratis · ARAIS

Estado

Vendible

En producción.

Piezas

1

y no la bloquea

Qué hace

Corre el mismo análisis sobre los actores principales de cada industria en América Latina y publica el resultado. Ubica a una organización frente a su industria y su país. Nadie paga por aparecer ni por salir: se publica lo que se midió, con la fecha.

Requerimiento técnico

  • El directorio vive en radar-latam.tsv: 372 organizaciones, 20 países.
  • src/data/public-scores.ts se genera. El motor lo reescribe entero en cada corrida —varias por semana—, así que toda edición manual se pierde: el copy se cambia en la plantilla del generador.
  • Dos reglas que ya costaron una corrección: se excluyen los sitios propios de la medición, y se usa un solo motor por medición para que dos puntajes sean comparables.
  • Decisión pendiente: al encender los cinco asistentes, los 203 ya medidos dejan de ser comparables. O se recorre el directorio completo, o se marca la fecha de corte —mezclarlos sin decirlo rompe la regla del denominador—.

Consumo en tokens

Esta solución no consume tokens. No tiene línea de cobro. Se publica lo que se midió; nadie paga por aparecer ni por salir.

Tablero de avance

5 de 6 subfuncionalidades listas5 listo1 a medias
SubfuncionalidadPiezaEstadoQué falta
Directorio de organizaciones—Listo372 en 20 países.
Corrida masiva del análisis—Listo203 medidos.
Publicación del puntaje—ListoCon denominador y fecha.
Mapa por país—ListoMedidos sobre total del directorio.
Derecho a réplica—ListoCanal publicado en /bot.
Comparabilidad entre corridasP23A mediasLos 203 se midieron con 1 asistente. Al pasar a 5 hay que decidir qué pasa con lo ya publicado.
Soluciones

AI Presence

«Que te encuentren y te entiendan.»

Opera en

Existir

02, gratis 3 meses · ARTwin

Estado

A medias

Parte construida.

Piezas

6

para completarla

Qué hace

Toma lo que la organización ya publica, lo normaliza con procedencia y lo sirve en los formatos que un agente lee —JSON-LD, llms.txt, catálogo, páginas sin JavaScript y servidor MCP—. Las brechas que se pueden cerrar por él se cierran; las que no, se entregan con la instrucción exacta.

Requerimiento técnico

  • construirGemelo(c: Captura): Gemelo es pura y sincrónica: no toca la red ni pide credenciales. Sale de la misma captura del Agent Score.
  • Invariante ADR-0007: ningún dato entra sin procedencia —verificado / declarado / inferido— con el instante en que se observó.
  • publicable() descarta lo inferido. Con solo 13 de 237 sitios sirviendo feed o API, esto recorta mucho: publicar a escala sería publicar dato inferido bajo el nombre de otro.
  • Las superficies se generan en cada solicitud, nunca como archivo estático: es lo que hace que el corte sea real (ADR-0008). El estado vive en el nombre del objeto, no en un registro con caché.
  • Activación: el ARTag es un archivo en /.well-known/agentroom.json y el ARDoor su sello visible. No un script —un agente no ejecuta JavaScript—.

Consumo en tokens

LíneaSe cobraTarifaNota
— primeros 3 meses—0El ARTwin es gratis por 3 meses a cambio de instalar el ARTag.
Catálogo en la salapor producto al mesTBDMantener productos, precios y stock vivos para todos los asistentes.
Que te encuentrenpor coincidencia calificadaTBDCuando un agente muestra la organización como respuesta a una necesidad.

Tablero de avance

6 de 15 subfuncionalidades listas6 listo1 a medias8 falta
SubfuncionalidadPiezaEstadoQué falta
Construcción del ARTwinP22ListoCorre en cada análisis y se guarda, con el fallo aislado.
Procedencia por dato—ListoADR-0007. Es lo que lo hace defendible.
Filtro de lo inferido—Listopublicable().
Superficies para agentes—ListoJSON-LD, llms.txt, catálogo, páginas, MCP.
Servicio por Puerta C—ListoSin que el comercio toque nada.
Corte real del servicio—ListoADR-0008. Dar de baja apaga de verdad.
Avisar que el ARTwin existe—FaltaLo más barato con más efecto: hoy el panel muestra el problema y esconde el remedio ya construido.
Revisar y completar—FaltaSin esto no se puede publicar dato inferido: es la condición legal y comercial.
ARTag y ARDoorP40FaltaLa señal que activa. Sin ella el ARTwin existe y no se sirve.
Verificación del ARTag—FaltaBotón que sondea el dominio y responde en el momento.
Puerta D en dominio propioP7A mediasHay Puertas D desplegadas; falta como pieza de producto. Mientras viva en la C, la cita se la lleva AgentRoom.
Dueño del ARTwinP1FaltaHoy no hay a quién pertenece ni quién pueda darlo de baja.
Ingesta continuaP2FaltaLa captura es puntual: el catálogo se queda viejo sin aviso.
Frescura con vencimientoP3FaltaSin TTL, dato de hace un mes y dato de hoy son indistinguibles.
Métricas de distribuciónP18FaltaCrawlers, citas y conexiones MCP: sin ellas se entrega a ciegas.
Soluciones

Agent Registry

«Publica el agente oficial de tu empresa.»

Opera en

Catálogo y Responder

03 y 04 · ARDoorMan TalkRoom

Estado

No existe

Su página está publicada.

Piezas

6

para completarla

Qué hace

Cuando un asistente llega buscando resolver un problema —no una marca—, la recepción responde quién puede atenderlo. La organización aparece en esa respuesta, en el orden en que llegó a AgentRoom. Queda declarado qué agente la representa y quién lo opera.

Requerimiento técnico

  • Contrato de entrada: lenguaje natural, no un dominio. «Necesito un plan de teléfono prepago» tiene que funcionar sin que el asistente conozca ninguna marca.
  • Devuelve organizaciones, no catálogo. El counter nombra; consultar es el paso siguiente y es otra llamada.
  • Orden por antigüedad, determinista y auditable: dos consultas iguales dan el mismo orden. Ningún parámetro puede alterarlo —no hay relevancia, ni puja, ni destacados—. Si aparece una razón técnica para ordenar distinto, se escala, no se implementa.
  • La fecha de llegada es un dato inmutable del agente.
  • El counter no consume tokens. El contador arranca al abrir sala, no antes.
  • Depende de Agent Identity: hay que saber quién llega antes de nombrarle a nadie.

Consumo en tokens

LíneaSe cobraTarifaNota
El counterpor consulta0Preguntar quién puede atenderte no cuesta. El contador arranca al abrir sala, no antes.
Apertura de salapor salaTBDAcá empieza el cobro. Es la frontera del modelo.

Tablero de avance

1 de 8 subfuncionalidades listas1 listo7 falta
SubfuncionalidadPiezaEstadoQué falta
Consulta de catálogo por MCP—Listo3 herramientas. Exige que el asistente ya sepa a quién preguntar.
Counter conversacionalP27FaltaPregunta abierta → quién puede atenderla. Es la etapa entera.
Orden por antigüedadP28FaltaEl primer lugar no se vende. Es lo que separa esto de un directorio pagado.
Registro de agentesP5FaltaHoy se publica un catálogo, no un agente. Es lo que se le vende al comercio.
Credencial del agenteP25FaltaPublicar el agente y darle credencial son el mismo acto.
Registro de demanda no servidaP29FaltaEl motor de adquisición, no una métrica. Funciona con cero comercios adheridos.
Elección múltipleP30FaltaAbrir varias salas de una: comparar es lo que la persona pidió.
Apertura de salaP31FaltaAhí arranca el contador de tokens.
Soluciones

Agent Identity

«Verifica quién está detrás de un agente.»

Opera en

Desde Catálogo

03 en adelante · transversal

Estado

No existe

Su página está publicada.

Piezas

3

para completarla

Qué hace

Responde quién está detrás de un agente. Los que viven en AgentRoom están autenticados; los que llegan deben autenticarse. Es la pregunta que hoy no responde nadie, y de ella dependen la auditoría, la reputación y la certificación.

Requerimiento técnico

  • Estado verificado en vivo: POST /api/mcp acepta tools/list y tools/call sin credencial alguna.
  • No es una fuga: el corte por tenant funciona —un dominio sin servicio activo no entrega nada, comprobado—. Lo que falta es saber quién preguntó.
  • Decisión abierta para el CTO: API key por asistente, OAuth client-credentials o mTLS. Tiene que aguantar que del otro lado hay software, no personas.
  • tools/list puede seguir abierto si se decide explícitamente: descubrir qué herramientas existen no expone datos de nadie.
  • Migración: los asistentes ya conectados no pueden caerse sin aviso. Definir período de gracia.

Consumo en tokens

Esta solución no consume tokens. Va incluida. Es condición del sistema, no un servicio que se activa: sin identidad no hay auditoría que vender.

Tablero de avance

0 de 3 subfuncionalidades listas3 falta
SubfuncionalidadPiezaEstadoQué falta
Autenticación del asistente que llegaP24FaltaEl MCP responde sin credencial. Bloquea todo lo que dependa de auditoría.
Credenciales de agentes propiosP25FaltaSe mueve a Agent Registry: publicar y acreditar son el mismo acto.
Identidad en la minutaP26FaltaLo que convierte un registro en evidencia. Sin esto la constancia no sirve en una disputa.
Soluciones

Agent Reputation

«Construye una reputación verificable.»

Opera en

Desde Catálogo

03 en adelante · transversal

Estado

No existe

Su página está publicada.

Piezas

1

para completarla

Qué hace

Un historial que se acumula y se puede consultar: lo que las estrellas hicieron por los marketplaces, para agentes. Permite que una organización decida con quién opera mirando cómo se comportó antes.

Requerimiento técnico

  • Precondición dura: sin P24 no hay reputación. Un historial sin identidad verificada es un promedio de anónimos.
  • Decisión de negocio antes de diseñar: ¿quién la escribe? Si la escribimos nosotros, somos juez y parte. Si la escriben las partes, hay incentivo a mentir. Es lo primero que hay que resolver.
  • Alimentación natural: las minutas de P36 —lo que efectivamente pasó— en vez de opiniones.
  • Ley 21.719: un historial sobre terceros con efectos sobre su acceso puede ser decisión automatizada. Revisar antes de diseñar.

Consumo en tokens

LíneaSe cobraTarifaNota
Consulta de reputaciónpor consultaTBDSin definir: depende de quién escriba la reputación, que es decisión pendiente.

Tablero de avance

0 de 4 subfuncionalidades listas3 falta1 sin definir
SubfuncionalidadPiezaEstadoQué falta
Modelo de qué se acumulaP41FaltaDefinir si son hechos de la minuta o valoraciones.
Quién escribe la reputación—Sin definirDecisión de negocio pendiente, no de ingeniería.
Consulta pública del historialP41FaltaY qué parte es visible para quién.
Dependencia de identidadP24FaltaSin esto no se puede construir.
Soluciones

Agent Certification

«Certifica que cumple estándares.»

Opera en

Desde Catálogo

03 en adelante · transversal

Estado

No existe

Su página está publicada.

Piezas

1

para completarla

Qué hace

Niveles de certificación sobre identidad, seguridad, políticas, gobernanza y auditoría, para que la confianza entre dos partes no dependa de conocerse.

Requerimiento técnico

  • Es la que más compromete a AgentRoom: certificar es afirmar algo sobre otro. Antes de diseñarla hay que decidir quién responde si un agente certificado se porta mal.
  • Precondición: los niveles se apoyan en P24 (identidad), P33 (capacidades declaradas) y P36 (auditoría). Sin esas tres no hay nada que certificar.
  • Vigencia y revocación: una certificación sin fecha de vencimiento ni forma de retirarla es peor que ninguna.

Consumo en tokens

LíneaSe cobraTarifaNota
Certificaciónpor emisión y vigenciaTBDSin definir. Tampoco está resuelto quién responde por lo certificado.

Tablero de avance

0 de 5 subfuncionalidades listas4 falta1 sin definir
SubfuncionalidadPiezaEstadoQué falta
Definición de nivelesP42FaltaIdentidad, seguridad, políticas, gobernanza, auditoría.
Quién responde por lo certificado—Sin definirDecisión de negocio pendiente. Es responsabilidad legal, no una tabla.
Emisión y vigenciaP42FaltaCon fecha de vencimiento.
RevocaciónP42FaltaSin forma de retirarla, certificar es un riesgo.
DependenciasP24 P33 P36FaltaSin identidad, capacidades y auditoría no hay materia certificable.
Soluciones

Policy Engine · ARSteward

«Define las reglas de interacción.»

Opera en

Desde Responder

04 en adelante · transversal

Estado

No existe

Su página está publicada.

Piezas

2

para completarla

Qué hace

La organización declara qué puede hacer un tercero al operar con ella —y qué no—, y AgentRoom lo hace cumplir en cada interacción. Sus reglas internas siguen viviendo en sus sistemas; acá se declaran las de interacción.

Requerimiento técnico

  • Dos piezas, en este orden: primero P33, la declaración legible por máquina; después P37, el controlador que contrasta. Sin declaración no hay contra qué comparar.
  • Lo que queda fuera no ocurre —y queda anotado que se intentó—. Ese registro del intento fallido vale tanto como el de lo que sí pasó.
  • Empieza en la etapa 04 y no antes: antes de que exista una sala no hay interacción que gobernar. El counter es gratis y no compromete nada.
  • No es confianza en la contraparte: es enforcement. Si la regla se puede saltar, no es una regla.

Consumo en tokens

LíneaSe cobraTarifaNota
Control de fraude y abusopor solicitud filtradaTBDServicio opcional: se activa por organización y solo se paga si se activa.
Handshake de agentespor handshakeTBDTérminos acordados antes de que un agente opere.

Tablero de avance

0 de 4 subfuncionalidades listas1 a medias3 falta
SubfuncionalidadPiezaEstadoQué falta
Declaración de capacidadesP33FaltaLegible por máquina: qué puede y qué no cada agente.
Contraste en cada operaciónP37FaltaLo que queda fuera no ocurre.
Registro del intento fallidoP37FaltaTan valioso como el registro de lo que sí pasó.
Reglas del comercio—A mediasLa landing ya las describe —zonas, devoluciones, qué asistentes pueden vender—. Declaradas en copy, sin motor que las aplique.
Soluciones

Trust & Audit · ARScribe

«Demuestra qué ocurrió.»

Opera en

Desde Responder

04 en adelante · transversal

Estado

No existe

Su página está publicada.

Piezas

1

para completarla

Qué hace

Constancia consultable de qué se preguntó, qué se respondió, qué se acordó y qué se cobró. La escribe y la custodia AgentRoom, no las partes: cuando hay desacuerdo, el registro de uno de los dos lados no sirve.

Requerimiento técnico

  • Depende de P24. Una constancia sobre «alguien» no sirve en una disputa, que es exactamente para lo que se vende. Es la dependencia que la bloquea entera.
  • Criterio de neutralidad, y es lo que la hace vendible a las dos partes: no vendemos el producto ni representamos al asistente; nos pagan por el servicio, nunca por cómo termine una disputa.
  • Retención y revocación: definir cuánto se guarda y cómo se accede. Hoy no hay un solo del() en el repo —lo que se guarda, se guarda para siempre—.
  • Ley 21.719: registros sobre terceros, con retención y derecho de acceso. Revisar antes de que haya volumen.

Consumo en tokens

LíneaSe cobraTarifaNota
Recibo verificableincluido0Va en la base: un recibo en cada orden, sin activar nada.
Retención extendidapor recibo al añoTBDMás retención y evidencia exportable, para auditoría o regulación.

Tablero de avance

0 de 5 subfuncionalidades listas4 falta1 sin definir
SubfuncionalidadPiezaEstadoQué falta
Registro de la interacciónP36FaltaQué se preguntó, respondió, acordó y cobró.
Identidad de las partesP24FaltaSin esto la auditoría nace vacía.
Custodia por AgentRoomP36FaltaNo por las partes: es lo que la hace servir en una disputa.
Consulta por el comercioP39FaltaQue vea lo que pasa en su nombre.
Retención y revocación—Sin definirSin definir. No existe del() en el repo.
Soluciones

Agent Exchange

«Que los agentes trabajen entre ellos.»

Opera en

Colaborar

05, tokens · A2ARoom

Estado

No existe

Su página está publicada.

Piezas

3

para completarla

Qué hace

Dos organizaciones resolviendo lo mismo —una integración, un incidente, una diferencia de facturación— a través de sus agentes. Acá AgentRoom deja de ser un lugar donde se publica y pasa a ser infraestructura de interacción.

Requerimiento técnico

  • Lo que la distingue de todas las anteriores: en las otras siempre hay una persona en un extremo. Acá no —las dos partes son organizaciones y ninguna puede confiar en que la otra se porte bien—. Por eso identidad, términos y constancia no son funcionalidades: son la condición para que la etapa exista.
  • Handshake bilateral antes de operar: qué puede hacer cada agente, hasta dónde, con qué límites. Ya es línea de cobro en Pricing, sin nada detrás.
  • El caso es un objeto compartido que vive entre dos organizaciones y no le pertenece a ninguna. Eso es nuevo en el modelo de datos.
  • Aislamiento verificable entre salas paralelas, con una prueba. No una promesa.

Consumo en tokens

LíneaSe cobraTarifaNota
Handshake de agentespor handshakeTBDEs la línea que ya existe en la tabla de precios, sin nada detrás todavía.

Tablero de avance

0 de 7 subfuncionalidades listas7 falta
SubfuncionalidadPiezaEstadoQué falta
Identidad de ambas partesP24 P25FaltaPrecondición.
Handshake bilateralP34FaltaTérminos aceptados antes de empezar.
Caso compartidoP35FaltaUn objeto entre dos organizaciones.
Trabajo de los agentesP35FaltaCada uno sobre lo suyo, dentro de lo acordado.
Constancia bilateralP36FaltaQué dijo e hizo cada parte.
Cierre o escalamientoP35FaltaCon el resultado anotado de las dos partes.
Aislamiento entre salasP32FaltaVerificable con una prueba, no prometido.
OtrosDesa

CustomerRoom

El panel donde la organización administra su propio agente. No se vende como solución aparte —y está bien, porque es dónde se administran las otras—. Pero eso significa que todo lo que se vende pasa por acá: activar el ARTwin, revisar el registro, mirar la auditoría, pagar. Es la pieza P4.

De quién es

La organización

no el comprador

Estado

A medias

4 de 16 pasos, más 2 a medias

Se vende como

—

ninguna solución

Qué hace

Su promesa es que no hay panel que aprender. Lo que cambia el comportamiento del agente se dice conversando —desde el asistente que la organización ya usa—, y el panel web se mantiene chico a propósito: sirve para mirar, no para configurar. Esa división no es una limitación, es la tesis: si administrar el agente exigiera aprender un panel, AgentRoom sería otro SaaS con onboarding en vez de infraestructura que se enchufa.

Hoy es un visor de informes con el nombre de otra cosa. /entrar y /panel están en producción desde el 22-ago, y lo que resuelven es el tramo de mirar: entrar y leer el informe. El tramo de administrar —donde vive la tesis— sigue siendo promesa de la landing. Conviene tenerlo claro al planificar: la base está hecha, el producto no.

Requerimiento — qué tiene que poder hacer el cliente acá

Dieciséis cosas, en este orden. No es una lista de funciones sueltas: es una secuencia, y cada tramo desbloquea el siguiente.

  • Entrar sin contraseña que recordar. Correo de trabajo del dominio analizado, código de cinco caracteres, sesión en cookies firmadas con HMAC. Abrir el correo es la verificación de que trabaja ahí: no se pide un documento aparte.
  • Leer su informe completo, los 26 puntos abiertos capa por capa, cada uno con qué se revisó, qué se encontró y con qué evidencia. Es más que la vista gratis, que solo muestra el puntaje y una brecha.
  • Enterarse de que su ARTwin ya existe —y no recibirlo todavía—. Ve cuántos productos trae, qué políticas y qué canales; no el contenido. Que exista y no se entregue es lo que le da valor a activarlo.
  • Aceptar el trato y activarlo: gratis por tres meses a cambio de instalar el ARTag. Es la decisión que abre todo el resto.
  • Revisar y completar el ARTwin dentro del panel, sin export. Recién acá ve el contenido: corrige lo que el motor infirió mal y agrega lo que falta. Es lo que impide publicar dato inferido bajo su nombre sin que lo haya mirado.
  • Recibir su ARTag con los pasos exactos de su plataforma —un archivo para /.well-known/agentroom.json—. No un snippet: un agente no ejecuta JavaScript, y por eso no puede ser un tag al estilo Google o Meta.
  • Apretar «Verificar» y saberlo en el momento. Mandamos una sonda a su dominio y le decimos si quedó bien o qué falta. Sin este botón instalar es a ciegas, y ahí se cae la gente.
  • Ver subir su ARAIS, en el mismo número que le mostró el problema. Es lo que cierra la venta: el puntaje que dolía es el que mejora.
  • Tener una cuenta de organización, no una dirección de correo. Hoy la cuenta es el correo verificado: alcanza para entrar y ver lo tuyo, y no alcanza para decir a quién pertenece el ARTwin ni quién puede darlo de baja.
  • Conectar su catálogo por feed, marcado o API, para que el ARTwin deje de depender de una sola captura. Es el salto de dato inferido a verificado.
  • Administrar hablando. Recibe un token, lo pega en el asistente que ya usa, y desde ahí configura: precios y stock, zonas y plazos de despacho, devoluciones, qué asistentes pueden vender, presupuestos y alertas, medios de pago. «Deja de vender carpas hasta el lunes», y aplica al instante.
  • Ponerle techo al gasto. Presupuesto mensual, límite diario y límite por conversación, con alertas en los umbrales y corte automático. Pagar por uso solo funciona si el techo lo pone la organización, no nosotros.
  • Revisar qué le costaron los agentes: qué se vendió, qué se preguntó, cuánto costó, recibos y descarga de facturas. Nada más: el panel se mira, no se opera.
La regla que ordena el reparto: lo que cambia el comportamiento del agente se dice conversando; lo que solo se mira vive en el panel. Ante la duda de dónde poner algo nuevo, esa frase decide.

Consumo en tokens

LíneaSe cobraTarifaNota
Entrar y ver el informe—0El panel no se cobra. Es dónde se administran las soluciones, no una de ellas.
Activar y editar el ARTwin—0Gratis los primeros 3 meses; después cae en la cuota de AI Presence, no en una del panel.
Administrar hablando—0Configurar nunca se cobra. Se cobra lo que el agente hace, no lo que la organización le ordena.
Ver el consumo y descargar facturas—0Cobrar por mirar la cuenta sería cobrar dos veces.

Tablero de avance

4 de 16 pasos listos2 a medias10 falta
#PasoPiezaEstadoQué falta
01Pide su informe gratisP2ListoSolo el dominio, sin tarjeta y sin instalar nada.
02Prueba que trabaja ahíP4ListoAbrir el enlace del correo es la verificación.
03Entra con un código de cinco caracteresP4Listo/entrar, en producción desde el 22-ago.
04Ve el informe completoP4Listo/panel: los 26 puntos capa por capa, con evidencia.
05Se entera de que su ARTwin ya existeP4FaltaYa no está bloqueado: P22 se cerró y el ARTwin se guarda en cada análisis. Es lo más barato que se puede construir hoy —ni cuenta, ni OAuth, ni metering—.
06Le ofrecemos activarlo y dice que síP4FaltaAcá se explica el trato: 3 meses gratis a cambio del ARTag.
07Lo revisa en detalle y lo completaP5FaltaDentro del panel y sin export. Evita publicar dato inferido sin que lo mire.
08Recibe su ARTag y las instruccionesP6FaltaPasos exactos por plataforma. Archivo, no snippet.
09Aprieta «Verificar»P6FaltaSonda al dominio y respuesta en el momento. Sin esto, instalar es a ciegas.
10Ve subir su ARAISP7FaltaRecalcular el puntaje en el mismo número que mostró el problema. Ojo con el tamaño real: el histórico ya está en disco —guardar() no borra e informesDe() lista por correo con su fecha—; lo que falta no es empezar a guardarlo sino leerlo como serie por dominio. La trampa está en el denominador: recienteDe() ya descarta informes de otra version_motor porque comparar instrumentos distintos no es comparar, y una serie que mezcla denominadores miente igual.
11Entra con GoogleP4A mediasEl código ya está expuesto —EntrarForm muestra el botón si hayGoogle()—, pero en producción no aparece: faltan GOOGLE_CLIENT_ID y GOOGLE_CLIENT_SECRET en Vercel. Se destraba poniendo dos variables, no escribiendo código.
12Tiene una cuenta de verdadP1A mediasLa cuenta es el correo verificado. Falta la entidad organización: sin ella no hay a quién pertenece el ARTwin ni quién lo da de baja.
13Conecta su catálogoP13FaltaFeed, marcado o API. Es el salto de inferido a verificado.
14Recibe su token de AgentRoomP14FaltaEl puente entre el panel y la administración conversacional.
15Administra hablandoP15FaltaLa tesis del producto, y no existe. Las diez capacidades siguen siendo promesa de la landing.
16Revisa qué le costaron los agentesP19FaltaDepende de metering, que no existe. Sin él tampoco hay control de gasto.
El corte está en el 05, y la mitad que existe es la que menos define al producto. Del 01 al 04 está resuelto mirar. Del 05 al 10 falta el tramo que convierte el informe en venta —avisar, ofrecer, revisar, entregar el ARTag, verificar, mostrar el puntaje nuevo—; del 12 al 16, administrar, que es donde vive la tesis. Mientras el 05 no exista, el CustomerRoom le muestra al comercio su problema y le esconde el remedio que ya tenemos armado.

Maqueta navegable — los requerimientos que fijó (4-sep-2026)

Se dibujó el panel entero en agentroom.io/panel/muestra —noindex, rotulada, y con datos reales: el informe que el motor 2.2.0 corrió ese día sobre www.junngla.com, 23 páginas, 48 de 100 sobre 16 puntos aplicables—. No es una maqueta aparte: es el mismo componente, los mismos tokens y el mismo tema que el sitio, así que lo que falta para que sea el panel de verdad es de dónde vienen los datos, no volver a dibujar.

Dibujarlo con datos reales cambió el requerimiento tres veces. Con una tienda inventada todo calzaba; con junngla.com aparecieron un puntaje sin histórico contra qué compararse, un registro de lecturas que no existe y un llms.txt que responde 200 y no está. La maqueta con datos de relleno habría validado un panel que no funciona.
  • Se navega con el mismo mapa que explica el producto. Arriba las seis etapas, a la izquierda las herramientas de la etapa elegida: el mapa de dos capas puesto de canto. Así el cliente aprende un solo vocabulario y no uno para la web y otro para el panel. Las diez herramientas y sus tramos salen del mapa; ninguna se bautiza en el panel.
  • El sujeto es el dominio, no el correo. El correo es cómo entraste; el dominio es de lo que se está hablando. Va en la cabecera de la franja lateral.
  • Los estados son del CLIENTE, no nuestros. Listo / Te toca a ti / Esperando hablan de su avance. Cómo va nuestro desarrollo se cuenta acá, en el BBP, y no en el panel de un cliente.
  • Cada brecha dice de quién es la pelota, leído del campo arregla del motor —vado, comercio, ambos— y no de una clasificación propia. Si el panel dijera otra cosa habría dos verdades sobre quién hace qué.
  • Cada punto que falla dice cómo se corrige. El motor no lo emite: tiene que_significa y arregla, ninguno dice qué hacer. Ver la nota de abajo.
  • El informe se filtra por resultado, con la cuenta a la vista. Todos 26 · aprueba 7 · parcial 1 · falla 8 · no aplica 10. Un filtro en cero se deshabilita pero no se esconde: saber que hay cero parciales también es una respuesta.
  • Semáforo en el informe: verde aprueba, amarillo parcial, rojo falla, gris no aplica. Es la única parte del sistema que usa color como código, y solo dentro del panel, que es privado: un informe de 26 puntos se recorre salteado y con peso y borde hay que leerlos todos para hallar las ocho fallas. No aplica se queda gris a propósito —sale del denominador y no reprueba—, y el rótulo repite el color del icono para que se lea aunque el color no se distinga.
  • La fecha de la corrida, destacada. Un puntaje sin fecha es una afirmación sobre el presente que puede tener semanas, y acá se mide un sitio que cambia solo.
  • El puntaje muestra su dirección, no solo su valor. Cuánto subió desde la corrida anterior. No hay dónde leerlo: no se guarda histórico por dominio, así que hoy el panel dice «Primer informe» en vez de dibujar un +0, que insinuaría que no se movió.
  • «Quién te leyó»: qué agente pasó por el dominio, qué pidió y qué se llevó. Es la única parte del panel que cambia sola, y por eso es la que hace volver a abrirlo. No existe: en la maqueta el bloque queda vacío y explica por qué.
  • Billing & consumo, en este orden: cuánto llevas, con qué se cobra, y después el historial. Incluye alta de medio de pago —con el aviso de que hoy no hace falta, porque pedir la tarjeta en una etapa gratis es la forma más rápida de que alguien crea que el informe se cobra—, cartola mes a mes que se despliega al presionar el mes, y por cada mes resumen en PDF y factura. Los dos documentos no son lo mismo: el resumen lo generamos nosotros y siempre se puede pedir; la factura es un documento tributario que existe solo si hubo cobro. Un mes en cero igual aparece: la cartola tiene que poder mostrar que no se cobró, no solo callarse.
  • Consentimiento para salir en el Radar. El cliente elige país e industria y publica; es gratis. El bloque enumera qué queda público —dominio, puntaje, su denominador y la fecha— y qué no —evidencia, informe completo, catálogo—, y el botón está deshabilitado hasta aceptar: un botón que publica sin que nadie haya aceptado convierte el consentimiento en decorado. Las listas salen de public-scores.ts, que es el mismo dato con el que se dibuja el Radar.
Dos promesas sin respaldo, que la maqueta dejó a la vista.

1. La «instrucción exacta». La landing dice, en la etapa Existir, que las brechas que solo puede cerrar el cliente «te las decimos con la instrucción exacta» (src/data/stages.ts:70), y esta misma página lo repite en AI Presence. El motor no emite ninguna instrucción. En la maqueta están escritas a mano las nueve que fallan en junngla.com, en src/data/customerroom.ts; las otras diecisiete muestran el hueco en vez de disimularlo, porque una instrucción inventada para un check que nadie revisó es peor que ninguna. El requerimiento correcto es un campo como_se_corrige en el check, con las 26 escritas y una prueba que falle si alguna queda vacía —hoy son dos archivos que hay que acordarse de editar juntos, y ya sabemos cómo termina eso—.

2. Las cuatro sondas no tienen remedio propio, y hay que decirlo. S23–S26 son la lectura de las otras tres capas: suben cuando se cierra lo demás. Prometer que se «arreglan» sería vender humo, e invita a que alguien pida gestionarlas asistente por asistente.
Lo que falta para que la maqueta sea el panel. El informe está copiado en src/data/customerroom.ts, no leído del almacén. Enchufarlo es cambiar de dónde vienen los datos: la forma —qué bloques hay, en qué orden y qué pregunta contesta cada uno— ya está decidida. Lo que no se resuelve cambiando el origen es el histórico del puntaje y el registro de lecturas: esos hay que construirlos.
El plan se quedó atrás de la construcción. P4 era la única pieza sin fase asignada y terminó construýendose igual, antes que piezas que sí estaban priorizadas. Ver BacklogTI.

Fuente en el código: src/data/manager.ts (capacidades y alcance del panel), src/config/pricing.ts (spendingControls, spendingBehaviours), motor/cuentas.ts y motor/sesion.ts (la media cuenta), motor/google.ts (OpenID Connect, alcance openid email).
Técnico

Plataforma

Lo que no pertenece a ninguna solución pero todas necesitan. Sin este lugar estas piezas quedarían huérfanas —y son las que hoy impiden cobrar—.

Qué falta

P1Cuenta de la organización

Existe media: cuentas.ts y sesion.ts resuelven acceso por correo verificado, sin base de datos. Falta la entidad organización, la que responde de quién es el ARTwin.

P19Metering y billing

La tabla de precios no tiene nada detrás. Medir sin tarifa no cobra, y fijar tarifa sin medir tampoco.

P17Persistencia real

Hoy Blob. ADR-0018 pospuso el esquema a propósito; la transacción lo va a exigir.

P21Pruebas

Ya no es cero: cuatro suites corren y pasan. Falta el gate —una prueba que no bloquea un merge es documentación—.

P20CI/CD

No hay .github/. Y vercel --prod despliega el working tree, no el HEAD.

P18Métricas de distribución

Crawlers, citas y conexiones MCP: las tres señales que prueban la tesis.

Acá está lo que separa vender de cobrar. Ninguna solución puede facturar sin P19, y ninguna se construye con seguridad sin el gate de P20.
Overview

Diccionario

Todas las palabras que usamos en AgentRoom. Solo entra lo que no existe fuera: si alguien puede buscarlo y encontrar la definición de otro —JSON-LD, MCP, robots.txt, .well-known— no es nuestro. La norma completa, con reglas de uso, está en 03-Documentos/NOMENCLATURA.md.

La tercera columna dice dónde se usa cada término. Público se dice en la web, en una reunión y en material comercial. Interno vive en el código y en este documento, y no se usa delante de un cliente —no porque sea secreto, sino porque no significa nada para él—.
Cada cosa tiene un nombre comercial y uno técnico, y ninguno más. Las etapas son el recorrido —nomenclatura, no módulos—; las soluciones son lo que se construye y se vende; las piezas son el software. Tres capas distintas que conviene no mezclar.

Los actores — quién es quién

TérminoQué significa entre nosotrosDónde se usa
asistente de IAEl de la persona: donde pregunta. Ajeno a nosotros: ChatGPT, Gemini, Claude, Perplexity, Grok.Nunca llamarlo agente.
agenteEl de la organización, el que se publica en AgentRoom.Nombre comercial del ARTwin publicado.
organizaciónEl cliente. Paraguas de los cuatro perfiles: tienda, empresa de servicios, software, institución.«Tienda» solo en ejemplos de comercio.
personaQuien pregunta a su asistente. Nunca es cliente de AgentRoom.No hay app de consumidor ni marca frente a ella.
AgentRoomEl lugar donde se encuentran unos y otros. Una oficina tipo cowork.Evitar «la sala» salvo que se defina antes.

Las seis etapas — el recorrido, no módulos

TérminoQué significa entre nosotrosDónde se usa
01 · VerEl análisis: qué encuentra un asistente hoy. Gratis.Técnico: ARAIS
02 · ExistirQuedar publicado y entendible. Gratis 3 meses.Técnico: ARTwin
03 · CatálogoTe ofrecen cuando alguien pregunta. Gratis.Técnico: ARDoorMan
04 · ResponderEl agente contesta por cada persona. Acá empieza la tarifa.Técnico: TalkRoom
05 · ColaborarAgentes de distintas organizaciones entre ellos.Técnico: A2ARoom
06 · OperarEl agente transacciona: comprar, pagar, reservar, resolver.Técnico: TrxRoom

Los nombres propios del sistema

TérminoQué significa entre nosotrosDónde se usa
ARAISAgentRoom AI Score. El análisis: 26 puntos en 4 capas.Público
ARTwinAgentRoom Twin. Lo que la organización ofrece, normalizado y con procedencia.Público
ARDoorManEl counter de la oficina, y la etapa 03. Recibe al asistente y nombra a quien puede atenderlo.Público
ARDoorLa cara visible del ARTag: el sello en el sitio del comercio. Dice «Soy un agente» donde el CAPTCHA decía «No soy un robot».Público
ARTagLa señal que el comercio deja en su web para activar su ARTwin. Es un archivo, no un script.Público
ARStewardAgentRoom Steward. El controlador de marco. Hace cumplir dentro de la sala los límites que la organización fijó: qué puede hacer el agente, qué no está autorizado, y cortar cuando se sale. Comercial: Policy Engine.Público
ARScribeAgentRoom Scribe. La auditoría. Levanta la minuta de lo que pasó en la sala. Su valor es de prueba, no de analítica. Comercial: Trust & Audit.Público
CustomerRoomEl panel donde la organización administra su agente. No es del comprador.Público
tokenLa unidad de cobro por uso. Minúscula, plural normal. Reemplazó a ARU el 26-ago.Público

El vocabulario del análisis

TérminoQué significa entre nosotrosDónde se usa
Legibilidad LPrimera capa: ¿puede un asistente entender qué ofreces? L01–L06.Público
Transaccionabilidad TSegunda capa: ¿puede un agente cerrar la compra? T07–T14.Público
Resolución RTercera capa: ¿puede resolver algo contigo? R15–R22.Público
Sondas SCuarta capa, y la única que no mira el sitio: le pregunta a un asistente. S23–S26.Público
denominadorSobre cuántos puntos se calculó. Nunca se publica una cifra sin él.Público
sin evaluarLo que no se pudo medir. No es lo mismo que reprobado.Público
evidencia citableCada hallazgo con su fuente y el instante en que se observó.Público
veredictoaprueba con mayoría estricta, falla con cero, parcial el resto. Con un solo asistente no existe «parcial».Interno
MINIMO_PUBLICABLEOcho. Bajo ese número se muestra el detalle pero no la cifra.Interno
cascarónSitio bajo 1.000 caracteres de texto: el HTML no trae la página, la arma el navegador.Interno
capturaLo que se descarga en la única pasada a la red. Todo lo demás se deriva de ella.Interno

El vocabulario de la publicación

TérminoQué significa entre nosotrosDónde se usa
procedenciaDe dónde salió cada dato, con qué confianza y cuándo. Ningún dato entra sin ella.Público
verificadoLo dijo una API. La única fuente con stock de verdad.Público
declaradoLo dijo su marcado.Público
inferidoLo dedujimos del texto. No se publica.Público
Puerta CEl ARTwin servido desde nuestro dominio, sin que el comercio toque nada.Interno
Puerta DEl comercio enruta una ruta de su propio dominio. Es donde vale.Interno
Puertas A y BApp instalada (A) y credenciales de API (B). Existen como concepto, no en el código.Interno
tenantEstado de servicio de un dominio: por qué puerta publica, qué ARTwin sirve, si está activo.Interno
el corteDar de baja y que deje de servirse en la misma solicitud. El estado vive en el nombre del objeto.Interno
superficiesLo que se genera desde el ARTwin: JSON-LD, llms.txt, catálogo, páginas sin JS, servidor MCP.Interno

El vocabulario del cowork

TérminoQué significa entre nosotrosDónde se usa
counterDonde el asistente llega y pregunta. Es ARDoorMan, y es gratis.Público
salaDonde ocurre la interacción. Abrirla arranca el contador de tokens.Público
antigüedadEl orden en que ARDoorMan nombra. El primer lugar no se vende.Público
handshakeTérminos y permisos acordados antes de que un agente opere contigo.Público
minutaLa constancia de lo que pasó en una sala. La custodia AgentRoom, no las partes. La levanta el ARScribe.Público
controlador de marcoEl ARSteward. Contrasta cada operación contra lo acordado. Lo que queda fuera no ocurre, y queda anotado que se intentó.Público
aislamientoLas salas son ciegas entre sí: un competidor no ve al otro. Verificable, no prometido.Público
demanda no servidaCada «no hay a quién ofrecerte» queda anotado. Es el motor de adquisición, no una métrica.Público

Los códigos y prefijos

TérminoQué significa entre nosotrosDónde se usa
P##Las 49 piezas de software. Es lo único que se desarrolla.BacklogTI
AR-##Las fichas del backlog de gestión: decisiones y deuda, no código.Gestión
RC-#Las reglas comerciales que no se rompen. Cinco.Comercial
I##Las invariantes: reglas de diseño que se escalan, no se resuelven en el código. Trece.Técnico
D-##Deuda técnica que no es una pieza de producto.BacklogTI
ADR-####Decisiones de arquitectura registradas dentro del código.Código

Las diez soluciones

Sus nombres son en inglés y no se traducen. Cada una tiene su ficha.

SoluciónQué haceEtapa
Agent ScoreMide qué tan preparada está la organización. 26 puntos.01
AI RadarLa ubica frente a su industria y su país.01
AI PresenceQue la encuentren y la entiendan: publica su ARTwin.02
Agent RegistryPublica el agente oficial, para que nadie adivine cuál es.03–04
Agent IdentityVerifica quién está detrás de un agente.03+
Agent ReputationHistorial que se acumula y se puede consultar.03+
Agent CertificationNiveles de cumplimiento sobre identidad, seguridad y gobernanza.03+
Policy EngineDefine y hace cumplir qué puede hacer cada agente.04+
Trust & AuditConstancia de qué ocurrió, custodiada por AgentRoom.04+
Agent ExchangeAgentes de distintas organizaciones trabajando entre ellos.06

Lo que ya no se dice

No escribasEscribePor qué existió
AgentRoom-AIScore, AIScoreARAISNombre largo del puntaje antes de tener sigla.
gemelo, gemelo digitalARTwin · agenteNombre interno heredado de VADO. Sigue en los identificadores del código hasta que exista la red de pruebas.
«Agent Room Manager»CustomerRoomNombre del panel en la landing de agosto.
ARU, AgentRoom UnittokenLa unidad de cobro hasta el 26-ago. Los identificadores TypeScript todavía dicen ARU, a propósito.
VADO, vadoAgentRoomMarca anterior, absorbida el 20-ago-2026.
VadoBot/1.0AgentRoomBot/1.0Ya renombrado el 20-ago. Queda avisar a quien lo tuviera permitido.
«los cuatro niveles», «las cinco etapas»las seis etapas, 01–06Numeraciones previas. La última cayó al entrar Catálogo.
«policía»controlador de marcoNo se entiende a quién se vigila, y sugiere que la contraparte es sospechosa cuando lo que se cuida es el acuerdo.
Dos excepciones que no se corrigen, y conviene saber por qué. /apps/vado se sirve tal cual —hay Puertas D desplegadas en dominios de clientes apuntando ahí, y renombrarla rompe clientes en producción—. Y la nomenclatura de AgentRoom no rige sobre VADO: hasta el cutover es un producto distinto con su marca y su vocabulario. En su BBP, «gemelo digital» era el nombre correcto.
Regla que ordena los renombres pendientes: el copy se renombra cuando se decide; los identificadores, cuando hay pruebas que respalden el cambio. Por eso el código todavía dice gemelo y formatARU: no es descuido, es orden.
Técnico

Arquitectura general

Un solo repo Next.js con la landing, el motor heredado de VADO, las funciones y el CLI. La fusión del 20-ago se hizo sin reescribir lo que ya corría en producción.

PiezaDónde y cómo
Landing (secciones, copy, config)src/ — el copy vive en data/ y config/; app/page.tsx solo compone.
Motor de análisis y ARTwinmotor/
Funciones (route handlers)src/app/api/
CLIcli/

Decisiones que la definen

Dominio: agentroom.io desde el 21-ago-2026. agentroom.junngla.com redirige con 308 permanente y no se apaga: hay enlaces publicados. La dirección vive en AGENTROOM_BASE, así que mudarse de nuevo no exige tocar código.

Auditoría As-Is / To-Be

Corrida con el skill SuperArqDev el 20-ago-2026 sobre el commit inicial del repo. El diagnóstico completo —con diagramas C4, secuencia y modelo de datos— vive en bbp.agentroom.io/arquitectura. Acá va el resumen.

Score

68/100

SQALE C. Baja por ausencia de pruebas y CI, no por la calidad del código.

Cobertura de pruebas

4 suites

Al 20-ago era cero. Hoy npm test corre cuatro y pasan; falta el gate, no las pruebas.

Piezas por construir

21

14 son bloqueantes para la promesa de la landing.

El diagnóstico en una línea: un motor maduro con una casa a medio construir. Lo que analiza y publica está en producción (~6.400 líneas documentadas, con ADRs dentro del código); lo que transacciona no existe todavía, y nada se puede construir con seguridad hasta que exista la red de pruebas. Por eso la Fase 0 no construye producto.

La regla que ordena todo el plan: verificar precio y stock en vivo antes de crear cualquier orden (P9 antes que P11). Prometer desde una copia es vender lo que no existe — y con agentes eso escala más rápido que con personas.

Hallazgos

Sev.Hallazgo
Alta H1Dependencias vulnerables. 4 high + 1 moderate. next se arregla sin salto mayor (16.2.12 → 16.3.1).
Media H2Cero pruebas automatizadas. (Superado en parte el 25-ago: cuatro suites corren y pasan; falta el gate.) Ni un test, incluidos los 16 checks que producen el puntaje que se le vende al comercio.
Alta H3Sin CI/CD. No hay .github/; el deploy es manual, sin gate de typecheck, lint ni auditoría.
Media H4Fixtures fuera de control de versiones. 78 MB de capturas reales que serían el insumo para escribir los tests de H2 sin tocar la red.
Media H5El motor estuvo en producción sin repositorio. Corregido el 20-ago con el commit inicial.
Baja H6Deuda de nombres tras la absorción. Quedan referencias a la marca anterior; ojo con el user-agent VadoBot/1.0, puede estar en listas de permitidos.

Lo revisado a mano y limpio: guardas de destino y presupuesto (SSRF tratado como superficie hostil, ADR-0016), corte de servicio (410 verificado en vivo, ADR-0008), promociones emitidas en servidor, y cero secretos (gitleaks limpio, fuente única en Infisical). Herramientas ausentes en el equipo (semgrep, trivy, checkov): la revisión de inyección fue manual sobre los nueve puntos de entrada, sin afirmar exhaustividad.

Plan de migración por fases

FaseQué
0 · 30dLa red de seguridad. No construye producto: hace que construir sea seguro. Next a 16.3.1, tests de los 16 checks con las fixtures reales, CI con typecheck de ambos tsconfig. (Cierra H1, H2, H3.)
1 · 60dQue la adhesión exista. Cuenta del comercio (P1), ingesta continua (P2), frescura con vencimiento (P3), declaración .well-known en el dominio del comercio (P7) y métricas de distribución (P18).
2 · 90dLa caja. Registro de agentes (P5), postventa y atención (P16, P15) —la demanda que ya existe—, vínculo cliente-tienda (P14), recibo verificable (P13) y metering (P19), para que la tabla de precios deje de ser decorativa.
3 · 6-12mLa transacción. Verificación en vivo (P9) y reserva (P10), en ese orden; checkout y orden (P11); persistencia real (P17); MCP ampliado y adaptadores (P6, P8).
Estrategia 7R: el motor y el ARTwin se retienen (funcionan y están documentados); las nueve funciones se replataformaron con un adaptador en vez de reescribirlas; la persistencia se refactoriza por Branch by Abstraction (almacen.ts ya es la interfaz); las superficies crecen por Strangler Fig (/apps/agentroom junto a /apps/vado); y los pagos se recompran —se integran, no se construyen— para no entrar al perímetro regulado.
Esta auditoría es una foto fechada del 20-ago y no se corrige hacia atrás. Dos cosas ya no calzan con el presente: hablaba de «los 16 checks» cuando el ARAIS ya va en 26 puntos sobre 4 capas, y el motor pasó de aquel commit inicial a v2.2.0. Las correcciones viven en BacklogTI, que es el documento que sí se mantiene al día.
Técnico

Estrategia de arquitectura

Veredicto del squad al 1-sep-2026, sobre un reconocimiento de los dos sitios en vivo y del repo completo. Documentos de respaldo en 05-Notas/analisis-arquitectura-20260901/.

Estado real, en una frase: un motor de ingeniería genuinamente bueno, hoy además rodeado de un producto comercial completo —diez soluciones, veinte páginas, un mapa coherente—, corriendo todavía sobre una operación que no existe: sin CI, sin monitoreo, sin identidad de quien consulta, sin forma técnica de borrar un dato, y a 91 días de que la Ley 21.719 sea exigible. El 24-ago el problema era que la operación no existía; hoy sigue sin existir y encima hay más superficie que operar.

La decisión de arquitectura: almacén de objetos más índice. No una migración

El disparador de ADR-0018 para dejar Blob era «la primera cuenta de comercio» y no ha llegado: cero comercios adheridos. Se cambia el disparador, y ya se cumplió por otra vía —no la de los clientes, sino la de P22 más el calendario regulatorio—. Dos gatillos, cualquiera basta: D1, la primera obligación de borrado (ya disparado); D2, la primera operación que exija conteo atómico (tramo 5).

Pero cambiar el disparador no significa migrar el almacén. Lo que se guarda son objetos grandes, inmutables y servibles por CDN —informes de ~27 KB, ARTwins de ~8 KB—: para eso el Blob es la herramienta correcta. Lo que falta no es un lugar donde guardar: es un lugar donde saber. Qué objetos existen, de quién son, cuándo vencen, qué se contó, quién preguntó.

QUIÉN CONSULTA Asistente de IAel de la persona · ajeno Persona en la webpide su análisis gratis EquipoCLI · publicación manual SUPERFICIES SERVIDAS /api/mcpsin identidad · RQ-00-1 agentroom.iolanding · 10 soluciones bbp.agentroom.iosin git · deploy manual /.well-known/agentroom.json404 · no publica su propio ARTag APLICACIÓN · un repo, Next.js 16 src/app · route handlers src/lib/handler-vercel.ts adapta los nueve handlers (req,res) heredados — no se reescribieron MOTOR · el activo motor/ — ARAIS: 26 puntos en 4 capas captura · guardas SSRF · checks/ · sondas · puntaje · informe gemelo (ARTwin) · entitlement (tenant) · publicar · llm (5 adaptadores) EXTERNOS Modelos de IAGemini activo · Anthropic sin saldo Resendcorreo · falla cerrado Sitios de tercerosrastreo — origen de la PII ajena PERSISTENCIA Vercel Blob — objetos informes/ · leads/ · gemelos/ · tenants/ · ofertas/ · cuentas/ se queda: son objetos grandes, inmutables, servibles por CDN hoy: sin namespace de proyecto · cero del() · nombres calculables Índice relacional — Postgres · LO QUE SE AGREGA organizacion · artwin · evento_uso no reemplaza al Blob: le da un lugar donde SABER entra detrás de motor/almacen.ts, que ya es la interfaz
El sistema hoy y la única pieza que se agrega. En rojo, lo que está roto o falta; en amarillo, lo que entra. El motor no se toca: es el activo.
Problema que hoy parece propioCómo lo cierra el índice
AR-31 ARTwins archivados sin retención ni del()El índice sabe qué ARTwin no tiene tenant activo y desde cuándo. La purga es una consulta, no un barrido
AR-20 el nombre del ARTwin es calculableEl nombre del blob pasa a ser opaco; la resolución la hace el índice tras autorizar. La defensa deja de ser que la URL no se adivine
AR-21 el informe no se puede revocarRevocar es marcar una fila, no borrar una CDN
Barridos O(n) y el techo de 1000 en entitlement.tsDesaparecen: son consultas indexadas
Metering, cuenta de organización, demanda no servida, auditoríaTodos piden lo mismo —contar, agregar, atribuir— y ninguno se sostiene sobre un barrido sin transacciones

Alcance deliberadamente chico: tres tablas —organizacion, artwin, evento_uso— y ni una más hasta que su requerimiento llegue. Entra por Branch by Abstraction detrás de motor/almacen.ts, que ya es la interfaz; los handlers no se tocan. Postgres gestionado y estándar, sin extensiones propietarias en la lógica de negocio, por reversibilidad. ADR-0018 no se deroga: se enmienda con un ADR nuevo.

Esquema de base de datos

TRAMO 2 (AMARILLO) · DESPUÉS, CUANDO SU REQUERIMIENTO LLEGUE (GRIS) organizacion iduuid · PK dominiocitext · UNIQUE dueno_correocitext creada_entimestamptz idx: dominio tenant tramo 3 dominiocitext · PK estadoactivo | suspendido puertachar(1) · C | D artwin_iduuid · FK I8: se consulta en cada solicitud, sin caché acceso tramo 2 idbigserial · PK correo_hashbytea ocurrido_entimestamptz reemplaza cuentas/<correo>/ — cierra AR-25 el correo deja de ser la llave del recurso analisis tramo 2 iduuid · PK organizacionuuid · FK blob_reftext evaluadossmallint totalsmallint revocado_entimestamptz CHECK (evaluados <= total) — I5, cierra AR-30 revocado_en cierra AR-21 artwin iduuid · PK organizacionuuid · FK blob_reftext · UNIQUE estadoborrador|revisado|… construido_entimestamptz expira_entimestamptz blob_ref opaco y aleatorio — cierra AR-20 expira_en: 90 días sin tenant — cierra AR-31 lead tramo 3 tokentext · PK · 32 bytes correocitext dominiocitext analisis_iduuid · FK verificado_entimestamptz reemplaza la carpeta /verificados/ idx: (correo), (analisis_id) evento_uso idbigserial · PK organizacionuuid · FK tiposala|consulta|orden cantidadinteger ocurrido_entimestamptz idx: (organizacion, ocurrido_en DESC) oferta tramo 5 iduuid · PK lead_tokentext · FK descuento_pctsmallint 0..100 precio_centesimosinteger vence_entimestamptz dinero en centésimos enteros, nunca float Vercel Blob — no es una tabla informes/<uuid>.json ~27 KB gemelos/<opaco>.json ~8 KB el JSON pesado se queda acá: es inmutable y servible por CDN. La tabla guarda el metadato y el puntero, no el documento. CINCO HALLAZGOS ABIERTOS QUE EL ESQUEMA CIERRA POR CONSTRUCCIÓN AR-20 nombre del ARTwin calculable → blob_ref opaco, resuelto por el índice tras autorizar AR-21 informe irrevocable → revocado_en: revocar es marcar una fila AR-25 correo en la ruta → correo_hash: el dato personal deja de ser la llave AR-30 denominador a mano → CHECK (evaluados <= total): la base rechaza el 22/16 AR-31 sin retención → expira_en + job de purga: la supresión pasa a ser ejecutable
Esquema relacional objetivo. En amarillo lo que entra en el tramo 2; en gris, lo que espera a su requerimiento. El Blob no es una tabla: guarda el documento, la tabla guarda el metadato y el puntero.

El DDL del tramo 2

Postgres estándar, sin extensiones propietarias ni funciones de plataforma: el criterio es reversibilidad, porque la relación con el hosting actual no está aislada (AR-32) y un esquema portable es lo único que mantiene barato mudarse. citext es la única extensión, y es estándar en cualquier Postgres gestionado.

CREATE EXTENSION IF NOT EXISTS citext;

CREATE TABLE organizacion (
  id            uuid PRIMARY KEY DEFAULT gen_random_uuid(),
  dominio       citext NOT NULL UNIQUE,
  dueno_correo  citext NOT NULL,
  creada_en     timestamptz NOT NULL DEFAULT now()
);

CREATE TYPE artwin_estado AS ENUM ('borrador','revisado','publicado','suprimido');

CREATE TABLE artwin (
  id             uuid PRIMARY KEY DEFAULT gen_random_uuid(),
  organizacion   uuid NOT NULL REFERENCES organizacion(id) ON DELETE CASCADE,
  dominio        citext NOT NULL,
  blob_ref       text NOT NULL UNIQUE,      -- opaco y aleatorio: cierra AR-20
  estado         artwin_estado NOT NULL DEFAULT 'borrador',
  construido_en  timestamptz NOT NULL,
  expira_en      timestamptz NOT NULL       -- 90 días sin tenant: cierra AR-31
);

-- La purga deja de ser un barrido y pasa a ser una consulta.
CREATE INDEX artwin_por_vencer ON artwin (expira_en)
  WHERE estado <> 'suprimido';

CREATE TABLE analisis (
  id             uuid PRIMARY KEY,          -- el mismo Informe.id que ya existe
  organizacion   uuid REFERENCES organizacion(id) ON DELETE SET NULL,
  dominio        citext NOT NULL,
  blob_ref       text NOT NULL,
  version_motor  text NOT NULL,
  evaluados      smallint NOT NULL,
  total          smallint NOT NULL,
  generado_en    timestamptz NOT NULL,
  revocado_en    timestamptz,               -- revocar es marcar: cierra AR-21

  -- I5 en la base, no en el render: la fila 22/16 no se puede escribir.
  CONSTRAINT denominador_coherente CHECK (evaluados <= total),
  CONSTRAINT total_positivo        CHECK (total > 0)
);

CREATE INDEX analisis_recientes ON analisis (dominio, generado_en DESC)
  WHERE revocado_en IS NULL;

CREATE TYPE uso_tipo AS ENUM ('sala_abierta','consulta','verificacion','orden');

CREATE TABLE evento_uso (
  id            bigserial PRIMARY KEY,
  organizacion  uuid NOT NULL REFERENCES organizacion(id) ON DELETE CASCADE,
  tipo          uso_tipo NOT NULL,
  cantidad      integer NOT NULL DEFAULT 1 CHECK (cantidad > 0),
  ocurrido_en   timestamptz NOT NULL DEFAULT now()
);

CREATE INDEX uso_por_organizacion ON evento_uso (organizacion, ocurrido_en DESC);

-- Auditoría de acceso. El correo deja de ser la llave del recurso: cierra AR-25.
CREATE TABLE acceso (
  id           bigserial PRIMARY KEY,
  correo_hash  bytea NOT NULL,
  ocurrido_en  timestamptz NOT NULL DEFAULT now()
);

CREATE INDEX acceso_por_correo ON acceso (correo_hash, ocurrido_en DESC);

Tres decisiones del esquema que conviene no deshacer. CHECK (evaluados <= total) pone I5 en la base y no en la vista: es la razón por la que un 22/16 deja de ser posible, y no depende de que nadie se acuerde. El dinero va en centésimos enteros y nunca en punto flotante, como ya hace el ARTwin. Y ON DELETE CASCADE desde organizacion es deliberado: cuando una organización ejerce su derecho de supresión, la cascada es lo que hace que el borrado sea acreditable en vez de una promesa.

Lo que el esquema no resuelve solo, y hay que decirlo: borrar la fila no borra el objeto en Blob. La supresión real es de dos pasos —marcar la fila y borrar el objeto que apunta blob_ref—, y hoy no existe una sola llamada a del() en el repositorio. El job de purga es parte del tramo 2, no un extra: sin él, el esquema promete una capacidad que el sistema no tiene.

Secuencia de construcción

El orden no lo pone el valor comercial sino la dependencia real entre piezas más I4: verificar antes de comprometer.

TramoQuéPor qué ahí
0 · La redCI desde un commit y no del disco · /api/salud que diga la verdad, con monitor y alerta a un humano · techo de gasto verificado · /informe/:id a no-store · total: 16 → TOTAL_CHECKSSin esto, todo lo demás es una apuesta
1 · La puertaIdentidad del asistente en el MCP · el MCP deja de presentarse como vado · AgentRoom publica su propio ARTagHabilita todo lo agéntico y toda la auditoría
2 · El índiceLas tres tablas · pasada de indexación · job de purga · nombres de blob opacos · revocación de informeHabilita retención, cuenta, metering y demanda
3 · Cerrar la venta del tramo gratisAvisar del ARTwin → revisar → ARTag → recalcularDonde está el dinero más cercano. El orden interno no se invierte: revisar antes de activar
4 · Que la etapa 03 existaDemanda no servida primero · counter · antigüedad · salas con aislamiento verificableLa demanda no servida rinde más mientras menos clientes haya: es el argumento con evidencia para salir a vender
5 · Que se pueda cobrarCuenta de organización · metering · TalkRoomBloqueado además por la tarifa, que no es desarrollo
6 · TransacciónVerificar → reservar → ordenar → recibo, en ese ordenEs I4. No empieza sin aprobación del CTO

Dónde se aparta del orden de REQUERIMIENTOS-DESARROLLO.md §12: el índice se mete antes de cerrar la venta. Activar clientes sobre un almacén sin índice, con el CLI manual como único camino de alta y sin forma de dar de baja, es vender activaciones que no se pueden revertir —con una fecha regulatoria encima—. El costo del adelanto es de días, porque son tres tablas.

LO QUE YA CORRE — GRATIS, Y ES LO ÚNICO COMPLETO DE PUNTA A PUNTA 01Pide su análisis deja su correoEN PRODUCCIÓN 02ARAIS 26 puntos · 4 capasEN PRODUCCIÓN 03ARTwin de la misma capturaP22 · EN MAIN 04Verifica el correo código de 5 caracteresEN PRODUCCIÓN 05Ve su informe capa por capaEN PRODUCCIÓN AQUÍ SE CORTA — DE 06 EN ADELANTE NO EXISTE NADA, Y ES EL TRAMO QUE CONVIERTE EL INFORME EN VENTA LO QUE FALTA CONSTRUIR — TRAMO 3 DE LA SECUENCIA 06Se entera cifras, no contenidoNO EXISTE 07Revisa y completa sin exportNO EXISTE 08Recibe su ARTag archivo, no scriptNO EXISTE 09Lo instala y verifica activa el tenantNO EXISTE 10Ve subir su ARAIS cierra la ventaNO EXISTE El orden 07 → 08 no se invierte: revisar viene antes de activar, o se publica dato inferido sin que nadie lo haya mirado. Al revés, la revisión se convierte en un trámite que se salta. LO QUE ESTE PROCESO EXIGE ANTES, Y HOY NO ESTÁ Retención · tramo 2 El paso 03 archiva de forma permanente el catálogo y los contactos de una organización que no pidió nada. Sin del() en el repo. 1-dic-2026. Alta y baja · tramo 2 El paso 09 activa un tenant, y hoy el único camino de alta es un comando manual, sin forma de dar de baja. No se venden activaciones irreversibles. La norma del ARTag · decisión El paso 08 no se puede escribir sin saber si admite DNS TXT. De eso depende si Shopify y Wix entran. La decide Francisco · AR-27.
El recorrido del cliente de punta a punta. Los cinco primeros pasos corren hoy; el corte está exactamente donde empieza el dinero.

Qué se construye, qué se compra y qué no se construye nunca

Nunca — es identidad del producto, no una etapaPor qué
Procesamiento de pagos, custodia de fondos, KYCEl pago se integra, no se construye, sobre los rieles que el comercio ya usa. Es lo que mantiene a AgentRoom fuera del perímetro regulado. Si alguien lo propone, no se evalúa: se escala
Un asistente de consumidor propioAgentRoom es complemento de las superficies, nunca competidor, y no tiene marca frente a la persona que pregunta
Un checkout que compita con el del comercioSi la superficie ya tiene checkout, se le entrega oferta, reserva y postventa
Vender el orden del counterI9. No es deuda técnica: vender el primer lugar convierte la recomendación en publicidad y se cae la tesis entera

Se compra lo que es commodity: Postgres gestionado, GitHub Actions, un monitor externo gratuito, Resend, el hosting actual. Se construye lo que es el activo: el motor ARAIS —no se terceriza ni un check—, la identidad del asistente —porque es lo que hace vendible la auditoría—, el ARTwin, el ARTag y el índice. Criterio anticipado para el counter: nada de infraestructura de vectores ni búsqueda semántica hasta que la demanda no servida haya medido que se justifica.

Lo que bloquea desarrollo y no es desarrollo

Cinco decisiones que no entran en ninguna secuencia hasta que Francisco las tome, y las cinco bloquean código: AR-27 ¿el ARTag admite DNS TXT? —sin ella no se escribe una sola instrucción de instalación— · AR-02 la tarifa · AR-17 el nombre técnico de la auditoría y del controlador de marco, que se encarecen cada día porque ya están indexados · AR-28 los 201 puntajes publicados · AR-32 la cuenta Vercel compartida. Se suma qué sociedad es el responsable del tratamiento: la agent-card declara Junngla y el proyecto es de Quanntum —no se corrige por marketing, se deriva de esa decisión y se propaga en un solo acto a agent-card, política de privacidad y DPA—.

Técnico

BacklogTI

El trabajo de ingeniería que separa lo que el motor ya hace de lo que la landing promete. Son las 21 piezas del catastro de SuperArqDev —con su estado real y la fase en que tocan— más la deuda que dejaron los hallazgos. El backlog de Gestión contiene las decisiones; este contiene la construcción.

Piezas

47

38 no existen y 9 están a medias. De la P22 en adelante ninguna viene de la auditoría del 20-ago.

El catastro creció

+26

De 21 a 47 en cinco días sin escribir código: aparecieron al definir los modelos y al cruzar la web contra el BBP.

Construidas fuera del plan

1

P4 nunca tuvo fase y se construyó igual, el 22-ago.

Hay un documento de requerimientos para el squad. 03-Documentos/REQUERIMIENTOS-DESARROLLO.md baja todo lo pendiente de esta sección a 34 requerimientos con criterios de aceptación, restricciones, qué no entra y orden sugerido por dependencias. Sale de estos mismos recorridos, así que cuando un paso cambie de estado acá, hay que actualizarlo allá —o se despegan, que es lo que este BBP existe para evitar—.
Cómo se lee. No existe no hay código todavía. A medias hay base, falta cerrarla. La columna Fase es la del plan de migración, y Por qué sigue ahí es la razón de la postergación, para no rediscutirla desde cero. Al cerrar una línea no se borra: se mueve a la bitácora.

El orden que no se negocia: P21 y P20 antes que cualquier pieza de producto —con 0% de cobertura nada se construye seguro—, y P9 antes que P11: verificar precio y stock en vivo antes de crear una orden. Prometer desde una copia es vender lo que no existe, y con agentes eso escala más rápido que con personas.

Las diez soluciones publicadas, y qué las construye

La landing vende diez soluciones con página propia. Esta tabla es el puente entre lo que se vende y lo que existe. Ninguna está completa, y dos no tenían piezas en el catastro hasta hoy.

SoluciónBloqueQué la construyeEstado
AI RadarARAISYa funciona. Le falta P23 para que el puntaje sea comparable entre corridas.Vendible
Agent ScoreARAISLos 26 puntos. Le falta P23 y el recálculo del paso 11.Vendible
AI PresenceARTwinLa adhesión entera: P40 (ARTag), P7 (Puerta D), P2, P3.A medias
Agent RegistryARDoorManP5, P27, P28.No existe
Agent IdentitytransversalP24, P25, P26. Es AR-16: hoy el MCP responde sin saber quién pregunta.No existe
Policy EnginetransversalP33 (declaración de capacidades) y P37 (el controlador de marco).No existe
Trust & AuditA2ARoomP36, y depende de Agent Identity: sin saber quién estuvo, la constancia no sirve.No existe
Agent Reputation—P41 — nueva. No tenía pieza en el catastro.No existe
Agent Certification—P42 — nueva. No tenía pieza en el catastro.No existe
Agent ExchangeA2ARoomLos seis pasos de esa sección. Se parte de cero.No existe
Dos soluciones se publicaron sin pieza que las construya. P41 y P42 entran al catastro recién hoy, después de que su página estuviera en vivo. No es un reproche al diseño —las diez páginas ordenan bien la oferta—, pero es el patrón que ya nos pasó con el «gratis» del counter (AR-19): primero se dijo, después se decidió. Conviene que el backlog se entere antes que la web, no después.
IDPiezaEstadoPor qué importa
P41 Reputación de agentes. Un historial que se acumula y se puede consultar —«lo que las estrellas hicieron por los marketplaces, para agentes»—. No existe Necesita identidad (P24) y constancia (P36) antes: una reputación sin identidad verificada no es reputación, es un promedio de anónimos. Y define quién la escribe: si la escribimos nosotros, somos juez; si la escriben las partes, hay que resolver el incentivo a mentir.
P42 Certificación de agentes. Niveles sobre identidad, seguridad, políticas, gobernanza y auditoría. No existe Es la pieza que más compromete a AgentRoom como tercero de confianza: certificar es afirmar algo sobre otro. Antes de construirla hay que definir quién responde si un agente certificado se porta mal, y eso es decisión de negocio, no de ingeniería.

El recorrido del asistente — modelo cowork

Las piezas del modelo que Francisco cerró el 24-ago. Ninguna existe, salvo el endpoint MCP con tres herramientas, que es el único pedazo de sala construido —y responde sin saber quién pregunta—.

IDPiezaEstadoPor qué importa
P24Autenticación del asistente que llega.No existeCierra la contradicción de AR-16. Sin esto la auditoría nace vacía, así que bloquea todo lo que dependa de ella.
P25Credenciales de los agentes que viven en AgentRoom.No existeLa otra mitad de «nadie entra anónimo». Depende de la cuenta del comercio (P1).
P26Identidad en la minuta. Que la constancia diga quién estuvo.No existeEs lo que convierte un registro en evidencia. Sin P24 y P25 no tiene qué anotar.
P27El counter conversacional. Pregunta abierta → quién puede atenderla.No existeEs ARDoorMan, el acto que antecede a toda sala.
P28Orden por antigüedad, con la fecha de llegada como dato del agente.No existeEl primer lugar no se vende. Es la regla que separa el counter de un directorio pagado.
P29Registro de demanda no servida. Cada «no hay a quién ofrecerte» queda anotado.No existeNo es una métrica, es el motor de adquisición. Y es la única pieza que funciona con cero comercios adheridos: mientras menos haya, más señal produce.
P30Elección múltiple: abrir varias salas de una.No existeComparar es lo que la persona le pidió al asistente. Sin esto el counter obliga a elegir a ciegas.
P31Apertura de sala por organización.No existeDonde arranca el cobro. Hoy el MCP responde sin sala: no hay objeto que abrir ni cerrar.
P32Aislamiento entre salas paralelas.No existeQue Entel no vea lo que ofreció WOM, verificable y no prometido. Es condición para que un competidor se adhiera.
P33Declaración de capacidades legible por máquina: qué puede y qué no cada agente.No existeEs lo que el controlador de marco contrasta después. Sin declaración no hay nada contra qué comparar.
P34Handshake bilateral: las dos partes aceptan antes de empezar.No existeYa es línea de cobro en Pricing, sin nada detrás. Arranca los dos servicios.
P35Cierre de sala y minuta.No existeEl acto final del recorrido. Es lo que queda cuando el asistente se va.
P36Auditoría: constancia consultable de qué se preguntó, respondió, acordó y cobró. Custodiada por nosotros.No existeSe anuncia en días. Depende de P24: una constancia de que «alguien» preguntó no sirve en una disputa. Sin nombre normado (AR-17).
P37ARSteward — el controlador de marco: contrasta cada respuesta contra lo acordado en el handshake.No existeLo que queda fuera no ocurre, y queda anotado que se intentó —ese registro del intento fallido vale tanto como el de lo que sí pasó—. Sin nombre normado (AR-17).
P38Medición de token arrancando en la apertura de sala, y que el counter no consuma.No existeLa frontera del cobro del modelo cowork. Se solapa con P19, que es el metering general.
P39La misma reunión desde el lado de la organización, en CustomerRoom, con acceso a sus minutas.No existeSin esto el comercio no ve lo que pasa en su nombre: la auditoría le sirve a la disputa pero no a él.
P40ARTag: la señal que activa el ARTwin.No existeEs la contraprestación del ARTwin gratis, o sea que sostiene el modelo comercial completo (AR-03). Verificado: no hay nada en el repo.

Prometido en la web, sin pieza

Salidas de un cruce entre agentroom.io en vivo y este documento, el 25-ago. La web va por delante del backlog, y la distancia crece cada vez que se publica.

IDPiezaEstadoPor qué importa
P48Techo de gasto que corta. Presupuesto mensual, límite diario y por conversación, alertas por umbral y corte automático.No existeLa brecha más seria del cruce. P19 y P38 miden; ninguna corta. Y el argumento con que se vende es «pagar por uso solo funciona si el límite es tuyo»: sin corte lo que hay es un medidor sin llave de paso, que es justo la garantía que un comercio necesita para atreverse a encender el cobro por uso.
P49Control de fraude y abuso: límites de tasa, reputación de agentes y filtrado antes de llegar al comercio.No existeAnunciado como servicio del nivel pagado. «Reputación de agentes» y «límites de tasa» se nombran en la web y no existían en el BBP hasta hoy. Depende de identidad (P24): no hay reputación de un anónimo.
P43Monitoreo del agente publicado.No existeDe los seis servicios del nivel 03 que AR-04 declara «nombrados y no construidos».
P44Reportes para la organización.No existeÍdem. Se solapa con P39, la vista de la reunión desde el lado del comercio.
P45Sala cerrada.No existeÍdem. Con el modelo cowork por fin tiene un significado preciso —una sala que no admite a cualquiera—, pero sigue sin definirse quién decide.
P46Retención extendida: más retención y evidencia exportable para auditoría o regulación.No existeEstá en la tabla de tarifas con precio TBD. Es el único servicio que insinúa cumplimiento normativo, así que la promesa no debería crecer sin revisión legal —y menos con la Ley 21.719 entrando en vigencia plena en diciembre—.
P47Autorización de pago para tiendas sin checkout agéntico propio.No existeEn la tabla de tarifas con precio TBD. No es P11: esa es CheckoutSession y Order, el objeto compra. Esta es autorizar sobre rieles ajenos.

Fase 0 · La red de seguridad

IDPiezaEstadoPor qué sigue ahí
P21 Pruebas. Tests del motor con las fixtures reales. Hallazgo H2. Dejó de estar en cero el 24-ago: npm test corre cuatro suites —costo, sondas, acceso, invariantes— y pasan, verificado el 25-ago. A medias Ya no es «0% de cobertura», que era el argumento que bloqueaba todo el plan. Lo cubierto son las piezas que deciden: la agregación de la capa Sondas, el contador de costo, el acceso al CustomerRoom, y las invariantes del motor sobre 25 capturas reales de 279. Lo que sigue faltando es la prueba de cada uno de los 26 puntos del ARAIS uno por uno, que es lo que decía el hallazgo original.
P20 CI/CD. Typecheck de ambos tsconfig, lint y auditoría como gate. Hallazgo H3. No existe No hay .github/: el deploy es manual y nada impide publicar algo que no compila. Se postergó porque el repo nació recién el 20-ago.
D-01 Dependencias vulnerables. 4 high + 1 moderate; next 16.2.12 → 16.3.1. Hallazgo H1. No existe Es la línea más barata del plan —no hay salto mayor de versión— y sigue abierta solo porque no hay CI que la haga fallar.
Ojo con esta línea: la Fase 0 se escribió el 20-ago hablando de «los 16 checks», pero el análisis ya va en 26 puntos sobre 4 capas (L01–L06 · T07–T14 · R15–R22 · S23–S26), con la numeración corrida y sin huecos. El alcance real de P21 es 26, no 16 —y la capa Sondas es la más cara de probar, porque depende de credenciales de asistentes externos—. El plan de la auditoría quedó congelado en la foto del día que se corrió.

Fase 1 · Que la adhesión exista

IDPiezaEstadoPor qué sigue ahí
P23 Encender las sondas de los cinco asistentes. Cuatro de cinco encendidos y verificados contra su API real el 28-ago-2026 (commits 11d12f0 y 3a7c155): gemini, perplexity, claude y openai, cada uno con su fecha en PROBADOS. Falta grok, y no por credencial —la tiene y funciona—: su adaptador manda search_parameters y xAI lo descontinuó («Live search is deprecated, switch to the Agent Tools API»), y grok-3 tampoco existe ya. Requerimiento escrito en 05-Notas/req-grok-agent-tools/. 4 de 5 Ya no es un veredicto roto: con cuatro asistentes S26 mide. veredicto() da falla con cero y aprueba con mayoría estricta, así que con un solo asistente el estado «parcial» no existe: son 10 puntos de peso (S23=4, S24=3, S25=3) decididos de forma binaria por un modelo, una vez. Un «falla» se le entrega al comercio como no apareces cuando lo que pasó fue no apareciste en Gemini esa corrida. S26 ya se protege solo —exige 2 y sale no_evaluado—; los otros tres no. Se destraba con cuatro credenciales, no con código. Requerimiento en 05-Notas/req-sondas-multiasistente.md.
P1 Cuenta y sesión del comercio. No existe Hoy no hay a quién pertenece un ARTwin. Es la primera pieza del dominio Comercio y bloquea todo lo demás de la fase.
P2 Ingesta continua. Sincronización, webhooks y conectores de plataforma. A medias La captura existe pero es puntual. Se parte con un conector de plataforma, no cinco: el objetivo es probar el flujo continuo, no cubrir el mercado.
P3 Frescura con vencimiento. TTL y marcar lo viejo como no publicable. A medias La procedencia ya se registra; falta que caduque. Es la condición para poder prometer algo después: sin vencimiento, publicar dato viejo es indistinguible de publicar dato bueno.
P7 Declaración estándar .well-known en el dominio del comercio. A medias La pieza de distribución: convierte cada comercio adherido en un nodo en su propio dominio. Va en la Fase 1 porque es lo que hace que adherirse rinda sin esperar la transacción.
P18 Métricas de distribución. Crawlers, citas y conexiones MCP. No existe Son las tres señales que prueban la tesis del producto. Sin ellas la Fase 1 se entrega a ciegas: no hay cómo saber si adherirse sirvió.

Fase 2 · La caja

IDPiezaEstadoPor qué sigue ahí
P5 Registro de agentes. No existe Hoy se publica un catálogo, no agentes —y el agente es justamente lo que se le va a vender al comercio desde el nivel 03. Sin esto la tarifa por token no tiene objeto que contar.
P16 Postventa. Estado, devoluciones y reclamos. No existe Es la demanda que sí existe hoy, antes que la compra: la gente le pregunta al asistente por un pedido que ya hizo. Entra en la Fase 2 y no en la 3 por eso.
P15 Atención sobre producto. A medias Cubierta en parte por el MCP de catálogo. Falta el tramo que necesita contexto del cliente, y ese depende de P14.
P14 Vínculo cliente-tienda. No existe Condición de P16: sin saber quién es el cliente para esa tienda no existe el escenario de postventa. Se postergó a la 2 porque antes no había a quién vincular (P1).
P13 Recibo verificable. Qué se ofreció, qué se acordó y qué se cobró. No existe El activo defendible del producto. Nace en la Fase 2 aunque la compra llegue en la 3: lo que sostiene es el registro de lo acordado, y eso ya aplica a la postventa.
P19 Metering y billing. No existe La tabla de precios de la landing no tiene nada detrás. Cruza con AR-02: medir sin tarifa fijada no cobra, y fijar tarifa sin medir tampoco.

Fase 3 · La transacción

IDPiezaEstadoPor qué sigue ahí
P9 Verificación en vivo de precio y stock. No existe La más crítica de las 21. Sin esto se promete desde una copia y se sobrevende. Es la que manda el orden de toda la fase.
P10 Reserva. Sostiene el ítem mientras se confirma la compra. No existe Va inmediatamente después de P9 y antes del checkout: verificar sin reservar deja una ventana en la que el ítem se puede vender dos veces.
P11 CheckoutSession y Order. No existe No existe el objeto compra. Se postergó a propósito detrás de P9 y P10: crear órdenes sin verificación en vivo es la falla que el producto promete evitar.
P17 Persistencia real. Hoy Blob. A medias ADR-0018 pospuso el esquema a propósito mientras el objeto de dominio podía cambiar. P9–P14 lo van a exigir, y recién ahí se justifica pagarlo. Se refactoriza por Branch by Abstraction: almacen.ts ya es la interfaz.
P6 MCP ampliado. Pedido, postventa y disponibilidad en vivo. A medias Hoy solo expone catálogo. Cada verbo nuevo depende de que exista la pieza detrás: ampliar el MCP antes que P9–P11 sería publicar una interfaz vacía.
P8 Adaptadores por superficie. Un conector por protocolo, sin tocar el núcleo. No existe Multiplicar superficies antes de tener qué ofrecer en ellas multiplica el mantenimiento, no la distribución. Las superficies crecen por Strangler Fig.
P12 Mandato del consumidor. La autorización con límites. No existe Territorio de Pepe, no de AgentRoom. Puede que no se construya nunca acá: AgentRoom es el lado del comercio. Queda anotada para que la decisión sea explícita y no un olvido.

Construida fuera del plan

IDPiezaEstadoPor qué sigue ahí
P4 CustomerRoom. El acceso y el informe de los 26 puntos, en producción desde el 22-ago. Falta la administración conversacional, que es la tesis del producto. A medias Era la única de las 21 sin fase asignada y se construyó igual, antes que piezas priorizadas. Lo entregado es el tramo de mirar; el de administrar sigue sin empezar, y la facturación depende de P19. El plan quedó atrás de la construcción, no al revés.

Deuda que no es pieza

IDQué faltaEstadoPor qué sigue ahí
D-02 Fixtures fuera de control de versiones. 78 MB de capturas reales. Hallazgo H4. A medias Son justamente el insumo para escribir los tests de P21 sin tocar la red. Mientras vivan fuera del repo, la red de seguridad depende de una carpeta en un solo computador.
D-03 Deuda de nombres tras la absorción. Quedan referencias a la marca anterior. Hallazgo H6. A medias El user-agent ya se renombró a AgentRoomBot/1.0 el 20-ago, antes de que existiera esta ficha; lo que queda de esa parte es operativo y vive en AR-14. Sigue pendiente la prosa y los identificadores que aún nombran la marca vieja, y /apps/vado, que no se toca hasta el cutover (AR-01).
Fuente: auditoría SuperArqDev del 20-ago-2026 sobre el commit inicial · catastro completo con diagramas en bbp.agentroom.io/arquitectura · el backlog del motor (B-01…B-30) sigue en vado.junngla.com/bbp hasta el cutover
Pricing

Pricing

Se cobra por uso, en tokens, y solo desde la etapa 04. Las tres primeras son gratis. Paga el comercio, y solo el comercio: el comprador no paga por comprar y el asistente no paga por vender.

Cuánto vale un token

Valor del token

TBD

La decisión comercial que falta (AR-02). Sin número no se puede cerrar una venta.

Tramo gratis

Mensual

Sobre la tarifa hay una franja de actividad sin costo, que se renueva.

Líneas publicadas

1 de 13

El informe, en cero. Las otras doce en TBD.

El token es la unidad de medida, no el precio. Lo que falta fijar es cuántos pesos vale un token y cuántos tokens cuesta cada acción. Son dos decisiones distintas y las dos están abiertas.
  • Nunca se hardcodea una tarifa en un componente: todo sale de pricing.ts. Sin publicar = null = TBD. Publicar precios reales es editar un archivo, no tocar código.
  • Medir y cobrar tienen que cerrarse juntos: hoy no existe P19, el metering. Medir sin tarifa no cobra, y fijar tarifa sin medir tampoco.
  • El techo lo pone el cliente: presupuesto mensual, límite diario y límite por conversación, con corte automático.

Qué consume tokens en cada solución

SoluciónEtapaQué se cobraTarifa
Agent Score01Nada. El informe de brechas no se cobra nunca.0
AI Radar01Nada. Nadie paga por aparecer ni por salir.0
AI Presence02Los primeros 3 meses, a cambio del ARTag0
Catálogo en la sala — por producto al mesTBD
Que te encuentren — por coincidencia calificadaTBD
Agent Registry03–04El counter — preguntar quién puede atenderte0
Apertura de sala — acá arranca el contadorTBD
Agent Identity03+Incluida. Es condición del sistema, no un servicio que se activa.0
Agent Reputation03+Consulta de reputación. Sin definir.TBD
Agent Certification03+Emisión y vigencia. Sin definir.TBD
Policy Engine04+Control de fraude — por solicitud filtradaTBD
Handshake — por handshakeTBD
Trust & Audit04+Recibo verificable — va en la base0
Retención extendida — por recibo al añoTBD
Agent Exchange06Handshake de agentes — por handshakeTBD
Las tres soluciones que hoy se pueden entregar cobran cero —Agent Score, AI Radar y el counter—, y las once líneas que sí cobran cuelgan de piezas que no existen. No hay un solo peso facturable hoy, y no es por falta de tarifa: es porque P19 no existe.
Lo que va incluido y no se cobra aparte: el catálogo vivo, la verificación de precio y stock antes de cobrar, la reserva, el recibo verificable y las reglas de despacho respetadas. Las garantías no son un plan premium —se cobra el consumo, no el derecho a estar protegido—.
Comercial

El embudo

Cómo se vende AgentRoom y —lo que más importa hoy— hasta dónde se puede vender. El embudo comercial es el mismo de las seis etapas: no hay un recorrido de ventas paralelo al del producto. Lo que cambia por etapa no es el discurso, es qué se puede entregar de verdad.

Ojo con la numeración: cambió el 25-ago. Este embudo usa niveles 01–04, que venían de la escalera de cinco. Al entrar Catálogo · ARDoorMan como etapa 03, la equivalencia se corrió: el 03 de esta tabla —la primera venta— es hoy la etapa 04, Responder, y el 04 es la 06, Operar. La frontera del cobro no se movió de lugar —sigue donde el agente responde por cada persona—, solo cambió su número. Y hay una etapa gratis más antes de ella.

El gancho

/analiza

Informe de brechas de 26 puntos con evidencia. Gratis y es del comercio aunque nunca siga.

Techo de entrega hoy

Nivel 02

El ARTwin publicado y legible. Se entrega a mano, sin medición ni corte automático.

Primera venta

Bloqueada

El nivel 03 no se puede cotizar: la tarifa en token sigue en TBD.

La restricción que ordena todo lo comercial: hoy se puede entregar hasta el nivel 02 y no se puede cobrar el 03. No es una decisión de precio pendiente de comunicar: es que no hay número (AR-02) y los servicios que justifican el nivel —Handshake, auditoría, monitoreo, reportes, sala cerrada, control de fraude— están nombrados y no construidos (AR-04). Se prospecta y se adhiere; no se cotiza.

Del nivel del producto a la etapa comercial

NivelEtapa comercialQué significa que avanzóHoy
01 Adquisición. Se corre el análisis y se entrega el informe de brechas. La organización recibió su informe con evidencia. No hay compromiso de ninguna parte. Operativo
02 Adhesión. Se arma el ARTwin y la organización queda legible para los agentes. Hay ARTwin publicado y la organización aportó la contraprestación acordada: su información, políticas, procedimientos y catálogo. A pulso
03 Primera venta. Agente publicado que responde por cada persona, con tarifa en token. Hay contrato y tarifa. Es el primer peso que entra por AgentRoom. Bloqueada
04 Expansión. El agente transacciona: compras, pagos, reservas, tickets. La cuenta sube de nivel sin cambiar de proveedor. Es donde el token crece. No aplica aún
Por qué el 02 dice «a pulso». Es gratis por 3 meses a cambio de acciones de la empresa, pero nada mide esas acciones ni corta a los 3 meses (AR-03). Cada adhesión que se cierre hoy es un compromiso que hay que sostener a mano y recordar a mano. Sirve para partir; no escala.

Reglas comerciales que no se rompen

IDReglaPor qué
RC-1 Mostrar sí, prometer no. No se compromete con fecha nada que no esté en producción. Es la misma regla del producto llevada a la conversación de venta. Las etapas ya publican su estado real; el discurso comercial no puede ir más adelante que el BacklogTI.
RC-2 El informe del nivel 01 se entrega igual. Aunque la conversación no siga. Es el gancho de adquisición y la prueba de que el análisis vale. Condicionarlo lo convierte en otra cosa y quema el activo.
RC-3 No se cotiza el nivel 03 mientras la tarifa sea TBD. Ni con un rango, ni «a confirmar». Un número dicho en una reunión queda como ancla aunque después se publique otro. Hasta que AR-02 se cierre, la respuesta honesta es que el nivel pagado aún no se vende.
RC-4 Complemento, nunca competidor. AgentRoom no se presenta como alternativa al canal del comercio ni al asistente de la persona. No hay app de consumidor ni marca frente a la persona. Si la conversación deriva a «reemplazo», se corrige en la reunión: se pierde el encuadre y con él la venta.
RC-5 Paga el comercio, y solo el comercio. Ni el comprador ni el asistente pagan. El modelo bilateral C-token / P-token quedó archivado; reabrirlo es una decisión de producto, no una concesión de negociación.
Comercial

Acciones

El registro de lo que se hizo para vender: a quién, por dónde, qué pasó y qué sigue. Igual que la bitácora deja anotada la decisión y no solo el resultado, acá queda anotado qué se aprendió de cada contacto, que es lo que se pierde cuando el seguimiento vive en la cabeza.

Acciones registradas

0

El seguimiento parte hoy, 23-ago-2026. Nada anterior está documentado.

Cuentas en seguimiento

0

Sin organizaciones en conversación registradas.

Ventas cerradas

0

Estructural, no comercial: el nivel 03 todavía no se puede cobrar.

Cómo se alimenta. Francisco avisa la acción —una reunión, un correo, un análisis entregado, una respuesta— y queda anotada acá con su C-xx. Sin cifras inventadas y sin optimismo: si un contacto no contestó, se anota que no contestó. Una acción cerrada no se borra, se marca cerrada con lo que resultó.

Registro

IDFechaOrganizaciónQué se hizo y qué resultóSiguiente paso
Sin acciones registradas todavía. La primera queda anotada apenas ocurra.

Cuentas

OrganizaciónIndustriaNivelDónde está y qué la trabaEstado
Sin cuentas en seguimiento. La industria se anota como Retail, Servicios o Sistemas, igual que en el producto.
Lo que falta para que esto deje de ser una tabla a mano. No hay cuenta del comercio (P1), ni métricas de distribución (P18), ni metering (P19). Mientras esas tres no existan, el seguimiento comercial y el estado real de una cuenta viven en este documento y en ninguna otra parte.
Seguimiento abierto el 23-ago-2026 · el embudo sale de las etapas en src/data/stages.ts · la tarifa, de src/config/pricing.ts
Gestión

Backlog

Lo que falta y por qué no se hizo todavía, que es el dato que se pierde con el tiempo. Acá van las decisiones: producto, negocio y orden. La construcción —las 21 piezas y la deuda de los hallazgos— tiene su propia lista en el BacklogTI. El backlog del motor (B-01…B-30) vive en la bitácora de VADO mientras no haya cutover.

Cómo se lee. Bloquea impide vender o cobrar hoy. Importa hay que resolverlo antes de escalar. Cuando toque es deuda consciente. La columna Por qué sigue ahí es la razón por la que se postergó, para no rediscutirla desde cero.

Producto y negocio

IDQué faltaPor qué sigue ahíPrioridad
AR-02 Fijar la tarifa en token. Todas las líneas de pricing salen null = TBD. Es la decisión comercial que falta, no un bug: el código ya muestra «TBD» a propósito. Sin número no se puede cerrar una venta del nivel 03, y por eso RC-3 prohíbe cotizarlo (embudo). Bloquea
AR-03 Mecanismo del nivel 02. Francisco cerró el modelo el 23-ago: ARAIS gratis siempre, ARTwin gratis 3 meses y después token. La contraprestación ya tiene nombre y forma: el comercio instala su ARTag —un archivo en /.well-known/agentroom.json— y eso activa el ARTwin. Falta construirlo entero, y nada corta a los 3 meses. La decisión comercial ya no está abierta. El ARTag es la bisagra: antes de él el ARTwin es nuestro activo —construido con una captura que pagamos— y el comercio sabe que existe sin poder llevárselo; después es suyo y se publica. Eso hace que activar sea un acto voluntario y verificable, y de paso resuelve la autorización para publicar su catálogo, que el correo por sí solo no da. Riesgo de nombre: «Tag» evoca el Google Tag, y un snippet sería incoherente —un agente no ejecuta JavaScript, L04 mide eso—; la norma lo advierte en mayúsculas. Importa
AR-04 Los servicios del nivel 03 están nombrados, no construidos: Handshake, auditoría, monitoreo, reportes, sala cerrada y control de fraude. Se anuncian en la landing como lo que trae el nivel pagado. «Mostrar sí, prometer no»: mientras no existan, no se cobran ni se prometen con fecha. Importa
AR-05 Colisión de marca. Hay homónimos de «AgentRoom». Falta verificar registrabilidad y despeje antes de invertir en la marca. El dominio ya está en vivo y hay enlaces publicados. Cambiar de nombre después cuesta; verificar antes de escalar el gasto en marca. Importa
AR-06 Las 21 piezas de producto por construir (14 bloqueantes). La landing describe un recorrido cuyo tramo pagado aún es promesa. Desglose pieza por pieza en el BacklogTI. Es el mapa de lo que separa la narrativa de la operación. Se prioriza por fases (adhesión → caja → transacción), no en bloque. Importa

Análisis por industria

IDQué faltaPor qué sigue ahíPrioridad
AR-07 Checks propios de Sistemas/SaaS y de perfil financiero. La capa de Resolución (22-ago) cubre servicios e instituciones, pero un banco o un SaaS necesitan puntos propios. Hereda el B-29 del motor: el clasificador entiende «producto» como bien con precio y carro. La transacción equivalente —simular un crédito, contratar una licencia— necesita checks propios. Importa

Infraestructura y orden

IDQué faltaPor qué sigue ahíPrioridad
AR-01 Cutover de vado.junngla.com → AgentRoom. Hoy este repo es una copia, no una mudanza; VADO sigue sirviendo su dominio. Copiar y no mudar fue deliberado: mientras VADO tenga clientes en Puertas D, apagarlo es una decisión aparte que hay que planear, no un efecto colateral de la fusión. Cuando toque
AR-08 El backlog del motor (B-01…B-30) vive en el BBP de VADO. Cuando haya cutover hay que traerlo o unificar los dos documentos. Duplicar 30 líneas que aún pueden moverse en VADO invita a que se desincronicen. Se cruza por enlace hasta el cutover (AR-01). Cuando toque
AR-10 Bajar la nomenclatura al código y a la landing. La norma quedó fijada el 23-ago (NOMENCLATURA.md), pero el producto todavía dice AgentRoom-AIScore, «Agent Room Manager» y token separado, y el motor sigue llamando gemelo al ARTwin. Los tres primeros son copy y se cierran cuando se toque cada archivo. El renombre de gemelo a ARTwin atraviesa el motor: se hace después de la red de pruebas (P21), no antes, porque hoy no hay cómo verificar que un renombre masivo no rompió nada. Importa
AR-13 vercel --prod despliega el working tree, no el HEAD. Y el repo vive en Dropbox, compartido por varias sesiones a la vez: cualquier deploy publica lo que haya en disco en ese instante, incluidos los cambios sin commitear de otro. Descubierto el 23-ago al investigar por qué llms.txt se veía distinto desde dos sesiones, y sigue vivo: al cierre del día hay cinco cosas publicadas y sin versionar en el repo de la landing, incluida src/app/bot/ sin trackear —el caso más frágil, porque un checkout limpio se lleva la carpeta entera y agentroom.io/bot vuelve a dar 404—. El riesgo no es el obvio: lo que se edita ya está publicado sin pasar por git, así que un checkout limpio o un deploy desde CI lo revertiría en silencio. Mientras no haya CI (P20), la regla es commitear antes de desplegar y no dar por versionado lo que se ve en producción. Importa
AR-14 Avisar a quien tuviera permitido el rastreador viejo. El motor manda AgentRoomBot/1.0 desde el 20-ago (motor/guardas.ts); un WAF que tenía VadoBot en su regla de excepción ahora ve un bot desconocido y le sirve una página de bloqueo. Mitigado en parte el 23-ago: el +URL del user-agent apuntaba a agentroom.io/bot y daba 404; ya existe esa página, con el user-agent exacto, cómo permitirlo o bloquearlo y el aviso del cambio de nombre. Queda el aviso activo a quien corresponda. El síntoma calza exacto. En la última corrida hubo 42 sitios de 385 ilegibles y ninguno fue por robots.txt: los 42 son cascarón —WAF o portada sin JavaScript—, que es lo que produce un user-agent que dejó de estar en la lista. Ojo con el universo: esos 42 son del Radar —sitios que medimos sin que nadie lo pidiera—, así que dimensionan el fenómeno y no son una lista de afectados. Los destinatarios de un aviso salen de leads, y hoy hay uno. Que la página de identificación exista importa igual: es lo primero que mira un administrador que ve un bot desconocido en sus logs, y hasta hoy encontraba un 404. Avisar activamente es decisión de Francisco. Importa
AR-15 «Puerta» está por significar dos cosas. Las Puertas A/B/C/D viven en comentarios del código, heredadas de VADO y fuera de la norma. Y ahora llega ARDoor, cuyo nombre comercial es literalmente «tu puerta» y va a material de venta. Dejó de ser deuda de prolijidad y pasó a ser un choque con fecha: en cuanto ARDoor se publique, «puerta» significará el sello del comercio para el cliente y el modo de servir el ARTwin para nosotros. Se resuelven juntas o no se resuelve ninguna. Lo natural es retirar el uso interno —las letras no dicen nada y app, api, archivo y ruta se entienden solas— y dejar «puerta» libre para el cliente. Tenant solo acepta C o D, así que el cambio es acotado. Importa
AR-16 El MCP responde sin saber quién pregunta. agentroom.io/api/mcp acepta tools/list y tools/call sin credencial alguna —verificado en vivo el 24-ago—. No hay autenticación en motor/handlers/mcp.ts. No es una fuga: es una ausencia de identidad. El corte por tenant sí funciona —un dominio sin servicio activo devuelve «el comercio no tiene el servicio activo», comprobado—, así que nadie saca el catálogo de quien no autorizó. Lo que falta es saber quién preguntó. Contradice una regla del modelo —«los que llegan deben autenticarse», textual de Francisco— y además choca con el producto que se está por vender: se anuncia auditoría en días, y Y eso vacía la auditoría antes de construirla: una constancia de que «alguien» consultó algo no sirve en una disputa, que es exactamente para lo que se vende. Bloquea todo lo que dependa de auditoría, no es una historia más de la lista. Bloquea
AR-17 La auditoría y el controlador ya tienen nombre técnico. Francisco los bautizó el 5-sep-2026: ARScribe para la auditoría —comercial Trust & Audit— y ARSteward para el controlador de marco —comercial Policy Engine—. Ambos en NOMENCLATURA.md:50-51. Cerrado, y con 18 días de retraso en este documento: la norma se actualizó el 5-sep y el BBP siguió diciendo solo «controlador de marco» hasta el 23-sep. Ninguno de los dos nombres aparecía una sola vez acá. No fue un olvido puntual: cuando la norma cambia, nada avisa a los documentos que la citan, y este es el que la explica. La defensa barata es revisar el diccionario contra NOMENCLATURA.md cada vez que se toque la norma —son dos archivos, no veinte—. Cerrado
AR-18 La landing publica un paso que el backlog declara ajeno. En el flujo de consulta, el paso 02 dice «Prueba que actúa por tu cliente». El BBP dice de P12, el mandato del consumidor: «territorio de Pepe, no de AgentRoom; puede que no se construya nunca acá». No es una brecha de planificación, es una inconsistencia entre dos documentos nuestros, y las dos no pueden tener razón. O P12 entra al alcance de AgentRoom, o ese paso sale del recorrido publicado. Mientras siga así, la web promete algo que el backlog dice que quizá no hagamos. Importa
AR-19 El «gratis» del counter nació como inferencia y terminó siendo producto. «La puerta es gratis» se publicó el 24-ago deducida de que el contador de token parte al abrir la sala. El 25-ago quedó formalizada: src/data/stages.ts declara la etapa 03 con precio: Gratis y free: true. Ya no es una frase suelta en la landing: es una línea de la escalera, y la frontera del cobro se movió de la 03 a la 04 por su causa. Queda cerrado como riesgo de copy. Lo que vale conservar es cómo pasó: una deducción entre sesiones se publicó, y dos días después el producto se acomodó a ella. Salió bien —la etapa gratis es buena idea—, pero el camino fue al revés del que corresponde: primero se dijo, después se decidió. Cuando toque
AR-20 El nombre del ARTwin se puede calcular. Se guarda como blob público con addRandomSuffix: false y su id es sha1(dominio|construido_en) truncado a 12 hex. Como /api/analizar es público, quien dispara el análisis conoce las dos entradas: la ventana no son 48 bits, colapsa a milisegundos. Contradice I7 justo donde el modelo comercial promete que el ARTwin es nuestro activo hasta que el cliente instale su ARTag. La vía no es el handler —handlers/gemelo.ts exige tenant activo, comprobado— sino el blob. La defensa no puede ser que la URL no se adivina, porque se calcula. Bloquea
AR-21 El enlace del informe no se puede revocar. También es blob público, pero su id es randomUUID() —122 bits, no derivable—. El problema es otro: se guarda con cacheControlMaxAge: 31_536_000 (un año) y el handler lo sirve con s-maxage=3600, y no hay un solo del() en el repo. No es la misma falla que AR-20 y conviene no confundirlas. Un id de 122 bits que no se deriva de nada es una capability URL, patrón legítimo —el mismo de cualquier «ver mi documento» sin login—. Acá la defensa sí es que la URL no se adivina, y sería suficiente si se pudiera revocar. No se puede: un enlace filtrado una vez queda filtrado para siempre, y además cacheado en la CDN. El informe lleva datos del comercio. Revisar contra Ley 21.719. Importa
AR-33 Un valor que describe un estado, escrito a mano el día que era cierto. Tres apariciones en una semana, en tres archivos sin relación entre sí: el denominador 16 del informe cuando el análisis ya medía 26 (AR-30), llms.txt diciendo «dieciséis puntos», y /api/salud afirmando sondas: 'apagadas' después de encender cuatro asistentes. Cuarta el 4-sep: Model.tsx escribía los nombres técnicos de las etapas y MapaMini.tsx no, siendo el mismo mapa sobre el mismo dato (corregido en f43c683). No son tres descuidos, es un patrón con una causa única: el valor se afirma en vez de consultarse, así que envejece en silencio y ninguna prueba falla cuando deja de ser cierto —sigue siendo un literal válido—. Un endpoint de salud que miente es peor que no tenerlo: se consulta justamente cuando hay que decidir rápido. La regla, y sirve de criterio de revisión: si un dato describe el estado del sistema, se calcula; si es un literal, tiene fecha de vencimiento y nadie la anotó. Y una variante en el otro extremo, la de la verificación: se dio por presente el llms.txt de un dominio porque la ruta responde 200, y lo que devuelve es el HTML de la portada —el sitio trata la ruta como segmento de idioma—. El código de respuesta no prueba que el recurso exista, prueba que el servidor contestó; hay que mirar el cuerpo. Es el mismo defecto visto al revés: allá se afirma sin consultar, acá se consulta la señal equivocada. La cuarta llegó en tres días, y trae una variante peor: no es un literal desactualizado sino dos vistas del mismo dato que divergieron —compartir el dato no basta si cada vista decide por su cuenta qué campos muestra—. Va a haber una quinta. Importa
AR-34 La web promete una instrucción exacta que el motor no tiene cómo dar. stages.ts:70 y la ficha de AI Presence dicen que las brechas que solo puede cerrar el cliente «te las decimos con la instrucción exacta». Verificado en motor/tipos.ts:112-119: el check tiene que_significa —qué quiere decir la brecha— y arregla, que es un enum de tres valores (vado | comercio | ambos) y solo dice quién la cierra. Ningún campo dice cómo. Es la única de este grupo que ya está publicada y prometida, y por eso va primero: no es una función que falta, es una afirmación comercial en vivo sin respaldo técnico. Se cierra con un campo como_se_corrige en cada check y una prueba que falle si queda vacío —sin esa prueba el campo se llena en los primeros y se abandona en los últimos, que es como se llegó acá—. Mientras no exista, la alternativa honesta es bajar la promesa del copy: prometer menos es reversible, incumplir no. Urgente
AR-35 El registro de lecturas no existe, y es lo único del panel que cambiaría solo. Quién consultó el ARTwin, cuándo y qué preguntó. Todo lo demás que muestra el CustomerRoom —el informe, el puntaje, el catálogo— solo cambia cuando el cliente hace algo. Se anota como decisión, no como pieza, porque la afirmación de fondo —que esto es lo que hace volver a abrir el panel— es una hipótesis de retención sin evidencia todavía, y abrir pieza daría por decidido que se construye. Tiene una dependencia dura: sin P18 no hay de dónde leer las consultas. Decisión de Francisco: si el registro de lecturas entra al alcance del panel o queda para después de que haya tráfico real que registrar. Importa
AR-22 «token» significa tres cosas, y la peor colisión es con toda la industria. Desde el 26-ago es la unidad de cobro. Ya era los tokens de los modelos (motor/llm.ts, tipos.ts:211-225) y el token de acceso que la organización pega en su asistente. La colisión externa no se arregla renombrando nada nuestro: en un producto de IA token ya significa unidad de texto de un modelo, así que «cobramos por tokens» se leerá como que facturamos consumo de LLM. Y la familiaridad que hace atractiva la palabra es la misma que la vuelve engañosa: el cliente ya sabe qué es un token, y lo que sabe es que se factura por volumen de texto.

Estado verificado de las otras dos: el costo en tokens_entrada/salida viaja en el JSON del informe pero no se renderiza —la ambigüedad es interna, y se vuelve visible el día que alguien exponga ese campo—. La que sí ve el cliente es la credencial: render.ts la llama token, y el onboarding entrega «tu token» dos pantallas antes de cobrar «por tokens». Esa es la más fácil de mover.

Tres salidas, y es decisión de Francisco: dejarlo tal cual, ponerle apellido a la unidad, o mirar créditos —unidad establecida en herramientas de IA; AthenaHQ cobra «US$ 295/mes, 3.600 créditos»—, que es la única palabra que resuelve las tres colisiones de una vez. Se eligió token por una buena razón —no tener que explicar la unidad—; el costo de esa ventaja es lo que queda anotado acá.
Importa
AR-23 El árbol quedó en un estado intermedio consciente: el copy dice token, los identificadores TypeScript siguen diciendo ARU —merchantARU, formatARU, ARURate, ARUSide, CustomerARU, ProviderARU— en tres archivos: types/models.ts, config/pricing.ts y sections/Pricing.tsx. No es una inconsistencia, es una decisión: Francisco lo derivó al squad. Se anota para que nadie lo «arregle» a medias ni lo lea como descuido. Mismo criterio que gemelo → ARTwin, que también espera. Regla general que este BBP ya viene aplicando: el copy se renombra cuando se decide; los identificadores, cuando hay pruebas que respalden el cambio. Cuando toque
AR-24 El comparador que existe no compara lo que hay que mostrar. compararAntesYDespues() (motor/comparar.ts:73-78) recibe un informe y un gemelo, no dos mediciones. Su único llamador es cli/comparar.ts. Es una proyección de lo que la publicación resolvería, no un delta entre el antes y el después. Si alguien la reusa para mostrarle al comercio que su puntaje subió, publicaríamos una proyección como si fuera una medición —exactamente lo que I5 prohíbe—. El recálculo necesita comparador propio y captura nueva forzada. Importa
AR-25 El correo del solicitante viaja en la ruta del objeto. motor/cuentas.ts:70-72 escribe en cuentas/<correo>/<timestamp>.json, con access: 'public' y addRandomSuffix: false. El dato personal es el nombre del recurso, así que no se puede minimizar sin cambiar la llave. Falla de minimización frente a la Ley 21.719, y es distinta de AR-21: ahí el problema es no poder revocar, acá es que el identificador expone a la persona. Bloquea
AR-26 Los seis espacios de Blob no tienen namespace de proyecto. informes/, leads/, gemelos/, tenants/, ofertas/ y cuentas/ son constantes planas. Nadie ha comprobado si agentroom-web y comprable-web comparten el token de Blob. Si lo comparten, informesDe() filtra por correo pero no por producto: el panel le listaría a una persona sus análisis del otro producto. No es fuga hacia un tercero, es fuga entre productos bajo la misma persona. Comprobarlo es entrar a la consola y mirar; hasta entonces siguen congelados entitlement.ts y gemelo.ts. Prefijar es barato hoy y caro después de la primera cuenta pagada. Bloquea
AR-27 ¿El ARTag admite un segundo canal, DNS TXT, además del archivo? La norma funde dos trabajos distintos: probar la propiedad del dominio —que un registro DNS hace mejor y de forma universal— y ser señal legible en el sitio, que sí exige el archivo por I12. Es la decisión que más bloquea: sin ella no se escribe una sola instrucción de instalación y el paso queda construido sin que nadie sepa usarlo. Si es sí, cambia NOMENCLATURA.md §2 y un comercio en Shopify o Wix queda activo servido por Puerta C —pierde la señal en su propio dominio, que es menos valiosa—. Si es no, Shopify y Wix quedan fuera, y eso sí cambia a quién se le puede vender y habría que decirlo en la landing. La fija Francisco. Bloquea
AR-28 Se publican los puntajes de 201 organizaciones que no lo pidieron. El archivo lista 373 dominios y 201 traen puntaje publicado —conteo exacto verificado el 1-sep—. La cifra de ~548 que circuló hasta ahora era incorrecta y se había propagado desde el veredicto del 24-ago; el riesgo se dimensiona sobre 201. src/data/public-scores.ts, desde un snapshot que además ya no se puede regenerar porque el generador no está en el repo. Cruza con la comparabilidad: esos puntajes se midieron con un asistente, así que al encender más dejan de ser comparables con los nuevos —publicar las dos poblaciones mezcladas sin decirlo rompe I5—. Recomendación del squad: despublicar los nombres y dejar agregados por país y categoría, que conserva la demostración de escala y elimina casi todo el riesgo. Importa
AR-29 No hay acuerdo de tratamiento de datos con ninguno de los cinco proveedores de modelo. El motor manda extractos de sitios de terceros a modelos fuera de Chile, y esos extractos pueden contener correos y teléfonos de personas que nunca consintieron nada. Es transferencia internacional de datos personales sin base de licitud ni cláusulas, con la vigencia plena de la Ley 21.719 el 1-dic-2026. Es el único tramo que no depende de nosotros —lo firma cada proveedor—, así que hay que empezarlo aunque cierre último. Bloquea
AR-30 El «16» tiene una tercera superficie. Además de render.ts:288 y del stream NDJSON en handlers/analizar.ts:220, pruebas/listar-blobs.mts:8 imprime el mismo denominador fijo. Esta no se sirve, así que no afecta al cliente, pero importa por el criterio de cierre: un grep "total: 16" no captura la forma /16 y deja pasar las otras dos. El invariante correcto no es «numerador ≤ denominador» sino denominador impreso idéntico a puntaje.total, porque el total varía legítimamente entre versiones del motor: en disco hay informes con 26 y con 24. Cuando toque
AR-31 Guardar el ARTwin en cada análisis cambia el perfil de datos del producto. Con P22, cada análisis gratis archiva de forma permanente el catálogo y los contactos de una organización que no pidió nada. No hay un solo del() en el repositorio. Guardar no es publicar —I7 se respeta—, pero significa tener en reposo datos inferidos bajo el nombre de otra empresa, sin retención declarada. La condición de salida a producción propuesta por el squad es suprimir a los 90 días todo ARTwin sin tenant activo. Importa
AR-32 Los ~30 proyectos del portafolio comparten una sola cuenta de Vercel. El orgId de AgentRoom es el mismo de Junngla, Quanntum, TheRoK3T y los no asignados. No hay aislamiento entre un proyecto en producción con datos de clientes y cualquier experimento del portafolio: mismo alcance de permisos y de facturación. Es decisión de holding, no del squad, y por eso se anota acá en vez de resolverse. Importa
AR-22 El informe que se le entrega al cliente lleva la marca anterior. No es un residuo interno: son siete apariciones en páginas que se sirven, y dos de ellas son el encabezado y el pie del informe (motor/render.ts:182 y :455). Otras tres son títulos de pestaña (render.ts:60, :356, handlers/resultado.ts:39) y dos, páginas de error (handlers/informe.ts:36, handlers/confirmar.ts:39). El comercio abre su informe y la pestaña dice Vado, el encabezado dice Vado y el pie dice Vado. La excepción de la norma no lo cubre: NOMENCLATURA.md §5 deprecó VADO con una sola salvedad —la ruta /apps/vado, intocable porque hay Puertas D de clientes apuntando ahí—, y estas siete no son esa ruta sino copy servido. Cae en el mismo archivo que el 22/16, así que se corrige en la misma pasada. Importa
AR-09 La red de seguridad (Fase 0 de la auditoría): tests de los 26 puntos del ARAIS con las fixtures reales, CI/CD con typecheck de ambos tsconfig, y subir next a 16.3.1. Cierra los hallazgos H1, H2 y H3 (P21, P20, D-01 del BacklogTI). Es lo primero del plan: hasta el 25-ago no había una sola prueba sobre un motor en producción, y las que hay aún no bloquean un merge, y ninguna de las 21 piezas se puede construir con seguridad sin esto. No construye producto, pero desbloquea todo lo que sí. Bloquea
Al cerrar una línea no se borra: se mueve a la bitácora con la fecha y qué se hizo. El backlog dice lo que falta; la bitácora, lo que ya pasó.
Gestión

Bitácora

Lo que ya pasó en AgentRoom, en orden inverso. Cada entrada deja anotada la decisión, no solo el resultado. La historia del motor (jul–ago) está en la bitácora de VADO.

Cada entrada dice lo que era cierto el día que se escribió, y no se reescribe después. Varias quedaron desactualizadas a propósito —la del 25-ago dice que Operar es la 05 y Colaborar la 06, y el 4-sep se invirtieron—. Eso es lo que hace útil una bitácora: si se corrigiera hacia atrás, dejaría de poder mostrar cómo se llegó acá y no habría dónde ver qué se creyó antes de saber. Para el estado actual están el mapa y el diccionario, que sí se mantienen al día. Nunca cites una entrada de bitácora como estado vigente.
23-sep-2026

Dos inconsistencias del propio documento: un naming que no bajó y dos identificadores usados dos veces

ARScribe y ARSteward no aparecían una sola vez en el BBP. Francisco los bautizó el 5-sep y quedaron en NOMENCLATURA.md:50-51; el diccionario de este documento siguió diciendo «controlador de marco» a secas durante dieciocho días. Ya están: los dos con entrada propia, las filas de minuta y controlador de marco apuntando a ellos, el par comercial/técnico en los títulos de Policy Engine y Trust & Audit, y P37 renombrada. AR-17 queda cerrado.

Lo que hay que aprender no es que se olvidó: cuando la norma cambia, nada avisa a los documentos que la citan, y este es justamente el que la explica. Son dos archivos —el diccionario y NOMENCLATURA.md—, así que la defensa es barata: revisarlos juntos cada vez que se toque la norma.

Y P41 y P42 estaban usados dos veces, con contenido distinto. Una vez para Agent Reputation y Agent Certification, otra para «techo de gasto que corta» y «control de fraude y abuso». La bitácora desempata sin ambigüedad: la entrada del 30-ago dice que Reputation y Certification «entran al catastro recién hoy como P41 y P42», y las fichas #s-reputation y #s-certification y el mapa ya los usaban así. Ese par se queda. El bloque «Prometido en la web» había numerado su propia serie desde P41 ignorando que los dos primeros estaban tomados; sus dos chocados pasan a P48 y P49. Se movió lo mínimo: P43–P47 no chocaban con nada y no se tocaron, aunque eso le rompa la contigüedad al bloque. Catastro: 49 piezas.

Por qué se decidió acá y no se escaló: no era una elección entre dos versiones que Francisco hubiera confirmado, era un error de numeración con evidencia documental fechada de un solo lado. Una colisión de identificadores no se resuelve preguntando cuál gusta más, sino cuál llegó primero y quién ya lo está citando.

04-sep-2026

Dos fichas nuevas de tres candidatos, y la tercera resultó más barata de lo que parecía

AR-34 —y va primero de todo el backlog—: la web promete que las brechas que solo puede cerrar el cliente «te las decimos con la instrucción exacta». Verificado contra motor/tipos.ts: el check tiene que_significa, que explica la brecha, y arregla, que es un enum de tres valores y solo dice quién la cierra. Ningún campo dice cómo. No es una función que falta: es una afirmación comercial ya publicada sin respaldo técnico, y mientras no exista el campo, la salida honesta es bajar la promesa —prometer menos es reversible, incumplir no—.

AR-35, el registro de lecturas, entra como decisión y no como pieza. Que sea «lo único que hace volver a abrir el panel» es una hipótesis de retención razonable y sin evidencia todavía; abrirle pieza daría por decidido que se construye. Además depende de P18: sin métricas de distribución no hay consultas que registrar.

El tercero no lleva ficha, y por una razón que conviene dejar escrita: venía como «no se guarda histórico de puntaje», y al verificarlo resultó que sí se guarda —guardar() nunca borra e informesDe() ya lista los informes de un correo con su fecha—. Los datos para dibujar «subiste 9» están en disco desde hace semanas; lo que falta es leerlos como serie. Eso no es una pieza nueva, es alcance del paso 10 del tablero, donde quedó anotado —junto con la trampa real, que no es técnica sino de método: recienteDe() ya descarta informes de otra versión del motor porque comparar instrumentos distintos no es comparar, y una serie que mezcla denominadores miente igual que un puntaje sin denominador—. Un hallazgo verificado puede achicar el trabajo, no solo agrandarlo.

Y el llms.txt que respondía 200 devolviendo la portada entra a AR-33 como variante, no como incidencia suelta: es el mismo defecto visto al revés. En los cuatro casos anteriores el valor se afirma sin consultarse; acá se consulta, pero la señal equivocada —el código de respuesta prueba que el servidor contestó, no que el recurso exista—. Vale para nosotros tanto como para el motor: media docena de verificaciones de esta bitácora se hicieron con curl -o /dev/null -w '%{http_code}', y funcionaron por suerte, no por método.

04-sep-2026

El CustomerRoom se dibuja entero, y con datos de verdad cambian los requerimientos

Maqueta navegable en agentroom.io/panel/muestra —noindex y rotulada—, con el mismo componente y los mismos tokens del sitio. Se llenó con el informe real de www.junngla.com, corrido ese día con el motor 2.2.0 y sondas: 23 páginas, 48 de 100 sobre los 16 puntos aplicables, y cero de cinco asistentes. Los requerimientos quedaron anotados en CustomerRoom.

La idea que ordena el panel: no es el informe con login. El informe contesta «cómo estoy»; el panel contesta «qué me falta y qué hago ahora». De ahí sale que cada brecha lleve dueño y que cada bloque termine en una acción o en el motivo de que no haya ninguna. Y se navega con el mismo mapa de dos capas que explica el producto: etapas arriba, herramientas al lado.

Dibujarlo con datos reales corrigió tres cosas que con una tienda inventada calzaban. No hay histórico contra qué comparar el puntaje, así que dice «Primer informe» en vez de un +0; no hay registro de lecturas, así que ese bloque queda vacío explicando por qué; y las brechas muestran la severidad que trae el motor y no un «+8 de puntaje» que el motor nunca calculó. Una maqueta con datos de relleno habría validado un panel que no funciona.

Apareció una promesa sin respaldo: la landing dice que las brechas que solo puede cerrar el cliente «te las decimos con la instrucción exacta», y el motor no emite ninguna instrucción —tiene que_significa y arregla, ninguno dice qué hacer—. Se escribieron a mano las nueve que fallan en junngla.com y las otras diecisiete muestran el hueco. El requerimiento correcto es un campo en el check.

Y dos errores propios, encontrados por el motor y por el reloj. Se daba llms.txt por presente en junngla.com porque responde 200: devuelve el HTML de la portada —el sitio trata la ruta como segmento de idioma—, o sea que comprobar por código de respuesta da falso positivo. Y la fecha de la corrida se mostraba un día antes: new Date("2026-09-04") es medianoche UTC, que en Chile es el día anterior. Una fecha ISO sin hora es un día, no un instante, y habría envejecido mal justo en el dato que ahora va destacado.

Entran dos colores de estado —verde listo y rojo falla— como tokens en los tres temas, solo dentro del CustomerRoom. En la web pública el estado se sigue diciendo con peso, opacidad y borde, porque ahí ámbar y azul ya significan lados de una conversación. El panel es privado y un informe de 26 puntos se recorre salteado: es el caso donde el color hace el trabajo.

04-sep-2026

Colaborar se adelanta a Operar: la escalera cambia de orden en el tramo de pago

Colaborar · A2ARoom pasa a ser la 05 y Operar · TrxRoom la 06. El tramo gratis no se toca —Ver, Existir y Catálogo siguen 01, 02 y 03— y la frontera del cobro tampoco: sigue en 04, Responder. Lo que se invierte es el orden de las dos últimas.

Por qué importa el orden y no es cosmético. La escalera no es una lista de funcionalidades: es lo que le decimos a un cliente que viene después de lo que ya tiene. Con Operar en la 05, el paso siguiente a que tu agente conteste era que tu agente cobre —lo que exige medios de pago, compromiso de stock y precio, y disputas—. Con Colaborar en la 05, el paso siguiente es que tu agente hable con el agente de otra organización, que no mueve dinero y no necesita nada de eso. Es el escalón más corto de los dos, y transaccionar queda al final, que es donde está el riesgo.

Qué se corrigió y qué no. Se reordenó todo lo que afirma el estado actual: el eje del mapa, las columnas (Agent Exchange se corre a la 05 y el hueco «sin solución» a la 06, que sigue siendo Operar), la ficha de Agent Exchange, la tabla de las seis etapas y la equivalencia del embudo viejo. No se tocaron las entradas de bitácora anteriores: la del 25-ago dice «Operar es 05 y Colaborar 06» y así se queda, porque era cierto ese día. Esta entrada es la que manda.

Ojo con lo que quedó fuera. Ninguna de las 42 piezas cambia de dueño ni de estado: A2ARoom sigue en 0 de 6 y TrxRoom en 2 de 8. Adelantar Colaborar en el relato no la adelanta en el catastro, y conviene no confundir las dos cosas: hoy la etapa 05 es la que menos código tiene.

04-sep-2026

Reducir la web a lo gratis dejó el mapa grande sin página, y el chico intacto

Al publicar solo lo gratis se borraron /profundidad, /tarifas y las seis páginas de solución de pago. El mapa de dos capas vivía en /profundidad, así que salió de la web con ella: sections/Model.tsx y ProfundidadPage.tsx siguen en el repositorio y ya no los monta nadie. Es código vivo sin ruta, y conviene saberlo antes de que alguien lo dé por publicado.

El mapa chico sí sobrevivió, y bien. Verificado en vivo: las cuatro páginas que quedan lo llevan, enlazan a las cuatro que existen y ninguna apunta a un 404, porque data/mapa.ts se recortó junto con el catálogo. Ese es exactamente el motivo por el que los tramos se habían sacado del componente a un dato compartido: con la lista escrita dentro de cada mapa, el recorte habría dejado seis enlaces rotos en producción sin que nada fallara al compilar.

Fechas corregidas, y no es cosmético. Tres entradas escritas hoy figuraban como 28-ago y quedaban por encima de las del 02-sep: en una bitácora ordenada al revés, una fecha equivocada no solo miente sobre cuándo pasó algo —rompe el orden y hace ilegible el resto—. También subió la del CustomerRoom, que es de hoy y decía 01-sep. Es el mismo error que ya se había corregido el 01-sep: en una sesión que dura días, la fecha se copia de la entrada anterior por inercia. La defensa es fecharla contra los commits, no contra la memoria.

Y el patrón del literal ya tiene ficha propia: AR-33. Tercera aparición en una semana —el denominador 16, el llms.txt, y ahora /api/salud declarando las sondas apagadas con cuatro encendidas—. Tres archivos sin relación y una sola causa: el valor se afirma en vez de consultarse, y ninguna prueba falla cuando deja de ser cierto. Se anota como patrón y no como tres incidencias porque la cuarta ya está escrita en alguna parte.

04-sep-2026

Las sondas se encienden: cuatro de cinco asistentes verificados contra su API real, y el costo resultó ser 58 veces distinto entre ellos

Hasta hoy los cinco adaptadores estaban escritos desde la documentación y solo gemini se había ejecutado alguna vez. Francisco cargó saldo y las claves, y se probó uno por uno, una llamada cada uno, con la misma pregunta y sin nombrar la marca. PROBADOS queda en cuatro de cinco (commits 11d12f0, 3a7c155).

asistentemodeloentrada / salidacosto medido
AR-36 Nuestro propio robots.txt le prohíbe el ARTwin a los rastreadores de IA. agentroom.io/robots.txt declara Disallow: /gemelo/ en los quince bloques, incluidos los que nombra uno por uno —GPTBot, OAI-SearchBot, ChatGPT-User—. Y /gemelo/<dominio> es exactamente donde la Puerta C sirve el ARTwin publicado. Verificado en producción el 5-sep-2026. La solución que se llama «que te encuentren y te entiendan» le está diciendo a quien la buscaría que no entre. No es un detalle de configuración: es el producto contradiciéndose en la primera superficie que un agente lee, y es justo lo que mide nuestro propio L05. Hay que separar lo que se protege —/api/, /panel, /entrar— de lo que existe para ser leído. Mientras siga así, cada ARTwin que se publique por Puerta C nace invisible. Bloquea
AR-27 · al día Respondida el 2-sep-2026: el ARTag admite DNS TXT además del archivo (F-09). El BBP la seguía publicando como decisión abierta. Mientras figuró abierta mantuvo congeladas las instrucciones de instalación, que es el único paso del recorrido que ocurre fuera de AgentRoom. Lo que queda no es decidir sino ejecutar: cambiar NOMENCLATURA.md §2, que hoy describe un solo canal en singular. Consecuencia ya evaluada y aceptada: un comercio en Shopify o Wix queda activo servido por Puerta C. Decidida
AR-34 El sitio ya declara qué hace con los datos, y qué no puede deshacer. Se publicaron /terminos y /privacidad en los dos idiomas, y el aviso quedó junto al botón del formulario, no en un enlace escondido. Antes el footer enlazaba a href="#" mientras se pedía el correo sin decir para qué; hoy el sitio no tiene ningún enlace muerto. Dos decisiones de Francisco quedaron escritas. Pedir el informe es, en sí mismo, la autorización para analizar el dominio y enviar extractos a los proveedores de modelo. Y el borrado no se ejerce sobre sistemas de terceros: los asistentes a los que va la sonda no son nuestros, así que se suprime en lo propio y se deja de enviar. Lo que esto no reemplaza son los DPA con los cinco proveedores, que siguen sin firmar (B6), ni la capacidad técnica de borrar: sigue sin haber un solo del() en el repositorio, y la política ya promete supresión a los 90 días. Eso lo cierra el índice. Importa
perplexitysonar27 / 760USD 0,000787
claudeclaude-haiku-4-5-2025100115.447 / 808USD 0,019487
openaigpt-4.117.356 / 1.390USD 0,045832

Las 58 veces de diferencia no vienen de la tarifa sino de dónde ocurre la búsqueda. Perplexity la resuelve de su lado y cobra la pregunta; Claude y ChatGPT devuelven el contenido de los resultados dentro de la entrada, y esos tokens sí se cuentan. En el Radar completo eso es USD 0,29 con Perplexity contra USD 16,73 con ChatGPT, por la misma corrida. Quedó escrito en llm.ts junto a la tabla de tarifas, porque extrapolar de un proveedor a otro se equivoca por siete o por cincuenta —pasó dos veces el mismo día—.

Grok queda fuera, y no por saldo ni por clave: las dos funcionan. Su adaptador manda search_parameters y xAI lo descontinuó —«Live search is deprecated, switch to the Agent Tools API»—. Sin ese bloque el modelo responde pero no busca ni cita, y S25 mide justamente cuál es la fuente citada. Además grok-3 ya no existe: hoy hay grok-4.3, 4.5 y 4.6. Son dos cosas rotas, no una; el requerimiento está en 05-Notas/req-grok-agent-tools/.

De cinco adaptadores escritos contra el docsite, dos resultaron desactualizados. Ese es el costo de escribir contra documentación en vez de contra la API, y la razón por la que PROBADOS guarda fechas.

El hallazgo que no es técnico: los cuatro asistentes, con la misma pregunta y sin decir la marca, citaron entre 13 y 17 dominios cada uno —AWS, IBM, Microsoft, Salesforce—. AgentRoom no aparece en ninguno. Cero de cuatro. Es exactamente lo que S23 mide, y es el diagnóstico que le vendemos a los clientes, aplicado a nosotros.

04-sep-2026

Las claves dejan de vivir en Vercel: la aplicación las lee de Infisical en caliente

Regla de Francisco: una sola fuente de verdad. Tener las claves copiadas en las variables de Vercel significa que rotar una exige acordarse de dos lugares, y el que se olvida es siempre el segundo.

motor/secretos.ts (commit d8d0e77) las trae del proyecto agentroom de Infisical y las deja en process.env antes de que alguien las pida. Se engancha en desdeHandlerVercel, la única puerta por la que entran todas las rutas del motor. No hubo que tocar ninguno de los veinticinco puntos donde se lee process.env: todos leen dentro de funciones, no al importar, así que alcanzaba con llegar antes.

En Vercel quedan dos variables —la identidad de máquina— en vez de cinco claves de proveedor. Tres decisiones que valen más que el código: no pisa lo que ya está definido (un valor del shell manda sobre el remoto, así la migración es incremental), falla blando (si Infisical no responde se sigue con lo que hubiera; una capa de secretos que tumba el sitio cuando su proveedor tiene un mal día es peor que el problema que vino a resolver) y devuelve nombres, nunca valores.

Y apareció otro literal escrito a mano. /api/salud decía sondas: 'apagadas' con el texto fijo, y siguió diciéndolo después de encender cuatro asistentes —porque nunca lo consultaba, lo afirmaba—. Es el mismo defecto que el /16 del informe y por la misma causa: un valor que describe un estado, escrito el día que era cierto, que deja de serlo sin que nada falle. Ahora se calcula: "sondas": "4 de 5 verificados, 5 con credencial".

04-sep-2026

La web publica solo lo que hoy es gratis

Decisión de Francisco: mientras lo pagado no exista, no se anuncia. El sitio queda con el análisis, el Radar y publicar la organización en el formato que los agentes leen. Nada más, y nada de eso cuesta.

Se retiraron las etapas Responder, Operar y Colaborar; siete de las diez soluciones; las secciones de qué cubre, casos y catálogo; y las rutas /tarifas y /profundidad con sus pares en inglés. Con ellas se fue el nav de Tarifas, la línea que marcaba dónde empieza el cobro y los botones de precios. Agent Registry volvió después, gratis, dentro de la etapa Catálogo: para que ARDoorMan te nombre hay que estar registrado, y eso no se cobra.

Antes de tocar nada quedó el respaldo en la etiqueta respaldo-antes-de-solo-gratis-20260828, empujada a GitHub, más las ocho páginas servidas archivadas en 99-Archivo/web-completa-20260828/.

Tres textos se reescribieron en vez de borrarse, porque prometían lo que ya no se muestra: el lede de la escalera, el cierre y «¿Cuándo empieza a costar?». La pregunta «¿Quién paga?» se retiró: no aplica todavía. Se limpiaron también llms.txt y el agent-card, que es lo que leen los agentes.

Dos cosas que casi se pasan. Al filtrar los niveles por industria se tomaron por número, y el 03 es «responder», que es pagado —había que filtrar por free—. Y el mapa que va al pie de cada página de solución seguía dibujando las diez, porque no sale de solutions.ts sino de data/mapa.ts: una solución vive en dos archivos, y el recorte alcanzó solo a uno. La sección mostraba tres piezas y el mapa diez.

04-sep-2026

El CustomerRoom vuelve a tener sección propia, y el requerimiento se escribe como secuencia

Con la reestructura de tres niveles, el CustomerRoom había quedado absorbido dentro de Plataforma. Era un error de encaje: no es una solución —no se vende aparte— pero tampoco es una pieza huérfana, es dónde se administran todas las demás. Ahora tiene su propio grupo, OtrosDesa, debajo de Soluciones.

El requerimiento no se escribió como lista de funciones, sino como secuencia de dieciséis pasos, porque así se comporta: cada tramo desbloquea el siguiente. Escrito como funciones sueltas se pierde lo único que importa para priorizar —que el paso 09 sin el 08 no sirve de nada—.

Dos cosas cambiaron al verificar contra el código, y ninguna se podía saber leyendo el BBP anterior:

El paso 05 —avisarle al comercio que su ARTwin ya existe— figuraba bloqueado por P22. P22 ya se cerró: el ARTwin se guarda en cada análisis. Sigue sin construirse la vista, pero dejó de estar bloqueado, y es lo más barato que se puede construir hoy sobre lo que ya corre en producción. Es el paso que separa mostrar el problema de vender el remedio.

El paso 11 —entrar con Google— estaba anotado como «escrito y no expuesto». Ya no: EntrarForm muestra el botón cuando hayGoogle() es verdadero. Lo que falta son dos variables de entorno en Vercel —GOOGLE_CLIENT_ID y GOOGLE_CLIENT_SECRET—, verificado en vivo: la página en producción no ofrece Google. Un desarrollo terminado que no está configurado se ve exactamente igual que uno que no existe, y se prioriza distinto.

02-sep-2026

Los tres pendientes de #s-score, con archivo y línea: el gate en verde, el denominador con prueba, y las sondas hasta donde llegan sin credenciales

Lo primero que se encontró cambió el requerimiento. motor/render.ts:288 —la superficie «grave» del /16— ya estaba corregida desde el 26-ago (commit d8e7420), y este tablero, REQUERIMIENTOS-DESARROLLO.md y el veredicto del 1-sep seguían declarándola rota. Un arreglo sin prueba y sin registro deja tres documentos afirmando un estado falso durante una semana; por eso la red de pruebas fue primero. La cifra «92 de 279» se remidió sobre los informes en disco: 92 de 279 tienen más puntos evaluados que 16, y los 279 HTML generados el 23-ago imprimían /16. Describe el estado anterior al 26-ago, no lo que se entrega hoy.

El gate existe y está en verde sobre un push real (PR #1, corrida 33643062152, 2-sep): lint, typecheck de los dos tsconfig, las suites y una auditoría contra línea base fechada, sin secretos y con un paso que falla si el runner trae alguna credencial. Corre sobre fixtures versionados de dominios propios (6 capturas y 8 informes, 1,6 MB; ningún tercero). No está pagado: faltan el merge a main y la protección de rama con el check requerido, que son un clic de Francisco. Sin eso el gate informa y no bloquea.

El denominador ya no se inventa en ninguna superficie (PR #3): una sola función pura entrega evaluados, total y brechas del mismo informe, null los tres si no hay informe; el stream y el correo la consumen, y TOTAL_CHECKS salió del handler. Una prueba de identidad verifica render, correo y stream con informes de 26 y de 24, y se vio fallar dos veces antes de cerrarse: con el literal 16 y con un literal 26, que es justo el que habría seguido mintiendo en los ocho informes de 24. Antes, la invariante de capas pasó a contar las cuatro (PR #2): con Sondas apagada una suma de tres pasaba igual, y el día que se encendiera un segundo asistente la suite se habría puesto roja por un defecto de la prueba, no del motor.

Las sondas avanzaron todo lo que se puede sin gastar: parseo de los cuatro adaptadores sin red (PR #4), cobertura de criterio de los 26 puntos, 26 de 26 (PR #5), y el informe distingue ahora sin credencial, sin respuesta y no verificado contra API real, con el registro de verificaciones datado (PR #6). Dos cosas para revisar al encender, no antes: la documentación de xAI ya describe otra API y otro modelo que los que el adaptador de Grok asume, y Perplexity retira sonar el 27-sep. B0, B1, B2, C1 y C2 de P23 siguen bloqueados por gasto, techo en consola y DPA, que no son desarrollo.

Aprobación B7 registrada: los cambios en motor/handlers/analizar.ts, motor/tipos.ts, motor/informe.ts, motor/asistentes.ts y motor/render.ts son exactamente los que autoriza el guardrail G7 de 05-Notas/specs/s-score-informe-defendible/decisions.md §5. Todo entró por rama y PR, apilados en orden; ningún merge se hizo desde el squad y nada se publicó a producción.

01-sep-2026

Dos cosas distintas dibujadas igual se leen como la misma cosa

En el mapa recién publicado, las etapas y las soluciones usaban la misma caja —mismo borde, mismo fondo, mismo radio—. Toda la separación conceptual que costó establecer —la etapa es el recorrido, la solución es la pieza— se perdía en el dibujo: si dos cosas se ven iguales, son iguales para quien mira.

La corrección no fue cambiarles el color, fue cambiarles la naturaleza. La etapa dejó de ser un objeto: ahora es un rótulo sobre una línea, como la marca de un eje —sin caja, sin borde, sin fondo—, y esa línea va gris mientras es gratis y amarilla desde donde se cobra. La solución quedó como la única que es caja: con borde, sombra, elevación al pasar por encima y una flecha siempre visible, porque se abre. Entre las dos capas entra un rótulo que dice dónde termina el eje y empiezan las piezas.

La lección vale para lo que viene: cuando dos conceptos hay que explicarlos con una leyenda, el problema no está en la leyenda. Un mapa que necesita que le expliquen la diferencia todavía no la está mostrando. La nota al pie ahora la dice en una línea —las etapas no se compran, las soluciones sí—, pero es un refuerzo, no el mecanismo.

01-sep-2026

El mapa sale del BBP y entra a la web — y al llevarlo aparecieron cuarenta 404

La sección El modelo de agentroom.io/profundidad era un embudo de cinco pasos que mezclaba etapas con soluciones en una sola lista: al lector le quedaba que cada escalón era una pieza distinta que se compra por separado. Fue reemplazada por el mismo mapa de dos capas que ordena este BBP —seis etapas arriba con su nombre comercial y su nombre técnico, diez soluciones abajo dibujadas sobre las etapas donde operan—, y cada bloque abre la página de su solución. En vivo desde hoy, en los dos idiomas.

Lo que no se llevó a la web: los semáforos de avance. En el BBP dicen qué está construido y qué no, y esa es información interna: en una landing, un bloque marcado «no existe» es una objeción de venta escrita por nosotros mismos. El corte de cobro sí se lleva, porque no hay nada que esconder en decir dónde empieza a pagarse: es una banda sobre las etapas 04–06.

Hallazgo, y no era el encargo. Al verificar el mapa publicado apareció que los enlaces a las páginas de solución en inglés apuntaban a /solutions/[slug], y esa ruta no existe —la buena es /en/solutions/[slug]—. Estaba roto en el menú, en el menú móvil y en la grilla de la landing, o sea treinta enlaces a 404 en toda la versión en inglés, más los diez del mapa nuevo que heredó el mismo patrón al copiarlo. Corregido y desplegado. El resto de las rutas en config/site.ts tenían el prefijo bien; lo que fallaba era el único lugar donde la ruta se armaba a mano con el slug, que es exactamente donde una convención deja de vigilarse.

Y una nota operativa: .claude/launch.json tenía 24 entradas apuntando a rutas que ya no existen —los padres de Proyectos/ se renombraron a 01 Junngla, 02 Quanntum, 03 TheRoK3T y nadie actualizó el archivo—. Se corrigieron las dos de AgentRoom para poder levantar el dev; las otras 22 siguen rotas y son de otros proyectos.

01-sep-2026

El BBP se reestructura en tres niveles, y lo que se ordena no es la web: es qué se vende

Hasta hoy el BBP estaba organizado por etapas —una sección por ARAIS, ARTwin, TalkRoom, TrxRoom—, y eso hacía creer que cada etapa era un módulo de software por construir. No lo es. Las etapas son el recorrido, no piezas. Desde esta versión hay tres capas separadas y no se mezclan: las seis etapas son nomenclatura del journey; las diez soluciones son lo que se construye y se vende; las 42 piezas P## son lo único que un desarrollador toma.

Soluciones pasa a ser su propio grupo, con El mapa como entrada: las diez como bloques que abarcan las etapas donde operan. Cada una trae cuatro cosas en el mismo orden —qué hace, requerimiento técnico para construirla, consumo en tokens y un tablero de avance por subfuncionalidad—. Son 66 subfuncionalidades con 112 semáforos: es la primera vez que el estado de avance no se cuenta por módulo sino por lo que efectivamente falta hacer.

Pricing se reescribió en torno al token: primero cuánto vale uno, después cómo se consume en cada solución. Las gratis muestran cero, que es la forma más corta de decir dónde empieza a facturar el producto.

Se eliminó la sección Inicio. Su escalera ya vivía en el mapa y su glosario, en el diccionario; lo que no estaba repetido —el problema que resuelve, qué es en una línea y las tres industrias— quedó al pie del mapa. Borrar una sección no puede significar perder lo que decía.

Diccionario ahora es exhaustivo: 71 términos en siete familias —actores, etapas, nombres propios, análisis, publicación, cowork, códigos—, más las diez soluciones y una tabla de lo que ya no se dice. Cada entrada marca si es pública o interna, que es la distinción que faltaba: no hay términos secretos, hay términos que no significan nada para un cliente. Solo entra lo que no existe fuera de AgentRoom: JSON-LD y MCP no son nuestros y no se definen acá.

Los ids de sección cambiaron, así que un enlace viejo del tipo /#bitacora o /#arais apuntaba a nada. Se agregó un mapa de alias en el propio HTML que los redirige al destino nuevo. El costo de reordenar lo paga quien reordena, no quien guardó el enlace.

Riesgo que se corrió y conviene dejar escrito: la maqueta tenía marcadores vacíos donde el BBP real tenía la bitácora, los dos backlogs, el embudo y la arquitectura —casi 156 KB—. Publicarla tal cual habría borrado todo el registro histórico de un solo cp. Se rescató sección por sección desde el archivo en disco antes de reemplazar, con respaldo previo. Una maqueta se juzga por lo que muestra; un reemplazo, por lo que no destruye.

01-sep-2026

Un mapa de los seis componentes y las diez soluciones — y lo que muestra

Nueva sección Overview en Técnico: el sistema en una pantalla. Los seis componentes de la escalera en columnas, y cada solución puesta donde efectivamente opera. Cuatro no caben en una columna porque cruzan varias, así que van en bandas con su rango: Identity, Reputation y Certification desde la 03; Policy Engine y Trust & Audit desde la 04.

Puesto todo junto aparece algo que en las secciones separadas no se ve: las dos únicas soluciones vendibles están en la misma columna, la 01, que es donde no se cobra. Todo lo verde vive en el tramo gratis y todo lo que factura está en rojo. El producto tiene su parte terminada exactamente donde no gana plata.

Y una dependencia que el mapa vuelve obvia: tres de las cinco transversales —Reputation, Certification y Trust & Audit— dependen de Agent Identity, que hoy es AR-16. Es una sola pieza que no existe sosteniendo tres soluciones ya publicadas. También queda escrita la restricción que el mapa hace cumplir: auditoría y controlador nunca cuelgan de Ver ni de Existir, porque antes de que exista una sala no hay interacción que gobernar ni que registrar.

Fe de erratas de fechas. Esta sesión lleva días abierta y las últimas entradas se fecharon por inercia. Corregidas contra los commits: el rediseño de las diez soluciones fue el 30-ago y el ARDoor el 31-ago, no el 27. Las de 23 a 26 pueden tener el mismo corrimiento y no hay commit que las fije. En una bitácora la fecha es la mitad del contenido, y la única defensa es fecharla contra algo externo —un commit, un archivo— y no contra lo que uno recuerda.

31-ago-2026

ARDoor: el sello que invierte el CAPTCHA

Nombre nuevo de Francisco. El ARDoor es la cara visible del ARTag, no una pieza aparte: un solo acto de activación con dos manifestaciones —el archivo que lee el agente por servidor, y el sello que ve la persona—. Dice «Soy un agente» donde el CAPTCHA decía «No soy un robot», y lo marca la máquina en vez del humano.

El argumento, textual de Francisco: «el CAPTCHA protege excluyendo; el ARDoor protege gobernando». Invitar agentes a entrar solo es sensato si sabes quién entra (P24), si solo pueden hacer lo autorizado (P34, P37) y si queda constancia (P36). O sea que el sello no es decoración: es la promesa cuyo respaldo son las tres piezas que faltan.

Y resuelve un problema de venta que el ARTag tenía solo: pedirle a un comercio que instale algo que nadie ve es difícil. Con sello obtiene además una insignia de «listo para agentes». Cierra también la analogía del cowork: el comercio tiene su ARDoor; AgentRoom tiene su ARDoorMan en el counter.

El matiz que hay que decir en voz alta: un agente por servidor no hace clic en botones. Si esto se vende como «un botón que los agentes presionan», la mayoría nunca lo presiona y quien revise se da cuenta. El sello es para humanos y para agentes con navegador; lo que realmente encamina es la declaración. Quedó escrito así en la norma y en la ficha.

Y desbloquea una colisión que venía durmiendo: «puerta» ya significaba otra cosa —las Puertas A/B/C/D del código—, y era AR-15, deuda de prolijidad. Con ARDoor pasa a ser un choque con fecha: en cuanto se publique, la misma palabra va a nombrar el sello del cliente y el modo de servir el ARTwin. Se resuelven juntas o no se resuelve ninguna.

Nota que vale por el contraste: esta vez el nombre llegó a la norma antes que a producción —está en la maqueta, no en el repo ni en la web—. Es lo contrario de lo que pasó ayer con Agent Reputation y Agent Certification, y de lo que pasó con el «gratis» del counter.

30-ago-2026

La web ordena la oferta en diez soluciones, y el backlog se entera después

El rediseño dejó diez soluciones con página propia, todas en vivo: AI Radar, Agent Score, AI Presence, Agent Registry, Agent Identity, Policy Engine, Trust & Audit, Agent Reputation, Agent Certification y Agent Exchange. Cada sección de Técnico lleva ahora, arriba de todo, cuál es la solución que vende lo que ahí se describe, y el BacklogTI tiene la tabla puente completa: qué pieza construye cada una.

Solo dos de las diez son vendibles hoy —las dos del ARAIS—. Las otras ocho describen algo que no existe, en distintos grados: AI Presence está a medias, las seis restantes en cero.

Y dos se publicaron sin pieza que las construyera. Agent Reputation y Agent Certification entran al catastro recién hoy como P41 y P42, después de que su página estuviera publicada. Es el mismo patrón del «gratis» del counter (AR-19): primero se dijo, después se decidió. Las diez páginas ordenan bien la oferta —el problema no es el diseño—, pero conviene que el backlog se entere antes que la web.

Las dos nuevas traen preguntas que no son de ingeniería. Una reputación sin identidad verificada no es reputación, es un promedio de anónimos, así que P41 depende de P24; y hay que definir quién la escribe, porque si la escribimos nosotros somos juez. Y certificar es afirmar algo sobre otro: antes de construir P42 hay que decidir quién responde si un agente certificado se porta mal.

AR-17 quedó resuelto a medias: Trust & Audit y Policy Engine son nombres comerciales, y la norma exige un par. Si no se fija el técnico, el código va a inventar el suyo.

26-ago-2026

El ARU pasa a llamarse token

Decisión de Francisco. La unidad de cobro deja de ser ARU y pasa a ser token: minúscula, plural normal, sin reglas de sigla. El cambio se aplicó en el BBP (41 ocurrencias), en la norma y sus copias, en el CLAUDE.md del repo, en la skill y en la web —pricing.ts centraliza el rótulo, así que casi todo salió de ahí—. Verificado: cero ARU en agentroom.io y en bbp.agentroom.io, y el agent-card lo declara deprecado.

Deja dos cosas abiertas. AR-22: token ahora significa tres cosas —la unidad de cobro, los tokens de los modelos y el token de acceso—, y la colisión visible es de pantallas contiguas: el onboarding entrega «tu token» como credencial y dos pantallas después se cobra «por tokens» como dinero. Hay una peor y es externa: en un producto de IA token ya significa unidad de texto de un modelo para todo el mundo, así que «cobramos por tokens» va a leerse como que facturamos consumo de LLM. Eso no se arregla renombrando nada nuestro.

Ampliado al verificarlo: el costo en tokens de modelo viaja en el JSON del informe pero no se renderiza —la ambigüedad con la industria es real y la interna todavía no llega al cliente, aunque se vuelve visible si alguien expone ese campo—. La que sí ve el cliente es la credencial. Y quedó anotado el precedente de la categoría: «créditos» resuelve las tres colisiones de una vez. La familiaridad que hace atractiva a «token» es la misma que la vuelve engañosa.

AR-23: los identificadores TypeScript siguen en ARU a propósito —Francisco lo derivó al squad—. Copy en tokens, código en ARU: estado intermedio consciente, no descuido.

Y un detalle de método que vale guardar: el reemplazo automático dejó cinco frases mal, y la peor metió token en la lista de deprecados del agent-card —declarando obsoleto justo el término que se acababa de adoptar—. Se revisaron una por una en el diff. Un sed no distingue cuando un texto habla de la palabra en vez de usarla, y en un documento de nomenclatura la mitad de las apariciones son del primer tipo.

26-ago-2026

El informe entrega 22/16: aritmética rota en lo que se le da al cliente

Lo que el BBP anotó ayer como un rótulo desactualizado resulta ser peor. Sobre 279 informes generados, 92 —un tercio— muestran un numerador mayor que el denominador, y el peor caso dice 22/16. Reproducido acá contra los informes en disco. motor/render.ts:288 imprimía {evaluados}/16 [corregido el 26-ago en d8e7420; verificado el 2-sep-2026, ver bitácora] mientras el análisis mide 26, y el correo manda el total correcto: los dos se contradicen. Rompe I5 justo donde el producto promete que el puntaje siempre va con denominador.

Corregido al verificarlo: no hay que regenerar nada. Los 279 informes no tienen el 16 guardado —271 llevan total: 26, ocho llevan 24, ninguno 16—. El literal vive solo en el render, al lado del dato bueno, así que cambiarlo por inf.puntaje.total arregla todo lo ya entregado. La disyuntiva que este mismo BBP planteó hace un rato —regenerar o corregir al vuelo— se disuelve. «Un tercio de lo entregado quedó mal» y «un tercio se arregla con una línea» son dos noticias muy distintas para quien prioriza.

Y los ocho informes de 24 revelan lo de fondo: el denominador varía legítimamente entre versiones del motor, o sea que el literal estaba mal desde que se escribió, no desde que el análisis creció. Por eso la prueba correcta no es «numerador ≤ denominador» —un 26 fijo la pasaría y seguiría mintiendo en los de 24— sino denominador impreso idéntico a puntaje.total.

Y los dos blobs públicos resultaron ser dos riesgos distintos, no uno. Publicarlos juntos habría sobredimensionado el menor y escondido el grave:

AR-20 — el ARTwin se puede calcular. Su id es sha1(dominio|construido_en) a 12 hex, y quien dispara el análisis conoce las dos entradas. Acá la defensa no puede ser que la URL no se adivina, porque se calcula.

AR-21 — el informe no se puede revocar. Su id es randomUUID(), 122 bits, no derivable de nada: eso es una capability URL, patrón legítimo. El problema es que se guarda con caché de un año, se sirve con s-maxage=3600, y no hay un solo del() en el repo. La defensa sí es que no se adivina, y sería suficiente si se pudiera revocar. Un enlace filtrado queda filtrado para siempre.

La distinción es del squad y es la que hace defendible el hallazgo. Vale como método: dos cosas que comparten la causa técnica —blob público— no comparten el riesgo, y juntarlas en una ficha habría llevado a priorizar mal.

26-ago-2026

El squad auditó el documento de requerimientos, y tenía razón

La corrección que más urgía: el BBP publicaba «Cobertura de pruebas 0%» de cara a terceros. Es falso. Corrí npm test y pasan cuatro suites: sondas prueba resumir() directo, invariantes recorre 25 capturas reales, más acceso y costo. La cifra honesta es «cuatro suites, sin gate»: lo que falta no son pruebas, es que nadie está obligado a correrlas —una prueba que no bloquea un merge es documentación—.

Verificando sus hallazgos aparecieron dos que nadie había visto completos. El ARTwin y también el informe se guardan como blobs públicos con addRandomSuffix: false, y el nombre del ARTwin se deriva de dominio|construido_en, datos que conoce quien disparó el análisis. Contradice I7 justo donde el modelo promete lo contrario. El reporte apuntaba al handler; el handler exige tenant y está bien —la vía es el blob—. Es AR-20.

Y el «16» vive en tres superficies, no dos. La que faltaba es la peor: motor/render.ts:288 imprimía {evaluados}/16 [corregido el 26-ago en d8e7420; verificado el 2-sep-2026, ver bitácora] en el informe que se le entrega al cliente, mientras el correo manda el total correcto. Los dos se contradicen, y rompe I5.

Tres correcciones más que acepté: RQ-CR-1 decía que no dependía de nada —depende de P22, y es barato porque P22 ya está escrito—; D-01 daba un número de vulnerabilidades que se mueve solo, así que ahora va con fecha al lado; y dos de los cinco modelos por defecto de las sondas tienen problema antes de encenderse —grok-3 salió del catálogo de xAI y sonar se soporta hasta el 27-sep-2026—.

25-ago-2026

Los 44 pasos pendientes bajan a requerimientos

Se construyó 03-Documentos/REQUERIMIENTOS-DESARROLLO.md para el squad, desde los siete recorridos de Técnico: 73 pasos mapeados, 44 pendientes, bajados a 34 requerimientos con criterios de aceptación verificables, lo que no entra en cada uno, y el orden por dependencias.

Lo que más cuesta transmitir a un equipo nuevo no son las tareas sino las razones, así que el documento abre con 13 reglas invariantes: ningún dato sin procedencia, lo inferido no se publica, verificar antes de comprometer, el primer lugar no se vende, el counter es gratis, un agente no ejecuta JavaScript. Cada una con el motivo, porque una regla sin motivo se salta la primera vez que estorba.

Y termina con cómo verificar lo que él mismo afirma —cuatro comandos que cualquiera puede correr—, más el aviso del cache-buster. Un documento de requerimientos que no se puede auditar envejece igual de mal que un BBP que no se contrasta contra el código.

Queda una dependencia que conviene no perder: el documento sale de estos recorridos, así que cuando un paso cambie de estado acá hay que actualizarlo allá. Anotado también en la cabecera del BacklogTI.

25-ago-2026

La escalera crece a seis: entra Catálogo, y es gratis

Commit 85c1a56. ARDoorMan dejó de ser solo el counter y pasó a ser una etapa propia: la 03, Catálogo, entre Existir y Responder. Su promesa es «te ofrecen cuando alguien pregunta»: un asistente llega buscando un problema, no tu marca, y la recepción responde quién puede atenderlo, en el orden en que llegaste.

Y es gratis, lo que mueve la frontera del cobro: la tarifa ya no empieza en la 03 sino en la 04. Todo texto que diga «empieza en Responder» sigue valiendo; el que diga «en el nivel 03» quedó falso. Las etapas de más arriba se corrieron: Operar es 05 y Colaborar 06.

Con eso ARDoorMan sale de cero. Está parcial, no en construcción, porque una parte sí existe: el endpoint MCP permite que un asistente pregunte qué tienes y en qué condiciones. Lo que falta es el counter conversacional —y la distinción es la etapa entera: hoy el asistente puede consultar a un comercio, pero solo si ya sabe a cuál preguntarle. Descubrir quién puede atenderlo es justo lo que no existe. Su recorrido quedó en 1 de 7, con el corte en el paso 02.

Un efecto lateral que ordena TalkRoom: sus dos pasos que funcionaban —encontrar y leer el catálogo— pertenecen ahora a Catálogo, que es gratis. Se dejan en su recorrido porque sin ellos no se entiende, pero marcados: de TalkRoom, que es la primera etapa que cobra, no hay nada construido.

Y AR-19 se cierra de una forma que conviene recordar: el «gratis» que el 24-ago era una deducción publicada sin decidir, el 25-ago quedó formalizado en el código como precio de la etapa 03. Salió bien —la etapa gratis es buena idea—, pero el camino fue al revés: primero se dijo, después se decidió.

25-ago-2026

Revisión de estado: el análisis dejó de botar el ARTwin

Se auditaron los siete recorridos de Técnico contra el código y la web en vivo. P22 está construida y se cierra: analizar.ts arma el ARTwin desde la misma captura, deja el gemelo_id en el informe y lo guarda, con el fallo aislado —si el gemelo no se puede construir, el informe se entrega igual—. Se implementó tal cual el requerimiento, y el código lleva escrita la regla que importa: «guardar no es publicar: sin tenant activo nada de esto se sirve». ARAIS sube a 9 de 11 y le queda un solo hueco, el 11: nunca vuelve a medir.

En CustomerRoom apareció media cuenta que no estaba anotada. motor/cuentas.ts y motor/sesion.ts existen: la sesión vive en cookies firmadas con HMAC y sin base de datos, y la cuenta es la dirección de correo verificada. Alcanza para entrar y ver lo tuyo, no para P1 —la cuenta de la organización, la que respondería de quién es el ARTwin—. Y motor/google.ts implementa OpenID pidiendo solo openid email, pero /entrar no lo ofrece: escrito y no expuesto.

Lo demás sigue igual, y ahora está verificado uno por uno: no existe ARTag, ni counter, ni apertura de sala, ni handshake, ni minuta, ni registro de demanda no servida, ni verificación en vivo, ni reserva, ni orden, ni metering. ARDoorMan 0/6 y A2ARoom 0/6 no tienen una sola línea.

Nota de método, porque casi se cuela: el primer barrido se hizo con una función que respondía sí/no, y falló en las dos direcciones —dio «no» a guardarGemelo, que sí existía, y «sí» a sala, minuta y handshake, que no—: las palabras aparecían en comentarios. Se rehizo pidiendo la línea como evidencia en vez de un booleano. Un barrido que solo dice sí o no no se puede auditar, y esta revisión existía justamente para auditar.

25-ago-2026

Auditar una cita encontró una política de precios que nadie decidió

Al incorporar el modelo cowork se compararon las reglas escritas contra las palabras textuales de Francisco. Tres calzaban. Dos hallazgos salieron de las que no.

Uno se resolvió a favor del respaldo: la regla de identidad sí es de él —«los agentes que viven en AgentRoom están autenticados; los que llegan deben autenticarse»—; lo que era síntesis ajena es el eslogan «nadie entra anónimo». La regla quedó con el enunciado original, que dice lo mismo y envejece mejor, y AR-16 recuperó ese apoyo.

El otro es más serio y sigue abierto. «El counter es gratis» tampoco es de Francisco: es una deducción —si el contador de token parte al abrir la sala, antes no corre—. La deducción es sólida, pero «gratis» es una palabra comercial, y al verificarla apareció que ya está publicada: agentroom.io dice hoy «La puerta es gratis — preguntar no cuesta». Una inferencia entre sesiones llegó a la web como política de la empresa sin que nadie la aprobara. Queda como AR-19, y hay una tercera lectura que nadie descartó: que el counter no consuma token no obliga a que sea gratis para siempre —podría tener tramo, cuota o tarifa propia—.

Lo que hay que conservar es el método, no el caso. Los dos aparecieron porque alguien mandó la cita en vez de su paráfrasis, y porque del otro lado se auditó en vez de copiar. Si el reporte hubiera dicho solo «Francisco dijo que nadie entra anónimo», hoy habría una frase ajena anotada como suya y nadie lo sabría nunca. Confirmar un supuesto cuesta una frase; desdecirse de un «gratis» ya publicado cuesta mucho más.

25-ago-2026

Se acabó el 0% de cobertura, y el requerimiento de las sondas destapó un bug de plata

npm test corre y pasa. Cuatro suites —costo, sondas, acceso, invariantes—, verificadas hoy junto con npm run typecheck. P21 pasa de no existe a a medias, y con eso cae el argumento que bloqueaba el plan entero: la auditoría decía que nada se podía construir con seguridad sin la red de pruebas. Lo cubierto son las piezas que deciden —la agregación de las Sondas, el contador de costo, el acceso, y las invariantes sobre 25 capturas reales de 279—; lo que falta es la prueba de cada uno de los 26 puntos, que era el hallazgo original.

Y al escribir P23 apareció un bug que costaba plata. TARIFA solo conocía los modelos de Anthropic y Gemini; los adaptadores de Perplexity (sonar), ChatGPT (gpt-4.1) y Grok (grok-3) llamaban al contador con modelos que la tabla no tenía, caían a {entrada: 0, salida: 0} y sumaban USD 0,00. Las llamadas y los tokens sí se contaban; el dinero no. Lo mejor del hallazgo es cuándo se habría manifestado: exactamente al encender el segundo asistente. Un requerimiento que se escribió para pedir credenciales terminó encontrando el bug que esas credenciales iban a destapar (86b3828).

Un cruce entre la web en vivo y este documento sumó siete piezas más (P41–P47). La más seria es P41: el techo de gasto se promete, se describe y no lo hace cumplir ninguna pieza. P19 y P38 miden; ninguna corta. Y se vende con «pagar por uso solo funciona si el límite es tuyo»: sin corte es un medidor sin llave de paso. También apareció AR-18, que no es una brecha sino una contradicción entre dos documentos nuestros: la landing publica «prueba que actúa por tu cliente» como paso del recorrido, y el backlog dice de esa pieza que quizá no se construya nunca acá.

El catastro va en 49 piezas. Eran 21 el 20-ago. Ninguna de las 26 nuevas apareció escribiendo código: salieron de definir los modelos y de comparar lo publicado contra lo anotado. La web va por delante del backlog, y la distancia crece cada vez que se publica.

24-ago-2026

AgentRoom es un cowork: counter, salas y minuta

Francisco cerró el modelo del recorrido del asistente. AgentRoom es una oficina tipo cowork: un counter con recepcionista —ARDoorMan, nombre nuevo—, salas que se arriendan por rato (TalkRoom, TrxRoom, A2ARoom), alguien que levanta la minuta y un controlador de marco que cuida que la reunión no se salga de lo acordado. El recorrido son cuatro actos: llega y se autentica → counter → sala → se va y queda la minuta.

Cuatro reglas que son requisitos, no adorno: nadie entra anónimo; el orden lo da la antigüedad y el primer lugar no se vende; las salas son ciegas entre sí; y el contador de token parte al abrir la sala, porque el counter es gratis. La segunda es la que separa a AgentRoom de un directorio pagado: vender el orden convertiría la recomendación en publicidad, y con eso se cae la tesis entera.

El catastro pasó de 21 a 40 piezas en cuatro días sin escribir una línea de código: diecisiete entraron con este modelo (P24–P40), dos venían del modelo comercial. No es que el producto haya crecido: es que recién ahora está escrito lo que siempre faltó. De todas ellas la que más vale por su tamaño es P29, el registro de demanda no servida: no es una métrica sino el motor de adquisición —«treinta y siete asistentes preguntaron por esto y no había nadie» es el argumento para ir a buscar al comercio—, y es la única pieza que funciona con cero adheridos: mientras menos haya, más señal produce.

Y una contradicción en producción, verificada en vivo: el MCP responde tools/call sin credencial mientras el modelo declara que nadie entra anónimo. No es una fuga —el corte por tenant funciona y un dominio sin servicio activo no entrega nada—, es ausencia de identidad de la contraparte, y eso vacía la auditoría antes de construirla: una constancia de que «alguien» preguntó no sirve en una disputa, que es para lo que se vende. Es AR-16, en Bloquea. Quedan dos piezas sin bautizar —la auditoría y el controlador— en AR-17.

Aparte: se decidió que en las sondas el detalle informa y el agregado puntúa —el comercio ve en qué asistente aparece, sin que se convierta en un score por chat—, y la nomenclatura quedó versionada en el repo (0a538c4) después de días publicada sin commitear.

24-ago-2026

Las sondas: no falta cobertura, está roto el veredicto

Al escribir el requerimiento del paso 07 apareció que el problema es peor y más barato de arreglar de lo que decía el BBP. veredicto() da falla con cero y aprueba con mayoría estricta, así que con un solo asistente el estado «parcial» no existe: 0/1 falla, 1/1 aprueba. No hay punto medio.

Eso son 10 puntos de peso decididos de forma binaria por un modelo, una vez —S23 pesa 4, S24 y S25 pesan 3—. Un «falla» se le entrega al comercio como no apareces cuando preguntan por lo que haces, cuando lo que ocurrió fue no apareciste en Gemini, en esa corrida. Y la respuesta de un asistente ya demostró ser inestable entre corridas: es la razón por la que la posición dejó de puntuar. Con una sola credencial, esa inestabilidad salta de aprueba a falla sin escala.

S26 es el único que se protege: exige MINIMO_PARA_COMPARAR = 2 y sale no_evaluado declarando el motivo. Los otros tres no tienen esa guarda. Y no hace falta tocar veredicto(): con dos asistentes la regla ya funciona bien, el problema desaparece solo al encender el segundo.

Queda como P23, y es la única pieza del backlog que se destraba con una decisión administrativa y no con código: cuatro credenciales. Los cinco adaptadores están escritos y se activan solos al encontrar su variable. Requerimiento en 05-Notas/req-sondas-multiasistente.md, con un riesgo que conviene decidir antes: los puntajes ya publicados en el Radar se midieron con un asistente y al pasar a cinco dejan de ser comparables —o se recorre el Radar de nuevo, o se marca la fecha de corte—.

24-ago-2026

Diccionario propio, y el ARAIS cierra el círculo

Nueva sección Diccionario en Overview con las palabras que inventamos, en cinco bloques: los nombres del sistema, las del análisis, las de la publicación, las de uso obligado y las que ya no se dicen. El criterio de entrada es simple: solo lo que no existe fuera de AgentRoom —si alguien puede buscar JSON-LD o .well-known y encontrar la definición de otro, no es nuestro—. El glosario que vivía suelto dentro de Inicio se movió, no se copió: dos listas del mismo vocabulario en el mismo documento era exactamente lo que la norma vino a evitar.

Lo más útil del cuadro es la columna del medio: qué es público y qué es interno. Veinte términos se pueden decir en una reunión; ocho —cascarón, tenant, las Puertas, el corte, MINIMO_PUBLICABLE— no, y no porque sean secretos sino porque no significan nada para un cliente. Esa distinción no estaba escrita en ninguna parte y se resolvía por instinto.

Y el recorrido del ARAIS se completó con lo que definimos hoy. Ganó un paso 11: volver a correr cuando el ARTwin se activa. Ahí el ARAIS deja de ser un diagnóstico y pasa a ser la medida del progreso —el comercio ve subir el número que le mostró el problema—. Con eso el recorrido abre y cierra en el mismo lugar: empieza cuando alguien quiere saber qué ven las IA de él, pasa por ARTwin y CustomerRoom, y termina cuando ese número cambia. Hoy solo existe la apertura: se entrega un diagnóstico y ahí termina todo. Sus dos huecos son el 04 —botar el ARTwin ya pagado— y el 11, no volver a medir nunca.

Corrección de fecha: esta entrada y las dos siguientes se registraron primero como 23-ago. La sesión cruzó la medianoche y se siguió fechando con el día anterior; los archivos en disco lo delatan. Corregido a 24-ago —en una bitácora, cuando pasó algo no es un detalle—.

24-ago-2026

Nace el ARTag, y con él la frontera entre lo nuestro y lo suyo

La contraprestación del ARTwin gratis ya tiene nombre: ARTag, la señal que el comercio deja en su web para activar su ARTwin. Y con ella quedó definida una regla que faltaba: el ARTwin se le avisa, no se le entrega. Lo construimos con una captura que pagamos nosotros, así que antes del ARTag es nuestro activo —el comercio sabe que existe, ve cuántos productos y políticas trae, y no puede llevárselo—. Después del ARTag es suyo y se publica. Sin ARTag el ARTwin existe pero no se sirve, que es lo que hace que activar signifique algo.

El orden del flujo importa y quedó fijado: avisar → ofrecer → revisar y completar → entregar el ARTag → instalar → verificar con un botón que sondea su dominio → publicar → recalcular el ARAIS. Revisar viene antes de recibir el ARTag, no después: así nadie publica dato inferido sin haberlo mirado —y en el 95% de los sitios el precio sale de heurística—, y el comercio llega a instalar habiendo invertido trabajo en su propio ARTwin. Invertir ese orden convierte la revisión en un trámite que se salta.

Una salvaguarda escrita en la norma, en mayúsculas: el ARTag es un archivo, no un script. El nombre evoca el Google Tag y el Meta Pixel, y ese es justamente el riesgo: un agente no ejecuta JavaScript —nuestro propio motor tampoco, y L04 mide exactamente eso—, así que implementarlo como snippet entregaría un ARTwin que nuestro análisis declara invisible. Es un estático en /.well-known/agentroom.json. Los recorridos de ARTwin (16 pasos) y CustomerRoom (16) se rehicieron con este flujo.

24-ago-2026

El paso 04 tiene requerimiento, y el catastro crece a 22

Se detalló qué hay que construir para que el análisis deje de botar el ARTwin. Al bajarlo a código quedó claro cuán cerca está: construirGemelo() es una función pura y sincrónica sobre la captura, y guardarGemelo() ya existe. En el flujo web la primera no se llama nunca —solo se usa a mano por CLI—, y la captura vive dentro del bloque de analizar.ts y se pierde al salir. En lo esencial son dos líneas después de guardar el informe.

Lo que no es trivial es el borde. El análisis reutiliza informes recientes del mismo dominio —cortesía con el comercio— y en ese camino no hay captura, así que no habría ARTwin. Y el informe guarda solo un resumen de la captura, no los documentos. Quedaron las tres salidas escritas con su costo: aceptar el hueco, persistir la captura, o recapturar bajo demanda. La recomendación es aceptarlo para partir y persistir cuando el CustomerRoom necesite la vista previa.

Queda como P22, la primera pieza que no viene del catastro del 20-ago: no la encontró la auditoría, la hizo aparecer el modelo comercial. Requerimiento completo —alcance, criterios de aceptación, riesgos y qué destraba— en 05-Notas/req-artwin-en-el-analisis.md. Dos riesgos anotados que no son de código: el volumen de guardar dos objetos por análisis con el Radar corriendo, y tener dato inferido en reposo bajo el nombre de otra empresa, que conviene mirar contra la Ley 21.719 antes de que sea masivo.

23-ago-2026

Los recorridos se rehacen contra el modelo comercial

Los journeys se habían escrito antes de que Francisco cerrara el modelo, así que describían el sistema y no el recorrido del cliente. Tres cambiaron.

ARAIS pasa de 9 a 10 pasos: se sumó el 04, armar el borrador del ARTwin desde la misma captura, y entra en rojo. Esa sección decía «hasta acá está en producción, es la única etapa completa»; ya no lo es. Su único hueco es botar algo que ya está pagado.

ARTwin pasa de 11 a 15: se le insertó entera la adhesión —vista previa, revisar lo inferido, subir el archivo, verificar el dominio— más el paso 10, recalcularle el ARAIS, que es el que cierra la venta, y el 15, el cobro a los tres meses. Su corte se movió del 07 al 04: el problema ya no es que nadie sea dueño de lo publicado, es que el ARTwin se construye y nadie se lo muestra al dueño.

CustomerRoom pasa de 10 a 13, con el mismo tramo visto desde el cliente, y su corte baja del 06 al 05. La frase que queda es la que resume el estado del producto: le muestra al comercio su problema y le esconde el remedio que ya tenemos armado.

TalkRoom, TrxRoom y A2ARoom no se tocaron: el modelo comercial no cambia lo que les falta, solo confirma que su tarifa sigue en TBD.

23-ago-2026

El modelo comercial queda cerrado, y el ARTwin resulta ser un subproducto

Decidido por Francisco: el ARAIS es gratis siempre, el ARTwin gratis por 3 meses y después token, y la contraprestación del tramo gratis es que el comercio ponga algo en su sitio, «tras bambalinas, como el pixel de Meta o el tag de Google». Eso precisa AR-03, que hasta hoy decía «a cambio de acciones» sin que nadie supiera cuáles.

El hallazgo que cambia cómo se lee el modelo: construirGemelo() es una función pura sobre la misma captura del ARAIS —no necesita app, API ni credenciales—. Cada análisis gratis ya produce todo lo necesario para armar el ARTwin, y hoy se desecha. Los tres meses gratis no cuestan una construcción: cuestan dejar de botar lo que ya se hizo.

Y una advertencia con número: solo 13 de 237 sitios —un 5%— tiene catálogo por API o feed. En el resto el precio sale de heurística, así que publicar ARTwins gratis a escala sería publicar poco o publicar inferido bajo el nombre de otro. publicable() ya lo impide, pero la tensión comercial queda: el producto que se regala es justo el que menos dato verificado tiene.

A quién conviene armarle uno, con números. De los 42 sitios con puntaje bajo 35 —conjunto distinto de los 42 sin puntaje, sin un dominio en común—, 23 son legibles y solo declaran mal: el mejor caso comercial, número feo y remedio en la misma pantalla. 16 tienen páginas que piden navegador —pero L04 no es binario: mide cuántas páginas de cuántas, y sobre 40% marca falla—, así que en realidad son 5 graves, a los que corresponde diagnóstico y no ARTwin, y 11 leves con una o dos páginas sueltas, a los que sí se les puede armar con menos cobertura. Y 3 se leen perfecto pero están cerrados con noindex —Utaru, BEXER e Inmediatos, los tres nuestros y los tres cerrados a propósito—: tienen contenido de sobra y ningún asistente los va a encontrar mientras esa línea siga puesta. Repone cae entre los leves, con 1 página de 8.

Ese cuadro se escribió mal dos veces, las dos por tratar como una sola cosa lo que el motor distingue: primero «ilegible» mezclando dos umbrales, después L04 leído como sí/no —lo que mandaba a diagnóstico a dieciséis cuando eran cinco, once conversaciones que sí se pueden tener—. Lo que lo destapó no fue volver a medir, sino discutir la palabra.

Recomendación técnica, aún no decidida: que la «acción» sea un archivo en /.well-known/agentroom.json y no un snippet de JavaScript —un agente no ejecuta JS, nuestro propio motor tampoco, y L04 mide exactamente eso: pedir un pixel sería entregar un ARTwin que nuestro producto declara invisible—. Se abrió además AR-15: las Puertas A/B/C/D no están en la norma y ya aparecen en este documento.

23-ago-2026

Cada bloque técnico muestra su recorrido y dónde se corta

Las seis secciones de Técnico tienen ahora una vista del recorrido completo, paso a paso, con el estado real de cada uno y una línea que marca dónde termina lo construido. En total 52 pasos, de los cuales funcionan 23.

Puestos uno al lado del otro, el producto se lee distinto: ARAIS 8 de 9 —la única etapa completa—, ARTwin 6 de 11, CustomerRoom 4 de 10, TalkRoom 3 de 8, TrxRoom 2 de 8 y A2ARoom 0 de 6. La escalera de la landing sugiere avance parejo; el recorrido muestra que lo construido se concentra en el tramo gratis y se desploma justo donde empieza el cobro.

Los cortes dicen más que los conteos. ARTwin publica bien pero nadie es dueño de lo publicado; TalkRoom responde sobre la oferta pero no sobre el cliente; TrxRoom sabe mostrar y no sabe comprometer; y CustomerRoom se entra a mirar, no a administrar —el paso 09, administrar hablando, es la tesis del producto y no existe—. Cuatro de los seis se cortan en el mismo punto: donde la relación dejaría de ser anónima.

23-ago-2026

Una excepción de la norma protegía algo que ya había pasado

La norma escrita esta mañana decía que el user-agent VadoBot/1.0 no se renombraba todavía, porque podía estar en listas de permitidos de comercios. Al revisar el código apareció que ya estaba renombrado: motor/guardas.ts manda AgentRoomBot/1.0 desde el 20-ago, tres días antes de que la norma existiera. La excepción venía del hallazgo H6 de la auditoría, que miró el commit inicial y quedó congelada —el mismo problema de tomar una foto por un estado—.

Lo que queda no es una regla de nomenclatura sino una acción operativa. Un WAF que tenía VadoBot en su regla de excepción ahora ve un bot desconocido y le sirve una página de bloqueo. El síntoma calza exacto: en la última corrida hubo 42 sitios de 385 ilegibles y ninguno fue por robots.txt —los 42 son cascarón—. Y un sitio ilegible no obtiene ARAIS, no uno más bajo: el techo es 6 puntos (o 1, si nos prohiben en robots.txt) contra un mínimo publicable de 8. Es aritmética del motor, no suerte de la corrida.

La ficha se escribió mal dos veces antes de quedar bien, y eso vale anotarlo. Primero dijo que esos sitios tenían «un ARAIS calculado sobre menos puntos», cuando no tienen ninguno. Después explicó el techo con un mecanismo que no era el del código. Y sobre todo: los 42 son del Radar —sitios que medimos sin que nadie lo pidiera—, así que no son clientes afectados sino la medida del fenómeno. Quienes sí pidieron un análisis salen de leads, y hoy hay uno. Confundir las dos listas habría llevado a escribirle a cuarenta y dos organizaciones que nunca nos pidieron nada.

Lo que sí se pudo cerrar hoy: el user-agent declara (+https://agentroom.io/bot) como página de identificación y esa dirección daba 404. Un administrador que veía un bot desconocido en sus logs y seguía el enlace no encontraba nada —el peor escenario posible para pedir que te dejen entrar—. Ya existe: explica qué es, por qué aparece, cómo permitirlo o bloquearlo en robots.txt, y avisa del cambio de VadoBot a AgentRoomBot. Su primera versión decía que un sitio bloqueado «sale con menos puntos evaluados» —el mismo error que esta bitácora acababa de corregir, esta vez de cara al cliente—; ahora dice que no obtiene puntaje, con el rango real de uno a seis puntos evaluables. Es además mejor argumento para pedir que actualicen su lista de permitidos.

La otra mitad de la excepción sigue vigente: /apps/vado se sirve tal cual y no se toca hasta el cutover, porque hay Puertas D desplegadas en dominios de clientes apuntando ahí. La norma y la skill quedaron corregidas.

La landing también cerró: pricing.ts con token junto, manager.ts hablando de CustomerRoom y stages.ts con las cinco etapas pareadas —A2ARoom incluida—, todo versionado. El único archivo sin commitear en el repo es CLAUDE.md.

23-ago-2026

Un solo BBP en el dominio, y dónde termina la norma

AR-12 cerrado: agentroom.io/bbp hace ahora 308 a bbp.agentroom.io (commit bd35c5e). Deja de haber dos BBP públicos en el dominio de la marca nueva, y el que llevaba el título «Vado · BBP» ya no se alcanza desde ahí. El archivo no se borró: sigue en public/bbp/ del repo, y el backlog del motor B-01–B-30 se sigue consultando en vado.junngla.com/bbp, que es la fuente hasta el cutover (AR-08).

De paso quedó fijado un límite de la norma. Revisando ese documento apareció un título de bitácora que dice «Gemelo digital y publicación por Puertas C y D», con un término hoy deprecado. No se corrige, por dos razones que conviene tener escritas: es una entrada fechada —y las fotos fechadas no se tocan hacia atrás—, y sobre todo la nomenclatura de AgentRoom no rige sobre VADO, que hasta el cutover es un producto distinto con su propia marca y su propio vocabulario. La norma empieza el 23-ago y empieza acá.

23-ago-2026

El deploy publica el disco, no el commit — y por eso nadie veía lo mismo

AR-11 cerrado: agentroom.io/llms.txt dice veintiséis puntos y trae el bloque de vocabulario. Commit 9b3c98e.

Lo que quedó en el camino vale más que la corrección. Dos sesiones verificaron el mismo archivo en vivo y vieron cosas distintas —una «dieciséis», otra «veintiséis»—, y no era caché: vercel --prod despliega el working tree, no el HEAD de git, y el repo vive en Dropbox compartido por varias sesiones. Cada deploy publica lo que haya en disco en ese instante, incluidos los cambios sin commitear de otra sesión. El riesgo real resultó ser el inverso del que parecía: no faltaba desplegar el archivo —ya estaba publicado—, faltaba versionarlo, y un checkout limpio o un deploy desde CI habría devuelto «dieciséis» a los asistentes sin que nadie lo notara. Queda como AR-13: commitear antes de desplegar, y no dar por versionado lo que se ve en producción. Se cierra solo con CI (P20).

La advertencia sobre public-scores.ts se cumplió dentro de la misma hora. Una sesión editó el titular del Radar a mano y la siguiente corrida del generador lo borró. Se recuperó en 6f9bd69 y se adoptó ese titular —«Cómo se ve un continente entero en IA», que dice lo que hace la sección sin usar la sigla—, ahora sí en la plantilla del generador, que es lo único que sobrevive.

Precisión de crédito: el vocabulary del agent-card.json no existía antes; se agregó hoy en 769c4ee, junto con corregir un «veinticuatro puntos» que también arrastraba.

23-ago-2026

CustomerRoom deja de ser promesa, y el análisis muestra qué mide de verdad

P4 se construyó. /entrar y /panel están en producción desde el 22-ago: acceso con un código de cinco caracteres y el informe de los 26 puntos abierto capa por capa, con su evidencia. Google OAuth está escrito y espera credencial. La pieza pasa de no existe a a medias: lo que funciona es el tramo de mirar; el de administrar conversando —que es la tesis del producto— sigue sin empezar. Vale anotar cómo pasó: era la única de las 21 piezas sin fase asignada y se construyó igual, antes que piezas priorizadas. El plan quedó atrás de la construcción, no al revés.

Las Sondas ya tienen números, y uno de ellos obligó a una decisión. Sobre 70 dominios: S24 «te nombran» al 99%, S25 «citan tu sitio» al 89%, y la posición en la lista al 70%. La posición se informa pero dejó de puntuar: varía demasiado entre corridas y no es una propiedad del sitio sino del asistente que contestó. Sigue habiendo una sola credencial —Gemini—; los adaptadores de Perplexity, Claude, OpenAI y Grok están escritos y nunca se ejecutaron, así que S26 no se puede evaluar de verdad todavía.

Dos cosas de operación. src/data/public-scores.ts se genera: el motor lo reescribe entero en cada corrida —cuatro esta semana—, así que el copy del radar se cambia en la plantilla del generador y toda edición manual se pierde. Y agentroom.io/bbp sigue sirviendo el BBP heredado, titulado «Vado · BBP», en el dominio de la marca nueva (AR-12).

23-ago-2026

La norma se instala donde los agentes la leen — y aparece una cifra falsa en producción

Para que la nomenclatura no dependa de que alguien se acuerde, quedó enganchada en tres lugares: el CLAUDE.md del workspace —el único archivo que toda sesión lee al arrancar—, una skill agentroom-nomenclatura cuyos disparadores incluyen los términos deprecados (así salta cuando alguien está por escribir un nombre viejo, no solo uno nuevo), y un @NOMENCLATURA.md en el CLAUDE.md del repo que carga la norma entera al trabajar ahí.

Revisando la capa que mira al producto apareció algo peor que un nombre mal puesto. agentroom.io/llms.txt —el archivo que existe para que los asistentes de IA citen bien a AgentRoom— dice que el informe «analiza un sitio en dieciséis puntos». Son 26. El producto que vende ser legible para las IA les está entregando una cifra equivocada sobre sí mismo. Queda como AR-11, por delante de la deuda de nomenclatura, y se corrige junto con declarar ahí el vocabulario para que los agentes aprendan los nombres desde la fuente.

23-ago-2026

Se homologa el lenguaje: un nombre comercial y uno técnico

Cada etapa queda con dos nombres y ninguno más: Ver · ARAIS, Existir · ARTwin, Responder · TalkRoom, Operar · TrxRoom y Colaborar · A2ARoom, más dos transversales: CustomerRoom —el panel donde la organización administra su agente, no el comprador— y token, token, la unidad de cobro por uso. La regla de uso: en la web y los portales van los dos —el comercial en titulares y botones, el técnico junto a él en la primera mención de cada sección, para que el usuario se familiarice—; en código, API, MCP, IDs y documentación técnica, solo el técnico.

La norma es un archivo, no un acuerdo verbal: 03-Documentos/NOMENCLATURA.md, con copia en el repo (01-agentroom-web/NOMENCLATURA.md) y resumen en su CLAUDE.md. Trae la tabla, las reglas de presentación, el glosario, la lista de deprecados y un bloque de prompt listo para pegarle a cualquier sesión o persona que escriba código o copy. Se dan de baja AgentRoom-AIScore, gemelo digital, «Agent Room Manager» y token separado.

Dos cosas que aparecieron al fijarlo. La etapa 05 no tenía sección propia: ahora existe A2ARoom, y al escribirla quedó a la vista que ninguna de las 21 piezas del catastro le corresponde —las cuatro fases cubren de Ver a Operar, y Colaborar parte de cero—. Y el renombre de gemelo a ARTwin en el motor no se hace todavía: atraviesa el código y hoy no hay cómo verificar que no rompió nada, así que espera a la red de pruebas (P21). Queda en AR-10. Tampoco se toca VadoBot/1.0 ni /apps/vado: hay comercios con ese agente en listas de permitidos y Puertas D desplegadas en esa ruta.

23-ago-2026

El BBP se reordena por bloques del sistema

El documento pasa de cuatro grupos a cinco y deja de estar ordenado por cómo se fue construyendo para estarlo por de qué parte del sistema habla. Overview queda en una sola sección, siguiendo a la landing (entrada siguiente): Inicio reúne la oferta de valor, el problema, las tres industrias y la escalera de cinco etapas. Técnico se abre en siete: ARAIS, Gemelo, TalkRoom, TrxRoom, CustomerRoom, Arquitectura general y BacklogTI. Y el modelo de negocios sale a su propio grupo, Pricing, porque estaba escondido como subtítulo de Overview. Comercial y Gestión no se tocaron.

Lo que apareció al reordenar importa más que el orden. El BBP decía 24 puntos en 3 capas cuando el motor ya va en v2.2.0 con 26 puntos en 4: se agregó Sondas (S23–S26), que en vez de mirar el marcado le pregunta de verdad a un asistente y mide si la organización aparece, y la numeración se corrió sin huecos (L01–L06 · T07–T14 · R15–R22). Tampoco figuraba el radar de LatAm: 203 organizaciones medidas de 372 en veinte países, publicadas sin que nadie pague por aparecer ni por salir. Las cifras viejas se corrigieron donde eran dato vivo y se dejaron intactas en la auditoría y en esta bitácora, que son fotos fechadas.

Deuda que abre este cambio: los cinco nombres técnicos son de este documento y de ninguna otra parte —en el código el puntaje es AgentRoom-AIScore y el panel es Agent Room Manager; TalkRoom, TrxRoom y CustomerRoom no existen en el repo ni en la landing—. Queda como AR-10, para decidirlo antes de que lleguen a material comercial.

23-ago-2026

Una sola oferta de valor: se fusionan «Cómo funciona» y «Las cinco etapas»

En la landing vivían como dos secciones separadas —«Cómo funciona» (los cuatro niveles por industria) y «Las cinco etapas» (Ver, Existir, Responder, Operar, Colaborar)—, pero eran la misma escalera contada dos veces. No son dos cosas: son la oferta de valor. Se fusionaron en una sola sección (#how-it-works): las cinco etapas como la escalera, cada una con su nivel de precio (Gratis / Gratis 3 meses / token), su estado real y sus ejemplos por industria, con la línea de tarifa marcando dónde deja de ser gratis. Stages.tsx quedó como la sección única y HowItWorks salió del Landing; el nav colapsó los dos ítems en uno. Este BBP también unió sus dos secciones equivalentes.

23-ago-2026

Se abre el seguimiento comercial

Nuevo grupo Comercial con dos secciones: El embudo, que mapea los cuatro niveles del producto a etapas de venta, y Acciones, el registro de a quién se contactó, qué pasó y qué sigue. Parte en cero a propósito: no hay nada anterior documentado y no se va a rellenar hacia atrás.

Lo que obligó a escribir el embudo antes que el registro: hoy se puede entregar hasta el nivel 02 y no se puede cobrar el 03. No es precio pendiente de comunicar —no hay número (AR-02) y los servicios que justifican el nivel no están construidos (AR-04)—, así que el cero de ventas es estructural, no comercial. Quedaron fijadas cinco reglas RC-1–RC-5; la más dura es RC-3: no se cotiza el nivel 03 mientras la tarifa sea TBD, ni con un rango, porque un número dicho en una reunión queda de ancla aunque después se publique otro.

23-ago-2026

Backlog técnico: las 21 piezas salen del informe y entran al BBP

El catastro de piezas vivía solo en el informe de arquitectura, y el backlog de Gestión lo resumía en una línea (AR-06). Ahora tiene sección propia en Técnico, ordenada por las fases del plan y con la misma columna que el resto del backlog: por qué sigue ahí. La división quedó explícita —Gestión decide, Técnico construye— y se sumaron D-01–D-03 para la deuda de los hallazgos que no es una pieza de producto.

Dos cosas que aparecieron al ordenarlo. P4, el Agent Room Manager, no está en ninguna de las cuatro fases pese a estar anunciado en la landing: hay que ubicarlo o sacarlo del copy. Y la Fase 0 sigue diciendo «los 16 checks» porque se escribió el 20-ago, un día antes de que el análisis creciera a 24 puntos en 3 capas; el alcance real de P21 es 24. La auditoría no se toca —es una foto fechada—, la corrección va anotada en el backlog.

23-ago-2026

Cómo funciona, por industria; y el scan deja de repetir códigos

«Cómo funciona» ahora se elige por industria —Retail, Servicios, Sistemas— y muestra el camino adaptado: el catálogo del nivel 02 y los ejemplos de 03 y 04 cambian según el rubro. El recorrido se reencuadró en cuatro niveles: 01 y 02 gratis (02 por 3 meses, con acciones de la empresa), y la tarifa en token desde el 03, cuando hay un agente que responde por cada persona. La frontera del cobro se movió del 02 al 03 en la línea de tarifa, en pricing.ts y en el panel; Stages y Tarifas ya calzaban.

Bug del análisis: las capas Transaccionabilidad y Resolución imprimían los mismos códigos T09–T16, por una lógica vieja de cuando había dos capas. Ahora el prefijo vive en los datos (scan.ts) y cada capa reinicia en 01: L01–L09 · T01–T08 · R01–R08.

22-ago-2026

Tercera capa del análisis: de 16 a 24 puntos

Se agregó Resolución a las dos capas originales. Las dos primeras solo sabían preguntarle a una tienda: a un banco, un ministerio o una universidad les aplicaban cuatro puntos de dieciséis. El instrumento estaba mal, no los sitios. El análisis quedó en 24 puntos, 3 capas.

21-ago-2026

Dominio propio y redefinición del producto

agentroom.io pasó a ser la dirección; agentroom.junngla.com redirige con 308 permanente sin apagarse. El producto se redefinió: no es solo para tiendas —comercio, servicios, software e instituciones—, y el amarillo señal pasó a vestir también el llamado principal.

20-ago-2026

Fusión con VADO

AgentRoom absorbió a VADO: un gemelo digital es un agente en AgentRoom. El repo pasó a ser uno solo —landing, motor, funciones y CLI—, copiado del de VADO. Los nueve handlers no se reescribieron: se adaptan con src/lib/handler-vercel.ts. Dos tsconfig para validar web y motor por separado. La mudanza es por configuración (motor/marca.ts), no por código. El repo original de VADO quedó intacto y sigue sirviendo vado.junngla.com; el cutover es una decisión aparte (AR-01).

Ese mismo día se corrió SuperArqDev sobre el commit inicial: score 68/100 (SQALE C), 0% de cobertura de pruebas y el catastro de las 21 piezas que faltan con su plan por fases. Ver la auditoría As-Is/To-Be.

Fuente: sesiones de trabajo ago 2026 · reglas del repo en 01-agentroom-web/CLAUDE.md · historia del motor en vado.junngla.com/bbp