Umbodi
Get started
The receipts

What the agent fixed on its own site, with no human decision in the loop.

Here is what counts as proven end to end: the agent found the defect, decided the fix, published it, merged it and verified the live site. Some were real problems on the site; most were planted drills. None of this proves that rankings improved. What people did around the loop is listed below, with every defect type this site cannot prove.

22 of 30 defect types

19 exercised by a planted drill · 3 by a finding in the wild · 8 not provable on this site

The total is every defect type the agent is built to repair with nobody present, each one proven through the full chain in our test suite. This page counts how many have also done it live, on this site. There is no shorter list behind the first number: every type not yet proven live is listed below with its reason.

Receipts verified before 11 October 2026 were recorded by a check that confirmed only that the changed file loaded. On 11 October every defect counted here was re-checked on the live site with the audit rule itself, and each is fixed.

Receipts read 2026-10-11 08:43 UTC

The same evidence as data: proof.json. The repository is private, so pull request numbers are listed as plain text and each trace carries its own diff excerpt.

Seven stages, timestamped

Every proven defect type, stage by stage.

Planted, found, proposed, approved, published, merged, verified. A dash means the stage does not apply or was not recorded for that receipt; nothing is filled in by inference.

Defect typeplantedfoundproposedapprovedpublishedmergedverified
cross_canonical
/terms
planted drill
2026-10-08 04:222026-10-08 04:302026-10-08 04:302026-10-08 04:302026-10-08 08:122026-10-08 09:102026-10-08 09:13
description_too_long
/cookies
planted drill
2026-10-04 04:132026-10-04 12:202026-10-04 12:202026-10-04 12:30——2026-10-04 18:00
heading_skip
/cookies
planted drill
2026-10-08 07:182026-10-08 07:302026-10-08 07:302026-10-08 07:302026-10-08 07:402026-10-08 07:502026-10-08 07:51
missing_description
/licensing
planted drill
2026-10-08 07:182026-10-08 07:302026-10-08 07:302026-10-08 07:302026-10-08 07:512026-10-08 08:002026-10-08 08:01
missing_h1
/privacy
planted drill
2026-10-08 03:172026-10-08 03:302026-10-08 03:302026-10-08 03:302026-10-08 03:312026-10-08 03:402026-10-08 03:43
missing_indexnow_key
/00447098f7fba55c133eb7dd520325e7.txt
planted drill
2026-10-11 03:462026-10-11 07:102026-10-11 07:102026-10-11 07:302026-10-11 07:302026-10-11 08:202026-10-11 08:40
missing_llms_txt
/llms.txt
planted drill
2026-10-04 21:302026-10-05 20:002026-10-05 20:002026-10-05 21:402026-10-07 14:302026-10-07 14:402026-10-07 15:00
missing_robots
/robots.txt
planted drill
2026-10-08 10:412026-10-08 10:552026-10-08 10:552026-10-08 10:552026-10-08 10:552026-10-08 11:102026-10-08 11:16
missing_title
/licensing
planted drill
2026-10-08 04:222026-10-08 04:302026-10-08 04:302026-10-08 04:302026-10-08 04:302026-10-08 04:402026-10-08 05:00
multiple_h1
/ascent
planted drill
2026-10-08 07:182026-10-08 07:302026-10-08 07:302026-10-08 07:302026-10-08 07:302026-10-08 08:202026-10-08 08:22
no_ai_crawler_policy
/robots.txt
planted drill
2026-10-08 09:162026-10-08 09:232026-10-08 09:232026-10-08 09:232026-10-08 09:232026-10-08 09:402026-10-08 10:00
no_canonical
/cookies
planted drill
2026-10-04 21:302026-10-05 20:002026-10-05 20:002026-10-05 20:002026-10-05 20:002026-10-05 21:502026-10-05 22:10
no_publisher_schema
/licensing
planted drill
2026-10-06 08:532026-10-06 11:002026-10-06 11:002026-10-06 11:002026-10-06 11:002026-10-06 11:102026-10-07 18:30
no_structured_data
/privacy
planted drill
2026-10-07 14:332026-10-07 16:002026-10-07 16:002026-10-07 16:002026-10-07 18:302026-10-07 18:402026-10-07 19:00
noindex
/privacy
planted drill
2026-10-08 04:032026-10-08 04:222026-10-08 04:222026-10-08 04:222026-10-08 08:012026-10-08 08:102026-10-08 08:12
og_incomplete
/ascent
planted drill
2026-10-04 21:302026-10-05 03:002026-10-05 03:002026-10-05 03:302026-10-05 03:302026-10-05 03:402026-10-05 20:00
og_no_site_name
/ascent
planted drill
2026-10-07 18:362026-10-08 02:522026-10-08 02:522026-10-08 02:522026-10-08 02:522026-10-08 05:102026-10-08 05:40
publisher_no_description
/cookies
planted drill
2026-10-07 14:342026-10-07 16:002026-10-07 16:002026-10-07 16:002026-10-08 03:232026-10-08 03:502026-10-08 04:00
publisher_no_legal_name
/licensing
found in the wild
—2026-10-06 13:002026-10-06 13:002026-10-06 13:002026-10-06 13:002026-10-06 13:102026-10-06 13:40
sitemap_not_referenced
/robots.txt
planted drill
2026-10-08 11:292026-10-08 12:062026-10-08 12:062026-10-08 12:062026-10-08 13:102026-10-08 13:172026-10-08 13:17
title_too_long
/blog/accessibility-compliance-performance-marketing-balance
found in the wild
—2026-10-07 14:302026-10-07 14:302026-10-07 14:302026-10-07 14:302026-10-07 15:202026-10-07 15:30
title_too_short
/terms
found in the wild
—2026-10-07 22:102026-10-07 22:102026-10-07 22:102026-10-07 22:102026-10-07 22:202026-10-07 22:30
The traces

