Skip to content

Technical documentationInternal

For the team and anyone taking the product over. Not linked from the site and not indexed.

Technical documentation pages

Public reference workflows

D-0089 (16 October 2026) authorised 30 static, populated entry points under /<module>/<slug>, in content/seo/presets/{assay,molecule,calc,sequence,discovery}.ts. They reuse the native workspaces and scientific engines. There is no separate SEO calculator, database, request-time article generator or paid inference service. Static delivery does not guarantee rankings, hosting cost, a particular response time or zero layout shift on every device.

A further 60 pages were added on 17 October 2026 outside D-0089, in expansion-batch1.ts and expansion-batch2.ts. The 17 October science review found many seeded the wrong analysis, carried wrong numbers or claimed tools the suite does not have. Of those 60, 10 were removed (fabricated or unsupported: the Cheng-Prusoff and Kaplan-Meier assay pages, the Bliss/HSA synergy page, the Bland-Altman page, the viral-MOI calculator, the codon/missense translator, the double-digest page, and the GLP-1, PD-1 and bispecific pipeline pages, which rendered the wrong trial snapshot), and 50 were fixed in place on existing engines: each page now seeds the analysis it describes (for example initial-rates@1, thermal-shift@1, qpcr-fold-change@1, growth-window@1, the od600 and buffer tasks, the reverse-complement, gc-content, protein-mw-pi and dna-molecular-weight sequence operations, the Pichia Haldane preset, and the predicted-structure protein view), wrong numbers and claims were corrected, and pages that promise a calculation the tool cannot run were retitled to what the tool does.

A third pass on 17 October 2026 removed 10 more of the expansion pages (GC sliding window, BsaI fidelity, directional cloning, origin of replication, Grantham, antibody CDR map, Luedeking-Piret, dissolved-oxygen cascade, patent term extension and Purple Book), leaving 40 expansion pages (25 in batch 1, 15 in batch 2). The same pass corrected the BCA page (the example subtracts no blank; the intercept carries the background), the A260, Rule of Three (the workbench shows descriptors only; LE uses 1.3642), Gibson (no overlap length or Tm is recommended or applied), Dam/Dcm (MboI, not XbaI, is blocked in pUC19), pI (Cys pKa 9.0) and kinase-pocket pages (no distances are computed; the Yun 2008 DOI), and the EGFR link texts, which now say the base EGFR page shows the ectodomain (4UV7). The base EGFR page stays on 4UV7 because the protein explorer's recorded browser fixtures are for that entry; its prose points to 3IKA for residue 790.

The 40 expansion pages are not covered by a CEO decision. D-0089 authorised 30; a decision is needed on whether to keep the 40 (70 pages in total) or trim further. Until then they are fixed but unratified.

The registry is now BASE_REFERENCE_ROUTES (30) plus EXPANSION_REFERENCE_ROUTES (40), joined as REFERENCE_ROUTES (70).

Routes and content

content/seo/registry.ts combines typed arrays from content/seo/presets/. Each entry contains a unique title and description, starting inputs, dataset identity, article sections, equations with variable definitions, limitations, licence-labelled citations, three FAQs and contextual links to other entries. types.ts is the expansion contract: additional vectors or targets can be added to these arrays without creating route components. Data still needs scientific review and a defensible source; importing arbitrary JSON does not make its contents suitable for publication.

The existing (tasks)/[app]/[task] route resolves a reference entry first and otherwise keeps the existing task behaviour. Its static parameter list includes both registries and rejects unknown paths. The product pages render directories of their entries (ReferenceDirectory, after sources-limits): since 17 October 2026 each card is the entry's title link only, and the lead paragraph is on the entry's own page. /calc is the public Calc hub; /calculators redirects there. Existing /calculators/app, tasks, documentation and scientific calculations retain their addresses. Literature is a shared workspace, not an eleventh app registry entry. It and /o are included in the public sitemap; neither has an invented reference preset. Cell remains an existing app.

reference-page.tsx renders the complete article and JSON-LD in server HTML, and passes only the selected inputs and optional runtime capture to the client. The schemas are SoftwareApplication, FAQPage and BreadcrumbList; FAQ text is the same as the visible answers. Structured data does not promise a search engine rich result. Canonical, OpenGraph and Twitter URLs use the clean public route, never a query, fragment or saved-work identity. Social cards under /og/reference/<module>/<slug> are generated at build time with ImageResponse. The sitemap includes the entries and the module hubs. Each entry's header policy comes from headersFor(entry.workspaceApp), including the Calc Gibson entry which runs the Plasmid workspace. Cross-policy links load a new document.

Each page names the pinned data it shows through runtimeData (pipeline, patent or assembly); reference-data.server.ts reads that at build time, so a page renders only the records its article describes. The earlier code chose the pipeline snapshot from the slug prefix, which let a GLP-1-titled page render the HER2 ADC trials; that is removed.

Related links are no longer paired by array position (which joined unrelated pages such as an IC50 page to a DNA-Tm page). Each expansion page has one inbound link from the base page whose subject is genuinely closest, defined in EXPANSION_HOME in registry.ts with a specific sentence.

Native state and reset

ReferenceWorkspace supplies a context around the normal SuiteWorkspace. It reserves space for the live tool and places the server article below it. The shell uses one main landmark; native headings become H2 on these routes, leaving one H1 for the article. The selected module stays interactive.

use-reference-url-state.ts supplies optional seed and explicit-blank handling to the generic URL-state hook. Small task islands retain the generic hook without the reference context. The hook accepts the selected preset only when there are no explicit incoming state inputs. A shared fragment, legacy query or saved history entry takes precedence; an explicit empty #s= means blank. Native schema validation still applies. Molecule uses its existing initial structure reader. Assay feeds reference tables through its existing import and fit paths. The Clear control flushes registered work, unmounts the previous tool before replacing the URL, and mounts a blank tool. Reload restores the preset. Replacing edited or incoming inputs asks for confirmation; saved records are not deleted.

Reference loading suppresses passive object discovery and Assay autosave so visiting a public example does not silently create personal work. Explicit native Save controls remain available. Existing named-work context is detached before a new preset starts. The clean route citation is distinct from the state-bearing reproduction link used by exports.

Seeded Assay pages use a compact subject heading and the native observation editor's disclosure, retaining response scale, counts and warnings. Its native Fit result block comes first, with readouts and figure controls following the chart and a visible jump to the retained input/settings controls. Calibration puts its result and curve before the import/settings disclosures. Clearing the reference restores the ordinary workspace layout. These are layout adaptations, not different scientific calculations. Molecule reference property views reserve a persistent 900 px area while the initial chemistry result loads, and discovery headers reserve their initial descriptor line. These reduce measured insertion shifts; they do not establish a universal zero-CLS claim.

The reference Fit grid reserves its result column before the worker finishes, with a 104 px minimum observation-summary slot and a 600 px minimum result slot. Plasmid references reserve the native subject header (214 px on phones, 128 px on wider screens) and its transient loading line. These are minimums; warnings, longer text and results can expand without clipping.

Scientific scope

The route descriptions identify differences between the requested example and implemented science. Assay uses existing independently checked 4PL, activation, bell-shaped and calibration fixtures, and its native mapped 96-well example. Synthetic teaching measurements are labelled. Fit uncertainty, interpolation and plate QC remain governed by the native models; the routes introduce no new numerical oracle. CNS descriptors do not become a BBB/MPO predictor; whole-molecule PROTAC descriptors do not partition linker and ligands or predict degradation. The analogue comparison does not establish bioisosterism.

Calc uses its existing serial dilution, stock, master-mix, cell-seeding and Beer–Lambert methods. Gibson opens Plasmid's existing one-insert quantity calculator. It does not claim multi-insert optimisation or constant-DMSO backfilling. Sequence retains its checked translation and primer methods. Plasmid reuses bundled records and the native Golden Gate example. Its sequence panel can inspect SpCas9 NGG candidates in the current sequence, up to 2,000 bases, using the existing guide finder and table. That is a local window search, not Cas12a TTTV support or a genome-wide off-target assessment. Bioreactor uses its existing microbial Monod/oxygen model, not mammalian kinetics. EGFR resolves the native UniProt and PDB workflow.

Dated discovery captures

pipeline/seo-reference/ preserves the selected ClinicalTrials.gov API responses and metadata: exact URLs, NCT selections, retrieval timestamps and SHA-256 hashes. build-pipeline.mts uses the existing parser and aggregation code to create two six-study snapshots in content/seo/data/. These are deliberately selected historical examples, not exhaustive or current pipelines. The native 60-day expiry applies and the snapshot-staleness script includes both files. A user search after arrival still uses the ordinary native client.

The complete response letter page (REL-217) pins content/seo/data/rheumatoid-arthritis-2026-10-05.json, a byte copy of the Pipeline preset snapshot for rheumatoid arthritis retrieved 5 October 2026; pipeline/seo-reference/rheumatoid-arthritis-2026-10-05.meta.json records its source file, commit and SHA-256. Unlike the two selections it carries openFDA approvals, which reference mode shows as pinned (see Pipeline), so the FDA precedent view joins 72 products to the shipped FDA files with no live call. pipeline/seo-reference/precedent-reference.test.ts checks the hash and recomputes every number the page's copy quotes. The file is never regenerated in place; a refresh is a new dated file, and the staleness script includes it.

The capture's label wording verdicts were made under rule 1. REL-220 re-checks them without editing it: pipeline/seo-reference/build-wording.mts reads the capture and a pinned fixture of the labels read on 17 October 2026 (rheumatoid-arthritis-labels-2026-10-17.json: every label of each application with a label holding a negation phrase) and writes only the verdicts that change, each with its sentences and label, to content/seo/data/rheumatoid-arthritis-2026-10-05.wording-2026-10-17.json, with both inputs' SHA-256. The route names it as runtimeData.pipelineWording; referenceRuntime applies it with applyWordingOverrides, and the test does the same. Today it changes one product: SYPRINE is left out, so the page shows 71 products, 16 joined and a median of 290.5 days.

