Esto es lo que cuenta como probado de principio a fin: el agente encontró el defecto, decidió la corrección, la publicó, la fusionó y verificó el sitio en vivo. Algunos eran problemas reales del sitio; la mayoría fueron simulacros plantados. Nada de esto prueba que el posicionamiento mejorara. Lo que hicieron las personas alrededor del ciclo se lista abajo, junto con cada tipo de defecto que este sitio no puede probar.
22 de 30 tipos de defecto
19 ejercitados con un simulacro plantado · 3 con un hallazgo real · 8 no demostrables en este sitio
El total es cada tipo de defecto que el agente está diseñado para reparar sin nadie presente, cada uno probado en toda la cadena en nuestra batería de pruebas. Esta página cuenta cuántos lo han hecho también en vivo, en este sitio. No hay una lista más corta detrás del primer número: cada tipo aún no probado en vivo aparece abajo con su motivo.
Los recibos verificados antes del 11 de octubre de 2026 los registró una comprobación que solo confirmaba que el archivo cambiado cargaba. El 11 de octubre se volvió a comprobar cada defecto contado aquí en el sitio en vivo con la propia regla de auditoría, y todos están corregidos.
Recibos leídos el 2026-10-11 08:43 UTC
La misma evidencia como datos: proof.json. El repositorio es privado, así que los números de pull request aparecen como texto plano y cada traza lleva su propio extracto del diff.
Plantado, encontrado, propuesto, aprobado, publicado, fusionado, verificado. Un guion significa que la etapa no aplica o no se registró para ese recibo; nada se completa por inferencia.
| Tipo de defecto | plantado | encontrado | propuesto | aprobado | publicado | fusionado | verificado |
|---|---|---|---|---|---|---|---|
cross_canonical/terms simulacro plantado | 2026-10-08 04:22 | 2026-10-08 04:30 | 2026-10-08 04:30 | 2026-10-08 04:30 | 2026-10-08 08:12 | 2026-10-08 09:10 | 2026-10-08 09:13 |
description_too_long/cookies simulacro plantado | 2026-10-04 04:13 | 2026-10-04 12:20 | 2026-10-04 12:20 | 2026-10-04 12:30 | — | — | 2026-10-04 18:00 |
heading_skip/cookies simulacro plantado | 2026-10-08 07:18 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 07:40 | 2026-10-08 07:50 | 2026-10-08 07:51 |
missing_description/licensing simulacro plantado | 2026-10-08 07:18 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 07:51 | 2026-10-08 08:00 | 2026-10-08 08:01 |
missing_h1/privacy simulacro plantado | 2026-10-08 03:17 | 2026-10-08 03:30 | 2026-10-08 03:30 | 2026-10-08 03:30 | 2026-10-08 03:31 | 2026-10-08 03:40 | 2026-10-08 03:43 |
missing_indexnow_key/00447098f7fba55c133eb7dd520325e7.txt simulacro plantado | 2026-10-11 03:46 | 2026-10-11 07:10 | 2026-10-11 07:10 | 2026-10-11 07:30 | 2026-10-11 07:30 | 2026-10-11 08:20 | 2026-10-11 08:40 |
missing_llms_txt/llms.txt simulacro plantado | 2026-10-04 21:30 | 2026-10-05 20:00 | 2026-10-05 20:00 | 2026-10-05 21:40 | 2026-10-07 14:30 | 2026-10-07 14:40 | 2026-10-07 15:00 |
missing_robots/robots.txt simulacro plantado | 2026-10-08 10:41 | 2026-10-08 10:55 | 2026-10-08 10:55 | 2026-10-08 10:55 | 2026-10-08 10:55 | 2026-10-08 11:10 | 2026-10-08 11:16 |
missing_title/licensing simulacro plantado | 2026-10-08 04:22 | 2026-10-08 04:30 | 2026-10-08 04:30 | 2026-10-08 04:30 | 2026-10-08 04:30 | 2026-10-08 04:40 | 2026-10-08 05:00 |
multiple_h1/ascent simulacro plantado | 2026-10-08 07:18 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 07:30 | 2026-10-08 08:20 | 2026-10-08 08:22 |
no_ai_crawler_policy/robots.txt simulacro plantado | 2026-10-08 09:16 | 2026-10-08 09:23 | 2026-10-08 09:23 | 2026-10-08 09:23 | 2026-10-08 09:23 | 2026-10-08 09:40 | 2026-10-08 10:00 |
no_canonical/cookies simulacro plantado | 2026-10-04 21:30 | 2026-10-05 20:00 | 2026-10-05 20:00 | 2026-10-05 20:00 | 2026-10-05 20:00 | 2026-10-05 21:50 | 2026-10-05 22:10 |
no_publisher_schema/licensing simulacro plantado | 2026-10-06 08:53 | 2026-10-06 11:00 | 2026-10-06 11:00 | 2026-10-06 11:00 | 2026-10-06 11:00 | 2026-10-06 11:10 | 2026-10-07 18:30 |
no_structured_data/privacy simulacro plantado | 2026-10-07 14:33 | 2026-10-07 16:00 | 2026-10-07 16:00 | 2026-10-07 16:00 | 2026-10-07 18:30 | 2026-10-07 18:40 | 2026-10-07 19:00 |
noindex/privacy simulacro plantado | 2026-10-08 04:03 | 2026-10-08 04:22 | 2026-10-08 04:22 | 2026-10-08 04:22 | 2026-10-08 08:01 | 2026-10-08 08:10 | 2026-10-08 08:12 |
og_incomplete/ascent simulacro plantado | 2026-10-04 21:30 | 2026-10-05 03:00 | 2026-10-05 03:00 | 2026-10-05 03:30 | 2026-10-05 03:30 | 2026-10-05 03:40 | 2026-10-05 20:00 |
og_no_site_name/ascent simulacro plantado | 2026-10-07 18:36 | 2026-10-08 02:52 | 2026-10-08 02:52 | 2026-10-08 02:52 | 2026-10-08 02:52 | 2026-10-08 05:10 | 2026-10-08 05:40 |
publisher_no_description/cookies simulacro plantado | 2026-10-07 14:34 | 2026-10-07 16:00 | 2026-10-07 16:00 | 2026-10-07 16:00 | 2026-10-08 03:23 | 2026-10-08 03:50 | 2026-10-08 04:00 |
publisher_no_legal_name/licensing hallazgo real | — | 2026-10-06 13:00 | 2026-10-06 13:00 | 2026-10-06 13:00 | 2026-10-06 13:00 | 2026-10-06 13:10 | 2026-10-06 13:40 |
sitemap_not_referenced/robots.txt simulacro plantado | 2026-10-08 11:29 | 2026-10-08 12:06 | 2026-10-08 12:06 | 2026-10-08 12:06 | 2026-10-08 13:10 | 2026-10-08 13:17 | 2026-10-08 13:17 |
title_too_long/blog/accessibility-compliance-performance-marketing-balance hallazgo real | — | 2026-10-07 14:30 | 2026-10-07 14:30 | 2026-10-07 14:30 | 2026-10-07 14:30 | 2026-10-07 15:20 | 2026-10-07 15:30 |
title_too_short/terms hallazgo real | — | 2026-10-07 22:10 | 2026-10-07 22:10 | 2026-10-07 22:10 | 2026-10-07 22:10 | 2026-10-07 22:20 | 2026-10-07 22:30 |
Abra cualquier fila para ver sus identificadores de recibo, el pull request que la llevó y un extracto del diff. Un simulacro plantado muestra el defecto que introdujimos y la corrección que escribió el agente.
Los extractos de la página /ascent muestran el nombre anterior del producto como [former name]; esa es la única página que lo menciona.
cross_canonical /termsterms.html- <link rel="canonical" href="https://umbodi.ai/terms"> + <link rel="canonical" href="https://example.com/drill">
terms.html- <link rel="canonical" href="https://example.com/drill"> + <link rel="canonical" href="https://umbodi.ai/terms">
description_too_long /cookiescookies.html- How Umbodi uses cookies and similar technologies, and how consent works across sign-up, site connection, autonomy and billing. + How Umbodi uses cookies and similar technologies, and how consent works across sign-up, site connection, autonomy and billing. How Umbodi uses cookies and si…
heading_skip /cookiescookies.html- <main class="body"><h2 id="s1"><span class="snum">01</span>What this notice covers</h2><p>Umbodi uses cookies and similar technologies (local storage, sessio… + <main class="body"><h4 id="s1"><span class="snum">01</span>What this notice covers</h4><p>Umbodi uses cookies and similar technologies (local storage, sessio…
cookies.html- <main class="body"><h4 id="s1"><span class="snum">01</span>What this notice covers</h4><p>Umbodi uses cookies and similar technologies (local storage, sessio… + <main class="body"><h2 id="s1"><span class="snum">01</span>What this notice covers</h2><p>Umbodi uses cookies and similar technologies (local storage, sessio…
missing_description /licensinglicensing.html- <meta name="description" content="Commercial licensing for the Umbodi API, SDK, MCP server, skill, widgets, cockpit and self-hosted / white-label engine.">licensing.html+ <meta name="description" content="Learn about Umbodi's commercial licensing framework for APIs, SDKs, and developer assets. Understand deployment options and…missing_h1 /privacyprivacy.html- <header class="head"><div class="eyebrow">Legal</div><h1>Privacy Policy</h1><p class="lead">How Umbodi collects, uses, shares and protects personal data acro… + <header class="head"><div class="eyebrow">Legal</div><p class="lead">How Umbodi collects, uses, shares and protects personal data across the website, app and…
privacy.html- <main class="body"><h2 id="s1"><span class="snum">01</span>Who we are & scope</h2><p>I-Novanet Software Ltd, <span class="tbc">[registered address — to b… + <main class="body"> + <h1>Privacy Policy</h1> + <h2 id="s1"><span class="snum">01</span>Who we are & scope</h2><p>I-Novanet Software Ltd, <span class="tbc">[registered address — to be confirmed]</span>…
missing_indexnow_key /00447098f7fba55c133eb7dd520325e7.txt00447098f7fba55c133eb7dd520325e7.txtfile deleted (1 lines)00447098f7fba55c133eb7dd520325e7.txt+ 00447098f7fba55c133eb7dd520325e7 file created (1 lines)
missing_llms_txt /llms.txtllms.txtfile deleted (119 lines)llms.txt+ <!-- ascent:generated:start --> + # umbodi.ai + > Generated by Umbodi from the pages it crawled. Review before publishing. file created (20 lines)
missing_robots /robots.txtrobots.txtfile deleted (66 lines)robots.txt+ # Umbodi — https://umbodi.ai + # The admin surfaces are gated by is_platform_admin() server-side; these rules keep them out of the + # index as well, because an admin screen appearing in search results is a disclosure of shape even file created (77 lines)
missing_title /licensinglicensing.html- <title>Developer & Asset Licensing — Umbodi</title>licensing.html+ <title>Developer & Asset Licensing — umbodi.ai</title>multiple_h1 /ascentascent.html- <header class="head"><div class="eyebrow">Identity</div><h1>[former name] is now Umbodi</h1><p class="lead">The autonomous search agent published as <b>[former name]</b> u… + <header class="head"><div class="eyebrow">Identity</div><h1>[former name] is now Umbodi</h1> + <h1>[former name] is now Umbodi</h1><p class="lead">The autonomous search agent published as <b>[former name]</b> until September 2026 is now published as <b>Umbodi</b>. S…
ascent.html- <h1>[former name] is now Umbodi</h1><p class="lead">The autonomous search agent published as <b>[former name]</b> until September 2026 is now published as <b>Umbodi</b>. S… + <h2>[former name] is now Umbodi</h2><p class="lead">The autonomous search agent published as <b>[former name]</b> until September 2026 is now published as <b>Umbodi</b>. S…
no_ai_crawler_policy /robots.txtrobots.txt- User-agent: GPTBot - User-agent: ClaudeBot - User-agent: PerplexityBot 5 line(s) removed, 0 added
robots.txt+ # umbodi:generated:start + # Added by Umbodi — the rules above are yours and are left untouched. + # Answer engines are allowed, deliberately: being cited is distribution. 0 line(s) removed, 27 added
no_canonical /cookiescookies.html- <link rel="canonical" href="https://umbodi.ai/cookies">cookies.html+ <link rel="canonical" href="https://umbodi.ai/cookies">no_publisher_schema /licensinglicensing.html- "@type": "Organization", - "@id": "https://umbodi.ai/#org", - "name": "I-Novanet Software Ltd", 12 line(s) removed, 0 added
licensing.html+ <!-- ascent:jsonld:start --> + <script type="application/ld+json"> + { 0 line(s) removed, 20 added
no_structured_data /privacyprivacy.html- <script type="application/ld+json"> - { - "@context": "https://schema.org", element removed (46 lines)
privacy.html+ <!-- ascent:jsonld:start --> + <script type="application/ld+json"> + { 0 line(s) removed, 19 added
noindex /privacyprivacy.html+ <meta name="robots" content="noindex">privacy.html- <meta name="robots" content="noindex">og_incomplete /ascentascent.html- <meta property="og:title" content="[former name] is now Umbodi — the same product, renamed">ascent.html+ <meta property="og:title" content="[former name] is now Umbodi — the same product, renamed">og_no_site_name /ascentascent.html- <meta property="og:site_name" content="Umbodi">ascent.html+ <meta property="og:site_name" content="umbodi.ai">publisher_no_description /cookiescookies.html- "description": "A Mauritian software company building tools for search and AI-answer visibility.",cookies.html+ "description": "A Mauritian software company building tools for search and AI-answer visibility.",publisher_no_legal_name /licensinglicensing.html- "dateModified": "2026-10-06T12:00:30.210Z", + "dateModified": "2026-10-06T13:00:26.096Z",
sitemap_not_referenced /robots.txtrobots.txt- Sitemap: https://umbodi.ai/sitemap.xmlrobots.txt+ # umbodi:generated:start + # Added by Umbodi — the rules above are yours and are left untouched. + # Answer engines are allowed, deliberately: being cited is distribution. 0 line(s) removed, 26 added
title_too_long /blog/accessibility-compliance-performance-marketing-balanceblog/accessibility-compliance-performance-marketing-balance.html- <title>Accessibility vs. Growth: Balancing Compliance and Performance</title> - <meta property="og:title" content="Accessibility vs. Growth: Balancing Compliance and Performance"> + <title>Accessibility vs. Growth: Balancing Compliance and</title> + <meta property="og:title" content="Accessibility vs. Growth: Balancing Compliance and">
This page is generated from its database row on every push; the render on 2026-10-07 (commit de122542) replaced the file afterwards. The receipt records the fix live at the verification time.
title_too_short /termsterms.html- <title>Terms of Service — umbodi.ai</title> + <title>Terms of Service — umbodi.ai — umbodi.ai</title>
Ninguna decisión dentro del ciclo fue de una persona. Estos son los pasos que dieron personas a su alrededor, explicados para que nadie tenga que buscarlos en el historial.
Un simulacro prueba el camino de reparación, no un cambio de posicionamiento. El posicionamiento se mide en Google y se informa tal como se mide; nunca se infiere de una corrección.
Cada uno tiene una ruta y un remedio. Lo que le falta a este sitio es una forma de crear el defecto sin romper una página en vivo ni anunciar una que no existe. Las razones de abajo se leen del código que rechaza el simulacro.
| Tipo de defecto | Por qué no se puede probar aquí (según el código) |
|---|---|
thin_content | the thinnest page this site serves is 857 words and the finding fires under 250, so the plant is "delete the body of a live page" for up to 52 hours. Measured 2026-10-06 across all 12 root pages. A drill is a worse snippet, never a broken page. |
images_missing_alt | the only pages with an <img> are methodology (3), walkthroughs (6) and developers (1), and all three are marketing pages pre-rendered into fr/ and es/ — so mirroredRefusal refuses the plant, correctly. There is no unmirrored page on this site with an image. Measured 2026-10-06. |
no_internal_links | every root page carries at least seven internal links and most of them are its own navigation, so the plant is "remove the nav from a live page". Measured 2026-10-06. Same refusal as thin_content and for the same reason. |
missing_sitemap | sitemap.xml is regenerated by .github/workflows/blog.yml (build-sitemap) on every push to main, so a deleted sitemap comes back within minutes without the agent — a drill would credit CI. Measured 2026-10-07: build-sitemap restores a deleted file exactly. Owner decision the same day. |
sitemap_stale | same generator, same answer: build-sitemap rewrites every <lastmod> on each push, so a planted stale date is reverted by CI before the agent can act. Measured 2026-10-07; owner decision. |
robots_blocks_crawlers | the plant is "Disallow: / on the live robots.txt" for up to 52 hours — telling every crawler to stop reading umbodi.ai. On a site whose entire product is search and AI-answer visibility that is not a worse snippet, it is the worst available outcome, and it would also suppress the rank measurements every other drill depends on. Measured 2026-10-07: our robots.txt currently disallows 2 admin prefixes and allows everything else. |
sitemap_url_not_indexable | plantable in principle and not built: it needs a new sitemap edit that ADDS a url serving nothing (the existing sitemap_lastmod target only ages an entry), and the drill then advertises a dead page to crawlers for up to 52 hours. Measured 2026-10-07: the remedy and the plant are inverses — the agent dropping the url restores exactly what scripts/build-sitemap.mjs produces — so this is the one of the three that a later session could reasonably add. It is listed rather than attempted because a drill that lies to a crawler about a page should be a deliberate decision, not a side effect of finishing a list. |
robots_named_agent_exempt | plantable in principle and not built: the plant is a named group with `Allow: /` on the live robots.txt — the exact defect #912 removed, exempting a crawler from /admin and /api/ for up to 52 hours — and it needs a new robots edit plus a DRILL_EXCUSES entry, because test/robots-own-named-groups.test.mjs fails every pull request while the plant is open. Measured 2026-10-09: our robots.txt names ten crawlers and none escapes. Listed rather than attempted for the same reason as sitemap_url_not_indexable: a drill that re-opens what a fix just closed should be a decision, not a side effect of adding the code. |
Un tipo de defecto cuenta cuando una propuesta que el agente decidió por sí solo lleva un recibo verificado: el agente encontró el defecto, decidió la corrección, la publicó, la fusionó y verificó el sitio en vivo. El recibo es una fila que escribe el producto, no una afirmación redactada para esta página.
Algunos sí y otros fueron plantados. Para ejercitar el ciclo introdujimos deliberadamente defectos en nuestras propias páginas y dejamos que el agente los encontrara. Cada fila indica cuál fue: un simulacro plantado o un hallazgo real.
No. Un simulacro prueba que el camino de reparación funciona de principio a fin. No muestra un cambio de posicionamiento, y Umbodi nunca lo infiere de una corrección: el posicionamiento se mide aparte, en Google, y se informa tal como se mide.
No dentro del ciclo. A su alrededor, personas plantaron los simulacros, concedieron permisos por página, retiraron aprobaciones antiguas, desplegaron el worker, ejecutaron una migración de base de datos y lanzaron antes de tiempo algunas ejecuciones. Esos pasos prepararon el escenario y el calendario; cada decisión de esta página fue del agente.
Primero audita y le muestra lo que encontró. Actuar por sí solo es un ajuste que usted activa, página por página.