What changed, and what the agent wrote back.

Open any row for its receipt ids, the pull request that carried it, and an excerpt of the diff. A planted drill shows the defect we introduced and the fix the agent wrote.

Excerpts from the /ascent page show the product's former name as [former name]; that page is the only one that states it.

cross_canonical /terms
  • Planted by us on 2026-10-08 04:22 UTC · crosscanonical-muz158nn · commit 34d561da
  • Decided by the agent 2026-10-08 04:30 UTC · receipt d82f06cc-064d-41b2-8508-c17374f3b544
  • Pull request (private repository) #862
  • Verified on the live site after the deploy 2026-10-08 09:13 UTC · receipt ec035077-4938-42ff-8d6e-8aa3e99c8a17
  • Proposal ed127b80-2b64-4aee-a634-755f325f3825
What the plant changed in terms.html
- <link rel="canonical" href="https://umbodi.ai/terms">
+ <link rel="canonical" href="https://example.com/drill">
What the agent wrote in terms.html
- <link rel="canonical" href="https://example.com/drill">
+ <link rel="canonical" href="https://umbodi.ai/terms">
description_too_long /cookies
  • Planted by us on 2026-10-04 04:13 UTC · meta-mutb2y3b · commit d61ec0d9
  • Decided by the agent 2026-10-04 12:30 UTC · receipt fcc149b2-12f1-4ac5-8d69-fb22e16c4636
  • No agent pull request matched this receipt
  • Verified on the live site after the deploy 2026-10-04 18:00 UTC · receipt d9cf9725-a260-4bf5-b7dc-cb45a5261d18
  • Proposal 156a280f-ae99-4ba6-814f-1fa8dcaae794
