Changelog

Public version history. Format follows Keep a Changelog and semantic versioning. Site version + methodology version are tracked independently.

Subscribe — Atom 1.0 feed · methodology.json (JSON-LD)

Two version-lines run side by side:

  • Site version — the deployed web application (infrastructure + content + a11y + SEO + schema posture). Site changes do not by themselves change scoring.
  • Methodology version — the scoring methodology at /methodology/. Treated as a research artifact; bumps whenever the scoring algorithm or its presentation changes meaningfully.

#Unreleased — pre-launch holding-page phase

2026-Q2 → 2027-Q2. All ships are pre-public-launch hardening on the brand-reservation surface; the queryable registry remains gated on 4 prerequisites (operator track record, academic credibility, design-partner LOI, data licensing). Public launch target Q3 2027. See /about/ for the prerequisite gate + 2027-Q4 kill criterion.

#Site v0.3.1 — 2026-04-30 — LLM-citation hardening + mobile polish + logomark

Thirteen atomic ships (audit-and-fix waves 8 → 20) consolidated. No methodology change. Three themes: (a) LLM-citation infrastructure, (b) cross-page schema-↔-HTML drift cleanup, (c) brand mark + mobile polish. Every ship verified live before the next began. The site now passes Aleyda Solis’s 10-characteristic LLM-citation checklist on the structural axes (Accessible · Useful · Recognizable · Extractable · Consistent · Credible · Differentiated · Fresh · Transactable). Corroborated remains operator-only (Wikipedia / LinkedIn / Reddit corroboration is a parallel-track item).

Added — LLM-citation infrastructure

  • AEO FAQPage schema on /methodology/ + /track-record/ + / — 9 quote-ready Q&A pairs surfaced for AI Overviews + LLM retrieval (Wave 10).
  • Source-class DefinedTermSet on /beta/ + visible <dl> with microdata (itemScope itemType="https://schema.org/DefinedTerm") — 6 stable @id anchors (Wave 11).
  • Machine-readable twin at /api/source-classes.json — JSON-LD DefinedTermSet with stability_promise + license + first_published metadata; mirrors visible HTML on /beta/#source-classes (Wave 12).
  • Entity-graph knowsAbout on Organization (every page) + Person (/about/) — 14 DefinedTerm @id references (8 methodology + 6 source classes). Propagates expertise signal to every page that publishes via this Org (Wave 13).
  • Outbound citation graph on foundational works — Brier 1950 + Murphy 1973 + Tetlock 2015 each enriched with stable @id, DOI url, Wikipedia sameAs, ISSN where applicable. /research/ hasPart array uses the SAME @id values as /methodology/ citation[] — schema graph deduplicates (Wave 15).
  • Anchored Glossary section on /methodology/ — 8 visible <dt id="term-X"> anchors for the DefinedTerms previously referenced only in JSON-LD @id (Wave 18). Closes 5 broken anchor targets.

Fixed — cross-page drift cleanup

  • 5 stale holdlens.com/forecasts/ cross-refs on homepage + /roadmap/ + /for-agents/ + CONCEPT.md redirected to /track-record/ per the 2026-04-27 ForecastLens consolidation in DECISIONS.md (Wave 16).
  • 2 numeric drifts on homepage — “Six surfaces” → “Eight” (list had 8 entries) and “11 cited” → “10 cited” (per beta-findings.json) (Wave 16).
  • 11 stale DATE_MODIFIED constants across page heads bumped to current (Wave 17). Drift class: page-head dates lagging 1-5 days behind git last-commit. Now in lockstep.
  • Footer hardcoded 2026-04-26 caught by Wave 19 — sourced from single SITE_VERIFIED constant in layout.tsx so future ships only bump one line. Drift class structurally closed.

Added — brand mark + mobile polish

  • Calibration-curve logomark — replaces “CL” text monogram on /icon.svg + /apple-icon (first-time PNG; was 404) + opengraph-image + every-page header inline SVG. Three measured calibration points landing on a dotted ideal-calibration diagonal inside an L-axis frame — literal reliability-diagram glyph (Wave 20).
  • Hero h1 mobile-tightenedtext-[2rem] sm:text-4xl md:text-5xl + text-balance for prettier multi-line wrap on small viewports (Wave 19).
  • Defensive mobile CSSoverflow-wrap: anywhere on inline <code> + <a>, hyphens: auto on body prose ≤640px, -webkit-overflow-scrolling: touch on overflow-x regions. Resilient to future long URLs without per-parent break-words (Wave 19).
  • Cross-links from /partners/ + /about/ to the live /beta/ + /track-record/ surfaces (Wave 8).

