docs(paper): interactive glossed HTML of the plain-English rewrite - #17
Merged
Conversation
Self-contained, hand-designed HTML companion to docs/paper/mute-map-paper-eli5.md,
produced by /paper-gloss. 49 approved jargon terms are clickable at all 344 of
their occurrences; clicking one opens a plain-English definition. A glossary
panel lists every term at once, and an annotation layer adds
select-to-highlight, per-highlight notes, and export to Markdown/JSON.
Structure mirrors the eli5 1:1 -- 28 headings in order, 80 paragraphs (68
carried from the paper + 12 in-plain-words glosses), 12 tables with values
unaltered, 6 figures inlined as base64 data URIs, 4 lists. References carried
verbatim and excluded from glossing, along with headings, tables, figure alt
text, code spans and math.
Design: cool near-white ground with a single deep-teal accent, lightened for
dark; Palatino-class serif for reading with a monospace utility face carrying
the counts and verdict strings; single ~72ch column with tables and figures in
their own horizontal-scroll containers so the page body never scrolls sideways.
Themed for light and dark via tokens, with the data-theme override winning over
the media query in both directions.
Three rendering bugs found by browser-testing the page rather than by the
structural checks, all fixed before this commit:
1. loading="lazy" on a data: URI never loads in Chrome -- all six figures would
have shipped as blank 2px strips. Lazy loading buys nothing for bytes already
inline; replaced with decoding="async".
2. A backslash-escaped asterisk inside a bolded run broke the **...** match, so
the window-sweep table shipped literal markdown ("**L17\* 0**"). Escaped
punctuation is now stashed before the emphasis pass.
3. Bold runs containing nested *italics* did not convert, shipping "**" into the
body text in two places. The bold pass is now non-greedy.
Also guarded: ALL-CAPS is reserved in this paper for frozen verdict labels, so a
lowercase term matching an all-caps surface is always a false positive -- this
was wrapping "FLOOR" inside the qualifier string "ON A DAMAGED FLOOR".
Verified: Phase 3 clean (headings, paragraph/table/figure/list counts, zero bare
or nested terms, dictionary symmetry, no external resource loads, all four theme
blocks consistent); check_math.py clean at 0 unrendered and 0 verbatim
fallbacks; inject_annotations.py --check clean and byte-identical on a second
run; all 6 figures confirmed decoded in-browser at full resolution; no
horizontal body scroll.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MwGUzVvUmaiEShFiZfrcW7
…d-artifact fixes from review Adversarial review round 1 on PR #17, findings F1-F3 (should-fix) and F5-F7, F9 (nice-to-have). F8 disputed; F4 carried as an upstream follow-up. F1 -- UPSTREAM CONTENT FIX, the one worth reading twice. Section 4.2.1 published "17/17, 46/40 and 36/34" for the three-word-piece texture on the control arm. Two of those are arithmetically impossible: a hit count cannot exceed its denominator. The denominators quoted were the control arm's own primary naming hits (17/40/34) where they should have been the gated n (38/61/44). Verified against the committed artifacts, results/m1-battery-qwen2.5-*.json: greedy_3_texture.gated_control_late_says_concept_in_3 = 17/46/36 over naming_success_gated.clean.n = 38/61/44. Corrected to "17/38, 46/61 and 36/44" in the paper and "17 of 38, 46 of 61 and 36 of 44" in the eli5, which now agrees with the "0 of 38, 0 of 61 and 6 of 44" in the very next clause. No verdict, contrast, interval or gate number changes, and the argument that paragraph makes -- that the readout bias runs against the finding -- gets stronger, not weaker. 0.5B's 17 = 17 coincidence is why the wrong denominator survived three prior reviews. Kyle should sanity-check this one: it edits a merged paper's published numbers, which is normally his call, and it is reversible with a single revert. F2 -- the glossary defined "floor" as a share of *concepts*. Every floor the paper reads is a share of *items*; the concept-level reading is precisely the one that fails the 0.5 bar and forces AS-SCORED ONLY. A reader clicking "floor" in section 4.5 was handed the failing reading as the definition and then read a passing verdict. Rewritten, and "guaranteed to stay above" dropped -- a Wilson lower bound is not a guarantee. F3 -- Export Markdown / Export JSON could never save a file outside claude.ai: saveFile knew only window.claude.downloads, so every export in an ordinary browser fell into the copy-paste box. Fixed in the shared runtime (~/.claude/skills/paper-gloss/assets/annotations.js) with a Blob + <a download> branch, preferring window.claude.downloads and keeping the copy box as last resort. Verified live: the button now fires a real blob download and reports "Saved mute-map-paper-eli5-annotations.md". That edit is UNCOMMITTED in the claude-config repo and needs Kyle's review -- it fixes every paper-gloss artifact, not just this one. F5 -- the "entry test" gloss contradicted sections 2.1 and 4.1, which discuss the earlier project's two-part test; the definition now names both. F6 -- the "cell" gloss said one item per cell while the paper reads cells of 22 items and requires 20 trials per cell; reworded. F7 -- the header note had quietly dropped "with rewritten captions" from the source's disclosure; restored. F9 -- the one relative href (figures.py) dangled once the file leaves docs/paper/; the builder now absolutises repo-relative links. F8 (four [data-theme] blocks called dead CSS) is disputed, not fixed: the Artifact runtime stamps data-theme on the root element when the viewer toggles theme, and that override is required to win over the media query in both directions. Removing it would break theming on the published page. Verified after the fixes: Phase 3 clean, check_math clean, injector --check clean, all six figures byte-identical to the tracked PNGs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MwGUzVvUmaiEShFiZfrcW7
Adversarial review round 2 on PR #17: 7 of 7 prior findings verified, 0 reopened, 3 new. F10 (should-fix) -- the denominator fix in 1205616 stopped two files short. docs/paper/mute-map-presenter-pack.md:104 and docs/M1-BRIEF.md:360 both still carried "17/17, 46/40, 36/34", so the presenter pack contradicted the paper it summarises and held the arithmetically impossible version. Both corrected to 17/38, 46/61, 36/44, from the same recorded artifacts as before. A grep across docs/ now returns no occurrence of the old figures anywhere. Note for Kyle: this touches docs/M1-BRIEF.md, a stage brief. Briefs are records rather than live documents, so if the convention here is that they are immutable once the stage closes, revert that one hunk -- the paper and the pack are the two that must agree, and they now do. F11 (nice-to-have) -- round 2 raised this against round 1's own suggested wording. The reworded "cell" gloss said "a fixed combination of model and condition", which does not fit the paper's other uses: 2,340 cells per model, 840 cells per model, per-pair cells at n <= 3. Reworded again to be granularity-neutral and to name pooling, which is what reconciles "a cell of 22 items" with "2,340 cells". F12 (nice-to-have) -- blobSave returned true on setup success alone, but a.click() is fire-and-forget, so a browser that blocks the download produced "Saved <filename>" with no file and no fallback. The status now reads "Download started: <filename>", which is what the code can actually attest. Fixed in the shared runtime, still uncommitted in claude-config. F4 and F8 remain open by design: F4 is an upstream nice-to-have in the shared annotation runtime, and F8 is disputed -- the Artifact runtime stamps data-theme on the root element, so those blocks are required, not dead. Verified: Phase 3 clean, check_math clean, injector --check clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MwGUzVvUmaiEShFiZfrcW7
…marker; cell gloss Adversarial review round 3 on PR #17: F10-F12 all verified, 0 reopened, 3 new. F13 (should-fix) -- MY MISTAKE, and the one that mattered. The previous commit used `git add -A docs/`, which swept docs/onboarding/2026-08-03-onboarding.md into the branch. That directory was untracked before this session started; both earlier review rounds recorded it as out-of-scope and unreviewed, and I twice told Kyle explicitly that I was leaving it alone. It is a partial working document -- its own line 3 reads "Status: partial (in progress)" -- and this repository is public. `git rm --cached` returns it to untracked; the file is untouched on disk. PR #17's body claim of "exactly one new file" is true again. F14 (nice-to-have) -- the round-2 rewording of the "cell" gloss ended "Small cells are pooled together, because a cell under 20 trials cannot carry a verdict", which contradicts the two sentences it fires in: M1's prevalence cells are deliberately NOT pooled, they are published UNDERPOWERED. The gloss now names both outcomes. F15 (nice-to-have) -- docs/M1-BRIEF.md was corrected in place with no trace, four lines above the brief's own rule that changes land alongside the pre-committed numbers rather than replacing them. The corrected figure now carries an [erratum 2026-08-04] marker and a note recording what it previously said, why it was wrong, and what it was checked against. The reviewer dispatch cap for this run (3) is spent, so these three fixes are author-verified only -- stated rather than implied. F13 is verifiable directly: `git ls-files docs/onboarding/` returns nothing. F4 (upstream nice-to-have in the shared annotation runtime) and F8 (disputed -- the Artifact runtime stamps data-theme on the root, so those blocks are load bearing) remain open and unfixed by design. Verified: Phase 3 clean, check_math clean, injector --check clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MwGUzVvUmaiEShFiZfrcW7
Owner
Author
Adversarial review — CLEAR TO MERGE (rounds: 3)
Stated plainly: the reviewer dispatch cap (3 per run) is spent, so F13–F15 carry no independent verification. F13 is the one that matters and it is mechanically checkable — Follow-ups (nice-to-have): F4 — Coverage: complete on all three rounds. Rounds: R1 0 critical / 3 should-fix / 6 nice-to-have · R2 7 verified, 0 reopened, 3 new · R3 3 verified, 0 reopened, 3 new. Zero-context reviewer; no judge dispatched (F8's dispute is recorded, not adjudicated). Anchored at |
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.
Adds
docs/paper/mute-map-paper-eli5-glossed.html— a self-contained interactive companion todocs/paper/mute-map-paper-eli5.md, produced by/paper-gloss.49 approved jargon terms, clickable at all 344 occurrences, each opening a plain-English definition; a glossary panel lists every term at once; an annotation layer adds select-to-highlight, per-highlight notes, and export to Markdown/JSON (persisted in
localStorage).Structure mirrors the eli5 1:1
data:URIsReferences are carried verbatim and excluded from glossing — as are headings, tables, figure alt text, code spans and math.
Three rendering bugs found by browser-testing, not by the structural checks
These are the reason the page was driven in a real browser before publishing:
loading="lazy"on adata:URI never loads in Chrome. All six figures would have shipped as blank 2px strips. Lazy loading buys nothing for bytes already inline — replaced withdecoding="async".**…**match, so the window-sweep table shipped literal markdown (**L17\* 0**). Escaped punctuation is now stashed before the emphasis pass.*italics*did not convert, shipping**into body text in two places. The bold pass is now non-greedy.Also guarded: ALL-CAPS is reserved in this paper for frozen verdict labels, so a lowercase term matching an all-caps surface is always a false positive — this was wrapping
FLOORinside the qualifier string "ON A DAMAGED FLOOR".Verification
check_math.pyclean — 0 unrendered, 0 verbatim fallbacks. All 8 inline math spans typeset at Tier 1 (λ, k = 1, 0.51/12 ≈ 0.944). The paper has no display equations, so no named-form blocks.inject_annotations.py --checkclean, and byte-identical on a second run.Design
Cool near-white ground with a single deep-teal accent, lightened for dark. Palatino-class serif for reading, monospace utility face carrying the counts and verdict strings. Single ~72ch column; tables and figures get their own horizontal-scroll containers so the page body never scrolls sideways.
data-themeoverrides win over the media query in both directions.No measurement was run; no behavioral file is touched. This PR adds exactly one new file.
🤖 Generated with Claude Code
https://claude.ai/code/session_01MwGUzVvUmaiEShFiZfrcW7