What the plant changed in cookies.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 /cookies
  • Planted by us on 2026-10-08 07:18 UTC · headingskip-muz7fmdk · commit 71fc0f3d
  • Decided by the agent 2026-10-08 07:30 UTC · receipt bdb870ac-6ef3-453d-bbfa-2a06f071bfca
  • Pull request (private repository) #857
  • Verified on the live site after the deploy 2026-10-08 07:51 UTC · receipt 3bd92145-aaeb-47ba-93d3-dc8eac92e036
  • Proposal 108b0ea2-ff06-48e9-9102-459b8eec8022
What the plant changed in cookies.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…
What the agent wrote in 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 /licensing
  • Planted by us on 2026-10-08 07:18 UTC · description-muz7frq1 · commit 71fc0f3d
  • Decided by the agent 2026-10-08 07:30 UTC · receipt cbe7f1a1-2c9b-482c-81ed-e611f82fcc83
  • Pull request (private repository) #859
  • Verified on the live site after the deploy 2026-10-08 08:01 UTC · receipt 228c304d-da84-4b71-ab5b-bc095cf61fcd
  • Proposal e36a7b0a-0b7d-406d-aecd-a52688fb4466
What the plant changed in licensing.html
- <meta name="description" content="Commercial licensing for the Umbodi API, SDK, MCP server, skill, widgets, cockpit and self-hosted / white-label engine.">
What the agent wrote in 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 /privacy
  • Planted by us on 2026-10-08 03:17 UTC · h1-muyyurgr · commit 29ecac59
  • Decided by the agent 2026-10-08 03:30 UTC · receipt 9d390435-7084-4f04-8aab-61844bd60fc8
  • Pull request (private repository) #845
  • Verified on the live site after the deploy 2026-10-08 03:43 UTC · receipt 5ba00d1a-dfe1-4fa0-a403-2cd901c32738
  • Proposal 44979cd2-c1e0-4be3-9199-0342382de9c3
What the plant changed in privacy.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…
What the agent wrote in privacy.html
- <main class="body"><h2 id="s1"><span class="snum">01</span>Who we are &amp; 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 &amp; scope</h2><p>I-Novanet Software Ltd, <span class="tbc">[registered address — to be confirmed]</span>…
missing_indexnow_key /00447098f7fba55c133eb7dd520325e7.txt
  • Planted by us on 2026-10-11 03:46 UTC · artifact-mv3a6l8z · commit c290cac5
  • Decided by the agent 2026-10-11 07:30 UTC · receipt 9b4762d6-5f94-4a18-ab46-afb72fa2d357
  • Pull request (private repository) #962
  • Verified on the live site after the deploy 2026-10-11 08:40 UTC · receipt b7c70195-f6c7-4197-9240-2b4958ce0dd4
  • Proposal 229b21d4-1d4b-49f8-90bf-999aa8acee39
What the plant changed in 00447098f7fba55c133eb7dd520325e7.txt
file deleted (1 lines)
What the agent wrote in 00447098f7fba55c133eb7dd520325e7.txt
+ 00447098f7fba55c133eb7dd520325e7
file created (1 lines)
missing_llms_txt /llms.txt
  • Planted by us on 2026-10-04 21:30 UTC · artifact-muuc4i48 · commit bfb6bd3a
  • Decided by the agent 2026-10-05 21:40 UTC · receipt 98a7ca31-d4c8-453b-bd0f-da732c2ba482
  • Pull request (private repository) #814
  • Verified on the live site after the deploy 2026-10-07 15:00 UTC · receipt e6403314-71aa-476a-9825-d92e9600dd2e
  • Proposal 3ef5e9cd-ad76-4d0d-b674-99257ba9ef06
What the plant changed in llms.txt
file deleted (119 lines)
What the agent wrote in 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.txt
  • Planted by us on 2026-10-08 10:41 UTC · artifact-muzep6m8 · commit 1873349d
  • Decided by the agent 2026-10-08 10:55 UTC · receipt ab6a3e66-ad4c-4309-a3a1-6b288fdf7179
  • Pull request (private repository) #870
  • Verified on the live site after the deploy 2026-10-08 11:16 UTC · receipt 354126c8-d07f-49e4-b5ac-b11bf0b5d88d
  • Proposal c515cd88-e194-400b-bd87-4404519d62fc
