v17 full audit: MCP server spec drift + Borzoi/LegNet numbers + CEBP walkthrough#31
Merged
lucapinello merged 1 commit intochorus-applicationsfrom Apr 21, 2026
Conversation
Ran a comprehensive ship-ready pass — every live doc, every walkthrough
README vs its committed example_output, all 17 shipped HTML reports, the
Python API, the MCP tool registry, error messages, and macOS-arm64
device detection.
Five drifts fixed:
1. chorus/mcp/server.py:77 ORACLE_SPECS — AlphaGenome "5930 tracks" →
5,731 (real count, matches list_oracles() output).
2. chorus/mcp/server.py:1482 MCP system prompt — same "5930" → "5,731",
and made Borzoi's 7,611 explicit on the adjacent line so a Claude
session via chorus-mcp doesn't see stale numbers.
3. chorus/mcp/server.py:71 — LegNet input_size_bp: 230 → 200 (actual
create_oracle('legnet').sequence_length == 200).
4. scripts/README.md:37, 94 — Borzoi "7,612" → 7,611 (actual track
count summed across assay types via get_track_info()).
5. examples/walkthroughs/validation/SORT1_rs12740374_with_CEBP/README.md:21
— "CEBPB binding gain: +0.22" → +0.27 (committed example_output.md
line 31 shows +0.270; 0.05 gap is beyond CPU non-det).
Also audited and clean: every other walkthrough number (within ±0.006),
all formula labels (log2FC / lnFC / Δ), error messages
(create_oracle('fakeOracle') and ModelNotLoadedError both clear), MCP
tool list (22 tools, all named consistently with walkthrough READMEs),
platform detection on macOS arm64. Full report in
audits/2026-04-21_v17_full_audit.md.
Tests: 333 passed / 1 skipped.
Co-Authored-By: Claude Opus 4.7 (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.
Summary
A comprehensive ship-ready audit: every live doc, every walkthrough README vs its committed
example_output, all 17 shipped HTML reports screenshotted via headless Chrome, the Python API, thechorus-mcptool registry, error messages, and macOS-arm64 device detection.Five drifts fixed
chorus/mcp/server.py:77(ORACLE_SPECS) — AlphaGenome "5930 tracks" → 5,731 (matcheslist_oracles()output and the notebooks after v16).chorus/mcp/server.py:1482(MCP system prompt) — same "5930" → "5,731". Also added7,611 tracksexplicitly for Borzoi so a Claude session usingchorus-mcpgets consistent numbers.chorus/mcp/server.py:71— LegNetinput_size_bp: 230→ 200 (actualcreate_oracle('legnet').sequence_length == 200).scripts/README.md:37, 94— Borzoi "7,612" → 7,611 (real count summed across assay types viaget_track_info()).examples/walkthroughs/validation/SORT1_rs12740374_with_CEBP/README.md:21— "CEBPB binding gain: +0.22" → +0.27 (committedexample_output.mdline 31 shows+0.270; 0.05 gap is beyond CPU non-det).What else was checked and is clean
example_output.mdor within ±0.006 (accept as CPU non-det).log2FC; gene expression →lnFC; MPRA →Δ (alt−ref). Zero rogue labels.file://— expected.create_oracle('fakeOracle')→ helpfulValueErrorwith the valid list;predict()without load → clearModelNotLoadedError.detect_platform()returnskey=macos_arm64, has_cuda=False; each oracle env handles its own backend (MPS/TF Metal/JAX-CPU) by design.examples/applications/path (onlyaudits/snapshots still mention it, which is intentional).Known latent issues, NOT fixed here
predict_variant_effectref-allele check (chorus/core/base.py:322-328) — tracked inaudits/2026-04-21_v16_notebook_and_html_audit.md. Needs its own focused code PR with SNV + indel + reverse-strand coverage.Test plan
pytest tests/ --ignore=tests/test_smoke_predict.py -q→ 333 passed / 1 skipped (9m 9s)python -c 'from chorus.mcp.server import mcp; import asyncio; print(len(asyncio.run(mcp._list_tools())))'→ 22 toolspython -c 'import chorus; chorus.create_oracle(\"fakeOracle\", use_environment=False)'raises the expectedValueErrorwith the valid list🤖 Generated with Claude Code