Verified live

  • /icon.svg = calibration-curve glyph; /apple-icon HTTP 200 image/png 180×180; OG card serves new mark.
  • • Header inline 28×28 logomark renders on every route via layout.tsx (zero extra request).
  • • Footer <time dateTime="2026-04-30"> sitewide.
  • • 8 anchored #term-X targets on /methodology/ all resolve.
  • /api/source-classes.json serves 6-term DefinedTermSet with stable @id values pointing at /sources/#<slug>.

#Site v0.3.0 — 2026-04-27 — /track-record/ + /beta/ + scoring engine

Major surface addition. Two new public routes shipped + the methodology engine wired up. /track-record/ is the operator’s own public dated probabilistic forecasts, scored automatically with Brier (1950) + Murphy (1973) decomposition on resolution; 9 forecasts posted spanning 5 domains (geopolitics, AI benchmarks, markets, technology, weather); aggregate calibration recomputes on every resolution; machine-readable feed at /api/forecasts.json. /beta/ applies the methodology to 10 third-party-published calibration findings across 5 of 6 source classes (human forecasters, aggregator platforms, prediction markets, AI models, analyst firms, scientific papers); cited from peer review and publishers’ own metrics — not independently recomputed; review-platform class deferred to Phase 1; machine-readable JSON + BibTeX exports at /api/beta-findings.json + .bib. The pure-function scoring engine lib/brier.ts is math-verified via a 9-test suite (Murphy identity holds within 1e-10). The ForecastLens prerequisite #1 is now realised as a calibrationledger.com sub-surface (decision logged 2026-04-27 in DECISIONS.md). 12-month track-record clock starts on first resolution (2026-08-02 EU AI Act). 36/36 internal links resolve at deploy.

#Site v0.2.5 — 2026-04-26 — Per-page OG completion + WebSub end-to-end + JSON Feed 1.1

Four atomic rounds (55-58) hardening the bot-readable + share-shape surface. Per-page OpenGraph coverage 4/14 → 10/14. WebSub now end-to-end: /feed.xml advertises a Google public hub via rel="hub"; every deploy POSTs hub.mode=publish so subscribers receive within seconds vs poll fallback. JSON Feed 1.1 mirror at /feed.json alongside Atom for readers + LLM crawlers that prefer JSON parsing. verify-live.sh grew 86 → 109 assertions.

Added

  • • 5 more per-page OG image generators: /methodology + /about + /notify + /for-agents + /changelog. Coverage now 10/14 (universal fallback retained on legal/utility routes).
  • <link rel="hub" href="https://pubsubhubbub.appspot.com/"/> in Atom feed → WebSub-aware readers (Inoreader, NewsBlur, Feedly Pro) auto-subscribe.
  • • WebSub publish-ping in deploy.sh → hub re-fetches feed.xml on every deploy + pushes to subscribers (HTTP 204 = success).
  • /feed.json — JSON Feed 1.1 spec mirror, 8 items, WebSub hubs[] declared, CC-BY-4.0, CORS *.
  • application/feed+json autodiscovery <link> in <head> on every page (alongside existing Atom autodiscovery).
  • llms.txt + sitemap-ai.xml /changelog/ entry both advertise feed.json alongside Atom.

Verification

  • verify-live.sh Section [4] now loops over 10 OG routes verifying 200 + image/png; Section [6b] asserts WebSub hub link + JSON Feed schema (version=1.1, items≥3, hubs[0].type=WebSub).
  • • 109/109 assertions PASS on canonical domain.

#Site v0.2.4 — 2026-04-26 — Growth surface + bot-discoverability + footer site map

Five atomic ships covering “growth ASAP” + “all live” + “best UX/UI possible” directives. Net new: 5 growth pages, IndexNow active, CF Email Routing live, CF Email Obfuscation disabled, per-page OG images, 4-column footer.

Added — 5 new public routes (9 → 14)

  • Roadmap — Q3 2026 → Q3 2027 dated milestones + Q4 2027 kill criterion
  • Source types — 6 classes scored at launch with per-class methodology
  • Research — citation map of 75 years of forecasting science
  • Design partners — recruitment for 2027-Q3 launch (AI labs / regulators / academics)
  • Notify me at launch — operator-owned launch list (no third-party)

Added — bot-discoverability + UX

  • • IndexNow auto-ping wired into every deploy; first ping HTTP 202 sent to Bing/Yandex/Seznam/Naver for 13 URLs
  • • 4 per-page OG image generators (/roadmap, /sources, /research, /partners) via shared template — social-share CTR multiplier
  • • 4-column footer site map (Read · Engage · For agents · About) — internal-link graph 4 → 14 links per page

Operator P0s cleared via Chrome MCP

  • CF Email Address Obfuscation disabled — every body mailto: link sitewide now serves raw (was 3 obfuscated cdn-cgi/l/email-protection rewrites per page; now 0). LLM scrapers + JS-disabled fallback work.
  • CF Email Routing configured — contact@calibrationledger.com → paulomdevries@gmail.com. MX × 3 + SPF + DKIM live globally; routing rule Active.

Verified

  • • 14 public routes + 14 machine-readable endpoints + 5 OG images all 200 with canonical MIME
  • • @graph SHA-256 integrity unchanged (c8ed90758...) across the version bump
  • • 86/86 verify-live.sh assertions on canonical domain

#Site v0.2.3 — 2026-04-25 — Canonical domain LIVE

Production milestone, not a code ship. Site is now live on the canonical calibrationledger.com (was: only calibrationledger-com.pages.dev).

Added

  • • 2 CNAME records in Cloudflare DNS (apex @ + www), both Proxied + TTL Auto, pointing at calibrationledger-com.pages.dev.

Verified

  • https://calibrationledger.com/ → HTTP/2 200 with full Calibration Ledger page
  • https://www.calibrationledger.com/ → HTTP/2 200
  • dig resolves both to Cloudflare proxy IPs (104.21.4.230, 172.67.132.148)
  • verify-live.sh https://calibrationledger.com66/66 ALL PASS on the canonical domain — every endpoint, every security header, the Atom feed, the citation triple (BibTeX + RIS + CFF), the SHA-256 @graph integrity, all 3 rel=me identity links, all live.

Outcome

Operator P0 list collapses from 4 → 3: Cloudflare Email Routing, social handles @calibrationledger, GitHub remote creation under acevaultorg + push remain. The CF Pages deploy + custom-domain attach is DONE.

#Site v0.2.2 — 2026-04-25 — Discoverability + integrity + identity

Seven atomic rounds shipped post-deploy (rounds 24-30). Theme: every machine-readable surface is now reachable from at least 3 entry points, the JSON twin is cryptographically verifiable, and the security headers reach modern strict-CSP levels.

Added

  • • Atom 1.0 changelog feed at /feed.xml; canonical application/atom+xml MIME; site-wide autodiscovery; visible Subscribe link on /changelog/.
  • <link rel="me"> × 3 on every page (editnative.com, holdlens.com, mailto) — IndieAuth identity-corroboration pattern.
  • humans.txt enriched with /* THANKS */ citing Brier 1950 + Murphy 1973 + Tetlock 2015.
  • • Strict Content-Security-Policy on every route: default-src 'self', narrow analytics allowlist, frame-ancestors 'none', base-uri 'self', upgrade-insecure-requests.
  • • SHA-256 cryptographic integrity on /api/methodology.json @graph: sha256-yO2QdYQWy9x/XIe+t4YnJDfj0wf9l2AwZusa41gRneY=. Excludes _meta so future _meta evolution doesn't invalidate.
  • scripts/verify-graph-integrity.sh — pre-commit + CI guard against accidental @graph drift.
  • • BibTeX + RIS citation endpoints at /api/methodology.bib + /api/methodology.ris, including foundational works for one-stop import.
  • _meta.citation_files cross-reference inside the JSON twin advertising .bib + .ris + feed endpoints.
  • WebSite.potentialAction = SearchAction for SERP sitelinks search box.
  • sitemap-ai.xml expanded with 3 alternate links per methodology row + new /changelog/ entry.
  • verify-live.sh: 31 → 60 assertions across 7 rounds. Live coverage now spans feed shape + identity + CSP + cryptographic integrity + citation files.