What the plant changed in robots.txt
file deleted (66 lines)
What the agent wrote in 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 /licensing
  • Planted by us on 2026-10-08 04:22 UTC · title-muz15cvg · commit 34d561da
  • Decided by the agent 2026-10-08 04:30 UTC · receipt cd9f07ee-3644-4bf0-b714-d185060f4829
  • Pull request (private repository) #850
  • Verified on the live site after the deploy 2026-10-08 05:00 UTC · receipt 78fc75ff-818f-4026-aab1-c895697376cf
  • Proposal a2e043f5-05c5-496c-84aa-2726d20f38d3
What the plant changed in licensing.html
- <title>Developer &amp; Asset Licensing — Umbodi</title>
What the agent wrote in licensing.html
+ <title>Developer &amp; Asset Licensing — umbodi.ai</title>
multiple_h1 /ascent
  • Planted by us on 2026-10-08 07:18 UTC · h1dup-muz7fx0b · commit 71fc0f3d
  • Decided by the agent 2026-10-08 07:30 UTC · receipt 7cece27c-b5a7-4f11-aa90-6685aaf72848
  • Pull request (private repository) #854
  • Verified on the live site after the deploy 2026-10-08 08:22 UTC · receipt 1aea377b-16c9-466d-bf45-1e91a543962a
  • Proposal b40a783d-1f1d-4cde-b4b0-30de9b87bedc
What the plant changed in ascent.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…
What the agent wrote in 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.txt
  • Planted by us on 2026-10-08 09:16 UTC · robotsai-muzbno5m · commit 7034a585
  • Decided by the agent 2026-10-08 09:23 UTC · receipt 50863998-2854-4c60-8114-99c7f71df344
  • Pull request (private repository) #868
  • Verified on the live site after the deploy 2026-10-08 10:00 UTC · receipt a557ba72-0b39-48b0-9854-7dd0de5577a7
  • Proposal 56e92796-a575-4405-87d2-b371bb1b127c
What the plant changed in robots.txt
- User-agent: GPTBot
- User-agent: ClaudeBot
- User-agent: PerplexityBot
5 line(s) removed, 0 added
What the agent wrote in 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 /cookies
  • Planted by us on 2026-10-04 21:30 UTC · canonical-muuc4b8z · commit bfb6bd3a
  • Decided by the agent 2026-10-05 20:00 UTC · receipt 82f6c14d-ef96-44ed-9801-3120c2c564a6
  • Pull request (private repository) #770
  • Verified on the live site after the deploy 2026-10-05 22:10 UTC · receipt c0bac830-d216-4842-b983-c8ab148e9361
  • Proposal 642ea508-cae7-4a89-833a-33b9690bd08c
What the plant changed in cookies.html
- <link rel="canonical" href="https://umbodi.ai/cookies">
What the agent wrote in cookies.html
+ <link rel="canonical" href="https://umbodi.ai/cookies">
no_publisher_schema /licensing
  • Planted by us on 2026-10-06 08:53 UTC · publisher-muwfyusm · commit 9451bd82
  • Decided by the agent 2026-10-06 11:00 UTC · receipt cc1bfa43-1e6c-4361-a2b3-fccef7da2f4f
  • Pull request (private repository) #786
  • Verified on the live site after the deploy 2026-10-07 18:30 UTC · receipt e8dfb7f5-f8b7-479d-b5de-c640a5246e68
  • Proposal 35a7dfa7-8108-4253-aa63-ca87ddbf0c12
