Skip to content

Rewrite the public site prose in a plain teaching voice - #19

Merged
Cuuper22 merged 1 commit into
mainfrom
feynman-pages-prose
Aug 14, 2026
Merged

Rewrite the public site prose in a plain teaching voice#19
Cuuper22 merged 1 commit into
mainfrom
feynman-pages-prose

Conversation

@Cuuper22

Copy link
Copy Markdown
Owner

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.html and observatory.html was 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, or href/src reference.

No numbers. The docs-stats gate 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.js matches it — with the term defined in the surrounding prose instead.

Verification

  • docs-stats gate prints docs-stats: OK.
  • Ordered tag-skeleton comparison: 757 → 757 tags on index.html and 2058 → 2058 on observatory.html, with zero differences. Because the comparison is over the ordered token list, this proves no structural or attribute change anywhere.
  • Every numeric literal extracted and compared: 182 → 182 and 576 → 576, all identical.
  • Full test suite run locally before merge.

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 the app.js copy. That prose is already plain and reads well, and three of its sentences are pinned by docs_stats_check.py regexes that require exact wording around the digits, so rewriting it was judged more risk than benefit. Anyone editing app.js later 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

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>
@Cuuper22
Cuuper22 merged commit 3d7339a into main Aug 14, 2026
12 checks passed
@Cuuper22
Cuuper22 deleted the feynman-pages-prose branch August 14, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant