2026-08-28
✓deployedsecurity-disclosure
`/.well-known/security.txt` RFC 9116 disclosure (cycle-112, P26,
lane-decideable under HOOL-2 PRE-ACTION GATE) — 952-byte well-known security disclosure
file at public/.well-known/security.txt (canonical URL
https://hool.dev/.well-known/security.txt), RFC 9116 §4 well-known URI format.
Fields: Contact: mailto:johndw@gmail.com + Contact: https://github.com/johnmwhitman
+ Expires: 2027-08-28T19:30:22Z (12-month rolling, ISO 8601 with Z UTC
marker per RFC 9116 §3) + Preferred-Languages: en + Canonical: https://hool.dev/.well-known/security.txt
+ Policy: https://hool.dev/colophon/#claim-law + Acknowledgments: https://hool.dev/receipts/.
Mailto is the canonical contact already disclosed in /llms.txt + /about/ JSON-LD
email field — no new contact surface introduced. The file is its own surface
(well-known URL, RFC 9116), so no chrome page was added; wired anchors only via
/llms.txt (no change needed) + /colophon/#claim-law + /receipts/.
Taste-gate CLEAR per §3: well-known path is an established convention (RFC 8615 §2.2);
the file is a copy of the canonical contact from /llms.txt + /about JSON-LD;
no FLOOR adjacency; no big interactive; no chrome change. RFC 9116 is the same family of
convention as /llms.txt (LLM fact-sheet, also a well-known convention) and
/fingerprint/ (machine mirror of /colophon/#verification). Wiki writeback:
wiki/02-pages.md new P26 section mirroring P24 format. Lane-decideable per
RAT-12: S effort additive chrome, single deploy, no John-gated surface. Receipts:
verify-claims 7/7 PASS (incl. WCAG AA contrast-cli 0 failures across 3 audited pages);
verify-colophon 7/7 PASS; git diff --check exit 0; FLOOR md5 9c1636c7
BYTE-IDENTICAL to origin/main pre-deploy + FLOOR-snapshot md5 e89e3d17 BYTE-IDENTICAL
+ og/john.png md5 081b70d3 BYTE-IDENTICAL; 8/8 cache-busted apex probe CLEAN
(FLOOR stale-marker check on /?z=1..8, no the-employer-named-as-client-brand
or D2[0-3] matches); 8/8 cache-busted probe on /.well-known/security.txt?z=1..8
BYTE-IDENTICAL (HTTP 200, content-type text/plain; charset=utf-8, 952 bytes,
body md5 ae28235e06fbbce7716e43d6d2480734 matches local public/.well-known/security.txt;
canonical security headers in place — strict-transport-security: max-age=31536000,
content-security-policy: default-src 'self', cache-control: public, max-age=300, must-revalidate,
etag: "b2f45da7cdc6c31cea4560720b768739"). Guardian pre-deploy gate: WARN
(non-blocking) — 2 pre-existing MEDIUM findings about decision-ID references in
public/changelog/index.html:218 + public/llms-full.txt:1553 (both
predate this cycle; not introduced by P26); 8 ALLOW Car-Mart-as-employer mentions.
Guardian post-deploy gate: PASS — 0 blocking findings; firewall_live 4 ALLOW Car-Mart-as-employer.
Rebase path: fresh p26-well-known-security-txt-20260828 branch off
current main a395e28 (cycle-111 push recovery HEAD); single cycle-112 chrome commit
35afac5; FF-merged → local main 35afac5; pushed origin/main a395e28..35afac5;
ahead-behind 0/0. Production deploy: ./deploy.sh exit 0; allowlist tree
clean 92 public files; Cloudflare Pages deployment 7f929239 → preview URL
https://7f929239.hool-dev.pages.dev; apex live at
https://hool.dev/.well-known/security.txt. Live verified 8x cache-busted apex
probes 8/8 = 200 + 952 bytes + BYTE-IDENTICAL to public/.well-known/security.txt.
✓deployedfingerprint
`/fingerprint` machine-readable mirror of /colophon/#verification (cycle-105, kanban t_) — live, dated md5 + URL map of every public route and asset on hool.dev (38 entries: 18 chrome routes + 13 root assets + 3 fonts + 3 OG card variants); companion JSON at /fingerprint/index.json with {generated_at, domain, total, entries:[{path, md5, url, kind}]} shape (one fetch, one parse). Cream/ember editorial canon (matches /changelog/, /now/, /press-kit/); self-hosted Fraunces + JetBrains Mono (SIL OFL); honors prefers-color-scheme (paper-on-ink dark variant); does not touch THE FLOOR. Generated by scripts/gen-fingerprint.py (NEW, 16.1KB / 292 lines / standalone Python 3 stdlib only; md5-walks public/, emits HTML + JSON; deterministic ordering: FLOOR first then routes alpha, root assets alpha, fonts alpha, og alpha; idempotent for unchanged tree). Wired: public/colophon/index.html (Local-verifier <dd> appended one sentence pointing to /fingerprint/), public/llms.txt (Surfaces table Fingerprint row), public/sitemap.xml (<url> entry between /changelog/ and /sims/transit-sim-v6.html), wiki/02-pages.md (new /fingerprint/ section after /lab/simplex-noise/). Verify-claims 23/23 PASS, verify-colophon 7/7 PASS, contrast-cli 0 AA failures, git diff --check exit 0; 11/11 fingerprint local hrefs return 200 + FLOOR md5 = 9c1636c7 matches the table's FLOOR row. Rebase path: fresh p23/fingerprint-20260828 branch off current main af384fe (cycle-104 commit), single cycle-105 chrome commit 721f0cc, FF-merged → local main 6db2650; pushed origin/main af384fe..6db2650; ahead-behind 0/0. Production deploy: flock -n ~/AI/agents/.hermes/heavy-build.lock bash deploy.sh from /Users/johnwhitman/AI/hool.dev → Cloudflare Pages production at https://b53e5eee.hool-dev.pages.dev (5 files uploaded, 82 already uploaded, 1.00s); Guardian pre-deploy WARN (non-blocking — 9 ALLOW firewall_live on Car-Mart mentions unchanged from cycle-104) + post-deploy PASS (4 ALLOW firewall_live checks, 0 blocking findings). Apex cache-buster probe (10 iterations curl https://hool.dev/?z=N): 10/10 CLEAN — no stale residuals on the FLOOR; direct probes /fingerprint/ → 200, /fingerprint/index.json → 200. Advisory (not a lane defect, document-only): curl https://hool.dev/ returns a FLOOR page with the same content, structure, design, and intent as public/index.html (md5 9c1636c7b12c69f894c3bca70da89c3d), but with ~159 bytes of Cloudflare edge-injected email-decode wrappers (data-cfemail + cdn-cgi/scripts/cloudflare-static/email-decode.min.js on the two mailto:johndw@gmail.com occurrences); local file is unchanged from what I uploaded, edge transform outside lane control, FLOOR contract intact (content + structure + design + hashes all match upload); this is the documented CF auto-Email-Address-Obfuscation behavior, not a deploy action; verify-claims.sh measures the local working tree, not apex bytes, so the receipt is intact. Worktree at /Users/johnwhitman/AI/.worktrees/hool-p23-fingerprint-20260828 kept for parity; cycle-105 row appended to docs/ops/QUEUE.md; cycle-105 mirror row appended to ~/AI/agents/.hermes/profiles/hool/QUEUE.md; cycle-105 dated entry appended to wiki/JOURNAL.md. STRIKE taxonomy: 0. Net change this cycle per git diff --stat: 7 files / +732/-1 (public/fingerprint/index.html NEW 167 lines, public/fingerprint/index.json NEW 235 lines, scripts/gen-fingerprint.py NEW 292 lines, public/colophon/index.html +1/-1, public/llms.txt +1/-0, public/sitemap.xml +6/-0, wiki/02-pages.md +30/-0). FLOOR + FLOOR-snapshot + og/john.png BYTE-IDENTICAL to P22 + P18 + cycles 91-100-101-102-103-104. Lane-decideable count: STAGED 0 unchanged, PROPOSED 1 → 0 (P23 built and shipped directly from PROPOSED per protocol); John-gated unchanged at 2 (P16 palette + sibling cards; DM darkmode taste).
2026-08-27
✓deployedpress-kit
`/press-kit` journalist- and conference-organizer-facing page (cycle-90,
kanban t_5dff6603) — cream/ember editorial canon (matches /about/, /now/);
three copy-paste-ready bio blocks (50/100/200 words with word-count hint), canonical-URL
table (entity/brand/work/book/receipts/colophon/now/one-pager/llms.txt/LinkedIn/GitHub/
Substack/PyPI/meshfleet), contact cards (email, handles, portrait, disambiguation block),
disclosure paragraph (the fleet is personal work, not Car-Mart's). CRMT-blur grk-fixup
applied (mirrors P16 grk-fixup e8ae56d): og:description corrected to add
"at America's Car-Mart; on his own time," separator; 200-word bio paragraph 1 swapped
AI-agent focus out of the employer sentence; 200-word bio paragraph 2 added explicit
"On his own time — separate from his employer" separator. Wired: sitemap.xml
(new entry, lastmod 2026-08-27T08:00+00:00), llms.txt (Surfaces table row +
Update cadence date), /about/ (companion link in the "if you're a human
reading this" paragraph), wiki/02-pages.md (new section). Verify-claims
23/23 PASS, verify-colophon 7/7 PASS, contrast-cli 0 AA failures, git diff --check exit
0; 11/11 press-kit local hrefs return 200; FLOOR md5 9c1636c7 byte-identical.
Rebase path: created fresh deploy/p13-press-kit-20260827 branch off
current main 1a718dc, applied P13's net diff (3 commits b061273 + e513c1b + 4c6de32)
as one consolidated 5-file patch instead of a 238-commit rebase storm. Lane-decideable
per RAT-12.
✓deployedreceipts
This page grew a chart of itself — a bar per date that added a dated
entry to this ledger, drawn by uPlot v1.6.31 (MIT, © Leon Sorokin 2022) self-hosted at
/receipts/vendor/uPlot/v1.6.31/. No CDN at view time. Readers without JS get a table of
the same numbers. The chart was staged on 2026-08-18 claiming 23 entries across 10 dates
and shipped reading 31 entries across 12 dates, because the staged copy had gone stale
and the numbers are now derived from the dated permalink folders instead of typed by hand.
A new verifier assertion (check 10d in scripts/verify-claims.sh) compares all three
places the chart states a number — the data array, the no-JS table, and the heading — against
the folders on disk, so this chart cannot drift from the ledger the way its first draft did.
Verified by re-running: 20 PASS, and a deliberate re-injection of the stale 23/10 heading
failed the gate before deploy.
✓deployedcolophon
`/verify` Verification section merged into `/colophon` — the brand promise
("if this site says it, you can check it") now lives inside the System Annex with three
handles: receipt permalinks, claim→receipt deep links, and the local verifier. Registry
nav points to it; meta + sitemap lastmod bumped to 2026-08-18. Seven sections in source
order — authority, release, stack, network, provenance, claim-law, verification —
pinned by scripts/verify-colophon.py.
✗self-caughthonesty
This ledger drifted 35 days behind the deploy cadence — caught and fixed
— between 2026-07-23 and 2026-08-27, seven prod deploys (cycle-74 A1, cycle-75 A2,
cycle-76 P5, cycle-77 P7, cycle-78 P6, cycle-80 P4, this one) shipped without regenerating
/receipts/, and the footer "ledger dated 2026-07-19" went stale. Root cause:
scripts/gen-receipts.py existed but was never wired into deploy.sh, and the
claim-drift verifier had no recency assertion. Both fixed in this pass: deploy now
regenerates /receipts/ from source every run, and scripts/verify-claims.sh
gains check #10 (newest ledger entry ≤7 days old, footer date matches newest entry, feed
<updated> matches newest entry). Seven entries below catch the
missing streak.
2026-08-26
✓deployedwork
Claim→receipt chips on `/work` (cycle-80) — six inline anchors
on the surface status line and each named product/portfolio card, each pointing to its
permalink on this ledger. Live apex probe 5/5 cache-busted, chip-href sweep 6/6.
Conflicts on public/work/index.html resolved surgically (kept HEAD's 2026-08-26
re-verification dates; layered chip CSS on top).
✓deployedcard
`/card` recruiter-mode one-pager (cycle-78) — calm, single-page
operator card at hool.dev/card/, contract-gated by the new operator-card check
in scripts/verify-claims.sh. Forward-port of the archived a5 one-pager
with current facts and a real mailto: link.
✓deployedstats
`/stats` verified metrics page (cycle-77) — 19 stat-cards across
four sections (MeshFleet npm, last-stage-capacity PyPI, the MeshFleet bus, this site
itself); every number carries a source URL and a fetch timestamp. No static count
asserted anywhere on the page; the audit table is sourced live.
✓deployedcorrections
`/corrections` failure-museum route (cycle-76) — five real
cited failures (2026-08-16 P6 quarantine, 2026-07-23 ledger overclaim, 2026-07-09
edge-cache staleness, 2026-07-06 internal-docs leak, 2026-07-04 legal-pages gap) each
linking its receipt permalink. Cross-repo drift resolved on public/llms.txt +
public/sitemap.xml.
✓deployeda5
A2 a5 one-pager staleness audit (cycle-75) — archived
a5_personal_brand_v0.1.html refreshed: head metadata, real
mailto:johndw@gmail.com, body kept BYTE-IDENTICAL to canonical FLOOR
via new guard scripts/audit-a5-vs-index.sh. Quiet nav to /start,
/work, /about.
✓deployedwork
A1 `/work` cards refresh (cycle-74) — every fact own-hands
re-verified 2026-08-16→26: live 200s on thumbpack.com, meshfleet.app, fleetopus.com,
arkfunk.com, yourbrief.io, routeplane.app, book.hool.dev; npm meshfleet=0.20.0 (registry,
MIT LICENSE read), PyPI last-stage-capacity=1.0.0, YourBrief repositions to pricing briefs,
ArkFunk "funky" dropped from live title, RoutePlane ~18-models → "29 providers and 232
models" sourced live, book $12 founding tier still true. Bus-count (18,404) added to
constitution-receipt anchor on the Hermes fleet card.
2026-07-23
✓deployedsecurity
Serve-by-allowlist migration live — the served tree moved to
public/: safety is now a property of the repo layout, not of a deploy-script exclude
list. Internal material physically cannot ship. Payload parity proven byte-identical before
the move; deploy audits negative-tested; 9/9 internal-path probes return 404; the DMZ
override verified on apex, www and the Pages fallback.
✗self-caughthonesty
This ledger was overclaiming — corrected — an audit of every
numeric claim on this site found the entry below (2026-07-03) presenting the author's own
$1 smoke-test purchase as an outside "founding reader," and declaring the zero-revenue line
retired. Every literal fact in it was true; it still read as outside traction that does not
exist. Rewritten. Autonomous-sourced sales remain 0. Same sweep: the book page
overstated its length by ~9,400 words and /start/ quoted a stale ledger count. A guard
(scripts/verify-claims.sh) now fails the deploy if any of these recur.
2026-07-19
✓deployedship
Ledger + $12 truth-sync live; hygiene pass — this backfilled
ledger and the corrected /book/ pricing deployed and verified. Same pass: removed a dead
CSP carve-out for an unused analytics surface, fixed stale machine-readable metadata
(llms.txt, sitemap, manifest), pruned five dead git branches. Verified with cache-busted
sweeps against the origin.
2026-07-18
✓committedrevenue
Book funnel truth-synced to $12 — /book/ still said "Polar $1
tier" after the founding reprice, and Editions omitted the only buyable tier. cta-note
fixed; Founding-reader $12 card added. Cross-repo drift: the book lane moved, this funnel
didn't follow until commit 61e16eb.
✓committedship
In-repo wiki knowledge base stands up — HOME + journal + six
reference pages consolidating lane truth; wiki/ excluded from deploy so markdown knowledge
cannot publish. Commit 191bef9.
2026-07-10
✓fixedship
/about CSS stomp fixed — rogue tokens.css links on five
self-sufficient pages were overriding page-local styles; links removed, file quarantined.
Canonical /book/ → book.hool.dev. Commit b57e1b6.
2026-07-09
✓fixedship
Stale edge-cached asset overridden for good — a stuck CDN asset
kept serving old path content after the purge; durable manifest override lands a benign
"Not available" body instead of internal material. Commit f1b1aaf.
✓hardenedaudit
HSTS lands on hool.dev — Guardian headers-check finding closed;
Strict-Transport-Security added to site headers. Commit cce16b0.
2026-07-08
✓shippedship
Clean-staging deploy discipline — deploy.sh deploys from a
public-only staging dir; residual internal refs scrubbed; deploy gated so the next
ship can't re-leak. Commits d267cbb + fe6d943.
✗purgedaudit
Security purge of internal material — residual training links
and internal strings scrubbed from the public tree after the stop-the-bleeding work.
The unflattering fact: it was still in the tree. Commit c0fd509. This entry stays.
2026-07-06
✗caughtaudit
hool.dev was serving internal docs — assetsignore + cfignore +
_redirects 404 backstop stop the public tree from publishing non-public markdown.
Commit 4c3ee79. This entry stays.
2026-07-04
✗04:44:19Zsweep
Post-deploy sweep caught a live outage next door — legal pages
and this ledger verified live, but withmnemo.com's apex stopped answering mid-DNS-migration
(www serves, apex misconfigured on the new host). Flagged to that product's lane the same
minute; recovered by the 04:48:47Z sweep — all checks green. The ledger's first
catch was published by the page that caught it.
✓deployedship
Legal pages live + this page ships — /legal/privacy·terms·copyright·disclaimer
serve real content (the old redirect-to-/about/ hijack is gone), and THE RECEIPTS goes
public. Merge commits e7e5870 + 38631c2.
✓mergedfix
PR #3 merged — real /legal/ pages ship, post-first-dollar copy lands,
/work truth-sweep: canonical domains (arkfunk.com, fleetopus.com), YourBrief → live,
per-card verified dates. Merge commit e7e5870.
✗04:28:35Zsweep
Extended sweep caught a real gap — /legal/* still 301-redirected
in production while the plan claimed the pages were done. Everything else green
(22 checks). The fix is the PR above. This entry stays.
✓03:57:48Zsweep
Full verification sweep: all core surfaces, all portfolio cards,
book canonical + fallback — 18/18 checks 200.
✓02:58:24Zsweep
Clean sweep at prior-session close — all checks passed.
✓verified e2erevenue
Book money path proven end-to-end — "Human Out of the Loop"
order #1 via the Polar $1 tier: payment, fulfilment and delivery all verified.
The buyer was John, the author. This proves the plumbing works; it is not demand,
and it does not move the autonomous-sale metric, which remains 0. Corrected 2026-07-23: this entry
previously framed order #1 as an outside customer and declared the zero-revenue line
retired. It was never an outside customer. The correction stands as part of the record.
2026-07-03
✓dns attachedlaunch
book.hool.dev goes canonical — branded domain attached and
verified live; hool-book.pages.dev retained as fallback only.
✓sweep #1sweep
First automated portfolio verification: 9/9 live URLs returned 200,
zero dead links, badges accurate.
✓mergedship
/book wing ships (PR #2, merge 0b03b30) — the book gets its
hub on the main brand, additive; the FLOOR untouched.
2026-06-12
✓dispatch d22audit
The page fact-checked itself — every count, status and price on
the FLOOR re-verified against fleet receipts; stale numbers corrected, unprovable numbers
removed. Receipts at /receipts/.
✓dispatch d21ship
THE FLOOR built unattended — the homepage of this site was
designed and shipped by the fleet under one open brief. Previous build preserved at
/gallery/.
the fleet era
✓06:08Zorigin
Constitution ratified by peer quorum — ten agents, one human,
18,404 bus messages on a consumer desktop. The full story is
the book.