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.