Rewrite the public site prose in a plain teaching voice - #19
Merged
Conversation
Finishes the documentation rewrite by covering the two files it missed. Earlier work rewrote the project markdown and the JavaScript comments, but the prose a visitor actually reads on docs/index.html and docs/observatory.html was still in the old style. Visible text only. Technical terms now carry a defining clause where they first appear: held-out split, regret, resolver, scope, root input, dependency cone, scenario fixture, HBM, MFU, PUE, collective, preregistered, prior, residual, durable frontier, PDU, and WAN. Jargon gave way to plain equivalents where the plain phrasing says the same thing, so "epistemic ranking regions" became "ranking under uncertainty" and "inadmissible" became "cannot support a claim". Nothing structural changed, and no number changed. The docs-stats gate parses the stat-grid digits against values computed live from the registry, so an altered digit would both fail CI and publish a false fact. Strings that JavaScript matches on were identified first and frozen, which is why the "Collective" legend item keeps its exact wording, with the term defined in the surrounding prose instead. Verified: docs-stats prints OK; an ordered comparison of the tag skeleton shows 757 of 757 tags on index.html and 2058 of 2058 on observatory.html with zero differences, proving no tag, attribute, class, id, data attribute, or href changed; every numeric literal matches (182 and 576); and the full suite reports 1029 passed with only the 10 pre-existing Windows temp-dir errors that main already produces. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Finishes the documentation rewrite by covering the two files it missed: the public site's own pages. Earlier work rewrote the project's markdown and its JavaScript comments, but the prose a visitor actually reads on
index.htmlandobservatory.htmlwas still in the old style.What changed
Visible text only, across roughly 75 edits. Technical terms now carry a defining clause where they first appear — held-out split, regret, resolver, scope, root input, dependency cone, scenario fixture, HBM, MFU, PUE on the landing page; held-out, collective, preregistered, prior, residual, durable frontier, PDU, WAN on the observatory.
Jargon gave way to plain equivalents where the plain phrasing says the same thing: "epistemic ranking regions" became "ranking under uncertainty", "inadmissible" became "cannot support a claim", "learning-noninferior" became "learned just as well".
The result reads like the rest of the project. For example, the page now explains that "a held-out split is data the model never saw while it was being fitted, so a prediction on that data is a real test," and that "a root input is modeling debt you can see. That beats hidden debt papered over with a fudge factor."
What deliberately did not change
No HTML structure. Not one tag, attribute, class, id,
data-*attribute, inline style, orhref/srcreference.No numbers. The
docs-statsgate parses the<b>NNN</b>cells in the stat grid and compares them against values computed live from the registry, so a single altered digit would both fail CI and publish a false fact.No string that JavaScript matches on. 28 shared strings on the landing page and 75 on the observatory were identified up front and frozen. That is also why the legend item "Collective" keeps its exact wording —
observatory.jsmatches it — with the term defined in the surrounding prose instead.Verification
docs-statsgate printsdocs-stats: OK.Known follow-up, not addressed here
Seven panels on the landing page have their copy duplicated inside
app.js, which overwrites the HTML on load, so those panels render theapp.jscopy. That prose is already plain and reads well, and three of its sentences are pinned bydocs_stats_check.pyregexes that require exact wording around the digits, so rewriting it was judged more risk than benefit. Anyone editingapp.jslater must keep these intact: "The registry currently names N variables and N equations", "N equations are currently covered by unit checks", and "N root inputs are still visible in the current summary".🤖 Generated with Claude Code