Repository navigation
feat(sandbox): the molecule puzzle, and why solving it is not enough - #34
Merged
Merged
Conversation
A shape-and-chemistry matching exercise, shipped together with the clinical attrition that kills the candidate afterwards. The second half is the design, not an afterthought. A student told "you cured it" has learned something false; one who watches a perfect candidate fail Phase II for lack of efficacy has learned what medical research requires. The fit changes the preclinical odds, because chemistry is what preclinical work tests. It does not touch Phase II at all, because whether a target is the right target is not a question about the molecule. That asymmetry is the lesson and a test holds it. The phase rates are the only measured numbers in this sandbox: 52 percent through Phase I, 28.9 through Phase II, 58 through Phase III, 8.1 percent reaching approval. Everything else is illustrative and the contrast is deliberate, because the failure rates are the curriculum. A test multiplies the three and checks the product against the published overall rate, so an edit to one of them cannot drift quietly. Nothing congratulates a student who reaches approval. A simulator contains only what was put into it, so someone who cures something inside it has solved a puzzle someone wrote. Calling that discovery would teach a false idea of what solving a medical problem takes. Verdict is an enum with exactly one member, so there is nowhere to put "calibrated". No field is named affinity, potency, or anything else that reads as a physical quantity, and a test checks that none appears in a result's surface or its text. Safety is curation and the curation is now tested rather than asserted. An intent filter is not implementable: the edit that disables a harmful gene is the same edit reversed, and the software sees identical letters. What is enforceable is what exists. The sandbox imports nothing from the design tool, checked by parsing every module so that an import inside a function cannot slip through, which means it has no route to synthesis and the screening gate is not weakened by it existing. Every shipped gene is declared with its origin. Exactly one piece of content is not invented, thirteen codons of human haemoglobin beta, needed because the sickle cell variant has to sit at its real position, and a test fails if that count rises. Nothing imports a module that writes files or opens connections. Both structural guards were checked by breaking them: adding `import integrase` and `import socket` to a sandbox module, confirming each test caught it, and reverting. A guard that cannot fail is worse than no guard, because it reads as assurance.
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.
A shape-and-chemistry matching exercise, shipped together with the clinical attrition that kills the candidate afterwards. The second half is the design, not an afterthought.
A perfect solution to the puzzle still usually fails. The fit changes the preclinical odds, because chemistry is what preclinical work tests. It does not touch Phase II at all, because whether a target is the right target is not a question about the molecule.
test_a_perfect_fit_does_not_rescue_the_clinical_oddsholds that asymmetry across 500 seeds.Subplan 33 was explicit that a student told "you cured it" has learned something false. Nothing here congratulates anyone who reaches approval; the text says what it is, and a test asserts the wording.
The numbers
The phase rates are the only measured numbers in this sandbox. 52 percent through Phase I, 28.9 through Phase II, 58 through Phase III, 8.1 percent reaching approval, twelve or more years and over 2.5 billion dollars per approved drug. Everything else in the sandbox is
ILLUSTRATIVE, and the contrast is deliberate because the failure rates are the curriculum.test_the_phase_rates_multiply_to_roughly_the_published_overall_ratemultiplies the three and checks the product against the published figure, so an edit to one of them cannot drift the lesson quietly.Refusing to look like a prediction
Verdictis an enum with exactly one member, so there is nowhere to put "calibrated". A test asserts the member count, which makes "this is never a prediction" a fact about the type rather than a convention.No field is named affinity, potency, IC50 or anything else that reads as a physical quantity, and
test_no_result_uses_the_language_of_efficacychecks none appears in a result's attribute surface or its rendered text. The completion measure is calledcomplementarityand its docstring says it is a puzzle fraction.Safety: curation, and now tested
Subplan 33 argued an intent filter is not implementable. The edit that disables a harmful gene is the same edit reversed, and the software sees identical letters. Any filter would be trivially bypassable or restrictive enough to block real learning, and both failures leave someone believing a control is in place.
What is enforceable is what exists, so four properties now have tests rather than assurances:
ast, not by trying an import, because an import inside a function would not show up at runtime and is exactly how this property gets lost. It therefore has no route to synthesis, andintegrase-screen's gate is not weakened by the sandbox existing.I broke both structural guards to check they work: added
import integraseandimport socketto a sandbox module, confirmed each test caught it at the right line, reverted. A guard that cannot fail is worse than no guard, because it reads as assurance.Self-review
mypy --strict, ruff and the voice check clean.str.title()turned "phase II" into "Phase Ii", and a docstring claimed the phase rates multiply to roughly 5 percent when the arithmetic gives 8.7.COMPLEMENTSis tested for symmetry, since a non-symmetric pairing table makes the puzzle unsolvable in one direction and it would not be obvious from reading it.Not in this PR
Huntington's repeat-count dose response and cystic fibrosis dF508, which need repeat expansion and deletion in
Sequence. The zoom navigation subplan 33 describes: the containment hierarchy exists and nothing walks it. Diploid genomes, without which sickle cell recessiveness cannot be taught, which the trait layer currently states in its output rather than modelling. All logged.A biology educator to review the content remains the largest open item and is not something I can close alone.