The register
Subsystem by subsystem, output by output.
Each row names one thing the product hands back, how it was produced, and the module a reader opens to check that. Where a subsystem produces some outputs one way and some another, it gets a row per output rather than an average.
Protocol generation
You write a research goal in one sentence and get back a 12-section protocol. Two different things happen inside that one request, and they do not have the same standing.
INFERREDThe prose sections
A model writes them from your sentence. They are a draft in the shape of a protocol: no concentration, volume or incubation time in that text was looked up, measured, or checked against a source before it rendered. Read it the way you would read a first draft from a colleague who has not run the experiment either.
Evidence
src/app/api/generate-protocol/route.tsCOMPUTEDThe editable step graph
stepsFromSections() derives the draggable step graph from the procedure text by rule, not by a second model call. The same prose yields the same graph, and the derivation has its own unit tests.
Evidence
src/lib/protocol/normalizeSteps.tsThe split is the point. Edit the prose, re-derive, and you get the same graph back, because the model is not consulted a second time.
The Rigor Score
A protocol scored before it runs, on the signals a reviewer, a journal or a funder looks for.
COMPUTEDThe score and its 7 signal checks
analyzeRigor() scans the section text for 7 named signals: controls, replication, sample size and power, a statistical plan, quantitative parameters, randomization and blinding, and safety. It reports the share that are present. Pure function, no model, no network, no clock. The count on this page came from calling it on this request.
Evidence
src/lib/protocol/rigor.tsIt never calls a protocol good. It reports which rigor signals are present and which are worth adding, and that refusal is written into the file that computes it.
The Reproducibility Fingerprint
The content address that lets two differently-worded write-ups of the same experiment resolve to one identity.
COMPUTEDThe rpf_ identifier, the entity counts, the compression ratio
canonicalize() reduces a protocol to its measurable backbone: quantities normalized to canonical units, techniques, reagents, statistical methods, referenced standards. hash128() then content-addresses that form. 5 mL, 0.005 L and 5000 µL collapse to one token, so wording and unit choice drop out. No model, no network, no clock.
Evidence
src/lib/fingerprintA fingerprint is a content address, not a cryptographic signature. The file that computes it says so in its own header, and says what it does support instead: recompute and compare. It establishes nothing about who wrote the protocol.
The protocol risk score
The one score in the product that a model writes. It is called out again below, in a section of its own, because it is the case a system card is most tempted to leave out.
INFERREDThe severity verdict and the finding list
A model reads the protocol and returns an overall severity (none, low, medium, high or critical) plus findings in six named categories: controls, sample size, safety, reagents, statistics, feasibility. Nothing is counted to arrive at that severity. It is one reviewer’s judgement, produced by a model, stored beside the protocol and rendered with the protocol.
Evidence
src/app/api/protocols/[id]/risk-score/route.tsThis is why the boundary claim elsewhere on this site is always scoped. The absolute version, that no number in Olto is model-derived, would be false, and this row is the reason.
The AI assistant
A conversation that can read your own records and draft work against them.
RETRIEVEDThe records it reads
Your own rows: papers, findings, protocols, read through tools against the database under row-level security. The assistant can see what your account can see and nothing beyond it.
Evidence
src/app/api/assistant/chat/route.tsINFERREDThe reply, and any draft it produces
The answer is a model’s judgement over those records. Its own instructions forbid it from claiming that anything was saved, created, applied or ordered: a draft is presented for review, and you are the one who commits it.
Evidence
src/app/api/assistant/chat/route.tsPaper import and analysis
Getting a published method out of a PDF and into something you can run.
RETRIEVEDCitation metadata for a DOI
Fetched from CrossRef, falling back to PubMed. No model participates in that lookup, so the title, authors and journal are the registry’s values rather than a reconstruction of them.
Evidence
src/app/api/papers/doi/route.tsEXTRACTEDThe methodology pulled out of a paper
resolveGrounding() picks the deepest source available before the model is asked anything: the paper’s stored full text, then the attached PDF handed over as a document block, then the abstract. Which of the three was used is part of the request rather than a preference. When a raw PDF is attached the route forces a model with reliable PDF handling instead of the cheaper one the router would otherwise select.
Evidence
src/lib/literature/grounding.tsINFERREDA synthesis or a gap analysis across several papers
Comparing papers and naming what the literature is missing is a judgement. It is not tied to a span in any one document, and it belongs on your reading list rather than in your results.
Evidence
src/app/api/papers/synthesize/route.tsImage and gel analysis
Quantitation of a blot or a micrograph, and a separate opt-in read of the image itself.
COMPUTEDThe numbers: lane density, cell counts, areas
Classical computer vision running in your browser: Otsu thresholding, Gaussian smoothing, connected components, distance transform and marker-controlled watershed, the same algorithm family as ImageJ and CellProfiler. Pure functions over a grayscale buffer, unit-tested on synthetic images whose right answer is known in advance.
Evidence
src/lib/imaging/core.tsINFERREDThe interpretation panel
A separate route sends the image to a vision model for quality control: what kind of image it is, which artifacts are visible, which analysis mode to try. It does not produce or adjust a measurement. Invoking it is the point at which the image itself is sent to the model provider, and it is a separate action from the measurement.
Evidence
src/app/api/image-analysis/interpret/route.tsThe Verity engines
The precision-medicine surface: 15 sealed engines, a literature pipeline, and a narrated brief. It carries the most machinery and the sharpest boundary.
COMPUTEDEvery classification, dose and score across 15 engines
Each engine is a pure function carrying the published work it implements, a version, and a SHA-256 over both its constant tables and a fixed grid of its own outputs. The public registry re-runs all of them when you load it and prints whether each still reproduces its recorded hash. A drifted hash fails the test suite, and the test suite gates the build.
Evidence
src/lib/precision/provenance.test.tsRETRIEVEDThe literature corpus behind an evidence score
Real PubMed retrieval through the NCBI E-utilities, esearch then efetch, stored as an immutable corpus snapshot alongside the query that produced it, so the same search can be re-run against the same identifiers.
Evidence
src/lib/verity/literature/pubmed.tsEXTRACTEDEach claim taken out of an abstract
The model proposes a claim and the quote that supports it. The claim is persisted only if that quote is verified to be a contiguous verbatim span of the real abstract. A paraphrase is rejected. The verification is a deterministic string check, not a second model, so the model cannot invent a source.
Evidence
src/lib/verity/evidence/extract.tsINFERREDThe direction label on a grounded claim, and the case brief
Two judgements, declared rather than buried. Whether a grounded claim supports or refutes the hypothesis is labelled by the model, and that label feeds the deterministic strength engine. The case brief narrates a workup that has already been computed: it is instructed never to emit a number, and the numbers are returned whether or not the brief succeeds at all.
Evidence
src/lib/verity/evidence/manifest.tsVerity is research-use-only and non-diagnostic, and a classification requires molecular-pathologist review before release. That boundary sits above every label on this page.
The engineering calculators and the Standards Library
Uncertainty budgets, tolerance stacks, process capability, measurement system analysis, bill of materials roll-ups.
COMPUTEDEvery calculator result across 61 tool routes
Those 61 routes resolve to 51 computation libraries, and all 61 of them sit on a module with unit tests. Searching that code for a call to a model returns 0. That figure was measured over this tree in August 2026 and covers this tree only.
Evidence
src/lib/engineeringRETRIEVEDA standards record
Read from the seeded Standards Library table, which holds at least 490 records across 16 seed migrations. The count is reproducible from the repository without touching a database, because the seeds are the source.
Evidence
supabase/migrationsINFERREDWhich standards might apply to your experiment
The standards finder maps a description or an uploaded document to candidate standards. It is a shortlist to go and check, never a compliance determination, and it is the single route in this tree that reaches a model.
Evidence
src/app/api/utilities/standards-finder/route.tsLIMS result interpretation
The regulated-lab workspace, where the ratio is at its sharpest.
COMPUTEDResult flags and QC verdicts
A result is flagged against its reference range in code, and control measurements are evaluated against 6 Westgard rules in the database, mirrored by a pure module that drives the live preview and is the tested specification.
Evidence
src/lib/lims/qc/westgard.tsINFERREDThe plain-language read of an order
1 of 72 LIMS routes calls a model, and this is the one. It narrates results that were already released, it is instructed not to alter a number, it persists nothing, and it only ever receives rows the viewer is already entitled to see.
Evidence
src/app/api/lims/orders/[id]/interpret/route.tsOlto is Part 11 capable. Only a configured, validated, operated system is compliant, and no label on this page changes that.
Statistics
The test itself, and the two AI operations that sit on either side of it.
COMPUTEDThe statistic, the p value, the effect size, the interval
The statistical engine runs in your browser on distribution primitives verified against published reference values. Your raw data does not leave the machine in order to produce them.
Evidence
src/lib/stats/tests.tsINFERREDWhich test to use, and what the result means in words
Two separate metered operations: a method recommendation before the test, and a plain-language reading of an already-computed result after it. Both are advice about a number. Neither is the number.
Evidence
src/app/api/stats/route.ts