HOOL / colophon
COLOPHON / STATEMENT OF RECORD

HOW HOOL.DEV IS BUILT

Static site on Cloudflare Pages. Dependencies and measurement disclosed. Deploys gated by allowlist and human word. Homepage built unattended; every public claim requires a receipt.

Authority

John Whitman is the human owner and trust anchor. The site is maintained by AI agents under an append-only internal journal and reference-wiki protocol. Agents extend current truth in place; history goes in the journal. Production requires John's word. Agents do not push production without authorization. See /about/ and /now/.

Release

  1. Deploys run through an allowlisting script that stages only approved file types and aborts if any internal Markdown would reach production. Direct wrangler pages deploy is banned because it uploads the whole repository and bypasses those denylists.
  2. Deploys require the human owner's word. Agents maintain the tree; they do not push production without authorization.

Stack

Hosting · apex
Cloudflare Pages at hool.dev. Static site. No app server, no runtime framework in the browser—HTML, CSS, and self-hosted assets only.
Type · art
Self-hosted JetBrains Mono (SIL OFL). Homepage art is procedural and computed at view time—no image assets for the art. This page, /about/, and /now/ self-host fonts; preserved gallery, attractor, and archived surfaces may load Google Fonts.
Charts
/receipts/ vendors uPlot v1.6.31 (MIT, © Leon Sorokin 2022) at /receipts/vendor/uPlot/. Loaded only on that route; the JS lives in the served tree, no CDN call at view time. A no-JS table is rendered inline so the chart's numbers are still readable when scripts are off.
Lab · simplex-noise
/lab/simplex-noise/ vendors simplex-noise (MIT, © Jonas Wagner 2018) at /lab/simplex-noise/assets/. Loaded only on that additive route; the JS lives in the served tree, no CDN call at view time. Taste-gated; not production until the owner’s deploy word.

Network

Serving · logs
Cloudflare Pages serves the site and keeps standard edge logs.
Measurement
Production currently injects a Cloudflare Web Analytics / RUM beacon, but the site's Content Security Policy blocks that third-party request. Browser measurement may be enabled later under this disclosure.
Outbound
Links to GitHub, LinkedIn, Substack, npm, PyPI, Polar, and other properties leave hool.dev when followed. Material browser-side services and data collection are named in privacy; that disclosure changes when the implementation does.

The revisitable-dependency law remains: external services and measurement are allowed when they improve the site or its operation. The retired "zero" rule is historical, not a constraint.

Provenance

The homepage (THE FLOOR) was built unattended by an autonomous AI agent fleet from a single open brief on 2026-06-12, then re-audited unattended the same day: every count, status, and price re-verified against fleet receipts; stale numbers corrected; unprovable numbers removed. Previous build preserved at /gallery/. Receipts at /receipts/. The site is maintained by AI agents under the journal/wiki protocol. Internal markdown never ships.

Claim law

Every public claim on a page must carry a receipt the maintaining agent verified itself that session. Uncheckable numbers do not ship. Public audit trail: /receipts/.

Verification

The brand promise, named: if this site says it, you can check it. "Verified" is not a vibe — it is a method with three concrete handles you can reach without trusting us.

Receipt permalinks
Every dated claim on hool.dev points to a SHA-stable permalink in /receipts/. The ledger is append-only: corrections land as new entries, never by mutating a published one. Example — the book-funnel truth-sync receipt shows the method on a real dated correction.
Claim→receipt deep links
On /work/ and /about/, every numbered fact is a link to its verifying receipt. If the chip's permalink returns non-200, the claim is not in service — it is a defect, not a contradiction.
Local verifier
The repo ships scripts/verify-claims.sh and scripts/verify-colophon.py. Cloning the repository and running them reproduces every check this annex depends on. Exit 0 means the contract holds; non-zero means drift, and the operator fixes before deploying. A live, dated md5 map of every route and asset ships at /fingerprint/ for the machine-friendly version of the same data.

How a stranger checks us, end-to-end: open /receipts/ for the dated audit ledger, or /changelog/ for the dated shipping record. Pick any entry, follow the embedded permalink to its source-of-truth surface (a live URL, a registry record, or a git commit). If you find a claim on the site that does not point at a receipt, that is a defect — tell John (/about/ has the address and the disambiguation note).