Check the ambition against the published record, not just against this lab - #4
Open
di-omics wants to merge 3 commits into
Open
Check the ambition against the published record, not just against this lab#4di-omics wants to merge 3 commits into
di-omics wants to merge 3 commits into
Conversation
…s lab Every layer here asks what this lab can prove. None could ask whether the plan is supported by anything published, who is allowed to decide, or what a stated throughput target actually costs. Those are the three questions that decide whether an autonomy programme is engineering or aspiration, and all three are answerable from public evidence. literature encodes fifteen works, each carrying what it does NOT establish, because autonomous-lab claims are routinely justified by pointing at famous papers whose scope is far narrower than the claim -- a materials campaign cited to justify a cell-assay production line. Support resolves by scope rather than by fame. Every citation was independently verified against the live record before it was encoded, and the verification changed the content rather than confirming it. The A-Lab paper was corrected: 41 successes became 36 after four were reclassified as inconclusive, and the "43 new materials" figure that appears in news coverage matches no version of the paper. Assay Guidance Manual chapters carry no DOI, so any citation supplying one is fabricated. PyLabRobot makes an architectural assertion about cross-family simulation rather than demonstrating it. Thirteen entries are confirmed, two partial, and eleven carry figures that could not be confirmed -- listed rather than rounded away. authority models which decisions a model may make. "AI-native" gets read as "the model drives the instruments", and the benchmark evidence is that no evaluated model exceeded 70% hazard-identification accuracy. The honest response is not that models are useless but that decision classes differ, so thirteen classes sit across four levels and each states why it sits where it does against a specific published finding. Authority may be strengthened and never weakened; the reverse is what violations() catches. The qualification ladder is included because no rung implies the one above it, and a passed simulation qualifies nothing physical. cadence refuses a target until it says whether it counts plates started, completed, QC-passed, or released, because those four differ by the failure and rerun rate and resolving the ambiguity silently would pick the loosest reading. Given an endpoint it is arithmetic on the caller's inputs and needs no measured durations. It refuses a buffer depth for the same reason throughput refuses a makespan. demonstrated_support computes the absence of sustained-rate evidence from the table rather than asserting it, so it flips the day somebody publishes a counterexample. 131 new tests, 277 total.
…rclaiming An independent audit of these three modules returned eleven blockers. The irony is the useful part: the module written to stop autonomy claims outrunning their evidence was doing it itself, in three separate ways. literature never read Scope.material. `support_for` on a primary human hepatocyte claim returned supported=True, citing a fifteen-hour yeast run whose own does_not_establish says it establishes nothing about mammalian culture. Material is now compared first, before any duration or attendance check, because a duration gap on the wrong organism is a rounding error next to the organism. Comparison is exact-match and refuses on any difference, since deciding that two material descriptions are equivalent IS the transfer question and a fuzzy match would answer it silently in the direction of support. The same function treated an unwritten claim as a satisfied one. Every comparison was gated on the claim asserting something, so a Scope naming no material, duration, replication or attendance produced zero shortfalls -- and zero shortfalls read as full support, making an unwritten claim the easiest kind to support. That is the vacuous-pass failure qc already guards against when a gate is evaluated with no measurements at all. Three entries were CONFIRMED while their own unverified field said the figures in demonstrates could not be checked at the cited source -- a paywall, a 403, a number that appears only in secondary coverage. That is the enum's written definition of PARTIAL, so they are PARTIAL now: ten confirmed, five partial. authority let a duplicate assignment suppress a violation. Plan.assigned returned the first matching row, so listing HUMAN before MODEL on batch release reported a clean plan -- a field an author could set to silence a report, in the module whose docstring promises none exists. Every row is judged now, and the duplication is its own finding rather than resolved, because picking a winner answers "who decides" on the author's behalf. cadence collapsed its own distinction one step after drawing it. cadence_for divided the face value of a RELEASED target and returned the STARTED interval under a RELEASED label, which is the exact substitution the endpoint refusal exists to prevent. It now asks required_admissions, which already returned None rather than assuming a survival fraction of 1.0, and refuses without one. An unverifiable date attached to a peak-day figure is removed; a date is the kind of detail that makes a number look verified. Adds the regression tests that would have caught all of them, including a behavioural test that plants a sustained-rate work and asserts the standing negative claim flips, so it is a computation rather than a permanently-false constant. 288 tests.
ruff E731. The helper was a lambda for brevity in a test that constructs the same Assignment four times; a def reads the same and passes the gate the repo already runs.
di-omics
force-pushed
the
feat/evidence-authority-cadence
branch
from
July 29, 2026 17:39
4d79c70 to
8654447
Compare
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.
Three modules asking what the existing layers cannot, because it is not about this lab: is the plan supported by anything published, who is allowed to decide, and what does a stated throughput target actually cost?
literature.pyAutonomy claims get justified by pointing at famous papers whose scope is far narrower than the claim. Every entry carries what it does not establish, and support resolves by scope rather than fame.
Every citation was independently verified before encoding, and verification changed the content: the A-Lab paper was corrected (41 successes became 36 after four were reclassified as inconclusive, and the "43 new materials" figure in news coverage matches no version of the paper); Assay Guidance Manual chapters carry no DOI, so any citation supplying one is fabricated; PyLabRobot makes an architectural assertion about cross-family simulation rather than demonstrating it.
15 works: 13 confirmed, 2 partial, 11 carrying figures that could not be confirmed, listed rather than rounded away.
authority.py"AI-native" gets read as "the model drives the instruments". The benchmark evidence is that no evaluated model exceeded 70% hazard-identification accuracy. The honest response is not that models are useless but that decision classes differ: 13 classes across
MODEL/MODEL_PROPOSES/DETERMINISTIC/HUMAN, each justified against a specific published finding. Authority may be strengthened, never weakened, and that asymmetry is whatviolations()catches.cadence.pyRefuses a target until it says whether it counts plates started, completed, QC-passed, or released -- those differ by exactly the failure and rerun rate. Given an endpoint it is arithmetic on the caller's inputs: 500/day is one every 172.8 s round the clock, 115.2 s over 16 h.
headroom()is where "buy a faster robot" dies -- one intervention per two plates at 10 min each consumes 260% of the interval.demonstrated_support()computes the absence of sustained-rate evidence from the table, so it flips the day someone publishes a counterexample.131 new tests. Recreated after the PR history was reset; the branch is unchanged.