Declutter the README, and fix six documentation defects - #243
Merged
Conversation
…g docs/notebooks/examples/nulls
**The README had grown clutter and I had added to it.** Measured before editing: 24 blockquote asides
totalling 12,229 characters, longest 1,692. Two of the five worst were ones I wrote earlier the same night,
and my version of the "which revision should you install?" aside had grown a sentence per release -- a
pattern that does not converge. Now 6,793 characters (-44%), longest 704, free-disk bullet 940 -> ~450.
Structural, not merely shorter: one Caveats section holds the four things that can change a number
(Enformer cross-process variation, the pre-0.7.5 alphagenome_pt splice history, Cherimoya-vs-ChromBPNet
magnitude, hg38-only) with inline asides cut to two-line pointers; token plumbing moved out of the quick
start into the installation section; per-release detail delegated to the CHANGELOG so the README stops
growing every release; the enformer install itemisation moved from a TLDR parenthetical into the
disk-usage section.
**Six defects fixed:**
* examples/walkthroughs/README.md described Sei by its pre-0.7.4 scope ("40 sequence classes") in the table
the README calls a "full side-by-side comparison" -- which also covered 6 of 8 oracles.
* docs/variant_analysis_framework.md still carried the "1-2 % fp32 noise" equivalence claim that 0.7.5
corrected in the README. Mine: I fixed the README without grepping elsewhere.
* describe_tracks() appeared zero times in docs/, including the "Full Python API reference".
* BACKGROUND_NULL_PROTOCOL.md had no record that alphagenome_pt has no null of its own and ranks against
alphagenome's -- a protocol-level decision, silently violated for 738 tracks. New §8b, plus the
2026-08-18 decision-log entry that CLAUDE.md required in the same commit as the change itself. Also mine.
* examples/notebooks/README.md claimed each notebook "produces ... outputs inline" while 16 code cells
across three ship blank.
* The free-disk bullet still said "~13 GiB, not 85" after the total moved to 87.
**Verified clean:** all 9 null artefacts (schema_version 4, one campaign, exact track counts, 10,000-point
CDFs, signed flags summing to 24,160 exactly as the protocol claims); six notebooks (no errors, no
tracebacks, no WARNING lines, right kernel); six walkthroughs shipping md+json+tsv+html with IGV; and the
README's factual claims spot-checked against code -- coordinate table, Cherimoya's 1,149/369 split, 4 K562
ATAC experiments, score_ism's 25 bp default, five sequence lengths, 24 MCP tools, AlphaGenome's bin split.
Three guards caught my own edits mid-pass: the --no-weights phrasing guard, the stale-track-count guard
(my wording "took it from 40 tracks" read as a claim of 40), and my own TLDR/disk guard, which was keyed to
an exact sentence and broke the first time that sentence was reworded -- re-anchored, since a guard that
fails on rewording rather than drift is noise.
Four false positives recorded in the report, including my slug function reporting 8 broken anchors (GitHub
emits one hyphen per space, so `#cherimoya--catv1` is correct; all 21 resolve) and NPZ provenance that
lives inside build_config rather than under a provenance key.
Fast suite 2,146 passed / 34 skipped.
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.
Audit of notebooks, examples, documentation and the nulls, plus the README restructure you asked for.
Full report:
audits/2026-08-18_post_v075_docs_and_readme_audit.mdThe README had grown clutter — and I had added to it
Measured before editing: 24 blockquote asides, 12,229 characters, longest 1,692. Two of the five worst
were ones I wrote earlier the same night, and my version of the aside you quoted had grown a sentence per
release — a pattern that does not converge.
Structural, not just shorter:
Caveatssection holds the four things that can change a number — Enformer cross-processvariation, the pre-0.7.5
alphagenome_ptsplice history, Cherimoya-vs-ChromBPNet magnitude, hg38-only.Inline asides became two-line pointers. Caveats are now findable in one place instead of ambushing the
reader mid-flow.
CHANGELOG says which release moved which number. That is what stops this recurring.
Six defects
examples/walkthroughs/README.mddescribed Sei by its pre-0.7.4 scope ("40 sequence classes"), in the table the README calls a "full side-by-side comparison" — which also covered 6 of 8 oraclesdocs/variant_analysis_framework.mdstill carried the "1–2 % fp32 noise" equivalence claim that 0.7.5 corrected in the READMEdescribe_tracks()appears zero times indocs/, including the "Full Python API reference"alphagenome_pthas no null of its own and ranks againstalphagenome's — a protocol-level decision, silently violated for 738 tracks. New §8b + the decision-log entryCLAUDE.mdrequired in the same commit as the changeexamples/notebooks/README.mdsays each notebook "produces … outputs inline" while 16 code cells across three ship blankVerified clean
schema_version 4, one build campaign, exact track counts, 10,000-pointCDFs, and signed flags summing to 24,160, precisely what the protocol claims. The protocol's numbers
reproduce from the artefacts.
WARNINGlines, all on kernelchorus.CATCA/ATCA), Cherimoya's 1,149 DNase + 369 ATAC, the 4 K562 ATACexperiments,
score_ism's 25 bp default, all five sequence lengths, 24 MCP tools, AlphaGenome's 1 bp vs128 bp bin split. All exact.
Guards caught three of my own edits
Which is the system working, and one is a lesson about guard design:
test_no_weights_is_not_sold_as_a_getting_started_option— my compression dropped the "cannot predict"phrasing it exists to protect.
test_live_docs_do_not_claim_a_stale_track_count— my wording "took it from 40 tracks to 21,947" read asa current claim of 40 tracks for Sei.
test_the_tldr_install_size_agrees_with_the_disk_tablewas keyed to the exact sentence "Theinstall itself is ~N GiB" and broke the first time that sentence was reworded. Re-anchored on the
prerequisite bullet — a guard that fails on rewording rather than on drift is noise.
Four false positives are recorded in the report, including my slug function reporting 8 broken anchors
(GitHub emits one hyphen per space, so
#cherimoya--catv1is correct — all 21 resolve) and NPZ provenancethat lives inside
build_configrather than under aprovenancekey.Gates
Fast 2,146 passed / 34 skipped. Integration 159 passed / 6 skipped / 0 failed. Browser: CI.