Offer the complete reference in Simple mode, when it would change something - #49
Merged
Conversation
…uld change something Realignment existed only in Advanced, on a card sitting among alignment internals. Simple mode's reader is the one most likely to be holding vendor data on an unfinished reference and least likely to ever find that card. The offer is a field on the brief rather than a UI decision, computed where the data is. It appears only when it would change something: a paternal line to improve, and — the condition a screenshot caught me missing — no CHM13 alignment already. The per-alignment rule alone still found an old GRCh37 file nobody had realigned and cheerfully told a donor with four CHM13 alignments that their father's line had nowhere to be read from. The offer's promise is about the person, not about one file. The three remaining conditions are `realignable_for_subject`, extracted from the project-batch path rather than reimplemented. If the offer and the job disagreed about what is realignable, a user would be promised four hours of work the job then refuses. Simple mode gets a confirmation step where Advanced does not. Advanced states the cost in a paragraph its reader is equipped to weigh; this reader arrived from a page about their ancestors and should not commit the machine to four hours and 276 GB by misjudging one button. The copy went through two corrections worth recording. It first described the gaps as a defect in the reader's test — they are a property of every human reference before T2T, and saying so protects the reader from concluding their sequencing was bad. It then framed the finished genome as a paternal-line feature, which misdescribes what T2T delivered: a full autosomal sequence end to end *and* the first complete Y. Y discovery is what Navigator uses it for today, not the scope of what was built. The card also now says whose genome it is — European-ancestry donor, J1a Y — because a "complete" reference is still one person's, and complete-for-whom is the sort of thing that goes unsaid. README, User Guide and the alpha.17 release notes carry the same framing. 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.
Realignment shipped in alpha.17 reachable only from Advanced mode, on a card among alignment internals. The reader most likely to be holding vendor data on an unfinished reference — and least likely to ever find that card — is the one in Simple mode.
What this adds
An offer under Your test, pitched at someone who should never need to know what a reference build is, with a confirmation step before a four-hour job starts.
Eligibility is a field on
SubjectBrief, computed in the app layer besideneeds_analysis, rather than a UI decision. It appears only when it would change something:realign::realignable_for_subject, extracted from the project-batch path rather than reimplemented. If the offer and the job disagreed about what is realignable, a user would be promised hours of work the job then refuses.The bug a screenshot caught
The first version rendered correctly and was still wrong. On a donor holding six CHM13 alignments it offered to realign an old GRCh37 file nobody had touched, telling them their father's line had nowhere to be read from — while four finished alignments of theirs said otherwise.
The per-alignment rule was answering "would the job act on this file?". The card was making a claim about "is part of this person's line unreadable?". Those are not the same question, and only the second one is the offer's promise. Hence the subject-level guard.
Copy, corrected twice
Both corrections came from review, and both were substantive rather than stylistic:
The card also now states whose genome the reference is — a donor of European ancestry, carrying a J1a Y — because a "complete" reference is still one person's, and complete-for-whom is exactly the sort of thing that goes unsaid.
README, User Guide and the published alpha.17 release notes carry the same framing.
Validation
-D warnings;cargo fmtclean; locale parity (every_es_key_exists_in_en) passes.Not covered
The corrected gating has not been re-checked in the GUI. It follows deterministically from the subject's alignment rows, but it has not been seen.
🤖 Generated with Claude Code