#Site v0.2.1 — 2026-04-25 — Live deploy

First live deploy of calibrationledger.com to Cloudflare Pages. 53 files uploaded, all 31 verify-live.sh assertions pass on calibrationledger-com.pages.dev. Custom domain calibrationledger.com + www attached pending CNAME records.

Added

  • • TOC navigation at top of /methodology/ (10 numbered links to anchor-targeted H2s)
  • • BibTeX + APA + plain-text citation block on /methodology/
  • • Worked example with 3-forecast Brier computation walkthrough
  • • Python pseudocode for brier_score()
  • • CC-BY-4.0 license badge with rel=license
  • • Source-types semantic <table> (was <ul>)
  • • ESLint v8 baseline + "root": true to prevent walking up to parent .eslintrc

#Site v0.2.0 — 2026-04-25 — Loop hardening

Added

  • • Branded 404 page with recovery navigation
  • • Favicon + Apple touch icon for iOS home-screen saves
  • • Theme-color metadata for light + dark color schemes
  • • OpenGraph image (1200×630 PNG) for social + LLM card previews
  • • Cloudflare Pages _headers with explicit MIME + security headers (X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, HSTS 2-year preload)
  • • Skip-to-content link (WCAG 2.4.1) + visible keyboard focus rings (WCAG 2.4.7) + prefers-reduced-motion respect (WCAG 2.3.3)
  • • Anchor-linkable H2 headings on /methodology/ for citation deep-linking
  • /.well-known/security.txt per RFC 9116

Changed

  • • Tightened 5 metaDescriptions to ≤160 char SERP-optimal range
  • • Body-text contrast ratio 4.3:1 → 7.54:1 (WCAG AA cleared with margin)
  • • Header nav restructured for 44×44 mobile tap targets (WCAG 2.5.5)

Fixed

  • • 3px horizontal overflow on /for-agents/ font-mono URL lists
  • • Header tap targets 16.5px → 44px (a11y violation)

#Methodology v1.1 — 2026-04-24

Added

  • • Inline citations to Brier 1950 + Murphy 1973 + Tetlock & Gardner 2015 with dedicated References section
  • Murphy decomposition section (Reliability − Resolution + Uncertainty)
  • ScholarlyArticle JSON-LD schema with citation array; DefinedTermSet with 8 terms; inline microdata on key body terms
  • • Figure 1: inline reliability-diagram SVG (perfect-calibration diagonal + 3 example source curves)
  • • Machine-readable JSON-LD twin at /api/methodology.json (CC-BY-4.0)

#Site v0.1.0 — 2026-04-24 — Initial scaffold

Added

  • • Next.js 14 static export scaffold + Tailwind + TypeScript
  • • 8 public routes: /, /methodology/, /about/, /for-agents/, /contact/, /disclaimer/, /privacy/, /terms/
  • • Organization + WebSite + Person JSON-LD on every page
  • • robots.txt 9-agent AI crawler allowlist
  • • llms.txt with literature grounding + DefinedTerm glossary
  • • sitemap.xml + sitemap-ai.xml (priority-URL map for AI crawlers)

#Methodology v1.0 — 2026-04-24 — Initial draft

Added

  • • First public methodology document
  • • Brier score formula + interpretation
  • • Calibration curves explanation
  • • Append-only time-stamping discipline
  • • Domain-specific accuracy windows
  • • 6 source-type classes with primary metric + time windows
  • • Scope limits (what Calibration Ledger does NOT do)
  • • CC-BY-4.0 derivative-aggregate-score license

#Forthcoming

  • • Phase 1 launch — target Q3 2027, gated on the 4 prerequisites at /about/
  • • 2027-Q4 review against the kill criterion: <3 of 4 prereqs met → sunset, sell, or publicly document why the concept didn’t work. Zombie maintenance forbidden.

Source-of-truth file in repo: CHANGELOG.md. The repo also tracks CONCEPT.md (canonical positioning) and SECURITY.md (responsible-disclosure policy + npm-audit posture).

Last verified: 2026-04-30