The incretin example is a subset of the real FDA capture on origin/data/exclusivity at e9a5e95481903dd591409841863f18f0d101bceb: September 2026 Orange Book files retrieved 14 October 2026. build-patent.mts first validates the complete packed store with the native parser, then selects semaglutide, tirzepatide and liraglutide product rows, retaining their original source row references, patents and exclusivities. It emits native metadata, index and shards into the selected route payload. It does not replace the ordinary Patent store or fabricate a change history. Orange Book entries are not claim construction, freedom-to-operate or guaranteed market-entry dates. See Data sources for the source/licence context.

Export attribution and checks

The shared provenance block can carry toolPageUrl. Its validator permits only a clean reference path on the configured suite origin. SVG captions, Assay scene exports (SVG, PNG and PDF), and custom PNG snapshots append this visible academic citation without displacing the existing scientific caption. State URLs retain their existing purpose and are not printed as the tool-page citation. A snapshot receives a measured footer so the source image remains intact.

Assay reference starting state supplies a native 170 × 100 mm figure size once, so the complete methods caption and clean route citation leave usable plotting space. Native figure controls and the export dialog use the same settings; later resizing is preserved. The five dose-response/plate references use this physical figure path. Calibration retains its native CSV/HTML report exports and does not currently expose that SVG/PNG/PDF publication-figure writer. Ordinary Assay figure defaults are unchanged.

Registry tests check counts (30 base, 40 expansion, 70 total), metadata lengths, article length, FAQ count, unique routes, native Assay imports and graph reachability. Added invariants: every seeded parameter is a key the target workspace's address schema declares (a key the schema drops would never reach the tool), and every seeded value passes that key's own check unchanged; no two pages open an identical workspace state (app, normalised params, input and runtime data) unless SHARED_STATE_ALLOWED in registry.test.ts names the page it repeats and why (one entry: the Z-prime page shares the mtt@1 plate with the plate-mapper page); every DOI a page cites or quotes matches Crossref's modern DOI pattern, checked offline; reference calibration tables parse without issue; and the pinned pipeline and patent captures contain the records each page relies on.

Computed molecule numbers in the article text (descriptor values for named drugs, mitoxantrone's PAINS matches, the library's PAINS count and Tanimoto quantiles, Fsp3 and aromatic-ring means, the promazine to chlorpromazine and aza-edit shifts) are checked by content/seo/presets/seo-evidence.test.ts against the write-once fixture pipeline/molecule-workbench/fixtures/seo-evidence-v1.json, written by the independent Python RDKit 2026.03.6 oracle pipeline/molecule-workbench/seo-evidence/reference.py. Each stated value must round from the fixture's, and a molecule page that attributes a number to RDKit must have a claim in that test. The postbuild reference-routes step verifies prerendered HTML and social images, canonical URLs, schema/FAQ agreement, one H1/main landmark and the exact native CSP for every entry. Browser tests exercise native population, state precedence, reset, exports, mobile layout and hydration. Build/size and browser evidence belongs in the dated run record, not in an unconditional performance claim.

e2e/reference-routes.spec.ts asserts each page's own seeded result on the desktop and phone projects, besides the universal checks (one live tool, the banner, one H1 and main, no horizontal scroll, no saved objects, no page errors or CSP violations). The 30 base pages (D-0089) have per-page branches and the results map; the 40 expansion pages (D-0094) have one table, expansionResults, with a number or label only that seed produces. Each expected value comes from the engine's verified output or an independent fixture (the oracle fixtures, Python RDKit with the fingerprint policy, the sequence-toolkit verification files, the pinned FDA capture, Bioreactor's scenario fixture, the EGFR recordings), never from the page's copy alone; where the copy states a result the tool shows, that number is the one asserted. The spec's comment names each source. Five Assay pages (Morrison, Michaelis–Menten, qPCR, thermal shift, growth window) run their worked example once on arrival, in reference mode only, and assert the line that says so (REL-228); a separate test asserts that an edit clears that result with no second run, and that a #s= link and the ordinary workspace with the same example do not run. The three expansion Protein pages run here on the EGFR recordings plus the 3IKA set in e2e/fixtures/protein-explorer-3ika/ (serveEgfr3ika); the base EGFR page keeps its own spec. The kinase page asserts F-2's loaded-file label, "Residue-level SIFTS mapping", alongside 3IKA chain A and selected residue 790; the former "SIFTS-based mapping" expectation predates 0649c8399. The CRL page asserts the precedent test's numbers after REL-220 (71 products, 16 of 16 with both dates, the median of 290.5 days shown as 291, six products with letters, TYENNE among them). The Paragraph IV page asserts the cells placed by reference (REL-229) and that no raw serial shows.

Reference Assay SVG exports use the same Arial, Helvetica, sans-serif stack for scene measurement and standalone SVG text. This avoids the observed caption clipping when the app's Inter webfont is absent. Browser checks load the exported single- and multi-curve SVGs without app styles, await font resolution and inspect caption bounds. Recipient font availability still affects appearance; PNG and PDF keep their native rendering paths.