{
  "generatedAt": "2026-10-11T08:43:06.882Z",
  "claim": "22 of 30 defect types proven end to end with no human decision inside the loop",
  "rule": "A code counts when an agent-decided proposal (decided_by='auto') carries an apply-log row with actor='verified'. A drill proves the repair path, not a ranking change.",
  "totals": {
    "claimed": 30,
    "proven": 22,
    "unplantable": 8,
    "notYetProven": 0
  },
  "proven": [
    {
      "code": "cross_canonical",
      "urlPath": "/terms",
      "kind": "drill",
      "drill": {
        "id": "crosscanonical-muz158nn",
        "plantedAt": "2026-10-08T04:22:00.470Z",
        "plantCommit": "34d561da6bb6d0f0aea19d59de587396d4067d21"
      },
      "proposalId": "ed127b80-2b64-4aee-a634-755f325f3825",
      "stages": {
        "planted": "2026-10-08T04:22:00.470Z",
        "found": "2026-10-08T04:30:30.322Z",
        "proposed": "2026-10-08T04:30:30.322Z",
        "approved": "2026-10-08T04:30:31.427Z",
        "published": "2026-10-08T08:12:03Z",
        "merged": "2026-10-08T09:10:06Z",
        "verified": "2026-10-08T09:13:22.263Z"
      },
      "receipts": {
        "approval": {
          "id": "d82f06cc-064d-41b2-8508-c17374f3b544",
          "at": "2026-10-08T04:30:31.427Z"
        },
        "verified": {
          "id": "ec035077-4938-42ff-8d6e-8aa3e99c8a17",
          "at": "2026-10-08T09:13:22.263Z"
        }
      },
      "pullRequest": {
        "number": 862,
        "createdAt": "2026-10-08T08:12:03Z",
        "mergedAt": "2026-10-08T09:10:06Z"
      },
      "plantExcerpt": {
        "file": "terms.html",
        "removed": [
          "<link rel=\"canonical\" href=\"https://umbodi.ai/terms\">"
        ],
        "added": [
          "<link rel=\"canonical\" href=\"https://example.com/drill\">"
        ]
      },
      "fixExcerpt": {
        "file": "terms.html",
        "removed": [
          "<link rel=\"canonical\" href=\"https://example.com/drill\">"
        ],
        "added": [
          "<link rel=\"canonical\" href=\"https://umbodi.ai/terms\">"
        ]
      },
      "note": null
    },
    {
      "code": "description_too_long",
      "urlPath": "/cookies",
      "kind": "drill",
      "drill": {
        "id": "meta-mutb2y3b",
        "plantedAt": "2026-10-04T04:13:32.570Z",
        "plantCommit": "d61ec0d9a462e08c8ebc86c6a4b326ef81ba0749"
      },
      "proposalId": "156a280f-ae99-4ba6-814f-1fa8dcaae794",
      "stages": {
        "planted": "2026-10-04T04:13:32.570Z",
        "found": "2026-10-04T12:20:06.602Z",
        "proposed": "2026-10-04T12:20:06.602Z",
        "approved": "2026-10-04T12:30:02.056Z",
        "published": null,
        "merged": null,
        "verified": "2026-10-04T18:00:11.243Z"
      },
      "receipts": {
        "approval": {
          "id": "fcc149b2-12f1-4ac5-8d69-fb22e16c4636",
          "at": "2026-10-04T12:30:02.056Z"
        },
        "verified": {
          "id": "d9cf9725-a260-4bf5-b7dc-cb45a5261d18",
          "at": "2026-10-04T18:00:11.243Z"
        }
      },
      "pullRequest": null,
      "plantExcerpt": {
        "file": "cookies.html",
        "removed": [
          "How Umbodi uses cookies and similar technologies, and how consent works across sign-up, site connection, autonomy and billing."
        ],
        "added": [
          "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…"
        ]
      },
      "fixExcerpt": null,
      "note": null
    },
    {
      "code": "heading_skip",
      "urlPath": "/cookies",
      "kind": "drill",
      "drill": {
        "id": "headingskip-muz7fmdk",
        "plantedAt": "2026-10-08T07:18:02.505Z",
        "plantCommit": "71fc0f3dd97e21079f5f52216007fb0eb1ca4327"
      },
      "proposalId": "108b0ea2-ff06-48e9-9102-459b8eec8022",
      "stages": {
        "planted": "2026-10-08T07:18:02.505Z",
        "found": "2026-10-08T07:30:30.637Z",
        "proposed": "2026-10-08T07:30:30.637Z",
        "approved": "2026-10-08T07:30:31.802Z",
        "published": "2026-10-08T07:40:45Z",
        "merged": "2026-10-08T07:50:07Z",
        "verified": "2026-10-08T07:51:48.506Z"
      },
      "receipts": {
        "approval": {
          "id": "bdb870ac-6ef3-453d-bbfa-2a06f071bfca",
          "at": "2026-10-08T07:30:31.802Z"
        },
        "verified": {
          "id": "3bd92145-aaeb-47ba-93d3-dc8eac92e036",
          "at": "2026-10-08T07:51:48.506Z"
        }
      },
      "pullRequest": {
        "number": 857,
        "createdAt": "2026-10-08T07:40:45Z",
        "mergedAt": "2026-10-08T07:50:07Z"
      },
      "plantExcerpt": {
        "file": "cookies.html",
        "removed": [
          "<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…"
        ],
        "added": [
          "<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…"
        ]
      },
      "fixExcerpt": {
        "file": "cookies.html",
        "removed": [
          "<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…"
        ],
        "added": [
          "<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…"
        ]
      },
      "note": null
    },
    {
      "code": "missing_description",
      "urlPath": "/licensing",
      "kind": "drill",
      "drill": {
        "id": "description-muz7frq1",
        "plantedAt": "2026-10-08T07:18:09.434Z",
        "plantCommit": "71fc0f3dd97e21079f5f52216007fb0eb1ca4327"
      },
      "proposalId": "e36a7b0a-0b7d-406d-aecd-a52688fb4466",
      "stages": {
        "planted": "2026-10-08T07:18:09.434Z",
        "found": "2026-10-08T07:30:30.637Z",
        "proposed": "2026-10-08T07:30:30.637Z",
        "approved": "2026-10-08T07:30:31.802Z",
        "published": "2026-10-08T07:51:31Z",
        "merged": "2026-10-08T08:00:06Z",
        "verified": "2026-10-08T08:01:53.896Z"
      },
      "receipts": {
        "approval": {
          "id": "cbe7f1a1-2c9b-482c-81ed-e611f82fcc83",
          "at": "2026-10-08T07:30:31.802Z"
        },
        "verified": {
          "id": "228c304d-da84-4b71-ab5b-bc095cf61fcd",
          "at": "2026-10-08T08:01:53.896Z"
        }
      },
      "pullRequest": {
        "number": 859,
        "createdAt": "2026-10-08T07:51:31Z",
        "mergedAt": "2026-10-08T08:00:06Z"
      },
      "plantExcerpt": {
        "file": "licensing.html",
        "removed": [
          "<meta name=\"description\" content=\"Commercial licensing for the Umbodi API, SDK, MCP server, skill, widgets, cockpit and self-hosted / white-label engine.\">"
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "licensing.html",
        "removed": [],
        "added": [
          "<meta name=\"description\" content=\"Learn about Umbodi's commercial licensing framework for APIs, SDKs, and developer assets. Understand deployment options and…"
        ]
      },
      "note": null
    },
    {
      "code": "missing_h1",
      "urlPath": "/privacy",
      "kind": "drill",
      "drill": {
        "id": "h1-muyyurgr",
        "plantedAt": "2026-10-08T03:17:52.398Z",
        "plantCommit": "29ecac5912479e5315a23608329273aa57fbc321"
      },
      "proposalId": "44979cd2-c1e0-4be3-9199-0342382de9c3",
      "stages": {
        "planted": "2026-10-08T03:17:52.398Z",
        "found": "2026-10-08T03:30:35.054Z",
        "proposed": "2026-10-08T03:30:35.054Z",
        "approved": "2026-10-08T03:30:46.163Z",
        "published": "2026-10-08T03:31:00Z",
        "merged": "2026-10-08T03:40:06Z",
        "verified": "2026-10-08T03:43:43.165Z"
      },
      "receipts": {
        "approval": {
          "id": "9d390435-7084-4f04-8aab-61844bd60fc8",
          "at": "2026-10-08T03:30:46.163Z"
        },
        "verified": {
          "id": "5ba00d1a-dfe1-4fa0-a403-2cd901c32738",
          "at": "2026-10-08T03:43:43.165Z"
        }
      },
      "pullRequest": {
        "number": 845,
        "createdAt": "2026-10-08T03:31:00Z",
        "mergedAt": "2026-10-08T03:40:06Z"
      },
      "plantExcerpt": {
        "file": "privacy.html",
        "removed": [
          "<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…"
        ],
        "added": [
          "<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…"
        ]
      },
      "fixExcerpt": {
        "file": "privacy.html",
        "removed": [
          "<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…"
        ],
        "added": [
          "<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>…"
        ]
      },
      "note": null
    },
    {
      "code": "missing_indexnow_key",
      "urlPath": "/00447098f7fba55c133eb7dd520325e7.txt",
      "kind": "drill",
      "drill": {
        "id": "artifact-mv3a6l8z",
        "plantedAt": "2026-10-11T03:46:04.692Z",
        "plantCommit": "c290cac5e7bce553500ffa894da648e39b43f36e"
      },
      "proposalId": "229b21d4-1d4b-49f8-90bf-999aa8acee39",
      "stages": {
        "planted": "2026-10-11T03:46:04.692Z",
        "found": "2026-10-11T07:10:01.758Z",
        "proposed": "2026-10-11T07:10:01.758Z",
        "approved": "2026-10-11T07:30:16.032Z",
        "published": "2026-10-11T07:30:25Z",
        "merged": "2026-10-11T08:20:06Z",
        "verified": "2026-10-11T08:40:26.696Z"
      },
      "receipts": {
        "approval": {
          "id": "9b4762d6-5f94-4a18-ab46-afb72fa2d357",
          "at": "2026-10-11T07:30:16.032Z"
        },
        "verified": {
          "id": "b7c70195-f6c7-4197-9240-2b4958ce0dd4",
          "at": "2026-10-11T08:40:26.696Z"
        }
      },
      "pullRequest": {
        "number": 962,
        "createdAt": "2026-10-11T07:30:25Z",
        "mergedAt": "2026-10-11T08:20:06Z"
      },
      "plantExcerpt": {
        "file": "00447098f7fba55c133eb7dd520325e7.txt",
        "removed": [],
        "added": [],
        "summary": "file deleted (1 lines)"
      },
      "fixExcerpt": {
        "file": "00447098f7fba55c133eb7dd520325e7.txt",
        "removed": [],
        "added": [
          "00447098f7fba55c133eb7dd520325e7"
        ],
        "summary": "file created (1 lines)"
      },
      "note": null
    },
    {
      "code": "missing_llms_txt",
      "urlPath": "/llms.txt",
      "kind": "drill",
      "drill": {
        "id": "artifact-muuc4i48",
        "plantedAt": "2026-10-04T21:30:30.969Z",
        "plantCommit": "bfb6bd3ac0f54e9a5efb95fe8c85b24a5e487e46"
      },
      "proposalId": "3ef5e9cd-ad76-4d0d-b674-99257ba9ef06",
      "stages": {
        "planted": "2026-10-04T21:30:30.969Z",
        "found": "2026-10-05T20:00:31.238Z",
        "proposed": "2026-10-05T20:00:31.238Z",
        "approved": "2026-10-05T21:40:18.349Z",
        "published": "2026-10-07T14:30:48Z",
        "merged": "2026-10-07T14:40:06Z",
        "verified": "2026-10-07T15:00:52.319Z"
      },
      "receipts": {
        "approval": {
          "id": "98a7ca31-d4c8-453b-bd0f-da732c2ba482",
          "at": "2026-10-05T21:40:18.349Z"
        },
        "verified": {
          "id": "e6403314-71aa-476a-9825-d92e9600dd2e",
          "at": "2026-10-07T15:00:52.319Z"
        }
      },
      "pullRequest": {
        "number": 814,
        "createdAt": "2026-10-07T14:30:48Z",
        "mergedAt": "2026-10-07T14:40:06Z"
      },
      "plantExcerpt": {
        "file": "llms.txt",
        "removed": [],
        "added": [],
        "summary": "file deleted (119 lines)"
      },
      "fixExcerpt": {
        "file": "llms.txt",
        "removed": [],
        "added": [
          "<!-- ascent:generated:start -->",
          "# umbodi.ai",
          "> Generated by Umbodi from the pages it crawled. Review before publishing."
        ],
        "summary": "file created (20 lines)"
      },
      "note": null
    },
    {
      "code": "missing_robots",
      "urlPath": "/robots.txt",
      "kind": "drill",
      "drill": {
        "id": "artifact-muzep6m8",
        "plantedAt": "2026-10-08T10:41:25.969Z",
        "plantCommit": "1873349dec6adc00ca954c0135e438e14c798618"
      },
      "proposalId": "c515cd88-e194-400b-bd87-4404519d62fc",
      "stages": {
        "planted": "2026-10-08T10:41:25.969Z",
        "found": "2026-10-08T10:55:35.533Z",
        "proposed": "2026-10-08T10:55:35.533Z",
        "approved": "2026-10-08T10:55:36.820Z",
        "published": "2026-10-08T10:55:46Z",
        "merged": "2026-10-08T11:10:06Z",
        "verified": "2026-10-08T11:16:21.602Z"
      },
      "receipts": {
        "approval": {
          "id": "ab6a3e66-ad4c-4309-a3a1-6b288fdf7179",
          "at": "2026-10-08T10:55:36.820Z"
        },
        "verified": {
          "id": "354126c8-d07f-49e4-b5ac-b11bf0b5d88d",
          "at": "2026-10-08T11:16:21.602Z"
        }
      },
      "pullRequest": {
        "number": 870,
        "createdAt": "2026-10-08T10:55:46Z",
        "mergedAt": "2026-10-08T11:10:06Z"
      },
      "plantExcerpt": {
        "file": "robots.txt",
        "removed": [],
        "added": [],
        "summary": "file deleted (66 lines)"
      },
      "fixExcerpt": {
        "file": "robots.txt",
        "removed": [],
        "added": [
          "# 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"
        ],
        "summary": "file created (77 lines)"
      },
      "note": null
    },
    {
      "code": "missing_title",
      "urlPath": "/licensing",
      "kind": "drill",
      "drill": {
        "id": "title-muz15cvg",
        "plantedAt": "2026-10-08T04:22:05.935Z",
        "plantCommit": "34d561da6bb6d0f0aea19d59de587396d4067d21"
      },
      "proposalId": "a2e043f5-05c5-496c-84aa-2726d20f38d3",
      "stages": {
        "planted": "2026-10-08T04:22:05.935Z",
        "found": "2026-10-08T04:30:30.322Z",
        "proposed": "2026-10-08T04:30:30.322Z",
        "approved": "2026-10-08T04:30:31.427Z",
        "published": "2026-10-08T04:30:41Z",
        "merged": "2026-10-08T04:40:06Z",
        "verified": "2026-10-08T05:00:54.734Z"
      },
      "receipts": {
        "approval": {
          "id": "cd9f07ee-3644-4bf0-b714-d185060f4829",
          "at": "2026-10-08T04:30:31.427Z"
        },
        "verified": {
          "id": "78fc75ff-818f-4026-aab1-c895697376cf",
          "at": "2026-10-08T05:00:54.734Z"
        }
      },
      "pullRequest": {
        "number": 850,
        "createdAt": "2026-10-08T04:30:41Z",
        "mergedAt": "2026-10-08T04:40:06Z"
      },
      "plantExcerpt": {
        "file": "licensing.html",
        "removed": [
          "<title>Developer &amp; Asset Licensing — Umbodi</title>"
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "licensing.html",
        "removed": [],
        "added": [
          "<title>Developer &amp; Asset Licensing — umbodi.ai</title>"
        ]
      },
      "note": null
    },
    {
      "code": "multiple_h1",
      "urlPath": "/ascent",
      "kind": "drill",
      "drill": {
        "id": "h1dup-muz7fx0b",
        "plantedAt": "2026-10-08T07:18:16.285Z",
        "plantCommit": "71fc0f3dd97e21079f5f52216007fb0eb1ca4327"
      },
      "proposalId": "b40a783d-1f1d-4cde-b4b0-30de9b87bedc",
      "stages": {
        "planted": "2026-10-08T07:18:16.285Z",
        "found": "2026-10-08T07:30:30.637Z",
        "proposed": "2026-10-08T07:30:30.637Z",
        "approved": "2026-10-08T07:30:31.802Z",
        "published": "2026-10-08T07:30:38Z",
        "merged": "2026-10-08T08:20:07Z",
        "verified": "2026-10-08T08:22:10.744Z"
      },
      "receipts": {
        "approval": {
          "id": "7cece27c-b5a7-4f11-aa90-6685aaf72848",
          "at": "2026-10-08T07:30:31.802Z"
        },
        "verified": {
          "id": "1aea377b-16c9-466d-bf45-1e91a543962a",
          "at": "2026-10-08T08:22:10.744Z"
        }
      },
      "pullRequest": {
        "number": 854,
        "createdAt": "2026-10-08T07:30:38Z",
        "mergedAt": "2026-10-08T08:20:07Z"
      },
      "plantExcerpt": {
        "file": "ascent.html",
        "removed": [
          "<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…"
        ],
        "added": [
          "<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…"
        ]
      },
      "fixExcerpt": {
        "file": "ascent.html",
        "removed": [
          "<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…"
        ],
        "added": [
          "<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…"
        ]
      },
      "note": null
    },
    {
      "code": "no_ai_crawler_policy",
      "urlPath": "/robots.txt",
      "kind": "drill",
      "drill": {
        "id": "robotsai-muzbno5m",
        "plantedAt": "2026-10-08T09:16:16.523Z",
        "plantCommit": "7034a58577c92c6bf5a3a44dfadcebcfe9e0a25a"
      },
      "proposalId": "56e92796-a575-4405-87d2-b371bb1b127c",
      "stages": {
        "planted": "2026-10-08T09:16:16.523Z",
        "found": "2026-10-08T09:23:21.689Z",
        "proposed": "2026-10-08T09:23:21.689Z",
        "approved": "2026-10-08T09:23:23.057Z",
        "published": "2026-10-08T09:23:32Z",
        "merged": "2026-10-08T09:40:06Z",
        "verified": "2026-10-08T10:00:48.496Z"
      },
      "receipts": {
        "approval": {
          "id": "50863998-2854-4c60-8114-99c7f71df344",
          "at": "2026-10-08T09:23:23.057Z"
        },
        "verified": {
          "id": "a557ba72-0b39-48b0-9854-7dd0de5577a7",
          "at": "2026-10-08T10:00:48.496Z"
        }
      },
      "pullRequest": {
        "number": 868,
        "createdAt": "2026-10-08T09:23:32Z",
        "mergedAt": "2026-10-08T09:40:06Z"
      },
      "plantExcerpt": {
        "file": "robots.txt",
        "removed": [
          "User-agent: GPTBot",
          "User-agent: ClaudeBot",
          "User-agent: PerplexityBot"
        ],
        "added": [],
        "summary": "5 line(s) removed, 0 added"
      },
      "fixExcerpt": {
        "file": "robots.txt",
        "removed": [],
        "added": [
          "# umbodi:generated:start",
          "# Added by Umbodi — the rules above are yours and are left untouched.",
          "# Answer engines are allowed, deliberately: being cited is distribution."
        ],
        "summary": "0 line(s) removed, 27 added"
      },
      "note": null
    },
    {
      "code": "no_canonical",
      "urlPath": "/cookies",
      "kind": "drill",
      "drill": {
        "id": "canonical-muuc4b8z",
        "plantedAt": "2026-10-04T21:30:22.070Z",
        "plantCommit": "bfb6bd3ac0f54e9a5efb95fe8c85b24a5e487e46"
      },
      "proposalId": "642ea508-cae7-4a89-833a-33b9690bd08c",
      "stages": {
        "planted": "2026-10-04T21:30:22.070Z",
        "found": "2026-10-05T20:00:31.238Z",
        "proposed": "2026-10-05T20:00:31.238Z",
        "approved": "2026-10-05T20:00:32.201Z",
        "published": "2026-10-05T20:00:40Z",
        "merged": "2026-10-05T21:50:09Z",
        "verified": "2026-10-05T22:10:51.062Z"
      },
      "receipts": {
        "approval": {
          "id": "82f6c14d-ef96-44ed-9801-3120c2c564a6",
          "at": "2026-10-05T20:00:32.201Z"
        },
        "verified": {
          "id": "c0bac830-d216-4842-b983-c8ab148e9361",
          "at": "2026-10-05T22:10:51.062Z"
        }
      },
      "pullRequest": {
        "number": 770,
        "createdAt": "2026-10-05T20:00:40Z",
        "mergedAt": "2026-10-05T21:50:09Z"
      },
      "plantExcerpt": {
        "file": "cookies.html",
        "removed": [
          "<link rel=\"canonical\" href=\"https://umbodi.ai/cookies\">"
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "cookies.html",
        "removed": [],
        "added": [
          "<link rel=\"canonical\" href=\"https://umbodi.ai/cookies\">"
        ]
      },
      "note": null
    },
    {
      "code": "no_publisher_schema",
      "urlPath": "/licensing",
      "kind": "drill",
      "drill": {
        "id": "publisher-muwfyusm",
        "plantedAt": "2026-10-06T08:53:38.279Z",
        "plantCommit": "9451bd82e9f208459297156277031262226a6932"
      },
      "proposalId": "35a7dfa7-8108-4253-aa63-ca87ddbf0c12",
      "stages": {
        "planted": "2026-10-06T08:53:38.279Z",
        "found": "2026-10-06T11:00:29.375Z",
        "proposed": "2026-10-06T11:00:29.375Z",
        "approved": "2026-10-06T11:00:30.464Z",
        "published": "2026-10-06T11:00:38Z",
        "merged": "2026-10-06T11:10:07Z",
        "verified": "2026-10-07T18:30:54.837Z"
      },
      "receipts": {
        "approval": {
          "id": "cc1bfa43-1e6c-4361-a2b3-fccef7da2f4f",
          "at": "2026-10-06T11:00:30.464Z"
        },
        "verified": {
          "id": "e8dfb7f5-f8b7-479d-b5de-c640a5246e68",
          "at": "2026-10-07T18:30:54.837Z"
        }
      },
      "pullRequest": {
        "number": 786,
        "createdAt": "2026-10-06T11:00:38Z",
        "mergedAt": "2026-10-06T11:10:07Z"
      },
      "plantExcerpt": {
        "file": "licensing.html",
        "removed": [
          "\"@type\": \"Organization\",",
          "\"@id\": \"https://umbodi.ai/#org\",",
          "\"name\": \"I-Novanet Software Ltd\","
        ],
        "added": [],
        "summary": "12 line(s) removed, 0 added"
      },
      "fixExcerpt": {
        "file": "licensing.html",
        "removed": [],
        "added": [
          "<!-- ascent:jsonld:start -->",
          "<script type=\"application/ld+json\">",
          "{"
        ],
        "summary": "0 line(s) removed, 20 added"
      },
      "note": null
    },
    {
      "code": "no_structured_data",
      "urlPath": "/privacy",
      "kind": "drill",
      "drill": {
        "id": "jsonld-muy7k7c3",
        "plantedAt": "2026-10-07T14:33:50.119Z",
        "plantCommit": "9d3d2dc0a5a82b53a85b49b00ee33cb6405a1047"
      },
      "proposalId": "ab368b3d-ec5f-4b81-af08-dc07cc169ad4",
      "stages": {
        "planted": "2026-10-07T14:33:50.119Z",
        "found": "2026-10-07T16:00:42.464Z",
        "proposed": "2026-10-07T16:00:42.464Z",
        "approved": "2026-10-07T16:00:43.605Z",
        "published": "2026-10-07T18:30:42Z",
        "merged": "2026-10-07T18:40:05Z",
        "verified": "2026-10-07T19:00:56.935Z"
      },
      "receipts": {
        "approval": {
          "id": "b5fc58a1-4c44-44ac-9726-113945c7d284",
          "at": "2026-10-07T16:00:43.605Z"
        },
        "verified": {
          "id": "1e907175-14ce-410d-8a8b-7290629f6192",
          "at": "2026-10-07T19:00:56.935Z"
        }
      },
      "pullRequest": {
        "number": 832,
        "createdAt": "2026-10-07T18:30:42Z",
        "mergedAt": "2026-10-07T18:40:05Z"
      },
      "plantExcerpt": {
        "file": "privacy.html",
        "removed": [
          "<script type=\"application/ld+json\">",
          "{",
          "\"@context\": \"https://schema.org\","
        ],
        "added": [],
        "summary": "element removed (46 lines)"
      },
      "fixExcerpt": {
        "file": "privacy.html",
        "removed": [],
        "added": [
          "<!-- ascent:jsonld:start -->",
          "<script type=\"application/ld+json\">",
          "{"
        ],
        "summary": "0 line(s) removed, 19 added"
      },
      "note": null
    },
    {
      "code": "noindex",
      "urlPath": "/privacy",
      "kind": "drill",
      "drill": {
        "id": "noindex-muz0hvk9",
        "plantedAt": "2026-10-08T04:03:50.410Z",
        "plantCommit": "c2fb392f8f60456eeb355708f56a0c5eed578634"
      },
      "proposalId": "9e499d35-c669-4459-acb6-36d7f244c103",
      "stages": {
        "planted": "2026-10-08T04:03:50.410Z",
        "found": "2026-10-08T04:22:09.884Z",
        "proposed": "2026-10-08T04:22:09.884Z",
        "approved": "2026-10-08T04:22:11.022Z",
        "published": "2026-10-08T08:01:43Z",
        "merged": "2026-10-08T08:10:06Z",
        "verified": "2026-10-08T08:12:21.099Z"
      },
      "receipts": {
        "approval": {
          "id": "9c1e4b2b-051d-4230-a637-dda2e75a5c9a",
          "at": "2026-10-08T04:22:11.022Z"
        },
        "verified": {
          "id": "731af35f-c5d2-46fe-a784-686d77b51e2d",
          "at": "2026-10-08T08:12:21.099Z"
        }
      },
      "pullRequest": {
        "number": 860,
        "createdAt": "2026-10-08T08:01:43Z",
        "mergedAt": "2026-10-08T08:10:06Z"
      },
      "plantExcerpt": {
        "file": "privacy.html",
        "removed": [],
        "added": [
          "<meta name=\"robots\" content=\"noindex\">"
        ]
      },
      "fixExcerpt": {
        "file": "privacy.html",
        "removed": [
          "<meta name=\"robots\" content=\"noindex\">"
        ],
        "added": []
      },
      "note": null
    },
    {
      "code": "og_incomplete",
      "urlPath": "/ascent",
      "kind": "drill",
      "drill": {
        "id": "og-muuc4esf",
        "plantedAt": "2026-10-04T21:30:26.656Z",
        "plantCommit": "bfb6bd3ac0f54e9a5efb95fe8c85b24a5e487e46"
      },
      "proposalId": "4b8ab209-986d-4a31-9bf4-844bd5471199",
      "stages": {
        "planted": "2026-10-04T21:30:26.656Z",
        "found": "2026-10-05T03:00:09.075Z",
        "proposed": "2026-10-05T03:00:09.075Z",
        "approved": "2026-10-05T03:30:10.434Z",
        "published": "2026-10-05T03:30:32Z",
        "merged": "2026-10-05T03:40:05Z",
        "verified": "2026-10-05T20:00:49.945Z"
      },
      "receipts": {
        "approval": {
          "id": "b40b4a34-d008-4817-a037-863f3e827fc6",
          "at": "2026-10-05T03:30:10.434Z"
        },
        "verified": {
          "id": "bec034a6-d7aa-4715-8646-5d27e37175f5",
          "at": "2026-10-05T20:00:49.945Z"
        }
      },
      "pullRequest": {
        "number": 760,
        "createdAt": "2026-10-05T03:30:32Z",
        "mergedAt": "2026-10-05T03:40:05Z"
      },
      "plantExcerpt": {
        "file": "ascent.html",
        "removed": [
          "<meta property=\"og:title\" content=\"[former name] is now Umbodi — the same product, renamed\">"
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "ascent.html",
        "removed": [],
        "added": [
          "<meta property=\"og:title\" content=\"[former name] is now Umbodi — the same product, renamed\">"
        ]
      },
      "note": null
    },
    {
      "code": "og_no_site_name",
      "urlPath": "/ascent",
      "kind": "drill",
      "drill": {
        "id": "ogsitename-muyg7uhc",
        "plantedAt": "2026-10-07T18:36:10.130Z",
        "plantCommit": "d42139a286da1c9460b84c5a7ad72673c20bf7a9"
      },
      "proposalId": "5cd2e588-a5f4-4499-9f23-d1bd1f708ccb",
      "stages": {
        "planted": "2026-10-07T18:36:10.130Z",
        "found": "2026-10-08T02:52:22.834Z",
        "proposed": "2026-10-08T02:52:22.834Z",
        "approved": "2026-10-08T02:52:23.929Z",
        "published": "2026-10-08T02:52:28Z",
        "merged": "2026-10-08T05:10:06Z",
        "verified": "2026-10-08T05:40:47.205Z"
      },
      "receipts": {
        "approval": {
          "id": "717b544d-9db9-424f-bd93-93fde79dd727",
          "at": "2026-10-08T02:52:23.929Z"
        },
        "verified": {
          "id": "930e7dd3-bf4a-4016-91b5-14ae68b5659e",
          "at": "2026-10-08T05:40:47.205Z"
        }
      },
      "pullRequest": {
        "number": 836,
        "createdAt": "2026-10-08T02:52:28Z",
        "mergedAt": "2026-10-08T05:10:06Z"
      },
      "plantExcerpt": {
        "file": "ascent.html",
        "removed": [
          "<meta property=\"og:site_name\" content=\"Umbodi\">"
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "ascent.html",
        "removed": [],
        "added": [
          "<meta property=\"og:site_name\" content=\"umbodi.ai\">"
        ]
      },
      "note": null
    },
    {
      "code": "publisher_no_description",
      "urlPath": "/cookies",
      "kind": "drill",
      "drill": {
        "id": "publisherdesc-muy7l67f",
        "plantedAt": "2026-10-07T14:34:35.309Z",
        "plantCommit": "9d3d2dc0a5a82b53a85b49b00ee33cb6405a1047"
      },
      "proposalId": "3821afbc-8307-4cc1-9d89-c256ac51d98d",
      "stages": {
        "planted": "2026-10-07T14:34:35.309Z",
        "found": "2026-10-07T16:00:42.464Z",
        "proposed": "2026-10-07T16:00:42.464Z",
        "approved": "2026-10-07T16:00:43.605Z",
        "published": "2026-10-08T03:23:27Z",
        "merged": "2026-10-08T03:50:07Z",
        "verified": "2026-10-08T04:00:52.722Z"
      },
      "receipts": {
        "approval": {
          "id": "e368c70b-e44d-4f25-92be-dba59cfb37a9",
          "at": "2026-10-07T16:00:43.605Z"
        },
        "verified": {
          "id": "30b153e7-f072-4cdd-9f4f-2419f7b7d54a",
          "at": "2026-10-08T04:00:52.722Z"
        }
      },
      "pullRequest": {
        "number": 844,
        "createdAt": "2026-10-08T03:23:27Z",
        "mergedAt": "2026-10-08T03:50:07Z"
      },
      "plantExcerpt": {
        "file": "cookies.html",
        "removed": [
          "\"description\": \"A Mauritian software company building tools for search and AI-answer visibility.\","
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "cookies.html",
        "removed": [],
        "added": [
          "\"description\": \"A Mauritian software company building tools for search and AI-answer visibility.\","
        ]
      },
      "note": null
    },
    {
      "code": "publisher_no_legal_name",
      "urlPath": "/licensing",
      "kind": "wild",
      "drill": null,
      "proposalId": "9d515a48-af82-4772-a00a-1a093ed294dc",
      "stages": {
        "planted": null,
        "found": "2026-10-06T13:00:28.250Z",
        "proposed": "2026-10-06T13:00:28.250Z",
        "approved": "2026-10-06T13:00:29.463Z",
        "published": "2026-10-06T13:00:36Z",
        "merged": "2026-10-06T13:10:07Z",
        "verified": "2026-10-06T13:40:48.567Z"
      },
      "receipts": {
        "approval": {
          "id": "d3c81101-7469-4914-97bc-12cacff22d10",
          "at": "2026-10-06T13:00:29.463Z"
        },
        "verified": {
          "id": "96a14b81-2b39-40ee-8977-40c96df68e38",
          "at": "2026-10-06T13:40:48.567Z"
        }
      },
      "pullRequest": {
        "number": 790,
        "createdAt": "2026-10-06T13:00:36Z",
        "mergedAt": "2026-10-06T13:10:07Z"
      },
      "plantExcerpt": null,
      "fixExcerpt": {
        "file": "licensing.html",
        "removed": [
          "\"dateModified\": \"2026-10-06T12:00:30.210Z\","
        ],
        "added": [
          "\"dateModified\": \"2026-10-06T13:00:26.096Z\","
        ]
      },
      "note": null
    },
    {
      "code": "sitemap_not_referenced",
      "urlPath": "/robots.txt",
      "kind": "drill",
      "drill": {
        "id": "robotssitemap-muzgf7j4",
        "plantedAt": "2026-10-08T11:29:39.809Z",
        "plantCommit": "bf3f051f879685e1cd4d14203109d75be07ca60d"
      },
      "proposalId": "c5847678-25e5-42d0-bd03-94762cf6cbc6",
      "stages": {
        "planted": "2026-10-08T11:29:39.809Z",
        "found": "2026-10-08T12:06:33.954Z",
        "proposed": "2026-10-08T12:06:33.954Z",
        "approved": "2026-10-08T12:06:35.105Z",
        "published": "2026-10-08T13:10:44Z",
        "merged": "2026-10-08T13:17:28Z",
        "verified": "2026-10-08T13:17:57.778Z"
      },
      "receipts": {
        "approval": {
          "id": "ad4018bb-2f0e-47d4-9d35-0b6a7e8b8175",
          "at": "2026-10-08T12:06:35.105Z"
        },
        "verified": {
          "id": "863f8493-a365-40f1-be8f-4e16bd452c80",
          "at": "2026-10-08T13:17:57.778Z"
        }
      },
      "pullRequest": {
        "number": 873,
        "createdAt": "2026-10-08T13:10:44Z",
        "mergedAt": "2026-10-08T13:17:28Z"
      },
      "plantExcerpt": {
        "file": "robots.txt",
        "removed": [
          "Sitemap: https://umbodi.ai/sitemap.xml"
        ],
        "added": []
      },
      "fixExcerpt": {
        "file": "robots.txt",
        "removed": [],
        "added": [
          "# umbodi:generated:start",
          "# Added by Umbodi — the rules above are yours and are left untouched.",
          "# Answer engines are allowed, deliberately: being cited is distribution."
        ],
        "summary": "0 line(s) removed, 26 added"
      },
      "note": null
    },
    {
      "code": "title_too_long",
      "urlPath": "/blog/accessibility-compliance-performance-marketing-balance",
      "kind": "wild",
      "drill": null,
      "proposalId": "3d7666ce-a238-42bd-a9f9-5af56bc6e0c0",
      "stages": {
        "planted": null,
        "found": "2026-10-07T14:30:31.219Z",
        "proposed": "2026-10-07T14:30:31.219Z",
        "approved": "2026-10-07T14:30:33.948Z",
        "published": "2026-10-07T14:30:41Z",
        "merged": "2026-10-07T15:20:07Z",
        "verified": "2026-10-07T15:30:53.386Z"
      },
      "receipts": {
        "approval": {
          "id": "e378bf84-7629-4bb9-aecd-60b771d1909a",
          "at": "2026-10-07T14:30:33.948Z"
        },
        "verified": {
          "id": "9306b874-bf7d-4684-99f8-524c71998e5f",
          "at": "2026-10-07T15:30:53.386Z"
        }
      },
      "pullRequest": {
        "number": 813,
        "createdAt": "2026-10-07T14:30:41Z",
        "mergedAt": "2026-10-07T15:20:07Z"
      },
      "plantExcerpt": null,
      "fixExcerpt": {
        "file": "blog/accessibility-compliance-performance-marketing-balance.html",
        "removed": [
          "<title>Accessibility vs. Growth: Balancing Compliance and Performance</title>",
          "<meta property=\"og:title\" content=\"Accessibility vs. Growth: Balancing Compliance and Performance\">"
        ],
        "added": [
          "<title>Accessibility vs. Growth: Balancing Compliance and</title>",
          "<meta property=\"og:title\" content=\"Accessibility vs. Growth: Balancing Compliance and\">"
        ]
      },
      "note": "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."
    },
    {
      "code": "title_too_short",
      "urlPath": "/terms",
      "kind": "wild",
      "drill": null,
      "proposalId": "680494cd-dcee-4fb4-ab36-3db44cf0a8fb",
      "stages": {
        "planted": null,
        "found": "2026-10-07T22:10:35.876Z",
        "proposed": "2026-10-07T22:10:35.876Z",
        "approved": "2026-10-07T22:10:36.859Z",
        "published": "2026-10-07T22:10:45Z",
        "merged": "2026-10-07T22:20:06Z",
        "verified": "2026-10-07T22:30:47.396Z"
      },
      "receipts": {
        "approval": {
          "id": "2336968b-d2b3-44e7-b056-7d21295b4be1",
          "at": "2026-10-07T22:10:36.859Z"
        },
        "verified": {
          "id": "f7d4a9ac-725b-49a8-8af1-f01b2b66443c",
          "at": "2026-10-07T22:30:47.396Z"
        }
      },
      "pullRequest": {
        "number": 835,
        "createdAt": "2026-10-07T22:10:45Z",
        "mergedAt": "2026-10-07T22:20:06Z"
      },
      "plantExcerpt": null,
      "fixExcerpt": {
        "file": "terms.html",
        "removed": [
          "<title>Terms of Service — umbodi.ai</title>"
        ],
        "added": [
          "<title>Terms of Service — umbodi.ai — umbodi.ai</title>"
        ]
      },
      "note": null
    }
  ],
  "unplantable": [
    {
      "code": "thin_content",
      "reason": "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."
    },
    {
      "code": "images_missing_alt",
      "reason": "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."
    },
    {
      "code": "no_internal_links",
      "reason": "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."
    },
    {
      "code": "missing_sitemap",
      "reason": "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."
    },
    {
      "code": "sitemap_stale",
      "reason": "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."
    },
    {
      "code": "robots_blocks_crawlers",
      "reason": "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."
    },
    {
      "code": "sitemap_url_not_indexable",
      "reason": "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."
    },
    {
      "code": "robots_named_agent_exempt",
      "reason": "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."
    }
  ],
  "notYetProven": []
}