What the plant changed in licensing.html
- "@type": "Organization",
- "@id": "https://umbodi.ai/#org",
- "name": "I-Novanet Software Ltd",
12 line(s) removed, 0 added
What the agent wrote in licensing.html
+ <!-- ascent:jsonld:start -->
+ <script type="application/ld+json">
+ {
0 line(s) removed, 20 added
no_structured_data /privacy
  • Planted by us on 2026-10-07 14:33 UTC · jsonld-muy7k7c3 · commit 9d3d2dc0
  • Decided by the agent 2026-10-07 16:00 UTC · receipt b5fc58a1-4c44-44ac-9726-113945c7d284
  • Pull request (private repository) #832
  • Verified on the live site after the deploy 2026-10-07 19:00 UTC · receipt 1e907175-14ce-410d-8a8b-7290629f6192
  • Proposal ab368b3d-ec5f-4b81-af08-dc07cc169ad4
What the plant changed in privacy.html
- <script type="application/ld+json">
- {
- "@context": "https://schema.org",
element removed (46 lines)
What the agent wrote in privacy.html
+ <!-- ascent:jsonld:start -->
+ <script type="application/ld+json">
+ {
0 line(s) removed, 19 added
noindex /privacy
  • Planted by us on 2026-10-08 04:03 UTC · noindex-muz0hvk9 · commit c2fb392f
  • Decided by the agent 2026-10-08 04:22 UTC · receipt 9c1e4b2b-051d-4230-a637-dda2e75a5c9a
  • Pull request (private repository) #860
  • Verified on the live site after the deploy 2026-10-08 08:12 UTC · receipt 731af35f-c5d2-46fe-a784-686d77b51e2d
  • Proposal 9e499d35-c669-4459-acb6-36d7f244c103
What the plant changed in privacy.html
+ <meta name="robots" content="noindex">
What the agent wrote in privacy.html
- <meta name="robots" content="noindex">
og_incomplete /ascent
  • Planted by us on 2026-10-04 21:30 UTC · og-muuc4esf · commit bfb6bd3a
  • Decided by the agent 2026-10-05 03:30 UTC · receipt b40b4a34-d008-4817-a037-863f3e827fc6
  • Pull request (private repository) #760
  • Verified on the live site after the deploy 2026-10-05 20:00 UTC · receipt bec034a6-d7aa-4715-8646-5d27e37175f5
  • Proposal 4b8ab209-986d-4a31-9bf4-844bd5471199
What the plant changed in ascent.html
- <meta property="og:title" content="[former name] is now Umbodi — the same product, renamed">
What the agent wrote in ascent.html
+ <meta property="og:title" content="[former name] is now Umbodi — the same product, renamed">
og_no_site_name /ascent
  • Planted by us on 2026-10-07 18:36 UTC · ogsitename-muyg7uhc · commit d42139a2
  • Decided by the agent 2026-10-08 02:52 UTC · receipt 717b544d-9db9-424f-bd93-93fde79dd727
  • Pull request (private repository) #836
  • Verified on the live site after the deploy 2026-10-08 05:40 UTC · receipt 930e7dd3-bf4a-4016-91b5-14ae68b5659e
  • Proposal 5cd2e588-a5f4-4499-9f23-d1bd1f708ccb
What the plant changed in ascent.html
- <meta property="og:site_name" content="Umbodi">
What the agent wrote in ascent.html
+ <meta property="og:site_name" content="umbodi.ai">
publisher_no_description /cookies
  • Planted by us on 2026-10-07 14:34 UTC · publisherdesc-muy7l67f · commit 9d3d2dc0
  • Decided by the agent 2026-10-07 16:00 UTC · receipt e368c70b-e44d-4f25-92be-dba59cfb37a9
  • Pull request (private repository) #844
  • Verified on the live site after the deploy 2026-10-08 04:00 UTC · receipt 30b153e7-f072-4cdd-9f4f-2419f7b7d54a
  • Proposal 3821afbc-8307-4cc1-9d89-c256ac51d98d
What the plant changed in cookies.html
- "description": "A Mauritian software company building tools for search and AI-answer visibility.",
What the agent wrote in cookies.html
+ "description": "A Mauritian software company building tools for search and AI-answer visibility.",
sitemap_not_referenced /robots.txt
  • Planted by us on 2026-10-08 11:29 UTC · robotssitemap-muzgf7j4 · commit bf3f051f
  • Decided by the agent 2026-10-08 12:06 UTC · receipt ad4018bb-2f0e-47d4-9d35-0b6a7e8b8175
  • Pull request (private repository) #873
  • Verified on the live site after the deploy 2026-10-08 13:17 UTC · receipt 863f8493-a365-40f1-be8f-4e16bd452c80
  • Proposal c5847678-25e5-42d0-bd03-94762cf6cbc6
What the plant changed in robots.txt
- Sitemap: https://umbodi.ai/sitemap.xml
What the agent wrote in 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, 26 added
title_too_long /blog/accessibility-compliance-performance-marketing-balance
  • Decided by the agent 2026-10-07 14:30 UTC · receipt e378bf84-7629-4bb9-aecd-60b771d1909a
  • Pull request (private repository) #813
  • Verified on the live site after the deploy 2026-10-07 15:30 UTC · receipt 9306b874-bf7d-4684-99f8-524c71998e5f
  • Proposal 3d7666ce-a238-42bd-a9f9-5af56bc6e0c0
What the agent wrote in blog/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 /terms
  • Decided by the agent 2026-10-07 22:10 UTC · receipt 2336968b-d2b3-44e7-b056-7d21295b4be1
  • Pull request (private repository) #835
  • Verified on the live site after the deploy 2026-10-07 22:30 UTC · receipt f7d4a9ac-725b-49a8-8af1-f01b2b66443c
  • Proposal 680494cd-dcee-4fb4-ab36-3db44cf0a8fb
What the agent wrote in terms.html
- <title>Terms of Service — umbodi.ai</title>
+ <title>Terms of Service — umbodi.ai — umbodi.ai</title>
Around the loop

What people did.

No decision inside the loop was a person's. These are the steps people took around it, stated so nobody has to find them in the history.

A drill proves the repair path, not a ranking change. Rank is measured on Google and reported as measured; it is never inferred from a fix.

The rest

Defect types this site cannot prove.

Each has a route and a remedy. What this site lacks is a way to create the defect without breaking a live page or advertising one that does not exist. The reasons below are read from the code that refuses the plant.

Defect typeWhy it cannot be proven here (from the code)
thin_contentthe 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_altthe 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_linksevery 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_sitemapsitemap.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_stalesame 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_crawlersthe 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_indexableplantable 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_exemptplantable 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.
Straight answers

Questions about this page.

What counts as proven end to end here?

A defect type counts when a proposal the agent decided on its own carries a verified receipt: the agent found the defect, decided the fix, published it, merged it and verified the live site. The receipt is a row the product writes, not a claim written for this page.

Were these real problems on the site?

Some were and some were planted. To exercise the loop we deliberately introduced defects on our own pages and let the agent find them. Every row says which it was: a planted drill or a finding in the wild.

Does this prove that rankings improved?

No. A drill proves the repair path works end to end. It does not show a ranking change, and Umbodi never infers one from a fix: rank is measured separately, on Google, and reported as measured.

Did people do anything?

Not inside the loop. Around it, people planted the drills, granted per-page permissions, retired old approvals, deployed the worker, ran a database migration and triggered some runs early. Those steps set the stage and the timing; every decision on this page was the agent's.

Start here

Run the same loop on your site.

It audits first and shows you what it found. Acting on its own is a setting you turn on, page by page.

Umbodi acts on your mandate — an autonomous agent for search and AI-answer visibility. It finds the work, ships the work, and measures what happened.
Umbodi™ is a trademark of I-Novanet Software Ltd. Application accepted in Mauritius (MU/M/2026/44210).