{
  "run_id": "20260723T045954267234Z",
  "ts": "2026-07-23T04:59:54.267234+00:00",
  "overall": "green",
  "structurally_clean": true,
  "sites": [
    {
      "key": "hermanity",
      "url": "https://hermanity.dev/",
      "tls": {
        "facts": {
          "ok": true,
          "hostname": "hermanity.dev",
          "subject_common_name": "hermanity.dev",
          "issuer": "Let's Encrypt",
          "sans": [
            "hermanity.dev"
          ],
          "hostname_in_sans": true,
          "not_before": "2026-07-01T15:02:51+00:00",
          "not_after": "2026-09-29T15:02:50+00:00",
          "days_remaining": 68.42,
          "protocol": "TLSv1.3",
          "cipher": "TLS_AES_128_GCM_SHA256"
        },
        "check": {
          "family": "tls",
          "status": "pass",
          "observed": "Let's Encrypt, 68 days remaining, TLSv1.3",
          "expected": "hostname in SANs and >= 14 days remaining"
        }
      },
      "viewports": {
        "desktop": {
          "status": "green",
          "attempts": 1,
          "load_ms": 930.7,
          "total_bytes": 601566,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              20
            ]
          },
          "screenshot": "hermanity-desktop.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains \"Herman — a working AI agent's logbook\""
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "601,566 bytes transferred",
              "expected": "<= 3,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [20]",
              "expected": "exactly 1 loader(s) with site id 20"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        },
        "mobile": {
          "status": "green",
          "attempts": 1,
          "load_ms": 922.8,
          "total_bytes": 601566,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              20
            ]
          },
          "screenshot": "hermanity-mobile.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains \"Herman — a working AI agent's logbook\""
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "601,566 bytes transferred",
              "expected": "<= 3,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [20]",
              "expected": "exactly 1 loader(s) with site id 20"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        }
      }
    },
    {
      "key": "models",
      "url": "https://models.hermanity.dev/",
      "tls": {
        "facts": {
          "ok": true,
          "hostname": "models.hermanity.dev",
          "subject_common_name": "models.hermanity.dev",
          "issuer": "Let's Encrypt",
          "sans": [
            "models.hermanity.dev"
          ],
          "hostname_in_sans": true,
          "not_before": "2026-07-05T14:39:25+00:00",
          "not_after": "2026-10-03T14:39:24+00:00",
          "days_remaining": 72.4,
          "protocol": "TLSv1.3",
          "cipher": "TLS_AES_128_GCM_SHA256"
        },
        "check": {
          "family": "tls",
          "status": "pass",
          "observed": "Let's Encrypt, 72 days remaining, TLSv1.3",
          "expected": "hostname in SANs and >= 14 days remaining"
        }
      },
      "viewports": {
        "desktop": {
          "status": "green",
          "attempts": 1,
          "load_ms": 941.0,
          "total_bytes": 358065,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              21
            ]
          },
          "screenshot": "models-desktop.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains 'Herman — Model Bench'"
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "358,065 bytes transferred",
              "expected": "<= 3,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [21]",
              "expected": "exactly 1 loader(s) with site id 21"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        },
        "mobile": {
          "status": "green",
          "attempts": 1,
          "load_ms": 929.1,
          "total_bytes": 358066,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              21
            ]
          },
          "screenshot": "models-mobile.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains 'Herman — Model Bench'"
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "358,066 bytes transferred",
              "expected": "<= 3,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [21]",
              "expected": "exactly 1 loader(s) with site id 21"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        }
      }
    },
    {
      "key": "flockwatch",
      "url": "https://flockwatch.hermanity.dev/",
      "tls": {
        "facts": {
          "ok": true,
          "hostname": "flockwatch.hermanity.dev",
          "subject_common_name": "flockwatch.hermanity.dev",
          "issuer": "Let's Encrypt",
          "sans": [
            "flockwatch.hermanity.dev"
          ],
          "hostname_in_sans": true,
          "not_before": "2026-07-14T13:02:51+00:00",
          "not_after": "2026-10-12T13:02:50+00:00",
          "days_remaining": 81.34,
          "protocol": "TLSv1.3",
          "cipher": "TLS_AES_128_GCM_SHA256"
        },
        "check": {
          "family": "tls",
          "status": "pass",
          "observed": "Let's Encrypt, 81 days remaining, TLSv1.3",
          "expected": "hostname in SANs and >= 14 days remaining"
        }
      },
      "viewports": {
        "desktop": {
          "status": "green",
          "attempts": 1,
          "load_ms": 1141.9,
          "total_bytes": 632688,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              40
            ]
          },
          "screenshot": "flockwatch-desktop.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains 'FLOCKWATCH'"
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "632,688 bytes transferred",
              "expected": "<= 12,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [40]",
              "expected": "exactly 1 loader(s) with site id 40"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        },
        "mobile": {
          "status": "green",
          "attempts": 1,
          "load_ms": 944.3,
          "total_bytes": 632691,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              40
            ]
          },
          "screenshot": "flockwatch-mobile.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains 'FLOCKWATCH'"
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "632,691 bytes transferred",
              "expected": "<= 12,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [40]",
              "expected": "exactly 1 loader(s) with site id 40"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        }
      }
    },
    {
      "key": "wacn21",
      "url": "https://wacn21.com/",
      "tls": {
        "facts": {
          "ok": true,
          "hostname": "wacn21.com",
          "subject_common_name": "wacn21.com",
          "issuer": "Let's Encrypt",
          "sans": [
            "wacn21.com"
          ],
          "hostname_in_sans": true,
          "not_before": "2026-06-26T15:52:46+00:00",
          "not_after": "2026-09-24T15:52:45+00:00",
          "days_remaining": 63.45,
          "protocol": "TLSv1.3",
          "cipher": "TLS_AES_128_GCM_SHA256"
        },
        "check": {
          "family": "tls",
          "status": "pass",
          "observed": "Let's Encrypt, 63 days remaining, TLSv1.3",
          "expected": "hostname in SANs and >= 14 days remaining"
        }
      },
      "viewports": {
        "desktop": {
          "status": "green",
          "attempts": 1,
          "load_ms": 2485.0,
          "total_bytes": 33337031,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              18
            ]
          },
          "screenshot": "wacn21-desktop.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains 'WACN 21 News'"
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "33,337,031 bytes transferred",
              "expected": "<= 50,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [18]",
              "expected": "exactly 1 loader(s) with site id 18"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        },
        "mobile": {
          "status": "green",
          "attempts": 1,
          "load_ms": 1487.0,
          "total_bytes": 8396562,
          "matomo_observed": {
            "loaders": 1,
            "ids": [
              18
            ]
          },
          "screenshot": "wacn21-mobile.png",
          "visual": null,
          "checks": [
            {
              "family": "http_status",
              "status": "pass",
              "observed": "HTTP 200",
              "expected": "HTTP 200"
            },
            {
              "family": "content_marker",
              "status": "pass",
              "observed": "marker present",
              "expected": "rendered text contains 'WACN 21 News'"
            },
            {
              "family": "page_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no uncaught page exceptions"
            },
            {
              "family": "console_errors",
              "status": "pass",
              "observed": "none",
              "expected": "no console errors outside allow-list"
            },
            {
              "family": "failed_requests",
              "status": "pass",
              "observed": "none",
              "expected": "no failed subresource requests"
            },
            {
              "family": "broken_images",
              "status": "pass",
              "observed": "none",
              "expected": "all rendered images complete with naturalWidth > 0"
            },
            {
              "family": "overflow",
              "status": "pass",
              "observed": "0px horizontal overflow",
              "expected": "<= 2px"
            },
            {
              "family": "internal_links",
              "status": "pass",
              "observed": "5 sampled, all ok",
              "expected": "sampled links respond"
            },
            {
              "family": "asset_budget",
              "status": "pass",
              "observed": "8,396,562 bytes transferred",
              "expected": "<= 50,000,000 bytes"
            },
            {
              "family": "matomo",
              "status": "pass",
              "observed": "1 loader(s), site id(s) [18]",
              "expected": "exactly 1 loader(s) with site id 18"
            },
            {
              "family": "screenshot",
              "status": "pass",
              "observed": "captured",
              "expected": "screenshot captured"
            },
            {
              "family": "visual_regression",
              "status": "pass",
              "observed": "no baseline yet",
              "expected": "compared to baseline"
            }
          ]
        }
      }
    }
  ],
  "confirmed_failures": [],
  "warnings": [],
  "fixture_mode": false,
  "monitor_version": "0.1.0",
  "gitlab_project_url": "https://git.catalystgroup.tech/herman/ecosystem-observatory"
}
