machine-readable surface
A live, dated md5 + URL map of every public route and asset on hool.dev. The machine-friendly mirror of /colophon/#verification — same hash, same source, sortable.
| Path | md5 | URL |
|---|---|---|
| / (FLOOR) | 9c1636c7b12c69f894c3bca70da89c3d | https://hool.dev/ |
| /about/ | 17be235be3123eeae379ef25d41d28c2 | https://hool.dev/about/ |
| /agent-roster/ | be5a10f074f8e797632a750ba58952bb | https://hool.dev/agent-roster/ |
| /book/ | 35ce4dd9672b5083eb7e866c027a44f0 | https://hool.dev/book/ |
| /card/ | 9433a212b8314b6a2bda07985f7705f2 | https://hool.dev/card/ |
| /changelog/ | 1d7b1b85d1d0e9e03b200861e7279efe | https://hool.dev/changelog/ |
| /colophon/ | def6baaea96115f61115a45933f01676 | https://hool.dev/colophon/ |
| /corrections/ | 1f12180af68655235cb9d39be14a2f59 | https://hool.dev/corrections/ |
| /faq/ | 6c74c6580a1d86e23dbd0f439ff23bc5 | https://hool.dev/faq/ |
| /fingerprint/ | e28d9ce85a521460922aa6719dea08da | https://hool.dev/fingerprint/ |
| /gallery/ | cab0be1468b23a4cfd8f07bbd3a0baae | https://hool.dev/gallery/ |
| /linkedin/2026-06-05-thumbprint/ | f164cd33c96fcf9581121d5dbc73a53c | https://hool.dev/linkedin/2026-06-05-thumbprint/ |
| /now/ | 7e116bf694c9f1f49ec615d114bbac98 | https://hool.dev/now/ |
| /portrait/ | e89e3d17248c581e06205ecbb14c1df2 | https://hool.dev/portrait/ |
| /press-kit/ | 6fabf5b9104296778b313948003baf49 | https://hool.dev/press-kit/ |
| /receipts/ | eca39f30e7bde0e0008cd269030dd28b | https://hool.dev/receipts/ |
| /start/ | 88b160cdca9786612aa914a9fe7e6ca6 | https://hool.dev/start/ |
| /stats/ | d8094d15282400b62ca0f540f2818794 | https://hool.dev/stats/ |
| /work/ | 3c806ff9e24e606fc0d5294b981a1f12 | https://hool.dev/work/ |
| Path | md5 | URL |
|---|---|---|
| /404.html | d6d8eac7f6596617812f79906c41ce8f | https://hool.dev/404.html |
| /_headers | 9e28862a2590134bd1605a11e259ddf5 | https://hool.dev/_headers |
| /_redirects | b5ae6668be7612d1298b0ff55ab1e72d | https://hool.dev/_redirects |
| /a5_personal_brand_v0.1.html | ebda4eb5d557a057a1367461d66469cd | https://hool.dev/a5_personal_brand_v0.1.html |
| /apple-touch-icon.png | 2bedcb6d57ed10b085843de1feac8148 | https://hool.dev/apple-touch-icon.png |
| /favicon-32.png | 0fd073b49fa3f4d47d684119a056d3fa | https://hool.dev/favicon-32.png |
| /favicon-512.png | a376b262b83115c2b70cdc64b74ae868 | https://hool.dev/favicon-512.png |
| /favicon.ico | b775e12a6c127d0e5c83719a00b9a553 | https://hool.dev/favicon.ico |
| /index.html | 9c1636c7b12c69f894c3bca70da89c3d | https://hool.dev/index.html |
| /llms.txt | 009a248c700f9a1d9afcc04727bbd813 | https://hool.dev/llms.txt |
| /manifest.json | 3b79ff9d09dbd8aa8c04e2a906a66301 | https://hool.dev/manifest.json |
| /robots.txt | bdd569babd65bc8a73f891d57ddfaa20 | https://hool.dev/robots.txt |
| /sitemap.xml | 04eb1f91337351e8554632de2cdecb27 | https://hool.dev/sitemap.xml |
| Path | md5 | URL |
|---|---|---|
| /fonts/fraunces-var-italic.woff2 | 3d15406bbc1ab2b90093c6995afc324b | https://hool.dev/fonts/fraunces-var-italic.woff2 |
| /fonts/fraunces-var.woff2 | 5d283517432688cbc312a7a954516cce | https://hool.dev/fonts/fraunces-var.woff2 |
| /fonts/jetbrains-mono-var.woff2 | 570751c5f8b418972c1976160ba6ed85 | https://hool.dev/fonts/jetbrains-mono-var.woff2 |
| Path | md5 | URL |
|---|---|---|
| /og/card.svg | 9fda712c1280712b0703a13f2fa5dff4 | https://hool.dev/og/card.svg |
| /og/icon.svg | 0738683b3b1cd20a2d73c7b50e73a11c | https://hool.dev/og/icon.svg |
| /og/john.png | 081b70d346770032d35fb62f10c73983 | https://hool.dev/og/john.png |
Every row above advertises the md5 of a file on disk. This auditor fetches each row from the live apex (cache-busted) and computes its real md5, then compares the two. If the apex md5 differs from disk → CDN_INJECT: Cloudflare is rewriting the response (most commonly __cf_email__ obfuscation wrapping any literal email — see FLOOR where [email protected] becomes [email protected]). If apex matches disk → MATCH. The disk-hash bundle below is regenerated every deploy by scripts/bundle-disk-hashes.py.
Idle — click "Audit all 19 chrome routes" or a preset to compare disk bytes against apex bytes.
| Path | disk md5 | apex md5 | bytes | verdict | notes |
|---|
Three-way audit: this page's disk-hashes bundle (what's on disk) vs /sitemap.xml (what's announced) vs the live apex (what's actually served). Five verdicts: MATCH (in sitemap, apex 200, byte-identity to disk) · NOT_IN_SITEMAP (on disk + apex 200 but missing from sitemap) · SITEMAP_404 (in sitemap but apex 404) · REDIRECT (in sitemap but apex 3xx to a different URL) · DRIFT (in sitemap + apex 200 but apex md5 differs from disk = CDN rewrite, same class as the P48 __cf_email__ obfuscation). The reverse-sweep catches the inverse drift: chrome routes that exist on disk + serve cleanly but are absent from the sitemap (which means crawlers can't find them).
Idle — click "Reconcile" to fetch /sitemap.xml + the live apex for every URL listed, then compare against the disk-hashes bundle.
| URL | apex status | apex md5 | verdict | notes |
|---|
Five-query DoH probe against cloudflare-dns.com/dns-query (RFC 8484 GET, accept: application/dns-json): A · AAAA · NS · TXT · CAA. Catches four classes of bug no earlier inspector catches: (a) DNS delegation drift — apex still 200s but served from a different edge after a CDN migration; (b) CAA drift — unauthorized CA starts issuing certs (colophon all-certs-by-Lets-Encrypt claim silently false); (c) TXT drift — colophon/llms-full TXT verification claim silently false; (d) dual-stack drift — colophon asserts IPv6 reachability but apex AAAA records disappear. Five verdicts: OK (records returned, parsed cleanly) · EMPTY (NXDOMAIN or no records of this qtype) · DRIFT (records returned but TTL or set suggests a stale / cached answer from a sibling DoH endpoint) · FETCH_DOWN (DoH endpoint unreachable) · CORS_BLOCKED (browser blocked the cross-origin fetch — paste the noscript curl recipe below into a terminal). Default target is hool.dev; replace with any apex to verify that apex's DNS layer.
Idle — click "Probe hool.dev" or edit the target and click "Probe target".
| qtype | records | min TTL | verdict | sample |
|---|
No probe run yet.
how to use
Every row is the current state of the file at deploy time. To verify:
curl -s https://hool.dev/fingerprint/ | grep "<code>"
should reproduce the table below;
curl -s https://hool.dev/ | md5
should return 9c1636c7b12c69f894c3bca70da89c3d for the FLOOR. Sister surfaces:
/colophon/ (technical disclosure),
/changelog/ (dated shipping record),
/receipts/ (failures + verifications ledger),
/stats/ (outbound claims).