THE SYMBOLIC FLOOR
Floor test suite: 533 passed · REPL bridge tests: 14 passed
A binder for a system that grew across a garage. Every feature has one home now — and one chapter here.
The Symbolic Floor is a grounded bio-knowledge engine. A typed, provenance-pinned symbolic graph is the only author of facts; neural models may generate or narrate, but they can never add an unwitnessed fact to the floor. Every claim traces to a real database accession (UniProt, PDB, Ensembl, ClinVar, PubChem, ChEMBL, Reactome, KEGG, InterPro). Runtime is Python standard library only — zero third-party dependencies, offline-capable, no MCP.
Open the terminal, type science, and the whole system greets you.
The science launcher boots the kist REPL in the science profile. It leads with the SCIENCE status block and — new in Rev 2026.09 — the science tools line, so the grounded demos greet you at launch instead of a green-painted plain shell.
$ science ◫ S C I E N C E research lane: wired — "lois <question>" runs a PEEL-gated pass science tools: crispr · discover · research · chemistry · tour · evolution · build-sml — type demos for the menu ↳ just type · peel = science status · lois = arm the PEEL gate · /model to change · /help ❯ _
Type demos (or tools) any time for the full card:
◫ SCIENCE TOOLS grounded symbolic-floor demos — live, no MCP
crispr [gene] grounded CRISPR target dossier — guides computed off the real gene sequence
discover autonomous AI-scientist — hypothesize → research → traverse → discovery
research full science loop — scientist ledger × grounded research pass
chemistry native PubChem chemistry — every fact pinned to an accession
tour grand tour — every tool, every feature, live, no MCP
evolution evolution on — bounded, curated frontier
build-sml gather grounded facts → distil a train-ready corpus (witnessed gold only)
Seven words. Each dispatches to a grounded floor demo, streams live, and is wall-clock guarded so a starved fetch can never hang the shell.
crispr <gene> — grounded CRISPR target dossier VERIFIEDReads a real gene, designs CRISPR guides computed from the actual Ensembl sequence (the guide IS the DNA), grounds the pathogenic ClinVar landscape, and connects protein → structure → interactors → pathways → drugs. Curated genes: EGFR, TP53, KRAS, BRCA1, BRAF, MYC, PTEN, VEGFA, TNF, HBB, HBA1, MB.
❯ crispr EGFR
↳ floor · dogfood_crispr.py EGFR · live, no MCP
🧬 CONNECT-IT-ALL — grounded CRISPR target dossier: EGFR
━ 1) CRISPR GUIDES for EGFR — designed from the REAL Ensembl sequence, provenance-pinned
gene EGFR → Ensembl ENSG00000146648 (chr 7, protein_coding); 995 PAM sites in 6000bp
━ 1.5) CLINICAL VARIANTS in EGFR — the pathogenic landscape (ClinVar)
251 pathogenic variants in ClinVar for EGFR; grounded gene → variant → significance → disease
━ 2) TARGET BIOLOGY — the floor connects the databases, every fact sourced
protein P00533 (UniProt/PDB) — 5 experimental structures, 199 curated interactors
✓ EVERYTHING TALKS — gene tools + sequence + structure + interactions + pathways
✓ crispr EGFR complete — grounded, no MCP
discover — autonomous AI-scientist VERIFIEDA strong model hypothesizes and pre-registers to a hash-chained ledger; a local proposer proposes; the floor authors every fact; pure graph traversal surfaces the discovery. The path is the proof.
❯ discover
🔬 AI SCIENTIST — autonomous discovery strong model + local proposer + symbolic floor
━ 1) HYPOTHESIZE — the AI proposes a testable idea
🧠 **Hypothesis:** ...non-erythroid globins (NGB, CYGB) will additionally converge on a
nitric-oxide / oxidative-stress cluster the O₂-transport globins do not reach...
ledger: hyp-5d0fe32a6f9d (hash-chained, pre-registration begins)
━ 2) FORMALIZE — HBA1=P69905 HBB=P68871 MB=P02144 NGB=Q9NPG2 CYGB=Q8WWM9
(research → traverse → DISCOVERY: convergence with a p-value and an edge-ID proof)
research — full science loop VERIFIEDThe scientist ledger × the symbolic floor. States a hypothesis, pre-registers falsifiable predictions (hash-chained, BEFORE research), then researches and issues verdicts.
❯ research 🧪 FULL SCIENCE LOOP scientist Ledger × symbolic floor — live, no MCP ━ 1) HYPOTHESIS hyp-356acd740df2: Human hemoglobin β (P68871)... ━ 2) PRE-REGISTER PREDICTIONS (hash-chained, BEFORE research) prd-019c0fb7… P68871 canonical sequence length: == 147 prd-85eda2a3… P68871 has ≥1 experimental structure: >= 1 prd-0bd6950e… heme molecular weight porphyrin-scale: in_range [500, 750]
chemistry — native PubChem chemistry VERIFIED❯ chemistry
⚗️ FLOOR CHEMISTRY DOGFOOD (fresh floor, live PubChem, no MCP)
2) research 'water' → resolve name → PubChem CID → pull + tile
resolved: water → PubChem CID 962; wrote 12 edges + 13 PEEL tiles
✓ DOGFOOD PASSED — the floor researches molecules by name, learns real chemistry
✓ chemistry complete — grounded, no MCP
tour — the grand tour VERIFIEDChains the whole feature set in one run: talk-to-the-floor (chemistry), research-across-domains (gene→protein), discovery, and more. "Every tool, every feature, live, no MCP."
❯ tour
🎛️ SYMBOLIC FLOOR — GRAND TOUR every tool, every feature, live, no MCP
A) TALK TO THE FLOOR — what is water / caffeine / aspirin / glucose (PubChem-pinned)
B) RESEARCH ACROSS DOMAINS — gene → protein, one connected graph
science: tour exceeded 15s (live fetch likely starved) — stopping ← watchdog guard
evolution — bounded autonomous evolution VERIFIEDTyping the word arms the loop (the bridge injects FLOOR_EVOLUTION=on). Gathers a control cohort so significance is testable, then hypothesizes/researches/tests/verdicts autonomously — null-model-guarded, code-self-evolution OFF.
❯ evolution 🧬 EVOLUTION ON bounded · curated frontier · null-model-guarded · code-self-evo OFF toggle: FLOOR_EVOLUTION=on — autonomous hypothesis evolution ARMED BACKGROUND — 12 unrelated human proteins gathered as the statistical background EVOLVE — the loop hypothesizes, researches, tests, verdicts (autonomous)
build-sml — build a training set from grounded facts VERIFIEDThe self-bootstrapping loop: the floor gathers witnessed facts, distils them into a train-ready corpus (witnessed gold only), and emits the exact MLX-LoRA command. It trains a model that abstains instead of hallucinating.
❯ build-sml
🧠 BUILD AN SML FROM GATHERED DATA gather → grounded corpus → train-ready
1) GATHER — molecule water/caffeine/aspirin/glucose/ethanol/acetic acid → ok
protein P69905 / P68871 → ok (every fact witnessed by a curated source)
2) DISTIL → 124 grounded Q&A pairs · train 94 / valid 12 / eval 18
3) SHOW → Q: chromosome of ZZFAKE1? A: "I don't have a verified record, so I won't guess."
5) TRAIN → mlx_lm.lora --model ...Llama-3.2-3B-Instruct-4bit --train ... (corpus train-ready NOW)
The operator + researcher surfaces. Run as python -m symbolic_floor.<tool> (or the installed symbolic-floor-* command).
campaign — "go solve X" autonomous campaign VERIFIEDThe autonomous research campaign. Seeds curated targets for a problem, then runs research→expand-frontier cycles through the protein-interaction graph, grounding each target. --paper writes it up.
$ python -m symbolic_floor.campaign lymphoma · campaign: solve 'lymphoma' — seeds ['MYC','BCL2','BCL6','TP53','MS4A1','CARD11','EZH2','CREBBP','CD79B','MYD88'] · cycle 1: researching ['MYC','BCL2','BCL6','TP53','MS4A1','CARD11'] · cycle 1: frontier +20: ['MDM4','TP53BP2','BCAP31','BECN1','BCL2L11','SIVA1','BAX', ...] · cycle 2: researching ['EZH2','CREBBP','CD79B','MYD88','MDM4','TP53BP2'] ...
trials (predict) — trial success prediction VERIFIEDsymbolic-floor-predict <gene> <disease> [--phase=phase_2] — spot the failure before general testing, with explicit factors.
$ python -m symbolic_floor.trials EGFR "lung cancer"
{ "gene":"EGFR","disease":"lung cancer","phase":"phase_2",
"success_probability":0.375, "success_percent":38, "failure_percent":62,
"verdict":"PROCEED WITH CARE",
"factors":[ {"factor":"phase_2 base rate","value":0.15}, ... ] }
pathogen — antimicrobial target triage VERIFIEDsymbolic-floor-pathogen <pathogen>. Known: covid, e. coli, hiv, malaria, tuberculosis.
$ python -m symbolic_floor.pathogen malaria · pathogen: research Plasmodium falciparum DHFR-TS (P13922) Plasmodium falciparum (taxon 5833) — 1 validated targets DHFR-TS P13922 struct 5 inhib 3 [druggable] bifunctional DHFR–thymidylate synthase — antifolate target druggable: ['DHFR-TS'] · each fact source-pinned · NOT medical advice
compound — compound-medication research VERIFIED$ python -m symbolic_floor.compounding caffeine aspirin compound medication — 2/2 ingredients grounded ✓ caffeine C8H10N4O2 MW 194.19 1 target(s) ✓ aspirin C9H8O4 MW 180.16 1 target(s) (identity/chemistry/targets source-pinned · NOT compatibility/dose/medical advice — USP <795>/<797>)
agents — the agent factory VERIFIEDThe floor generates the grounded agent a task requires, grants only matched capabilities, and runs it.
$ python -m symbolic_floor.agents "find druggable kinases in breast cancer" --gene=EGFR --disease="breast cancer"
generated: druggability-agent
granted (why): · druggability ← matched 'drug'
ran on gene=EGFR disease=breast cancer → 4 edges written · ✓ druggability {'binders': 4}
datasets — turn the floor into a dataset VERIFIEDsymbolic-floor-dataset <floor.db> <relations|features|qa> [--fmt=jsonl|csv] [--label=druggable]. Emits data + a provenance manifest; unwitnessed rows are excluded (they would train hallucination). The full pipeline is shown live by build-sml.
$ python -m symbolic_floor.datasets floor.db qa --out datasets/ generated qa: N rows (provenance coverage %) → data: datasets/floor-qa.jsonl manifest: datasets/floor-qa.manifest.json
paper — the science system publishes itself PILOTsymbolic-floor-write <journal.jsonl> [--kind=] [--model=ollama:NAME] [--out=DIR] — an academic writer that turns the grounded journal into a paper, every claim traceable.
ops — the operator surface (DR + observability) VERIFIEDThe runbook made executable — meaningful exit codes so it drops into cron / a pager / a CI gate.
| Command | Does |
|---|---|
ops backup <db> <dir> | journaled backup with manifest |
ops verify <backup.db> | integrity + manifest check |
ops restore <backup.db> <db> | disaster recovery |
ops health --sink <telemetry> | exit 0 OK / 1 DEGRADED / 2 CRITICAL |
ops metrics --sink <telemetry> | observability metrics |
python -m symbolic_floor <command> — the verification + research primitives everything else is built on.
| Command | Does |
|---|---|
seed <acc> | fetch sequence + experimental + predicted structure; write edges |
eval-protein <acc> | end-to-end structural-consistency verdict |
evaluate <claim> | JSON verdict + edge-ID trace for a claim |
extract <acc> | bio wheel: typed facts + links for an accession |
recall <acc> | everything stored about an accession, with traces |
trace <acc> | the canonical-37 PEEL tile trace |
research-generesearch-chemistryresearch-pathwaysresearch-keggresearch-drugsresearch-domainsresearch-referencesresearch-variantsresearch-variant-effect| Command | Does |
|---|---|
handoff | contract → capability plan → dispatch to an environment |
handoff-check | poll the executor for a contract's status |
handoff-collect | pull observed outcome back, ingest physical evidence |
handoffs | audit trail of every dispatch (incl. refusals) |
env-register / envs | discover + list an environment's capabilities |
Thirteen source-pinned connectors. Every fact the floor authors carries a source{database, id, url}; an unpinned fact is a raised error, not a guess.
| Connector | Source | What it grounds | Seen in |
|---|---|---|---|
| uniprot | UniProt | protein entry, sequence, features | crispr, discover, pathogen |
| pdb | RCSB PDB | experimental structures | crispr, research |
| alphafold | AlphaFold/EBI | predicted structures | discover, seed |
| ensembl | Ensembl | gene, genomic sequence | crispr |
| clinvar | ClinVar | pathogenic variants + significance | crispr (251 for EGFR) |
| vep | Ensembl VEP | variant consequence | research-variant-effect |
| pubchem | PubChem | molecule identity, formula, CID | chemistry, compound |
| chembl | ChEMBL | bioactivity, binders, drugs | crispr, agents |
| reactome | Reactome | pathways | crispr, research-pathways |
| kegg | KEGG | pathway maps, entries | research-kegg |
| interpro | InterPro | protein domains | discovery (globin fold) |
| base / resilience | — | HTTP + retry/cache infrastructure (stdlib urllib) | all connectors |
urllib with a resilience cache.The inversion: the symbolic store is the only author of facts. Structural — not statistical — hallucination prevention.
$ .venv/bin/python -m pytest tests/ -q ........................................................................ ........................................................................ 533 passed in 8.08s
The floor can dispatch a contract to a physical environment and ingest the observed evidence back — the same provenance discipline, extended to the bench.
capabilities.CAPABILITIES — the typed lab primitives an environment may advertise:
aspirate · dispense · mix · heat · measure_absorbance · read_sensor · label
env-register — an environment advertises its capability dictionary.handoff — a contract is matched to a capability plan and dispatched (a plan needing a capability the env lacks is refused, on the record).handoff-check / handoff-collect — poll status, then ingest the physical outcome as grounded evidence.handoffs — the full audit trail, including every refusal.pkg.mod:ClassName) exists, but no cloud-lab / robot adapter is implemented. See Vol. II·7 for the full lifecycle and the exact evidence gate.One trunk, one run-home, one door. The reunification that ended the scattered garage.
| Piece | Home |
|---|---|
| Floor code (canonical trunk) | ~/science-loops-dev/symbolic-floor |
| Floor venv (stdlib-only + pytest) | <trunk>/.venv (gitignored) |
| Floor DBs / packs | <trunk>/data (gitignored, never in git) |
| The REPL bridge (Swift) | Sources/Kist/ScienceToolset.swift |
| The launcher | ~/bin/science |
KIST_SCIENCE_PROFILE=1 now loads the toolset (was presentation-only); plain kist stays byte-identical.<home>/.venv/bin/python -u dogfood_<x>.py from the trunk, streaming live.KIST_SCIENCE_DEMO_TIMEOUT (default 360s) terminates a starved run so the REPL never hangs.KIST_FLOOR_HOME overrides the run-home; evolution auto-arms FLOOR_EVOLUTION=on.~/.kist/workspaces/captain/symbolic_floor is the old runtime home — now stale (missing connectors + modules). The trunk above is canonical. Do not run demos from the legacy home.| You want to… | Type |
|---|---|
| Open the system | science |
| See every tool | demos |
| CRISPR + biology for a gene | crispr TP53 |
| Watch it discover something | discover |
| Full grand tour | tour |
| Autonomously work a problem | python -m symbolic_floor.campaign lymphoma |
| Predict a trial | …trials EGFR "lung cancer" |
| Research a pathogen | …pathogen malaria |
| Build a training set | build-sml |
| Back up the floor | …ops backup floor.db backups/ |
| Suite | Result |
|---|---|
| Floor engine (pytest) | 533 passed in 8.08s |
| REPL bridge (swift test) | 14 passed |
| Demos dogfooded live | crispr, chemistry, evolution (REPL) · discover, research, discovery, tour, build-sml |
| Console tools run live | campaign, trials, pathogen, compound, agents, datasets, ops |
Every feature in this book was run for this revision. The floor grounds real molecular biology to real accessions and refuses to invent. None of it is a validated drug, therapy, or medical advice; grounded targets require wet-lab and clinical validation.
— END OF VOLUME I — continue to Volume II for how the machine runs itself.
Volume I is the buttons. Volume II is the machine: how it decides what to research, runs experiments, grades itself, and refuses to lie. Every claim here is cited to source (file:line) and marked REAL or STUBBED honestly.
| Primitive | File | What it guarantees |
|---|---|---|
| The null model | discovery.py | a "finding" must beat a hypergeometric background — an underpowered floor honestly reports nothing rather than inventing (II·4) |
| The ledger | scientist/…/ledger.py, events.py | append-only, hash-chained event log; predictions graded only if registered before the result (II·3) |
| The extractors | extract.py | the ONLY writers of facts; every edge carries provenance; an un-typeable fact is skipped & reported, never fabricated |
The one truly autonomous loop. Seed a problem, research each target through the floor, find what converges, then grow the frontier from what it discovered — compounding past its seeds. campaign.py:go_solve()
go_solve(problem, cycles=3, per_cycle=6))1. SEED curated gene list for the problem (campaign.py:64)
└ none? self-seed from ClinVar: genes with pathogenic variants, ranked, top 12 (:78)
└ still none? → status NO_SEED, stop (:278)
2. RESUME skip genes already in the notebook (:287) ← persistent, resumable
3. CYCLE for cycle in 1..cycles: (:290)
a. batch = next `per_cycle` unresearched frontier genes (dedup) (:291)
└ empty? → "frontier exhausted", break
b. research each end-to-end: gene→protein→structures→domains→pathways→drugs→variants (:295)
└ each lane wrapped in _try — a dead API is a skipped lane, never a crash (:140)
c. DISCOVER over ALL researched proteins — only if ≥3 seeds: (:301)
find_convergences(seeds, min_support=3, alpha=0.05); keep significant
d. EXPAND frontier (+≤20/cycle): discovered proteins + their interactors → new genes (:320)
4. STOP after `cycles` or frontier exhaustion → grounded report
cycles=3, per_cycle=6, expansion _MAX_EXPAND=20/cycle (campaign.py:201,252).len(seeds) ≥ 3; min_support=3, alpha=0.05.interacts_with interactors of researched proteins; added only if new.Autonomous hypothesis evolution over a curated frontier — pre-registered, null-model-guarded, and honest about failure. Code-self-evolution is OFF. evolution.py:run_evolution()
0. GATE evolution_enabled() requires literal "on" (evolution.py:36) ← FLOOR_EVOLUTION=on
1. PRE-REGISTER ledger.propose_hypothesis(...) then
register_prediction("convergence:{cohort}", ">=", 1, discriminating=True) (:85)
↑ happens BEFORE any result — the ledger enforces this ordering
2. TEST research each cohort member (live floor); find_convergences(min_support=3, α=0.05)
record sha256 receipt of the observation; verdict = PASSED if any significant else REFUTED (:105)
3. BLAME + EVOLVE refuted & cohort has an `expand` list? retry ONCE with seeds+expand (:126)
still refuted → log "an honest null"
4. STOP frontier exhausted or max_cycles(=5) reached → discoveries + supported/refuted counts
"on" only — a stray truthy value can't arm it (evolution.py:36-39). The REPL evolution word injects it (see Vol I·2.6).evolution.py:14-18).expand list — it does not grow the frontier from discoveries the way the campaign does. It is a bounded demonstrator of pre-register → test → blame → verdict, not open-ended discovery.The closed cycle that makes a claim un-gameable: hypothesize → pre-register falsifiable predictions → research → grade → verdict, all on a hash-chained ledger. dogfood_science_loop.py, dogfood_ai_scientist.py
1. HYPOTHESIS ledger.propose_hypothesis(statement, rationale, assumptions)
2. PRE-REGISTER register N predictions with (relation, expected) BEFORE research
e.g. P68871 seq_len == 147 · has ≥1 structure · heme MW in [500,750]
3. RESEARCH pull real data through the floor (extract_protein / research_gene / research_molecule)
4. RECEIPT design_experiment(names the prediction ids) · record_receipt(sha256 of observations)
5. VERDICT grade each prediction pass/fail/inconclusive · record_verdict(...)
6. CONFIDENCE arithmetic, un-gameable (below) · reload ledger → re-verify the whole hash chain
prev_sha → sha (sha256 of canonical JSON), fsync'd with a .head sidecar; reload re-verifies the chain and detects end-truncation (events.py:96-146).record_verdict raises unless seq(prediction) < seq(receipt) — a postdiction can never be graded (ledger.py:217-219).(1+passed)/(2+passed+refuted), hard-capped at 0.05 if any discriminating prediction is refuted (confidence.py:17-37).extract.* writes to the floor. The local proposer's text is narration, not control flow — the floor's significance test determines the verdict.dogfood_science_loop.py is fully deterministic (no LLM). The AI-scientist run degrades gracefully to placeholder text if claude/Ollama are down — the loop's verdict still comes from the floor, not the model.How the system "finds something": pure typed-graph traversal + an exact statistical test. Relevance = reachability; the path is the proof. discovery.py:find_convergences()
A node reachable by a single typed 1-hop edge from ≥ min_support of the seed proteins. One hop, so each supporter's justification is a single provenance-pinned edge — "the path is the proof" is literal.
Under H0 the n seeds are a random subset of the N seed-type nodes; the count reaching node v ~ Hypergeometric(N, m, n). Enrichment p = P(X ≥ k): p = Σ (i=k..min(m,n)) C(m,i)·C(N−m, n−i) / C(N, n) (exact math.comb) N = distinct subjects of the seed type in the whole floor (≥ #seeds) m = distinct seed-type subjects linking to v anywhere (≥ k) k = how many seeds reach v significant = (N > #seeds) AND (p ≤ alpha=0.05)
p=1.0 — never a finding (discovery.py:30-44).organism:homo_sapiens, m==N) → p=1 → rejected; a rare shared domain:globin → tiny p → a real finding; a tiny floor (N==n) → every p=1 → honestly "insufficient background."degree (hubness) is reported but is not part of the p-value.How a local model participates without ever being trusted: it emits a strict JSON proposal, a gate parses it with zero salvage, a symbolic resolver binds the accession, and only the floor writes. proposer/runtime.py
1. MODEL local Ollama `floor-proposer`, temp 0 → a JSON proposal string (runtime.py:37)
2. STRICT PARSE kind ∈ {claim, extract, intent, abstain}; every field hard-validated;
the ONLY salvage is stripping a ```json fence — "salvage is where hallucinations sneak in" (contract.py:21)
malformed → rejected_unparseable (raw reply truncated to 500 chars)
3. SYMBOLIC RESOLVE bind name→accession (below)
4. FLOOR ADMIT extract → extract_protein (ONLY write path, provenance-pinned)
claim → evaluate (verdict+trace, NOTHING written)
intent → plan-only preview (NO physical dispatch here)
abstain → recorded no-op
Name→accession binding is symbolic lookup only, never model recall (three training rounds proved a 3B model hallucinates or over-abstains accessions — resolver.py:1-23). Sources: a curated KNOWN_PROTEINS table (word-boundary, longest-first, extension-blocked so "insulin receptor" ≠ "insulin") + literal accessions re-validated by the one validator.
subject already grounded in the user's words → pass exactly one grounded, model named another → repaired (overridden with the evidence) nothing grounded / ambiguous → forced abstain
The typed store where the symbolic layer is the only author of facts. Structural — not statistical — hallucination prevention. peel/relation_schema.py, peel/floor.py, reasoner.py
Relations carry a functional flag (at most one object per subject — an OWL FunctionalProperty). The veto primitive _are_compatible returns False unconditionally when two objects of a functional relation differ — not averaged, not confidence-weighted (relation_schema.py:687-698). Functional relations include has_sequence, predicts_structure, has_formula, has_iupac_name, has_inchikey, has_weight, on_chromosome, has_biotype, variant_significance, interpro_type, variant_consequence, drug_inchikey.
reasoner.evaluate_claim walks edges in order, accumulating an edge-ID trace — "a verdict without a trace is invalid by construction."has_sequence edge and abstains at step 1.Every write goes through Store.add_edge, which runs validate_provenance before any insert — required keys {source,url,retrieved_at,raw_id}, an allowlisted https host, UTC timestamp; any violation raises and nothing is written. Each fact also becomes a canonical-37 tile (the responses column set); the writer enforces 37/37-or-nothing (the codified lesson from the wiki-wheel 33/37 regression). Tile IDs are content-addressed → idempotent re-extraction.
533 passed in 8.08s.reasoner.py is wired for slice-1 relations (has_sequence, predicts_structure) — the other functional relations carry the flag and the primitive would veto them, but no evaluator walks them for a verdict yet. The batch detect_contradictions() scanner also doesn't cover the bio functional relations (only located_in among them). These are coverage gaps, not correctness bugs in the primitive. Edge confidence is always 1.0 — the veto is identity-based, not confidence-based. Label: PILOT-READY.How a verified claim becomes a physical experiment — and the honest truth about what's actually wired. handoff.py, environments.py, capabilities.py, planner.py
build_contract package verdict+trace+witnesses + caller's predicted_outcome + execution_request,
content-address the whole body with SHA-256 (a trace edge with no provenance RAISES)
dispatch_handoff verify integrity → CONFLICTING? refuse & record → else plan_intent against the
environment's discovered capabilities → PLANNED? env.submit(contract, plan)
check_handoff poll env.check(ref) — the terminus stays in control (not fire-and-forget)
collect_result re-verify integrity → record outcome → gate physical evidence into the floor
list_handoffs the audit trail — every dispatch, including every refusal
Verdict → policy: SUPPORTED→verified, UNKNOWN→exploratory, CONFLICTING→blocked (never handed off).
An environment advertises typed capabilities — aspirate, dispense, mix, heat, measure_absorbance, read_sensor, label — each with a machine-checked parameter schema (bounds on volume, temp, wavelength…). The planner composes an intent (e.g. serial_dilution) only from capabilities the chosen environment exposes; a missing capability → UNPLANNABLE with the exact missing_capabilities, recorded and refused — "never partial, never substituted, never guessed."
Only a physical-grade environment returning confirmed/refuted materializes supports_claim/conflicts_with edges from each structure: witness to the claim, provenance source="executor". A simulation can never become graph evidence.
evidence_grade="simulated", a toy Beer-Lambert bench that always returns "inconclusive" — structurally cannot become a fact) and human_tech (evidence_grade="physical", but the "executor" is a person: submit writes a numbered work-order .md + .json to an outbox, collect parses a human-written result file). The plug-in seam for a real instrument (pkg.mod:ClassName — "Emerald Cloud Lab, Strateos, a robot bridge") exists, but no such adapter is implemented. Physical robot dispatch is architecturally ready, not built. Do not describe this system as driving a robot today.How the floor turns what it grounded into training data for the next honest model — and teaches it to abstain. datasets.py, proposer/knowledge_dataset.py, dogfood_build_sml.py
| Generator | Output | Witnessed-only rule |
|---|---|---|
datasets.py | relations / features / qa exports + a provenance manifest | reports provenance coverage (a metric; allows manual/executor rows with url=None) |
knowledge_dataset.py | MLX-LoRA chat corpus (train/valid/eval) | structurally excludes unprovenanced edges via an inner JOIN on edge_provenance — no provenance row ⇒ cannot be a training answer |
GATHER extract real molecules + proteins + genes through the floor (every fact witnessed)
DISTIL knowledge_pairs JOIN edge_provenance → grounded Q&A; seeded shuffle (seed 20260918)
split: ~15% eval, ~10% valid, rest train (each ≥4 rows)
ABSTAIN fixed not-in-floor subjects (ZZFAKE1, unobtainium-9, sparklonin…) →
"I do not have a verified record for that, so I won't guess." ← teaches refusal
VALIDATE assert role order [system,user,assistant], no empty turns, every fact = a real edge
TRAIN mlx_lm.lora --model ...Llama-3.2-3B-Instruct-4bit --train --data <dir> --iters 300 ...
— END OF VOLUME II — continue to Volume III (the course) & Volume IV (the map).
A patient, step-by-step course that turns a total beginner into a confident expert.
This is a course, not just a reference. If you read it from front to back and do the small exercises along the way, by the end you will be able to sit down at a computer, open the program, ask real questions about biology, and trust the answers you get. You will also earn a Certificate of Completion — a friendly way of saying: you now know this tool well enough to use it on your own, and to help someone else use it too.
We wrote it in the spirit of the great old computer manuals — the ones that assumed you had never touched the thing before, explained every single word, and never made you feel foolish for asking. There is no such thing as a silly question here. If a word looks like jargon, we stop and define it on the spot.
You. Especially if you have never used a "terminal" before (don't worry — we will explain exactly what that is on the Start page). You do not need to be a scientist. You do not need to be "good with computers." You need only curiosity and the willingness to type a few words and press a key. Everything else, we teach.
The Symbolic Floor is a program you talk to by typing questions. It answers questions about biology — genes (the instructions living things are built from), proteins (the tiny machines those instructions build), molecules (the chemical building blocks of everything), diseases, and drugs. Here is the part that makes it special, and unlike almost anything else you may have tried: it can only tell you things it can prove from real, trusted scientific databases. It cannot make things up. If it does not have a verified answer, it will simply, honestly, tell you so.
Compare that to the chat programs you may have heard about, which will happily guess — and sometimes guess wrong while sounding perfectly confident. The Symbolic Floor is built on the opposite promise: it would rather say "I don't know" than tell you something untrue. That single difference is the heart of this whole course.
The book is arranged in three parts, in order. Please read them in order the first time through:
Before you touch the keyboard, meet the four simple ideas that make this tool trustworthy.
You do not need to memorize these. Just read them once, the way you'd listen to a friend explain something over coffee. They will make everything in the lessons feel obvious later.
When the Symbolic Floor tells you something, it also tells you where it learned it. Every single fact arrives with a little "receipt" — the name of a real scientific database it came from (places with names like UniProt for proteins, PubChem for molecules, or ClinVar for disease-related genes) and often a web link you can follow to see it yourself.
Picture a careful research librarian. When you ask a librarian a question, they don't answer from foggy memory — they walk to the shelf, pull down the exact book, and place it open in front of you, finger on the line. That is grounding: the tool always shows you the book. A claim without a source is not allowed to reach you.
There are two parts working together inside this program. One part is the AI — it is good at wording things nicely and talking to you in plain sentences. The other part is the floor — a verified store of checked facts. Here is the strict rule that keeps you safe: only the floor is allowed to state a fact. The AI may arrange those facts into a friendly sentence, but it is forbidden from inventing even one detail of its own.
Think of it like a courtroom. A talented lawyer can present the evidence clearly and warmly — but the lawyer is not permitted to make evidence up. Only what is entered into the record counts. The floor is the record. The AI is just the voice reading it aloud.
When the tool has no verified record for what you asked, it does not scramble to fill the silence. It says, plainly, something like: "I do not have a verified record for that, so I won't guess." This is called abstaining — choosing to say nothing rather than say something unproven.
This may feel strange at first. We are used to machines always having an answer. But consider who this tool is built for: people who genuinely cannot afford a wrong answer — someone looking up a medicine, a family understanding a diagnosis, a caregiver making a real decision. For them, a confident wrong answer is worse than no answer at all. So the tool's honesty is not a weakness. It is the entire point.
The Symbolic Floor does not roam the open internet grabbing whatever it finds, and it does not lean on outside helpers to fetch mystery answers. It reads only from a fixed, trusted list of real science databases — the same reliable sources scientists use. Because those trusted facts are kept close at hand, the tool can work offline: no signal, no wifi, no problem.
This matters more than it sounds. The open internet is full of half-truths, outdated pages, and confident nonsense. By refusing to guess from that noise and sticking to a curated shelf of vetted sources, the tool trades "a little of everything" for "only what's been checked." For the people it serves, that trade is exactly right.
That's it — four ideas: show the receipt, the floor writes the facts, honestly abstain, and trusted sources only. Keep them in the back of your mind. Now let's go turn the thing on — the next page is your very first five minutes.
Deep breath. In five minutes you'll have the program open and running. Let's go together.
The Terminal is simply an app on your computer — a plain window where, instead of clicking buttons, you type a word and press the Enter key. The computer reads what you typed and does it. That's the whole idea. It looks old-fashioned, but it is calm, quiet, and very powerful. There is nothing to be afraid of here.
It takes three steps. Go slowly:
Terminal into that box.In that window, type this single word:
science
Now press Enter. In a moment, you will see something like this appear:
◫ S C I E N C E research lane: wired — "lois <question>" runs a PEEL-gated pass science tools: crispr · discover · research · chemistry · tour · evolution · build-sml — type demos for the menu ❯
Congratulations — the Symbolic Floor is now running and waiting for you.
See that little ❯ symbol on the last line? That is called the prompt. It is the program's polite way of saying: "I'm ready — your turn. Type something and press Enter." Whenever you see the ❯, the tool is patiently waiting for you. It will wait as long as you like.
Let's ask it to show you what it can do. At the ❯ prompt, type:
demos
Press Enter, and a friendly menu of things to try will appear. We will walk through these together, one by one, starting in Lesson 1. For now, it's enough just to see them listed.
exit and press Enter, and you're back to the ordinary Terminal.Take a moment. You just opened a real terminal, launched a real scientific program, and read your first prompt. That is genuinely the hardest step for most beginners — and it's already behind you. Everything from here is just learning what to type, one gentle lesson at a time.
When you're ready, turn to Lesson 1, where we ask the Symbolic Floor its very first real question.
| Term | What it means |
|---|---|
| Terminal | The app with a plain window where you type commands and press Enter. |
| Command | A word (or few words) you type to tell the computer to do something. |
| Prompt | The ❯ symbol that means the program is ready and waiting for you to type. |
| REPL | The kind of program that keeps a conversation going: it Reads what you type, works out the answer (Evaluates), Prints it back, then Loops around to wait for your next line. That's all the letters stand for. |
| science | The command you type to start the Symbolic Floor. |
| floor | The verified store of checked facts inside the program — the only part allowed to state a fact. |
You are about to hold a conversation with a computer that refuses to make things up.
sciencechemistryFirst, a little vocabulary so nothing surprises you. THE SYMBOLIC FLOOR (we'll just say "the Floor") is a program you talk to by typing words. It shows you a small symbol called a prompt — the little ❯ character — which is the Floor's way of saying "I'm listening, type something." You type a word, press Enter, and it answers. That's the whole idea. No mouse, no menus — just words.
Step 1 — Launch the Floor. At your computer's terminal (the plain text window where you type commands), type the word science and press Enter. This starts the program. After a moment you'll see the prompt appear:
❯
That blinking prompt means the Floor is ready and waiting for you.
Step 2 — Ask for chemistry. Type the word chemistry and press Enter. This tells the Floor: "Go research a real molecule for me, live, from a real chemistry database." Here is what you'll see:
❯ chemistry ⚗️ FLOOR CHEMISTRY DOGFOOD (fresh floor, live PubChem, no MCP) 2) research 'water' → resolve name → PubChem CID → pull + tile resolved: water → PubChem CID 962; wrote 12 edges + 13 PEEL tiles ✓ DOGFOOD PASSED — the floor researches molecules by name, learns real chemistry
The most important idea in this entire course is hidden in that little output: every fact has a receipt. The Floor did not "remember" that water is CID 962 from some blurry memory — it went and looked it up, wrote down where it found it, and kept the source link. If you ever ask "says who?", the Floor can point at the exact database entry. That is what makes it trustworthy.
science, then type chemistry. Watch the line that starts "resolved:" and read the CID number aloud. You just read a real US-government ID for water.chemistry into your regular terminal before you've launched the Floor with science. The word chemistry only means something inside the Floor, once you see the ❯ prompt. If nothing happens or you get an "unknown command" message, you probably forgot to run science first.
| Term | Meaning |
|---|---|
| The Symbolic Floor ("the Floor") | The program you talk to by typing words. It only states facts it can back up. |
| Prompt (❯) | The little symbol that means "I'm ready, type something and press Enter." |
science | The command you type to start the Floor. |
chemistry | A word you type inside the Floor to make it research a real molecule (water) live. |
| PubChem | A free, real chemistry database run by the US government. |
| CID | PubChem's ID number for one exact substance. Water is CID 962. Like a library call number. |
| Edge | One stored fact. |
| PEEL tile | One record card holding a fact, with its source link attached. |
| Receipt | The proof of where a fact came from. Every fact the Floor keeps has one. |
science and talk to it at the ❯ prompt.chemistry makes it research water live in a real government database.Now you'll point the Floor at a real human gene and get back a full, source-backed report — in seconds.
crispr followed by the gene's nameA quick word first. A gene is a stretch of your DNA — the instruction booklet inside your cells — that tells the body how to build one particular part. The gene we'll use is called EGFR. It's a real human gene, and when it goes wrong it's involved in several cancers, so scientists study it constantly. That makes it a great, well-documented example.
Step 1 — Make sure the Floor is running. If you don't see the ❯ prompt, type science and press Enter first (just like in Lesson 1).
Step 2 — Ask about the gene. Type the word crispr, then a space, then the gene name EGFR, and press Enter:
❯ crispr EGFR 🧬 CONNECT-IT-ALL — grounded CRISPR target dossier: EGFR 1) CRISPR GUIDES — gene EGFR → Ensembl ENSG00000146648 (chr 7); 995 PAM sites in 6000bp 1.5) CLINICAL VARIANTS — 251 pathogenic variants in ClinVar for EGFR 2) TARGET BIOLOGY — protein P00533 (UniProt/PDB) 5 experimental structures, 199 interactors ✓ EVERYTHING TALKS — gene tools + sequence + structure + interactions + pathways
Here's the part that matters most: every CRISPR guide is computed from the real DNA sequence. The Floor cannot invent a guide for a spot that doesn't exist, because it reads the actual letters of the gene first and only counts real targets. It's math on real data, not guesswork.
crispr EGFR and find the chromosome number in the GUIDES line. (Answer: chromosome 7.)crispr TP53. Then try crispr BRCA1. Other valid genes to explore: KRAS, BRAF, MYC, PTEN, VEGFA, TNF, HBB, HBA1, MB.| Term | Meaning |
|---|---|
| Gene | A stretch of DNA that carries instructions for building one part of the body. |
| EGFR | A real human gene studied in cancer research; our example. |
| CRISPR | A lab tool that finds and cuts a chosen spot in DNA. Like "find and replace" for genes. |
| Guide | The piece that tells CRISPR exactly where in the DNA to aim. |
| PAM site | A real spot in the DNA where a guide is allowed to target. EGFR has 995 in the region checked. |
| Variant | A spelling change in a gene. |
| Pathogenic variant | A spelling change known to cause disease. |
| Ensembl / ClinVar | Major public databases: Ensembl for genes, ClinVar for disease-linked variants. |
| Protein / interactor | The thing a gene builds (protein); other proteins it works with (interactors). |
| Dossier | An organized file of everything the Floor gathered about one subject. |
crispr EGFR builds a four-part dossier about a real gene.No new commands this time — just the skill of reading what the Floor already told you, and knowing you can trust it.
Let's re-read the crispr EGFR report from Lesson 2, slowly, one section at a time. Keep it in front of you:
🧬 CONNECT-IT-ALL — grounded CRISPR target dossier: EGFR 1) CRISPR GUIDES — gene EGFR → Ensembl ENSG00000146648 (chr 7); 995 PAM sites in 6000bp 1.5) CLINICAL VARIANTS — 251 pathogenic variants in ClinVar for EGFR 2) TARGET BIOLOGY — protein P00533 (UniProt/PDB) 5 experimental structures, 199 interactors ✓ EVERYTHING TALKS — gene tools + sequence + structure + interactions + pathways
Section 1 — GUIDES. Read this as: "To target EGFR, here's where you could aim." The gene was located in Ensembl (ID ENSG00000146648, on chromosome 7), and 995 legal aiming spots were counted in a 6,000-letter window of DNA.
Section 1.5 — CLINICAL VARIANTS. Read this as: "Here's how often this gene is known to break in a disease-causing way." 251 disease-linked spelling changes are on file in ClinVar.
Section 2 — TARGET BIOLOGY. Read this as: "Here's the actual protein this gene makes, and how well we understand its shape and its friends." Protein P00533, with 5 real lab-made 3-D structures and 199 partner proteins.
The TRUST line. The closing ✓ EVERYTHING TALKS is the Floor's summary that all these pieces — gene, sequence, structure, interactions, pathways — connected up cleanly, each drawn from a named database rather than from thin air.
Here is the habit to build. For any line, ask three questions:
This is the difference between a system that sounds confident and one that is accountable. The Floor is the second kind. It never asks you to take its word for it.
| Term | Meaning |
|---|---|
| Dossier | The organized report the Floor builds — here, four sections about one gene. |
| Provenance | Where a fact came from. Its origin story. |
| Source-pinned | Every line is fastened to a named database and web address you can check. |
| GUIDES section | Where in the DNA you could target the gene (Ensembl ID, chromosome, PAM sites). |
| CLINICAL VARIANTS section | Known disease-causing spelling changes (from ClinVar). |
| TARGET BIOLOGY section | The protein the gene makes, its 3-D structures, and its partners (UniProt/PDB). |
| TRUST line | The closing summary that all pieces connected and each came from a named source. |
| Sanity-check | To follow a claim back to its source and confirm it for yourself. |
Meet Lois — a strict fact-checker you can switch on when you need to be absolutely sure.
peelloisTwo new words, and one big idea. The idea: the Floor has a switch that makes it even stricter — refusing to give any answer that isn't backed by proof. We call the strict mode Lois. Think of Lois as flipping on a very serious fact-checker who stands at the door and turns away anything without evidence. And there's a companion word, peel, that lets you peek at the settings without changing anything.
Step 1 — Look before you touch: peel. The word peel is read-only — it reports, it never changes anything. Type it to see the science status: is the proof gate armed? Is the research lane wired up? Is the ledger present? (The ledger is the Floor's running record book of what it has done.)
❯ peel
Because peel only looks, you can type it any time, as often as you like, with zero risk. It's the safe way to check "what state am I in right now?"
Step 2 — Arm the honesty gate: lois. When you type lois by itself, you arm the PEEL proof gate. From that moment, any research the Floor does must cross a grounded PEEL evidence gate — and it's fail-closed, meaning if the proof isn't there, the answer does not get through. Better a silence you can trust than a confident guess. You'll see this line:
❯ lois ◫ Lois online — Peel symbolic gate ACTIVE · research now requires grounded PEEL evidence · "lois off" to release
Step 3 — Ask a proof-checked question. You can arm the gate and ask a question in one move: type lois, a space, then your question. It turns the gate on and immediately runs a proof-gated research pass on that question:
❯ lois what is EGFR
Step 4 — Release the gate when you're done. Type lois off to switch the strict mode back off and return to normal (advisory) mode:
❯ lois off
peel is your gauge — it tells you whether the strict gate is on, whether research is wired up, and whether the ledger (record book) is present, and it changes nothing. lois is your switch — it turns the strict fact-checker on. "Fail-closed" is the heart of it: when in doubt, the gate stays shut. It would rather give you nothing than give you something unproven. And lois off puts the switch back to easygoing "advisory" mode.
Turn Lois on whenever you're going to rely on the answer — anything you'll write down, pass along, or make a decision from. The strictness is a feature: it guarantees that what you keep is backed by proof. Leave it off for casual browsing and exploring, when you just want to poke around and don't mind an unverified lead. A simple rule: casual peeking, gate off; anything that matters, gate on.
peel and read the status. Are the gate, the research lane, and the ledger all reported? Remember: this changed nothing.lois and confirm you see the "◫ Lois online — Peel symbolic gate ACTIVE" line. Then type peel again and notice the gate now reads as armed.lois what is EGFR. When you're finished, release the gate with lois off.lois off when you switch back to casual exploring — otherwise the strict gate stays armed and may refuse quick, unproven lookups you didn't mind being loose. And don't confuse the two words: peel only looks and never changes anything, while lois actually flips the switch. If you only wanted to check the status, use peel.
| Term | Meaning |
|---|---|
peel | A read-only word. Reports the science status (gate, research lane, ledger). Changes nothing. |
lois | Arms the PEEL proof gate — turns on the strict fact-checker. |
lois <question> | Arms the gate and runs a proof-checked research pass on that question right now. |
lois off | Releases the gate back to normal (advisory) mode. |
| PEEL evidence gate | The checkpoint that lets an answer through only if it's backed by grounded proof. |
| Fail-closed | If the proof isn't there, the gate stays shut — no answer rather than a guess. |
| Ledger | The Floor's running record book of what it has done. |
| Advisory mode | Normal, easygoing mode with the strict gate off — fine for casual exploring. |
peel safely shows you the status and never changes anything.lois arms the strict, fail-closed proof gate; lois off releases it.lois <question> arms the gate and runs a proof-checked answer in one step.You now know how to talk to the Floor, research chemistry and genes, read a source-pinned dossier, and switch on strict proof-checking. Next, in Lesson 5, we'll build on these habits.
Type one word — discover — and watch a whole piece of science happen from start to finish.
1. Make sure you are at the prompt (type science if you don't see the ❯). That arrow means "your turn — type something."
2. Type the word discover and press Enter:
❯ discover
3. The program prints a banner and walks through five numbered stages (yours will match this shape):
🔬 AI SCIENTIST — autonomous discovery (strong model + local proposer + symbolic floor) 1) HYPOTHESIZE "Non-oxygen-transport globins NGB & CYGB converge on nitric-oxide / oxidative-stress nodes the others don't." written to ledger hyp-8f3c1a… 2) FORMALIZE HBA1=P69905 HBB=P68871 MB=P02144 NGB=Q9NPG2 CYGB=Q8WWM9 3) RESEARCH pulling grounded facts for each protein… 4) TRAVERSE walking the linked facts, looking for a meeting point… 5) DISCOVERY convergence found · p = 0.0007 · proof: edge e-4471 → e-4489 → e-4502
Hypothesis. A guess stated clearly enough to be tested. "This might be interesting" is not one; "these two proteins converge on stress nodes the others don't" is — you can go check it.
Hash-chained ledger. A ledger is a lab notebook. Hash-chained means each entry carries a fingerprint of the entry before it — like each page stamped with a summary of the last. If anyone tried to change what the machine predicted, every later fingerprint would stop matching. In plain words: the machine cannot secretly rewrite its guess after seeing the answer.
The path is the proof. The answer ends with a chain of edge IDs (one edge = one linked fact). The discovery isn't an opinion; it's real, individually-checkable facts joined end to end. No trail, no claim.
discover and read the five stage headings aloud. Can you say what TRAVERSE does?discover always runs over the same protein family (the globins). It's a guided demonstration, not a free-text search box — typing discover cancer won't switch topics (the extra word is ignored). To point the machine at a disease of your choosing, that's a different command — see Lesson 7.| Term | What it means |
|---|---|
| autonomous | Runs by itself, without you steering each step. |
| hypothesis | A guess stated clearly enough that you can go and check if it's true. |
| accession | An official ID number for a protein (e.g. P69905). Like a serial number. |
| ledger | A running lab notebook — a list of what happened, in order. |
| hash-chained | Each entry is stamped with a fingerprint of the one before, so nothing can be secretly changed. |
| edge | One linked fact ("A connects to B"). Chains of edges form the proof. |
| p-value | A number for "could this be luck?" Smaller = less likely a coincidence. |
| convergence | Two or more things meeting at the same point. |
discover runs a complete, self-driving science pass over the globin proteins.The single most important habit that keeps a discovery honest: write your predictions down BEFORE you look.
research.1. At the prompt, type research and press Enter:
❯ research
2. It states a hypothesis and — the key moment — registers its predictions before doing any research:
🧪 FULL SCIENCE LOOP scientist Ledger × symbolic floor — live, no MCP 1) HYPOTHESIS hyp-2b90d4… about human hemoglobin beta (P68871) 2) PRE-REGISTER PREDICTIONS (hash-chained, BEFORE research) • P68871 sequence length == 147 • has ≥1 experimental structure • heme molecular weight in [500, 750]
3. Only after those predictions are locked does it research, grade each one, and deliver a verdict + confidence:
3) RESEARCH & GRADE • sequence length == 147 …………… PASS • has ≥1 experimental structure … PASS • heme MW in [500,750] ………………… PASS VERDICT: SUPPORTED CONFIDENCE: 0.94
Everyone falls into the same trap: look at the data, then decide what you were "expecting," and — surprise — it always seems to confirm it. The cure is pre-registration: write exactly what you predict before you look. Either you called it or you didn't. The Floor doesn't just ask for honesty — it enforces it: predictions go into the hash-chained ledger, so a prediction that appears after the result has no valid place in the chain and the grader refuses to score it.
A prediction registered after the result literally cannot be graded.
Confidence is pure arithmetic from the prediction scores — and the AI is not allowed to write it. The key rule: if a key prediction FAILS, confidence is capped near zero, no matter how many others passed:
• sequence length == 147 …………… FAIL (found 146) • has ≥1 experimental structure … PASS • heme MW in [500,750] ………………… PASS VERDICT: NOT SUPPORTED CONFIDENCE: 0.05
Two of three still passed — but a core prediction failed, so confidence collapses to 0.05. That refusal to average away a failure is exactly what makes the result trustworthy.
research. Before scrolling to the grades, read the three predictions aloud — you're committing before you look, just like the machine.| Term | What it means |
|---|---|
| scientist loop | The full honest cycle: hypothesize → predict → research → grade → verdict. |
| pre-registration | Writing predictions BEFORE you look, so you can't fool yourself. |
| prediction | A specific, checkable claim that comes back PASS or FAIL. |
| verdict | The overall result — SUPPORTED or NOT SUPPORTED. |
| confidence | A 0–1 number computed by arithmetic — how well the machine called its shots. |
| capped near zero | Forced down to almost 0 when a key prediction fails. |
research runs the full scientist loop over hemoglobin beta (P68871).Hand the machine an entire disease and let it organize its own investigation, cycle after cycle.
So far you typed single words at the ❯ prompt. This lesson uses a console command — a longer instruction typed at your computer's ordinary command line. You type it exactly as printed:
python -m symbolic_floor.campaign lymphoma
└──┬──┘ └┬┘ └──────────┬─────────┘ └──┬───┘
python run the "campaign" tool the problem
itself the inside the Symbolic to solve
tool Floor toolbox
In words: "Use python to run the campaign tool inside the Symbolic Floor, and give it the problem lymphoma." The last word is the only part you'd change.
1. Type the command and press Enter:
python -m symbolic_floor.campaign lymphoma
2. It looks up the genes already known to matter for lymphoma — its seeds — and prints them:
· campaign: solve 'lymphoma' seeds ['MYC','BCL2','BCL6','TP53','MS4A1','CARD11','EZH2','CREBBP','CD79B','MYD88']
3. It works in cycles: research the current list, then discover new connected genes ("interactors") and add them to a growing list called the frontier:
· cycle 1: researching [...] · cycle 1: frontier +20: ['MDM4','TP53BP2','BCAP31', …] · cycle 2: researching [...]
python -m symbolic_floor.campaign leukemia. Notice the seeds change.| Term | What it means |
|---|---|
| console command | A longer instruction typed at your computer's command line to run one tool. |
| campaign | A sustained, self-extending investigation of a whole problem, run in cycles. |
| seed | A known starting point — a gene already tied to the disease. |
| cycle | One round of "research the current list, then grow the list." |
| frontier | The machine's growing to-do list of things it still wants to research. |
| interactor | Something a gene or protein connects to; discovered interactors feed the frontier. |
| self-directed | Decides its own next step from what it just found. |
python -m symbolic_floor.campaign lymphoma hands the machine a whole disease.The machine estimates the odds a drug trial succeeds — and shows you every factor behind the number.
1. A console command, like Lesson 7:
python -m symbolic_floor.trials EGFR "lung cancer"
└───┬──────────────────┘ └─┬┘ └────┬─────┘
run the "trials" tool the the disease
inside the Symbolic Floor gene (quotes keep two words together)
The disease is in quotation marks because it has a space; the quotes tell the computer "these two words are one thing."
2. Type it and press Enter:
python -m symbolic_floor.trials EGFR "lung cancer"
3. The answer comes back as JSON — labels on the left, values on the right:
{
"gene": "EGFR", "disease": "lung cancer", "phase": "phase_2",
"success_probability": 0.375, "success_percent": 38, "failure_percent": 62,
"verdict": "PROCEED WITH CARE",
"factors": [ { "factor": "phase_2 base rate", "value": 0.15 }, … ]
}
A number alone is a black box — "trust me, 38%." This tool refuses that. By printing the factors it becomes a glass box: you see each ingredient and judge it yourself. A quick word on phase: drug testing happens in stages (phase 1, 2, 3…), each larger and stricter; earlier phases are riskier bets, which is why the base rate starts low.
success_percent and failure_percent add up to 100?verdict. What is "PROCEED WITH CARE" telling you?python -m symbolic_floor.trials BRAF "melanoma" and compare the success percentages.| Term | What it means |
|---|---|
| JSON | A tidy way computers print answers: labels and values in curly braces. |
| phase | A stage of drug testing (1, 2, 3…), each bigger and stricter. |
| success probability | Estimated chance a trial succeeds, as a decimal (0.375) or percent (38%). |
| base rate | The plain historical starting odds before specifics are added. |
| factor | One piece of evidence, with a weight, feeding the final number. |
| research triage | Sorting many options by rough promise so you know where to look first. |
python -m symbolic_floor.trials EGFR "lung cancer" estimates a trial's chance of success.You've now run every hands-on loop. In Lesson 9 we keep going with pathogens and compounds.
Two ready-made tools answer bigger questions: "What can we target in a germ?" and "What's actually in this medicine?"
A console tool is a program you run by typing a full line and pressing Enter. The lines here begin with python -m symbolic_floor.… — "ask Python to run this particular Floor tool." A pathogen is a germ that causes disease; a target is a protein inside it that a medicine could grab to stop it.
Type this and press Enter (malaria is our example germ):
python -m symbolic_floor.pathogen malaria
· pathogen: research Plasmodium falciparum DHFR-TS (P13922) Plasmodium falciparum (taxon 5833) — 1 validated targets DHFR-TS P13922 struct 5 inhib 3 [druggable] bifunctional DHFR–thymidylate synthase — antifolate target
Now ground a medicine made of two ingredients:
python -m symbolic_floor.compounding caffeine aspirin
compound medication — 2/2 ingredients grounded ✓ caffeine C8H10N4O2 MW 194.19 1 target(s) ✓ aspirin C9H8O4 MW 180.16 1 target(s)
python -m symbolic_floor.pathogen covid, or … e. coli, … hiv, … tuberculosis.python -m symbolic_floor.compounding aspirin.| Term | Plain meaning |
|---|---|
| console tool | A program you run by typing a full line and pressing Enter. |
| pathogen | A germ that causes disease. |
| target | A protein inside a germ that a drug could grab to stop it. |
| accession (e.g. P13922) | A protein's permanent, unique ID — like a serial number. |
| druggable | The tool's verdict that a target is a realistic handle for a real drug. |
| grounded | Found as a real thing with a real source — not invented. |
| molecular weight (MW) | Roughly how heavy one unit of the molecule is. |
The Floor turns its real facts into a study set to train a small AI — and teaches it to say "I don't know."
A dataset (or corpus) is a big organized pile of examples used to teach an AI. To train is to show it that pile until it learns the pattern. An SML is a Small (or Symbolic) Machine Learner — a compact AI you can run on an ordinary computer. The key phrase is "witnessed gold only": only a fact with a real source is allowed to become a training answer.
This one is a word at the Floor's own ❯ prompt (after launching with science). Type:
build-sml
🧠 BUILD AN SML FROM GATHERED DATA gather → grounded corpus → train-ready 1) GATHER — molecule water/caffeine/aspirin/glucose/ethanol/acetic acid → ok ; protein P69905/P68871 → ok 2) DISTIL → 124 grounded Q&A pairs · train 94 / valid 12 / eval 18 3) SHOW → Q: chromosome of gene ZZFAKE1? A: "I do not have a verified record for that, so I won't guess." 5) TRAIN → mlx_lm.lora --model …Llama-3.2-3B-Instruct-4bit --train … (corpus train-ready NOW)
Most AIs are rewarded for always having an answer, so they learn to bluff. This does the opposite: by slipping fake questions like ZZFAKE1 into the study set — with the right answer being "I don't know" — it teaches the small AI that admitting ignorance is a right answer. With "witnessed gold only," you get an AI that would rather say "I can't verify that" than invent a fact.
build-sml and read each stage aloud. What do GATHER, DISTIL, and TRAIN each do?build-sml gathers facts and prints the training command — but the actual multi-hour training is a separate, heavier step. "Corpus train-ready NOW" means the flashcards are ready, not that a trained AI popped out.| Term | Plain meaning |
|---|---|
| dataset / corpus | A big organized pile of examples used to teach an AI. |
| SML | A Small/Symbolic Machine Learner — a compact AI you can run on a normal computer. |
| train | Showing the AI the pile of examples until it learns the pattern. |
| train / valid / eval split | Study-from, check-against, and a held-back honest final exam. |
| witnessed gold only | Only a fact with a real source may become a training answer. |
| ZZFAKE1 | A deliberately fake gene, used to teach the AI to answer "I don't know." |
build-sml turns gathered facts into a train-ready study set: gather, distil, show, train.The lesson for the person who runs the Floor: the caretaker, the factory, and the writer.
ops is the janitor and nurse rolled into one. It protects the Floor's stored knowledge (its database, or "db" — the file where the facts live) and tells you whether the system is well. It's a runbook you can run:
python -m symbolic_floor.ops backup <db> <dir> — make a safe copy.
python -m symbolic_floor.ops verify <backup> — confirm a backup is intact.
python -m symbolic_floor.ops restore <backup> <db> — put a backup back into service.
python -m symbolic_floor.ops health --sink <telemetry> — a quick checkup.
python -m symbolic_floor.ops metrics --sink <telemetry> — the vital-sign numbers.
The angle brackets are fill-in-the-blanks — replace them with real names; don't type the brackets. The health check reports an exit code — a number other programs can react to:
exit 0 OK — all well exit 1 DEGRADED — working, but needs attention exit 2 CRITICAL — needs help now
An agent is a small, purpose-built helper for one job; the agents tool manufactures one on demand:
python -m symbolic_floor.agents "find druggable kinases in breast cancer" --gene=EGFR --disease="breast cancer"
From that request it generates a grounded helper (e.g. a "druggability-agent"), grants it only the powers its job needs, runs it, and writes findings back as new edges (linked facts).
As it researches, the Floor keeps a journal (a .jsonl file — one record per line). The paper tool drafts an academic write-up from it:
python -m symbolic_floor.paper <journal.jsonl>
Because it builds only from the grounded journal, every claim traces back to a source.
backup, then verify it. Try restore only against a spare db.ops health and read the exit code — 0, 1, or 2?verify a backup before trusting it — an unverified backup is only a hope. And because restore overwrites the target database, double-check the destination name.| Term | Plain meaning |
|---|---|
| operator | The caretaker who runs and maintains the Floor. |
| database (db) | The file where all the Floor's facts are stored. |
| backup / verify / restore | Copy the knowledge safely, prove the copy is good, put it back after a disaster. |
| exit code | A number a command leaves behind: 0 OK, 1 degraded, 2 critical. |
| agent | A small, single-purpose helper the factory builds. |
| least privilege | Giving a helper only the powers it truly needs, nothing more. |
| journal (.jsonl) | A running research log the writer turns into a paper. |
The moment a verified idea leaves the screen toward the real lab bench — and the honest truth of what exists today.
aspirate — draw up a liquid dispense — put a liquid down mix — stir / combine heat — warm a sample measure_absorbance — shine light through a sample and read it read_sensor — take a sensor reading label — mark a container
| Term | Plain meaning |
|---|---|
| bench | The lab surface where real experiments happen. |
| contract | A signed, tamper-evident statement of exactly what to test. |
| plan | Step-by-step actions, built only from what the environment can do. |
| environment | The place the work runs: SIMULATION or HUMAN-TECH. |
| refusal rule | If a step can't be done, the plan is refused and recorded — never faked. |
| SIMULATION | A toy bench that always says "inconclusive"; never makes a real fact. |
| HUMAN-TECH | Writes a numbered work-order for a real person, then reads back their result. |
| seam | A clean spot where a real instrument could later plug in (none is yet). |
That completes the hands-on lessons. When you're ready to prove what you've learned, head to the Certification track.
You have finished twelve lessons. Before we hand you your certificate, here is the whole vocabulary of THE SYMBOLIC FLOOR in one place — plain language, one sentence each. If a word ever slips your mind at the ❯ prompt, this is the page to keep a thumb in. Read it once end to end; it will tie the whole course together.
| Term | What it means, in plain words |
|---|---|
| Terminal | The plain black-and-text window where you type; it is the front door to everything in this course, no mouse required. |
| Command | A word (or short line) you type and then press Enter to make the machine do one thing. |
| Prompt (❯) | The little arrow the system prints to say “your turn — type something”; when you see ❯, it is waiting on you. |
| REPL | “Read–Evaluate–Print Loop” — the conversation style where you type a word, it answers, and it asks again, over and over. |
science (the launcher) | The single word you type to open the whole system; it starts the REPL and shows you the menu. |
| The floor | The grounded knowledge engine underneath everything — a typed graph of biology facts that is the only thing allowed to state a fact. |
| Grounding | The rule that nothing counts as a fact unless it is tied to a real, checkable source; ungrounded guesses are not allowed to become answers. |
| Provenance / source-pinned | The receipt attached to every fact showing exactly which database and record it came from, so you can walk back and check it yourself. |
| Accession | The official ID number a database gives a protein, gene, or molecule (like P69905) so everyone points at the exact same thing. |
| UniProt | The world reference database for proteins — what a protein is, what it does, where it lives. |
| PubChem | The reference database for chemicals and molecules — formulas, weights, and structures (this is where chemistry water gets its facts). |
| Ensembl | The reference database for genes and genomes — where a gene sits on the DNA and what it codes for. |
| ClinVar | The reference database that records which genetic variants are known to cause disease. |
| PDB | The Protein Data Bank — real, experimentally-measured 3-D shapes of molecules. |
| AlphaFold | A database of computer-predicted protein shapes for cases where no experiment has been done yet (clearly labeled as predictions, not measurements). |
| ChEMBL | The reference database of drug-like molecules and how strongly they act on biological targets. |
| Reactome | The reference database of biological pathways — the step-by-step chains of events inside a cell. |
| InterPro | The reference database of protein families and functional domains — the reusable “parts” proteins are built from. |
| KEGG | A reference database linking genes, molecules, and pathways into whole biological systems. |
| Edge | One typed link between two things in the floor — for example hemoglobin →binds→ oxygen; edges are the wires the system reasons along. |
| PEEL tile | One small, self-contained card of grounded knowledge — a fact plus its type plus its source — the brick the floor is built from. |
| Canonical-37 | The fixed set of 37 fields every full PEEL tile is supposed to fill in, so tiles are always shaped the same way and nothing important is skipped. |
| Verdict | The system’s honest one-word judgement on a claim: SUPPORTED (evidence agrees), CONFLICTING (sources disagree), or UNKNOWN (not enough grounded evidence to say). |
| Functional hard-veto | The strictest rule on the floor: if a claim contradicts a known one-answer biological fact (a thing that can only be one way), it is rejected outright, no matter how confident the guess was. |
| Abstain | The system choosing to say “I don’t know” instead of making something up; abstaining is treated as a correct, safe answer, not a failure. |
| Hypothesis | A specific, testable guess (“this gene is linked to that disease”) that the system can go check against grounded evidence. |
| Pre-registration | Writing down exactly what you will test and how you will judge it before looking at the answer, so you can’t quietly move the goalposts afterward. |
| Hash-chained ledger | A tamper-evident logbook where each entry seals the one before it, so nobody — not even the system — can silently rewrite past results. |
| Confidence | A number saying how sure the system is; here it is earned from verified evidence, never typed in by hand or invented. |
| Convergence | When several independent lines of evidence point at the same answer — the more roads that lead to one place, the more trustworthy it is. |
| p-value | A number estimating how likely a result could have happened by pure chance; small means “probably not luck,” large means “could easily be coincidence.” |
| Null model | The “boring” baseline you compare against — what the numbers would look like if nothing interesting were going on — so a real signal has to beat mere chance. |
| “The path is the proof” | The heart of the whole system: an answer is trusted because you can trace the exact chain of grounded edges that leads to it, not because a model sounded confident. |
| Proposer | The part that suggests new facts or hypotheses; it is only allowed to propose — it can never wave something into the graph by itself. |
| Gate | The checkpoint every proposed fact must pass through; if it isn’t grounded and doesn’t survive the veto, the gate rejects it. |
| Resolver | The careful matcher that turns a plain name you typed (“hemoglobin”) into the exact database accession, using only the text and curated tables — never a guess. |
| MCP (and why “no MCP” matters) | MCP is a way to call out to external online tools; “no MCP” means a connector is built natively into the floor so it works offline and every fact is grounded locally — more trustworthy, not less. |
| CRISPR guide | A short designed piece of genetic code that steers the gene-editing machinery to one exact spot on the DNA. |
| PAM site | The tiny nearby DNA signal that the editing machinery must find right next to its target before it is allowed to cut — no PAM, no edit. |
| Pathogenic variant | A change in DNA that is known to cause or contribute to disease (as classified by ClinVar). |
| Druggable | Describes a biological target that a real drug-like molecule is known to be able to act on. |
| Campaign / “go solve X” | Turning the system loose on an open-ended goal, where it repeatedly proposes, tests, and grounds new facts — expanding its own frontier of what it knows. |
| Trials prediction | A grounded estimate about clinical-trial-related questions, always shown with its evidence and its honest caveats — never a promise. |
Dataset / build-sml | The step that assembles training data for the system’s model from the grounded floor, so what it learns is anchored to real facts. |
| “Witnessed gold” | Training examples where every claimed fact has a real source backing it; the opposite — unwitnessed “gold” — secretly teaches a model to make things up. |
| Handoff / contract | The explicit agreement about who does what when one part passes work to another; a handoff is refused if the contract’s conditions aren’t met. |
| Capability | A specific thing the system is actually allowed and able to do — claimed only when it can be shown, never assumed. |
| Simulation vs human-tech environment | A simulation is a model of the world running in software; a human-tech (real-world) environment is the actual world — the two must never be confused, and a simulated result is never a real-world fact. |
lois | The honesty-gate persona/mode — the always-on conscience that keeps answers grounded and refuses to fabricate. |
peel | The command that shows the floor’s status banner — its gate, lane, and ledger state — read-only, so you can always check the system’s health. |
Three exams, one per level. Read each question, decide your answer out loud or on paper, then uncover the answer key below it — no peeking first (that would be un-pre-registered, and you know better now). You do not need a perfect score to feel proud; you need to understand why each answer is what it is.
Can you drive the machine? Eight questions on launching, looking around, and running your first real jobs.
science.demos.chemistry water.crispr EGFR.exit — it closes the REPL and returns you to your ordinary terminal.Can you read what the machine tells you? Eight questions on grounding, why it holds back, and how to judge its numbers.
peel and lois?peel shows the floor’s status (read-only health check); lois is the honesty gate that keeps answers grounded and refuses to fabricate.trials and pathogen.Do you understand why the machine can be trusted — and where its honesty ends? Eight questions, including two short scenarios.
build-sml, why must the examples be “witnessed gold,” and why is it important to also train the model to abstain?Twelve lessons. Three exams. A whole vocabulary. You started not knowing what the little ❯ even meant, and now you can drive a grounded, non-fabricating bio-knowledge system and explain why it can be trusted. That is a real skill, and it is rarer than it should be. Congratulations — take a breath and read your own report card below.
Every box here is a concrete thing you learned to do in this course. Read the list slowly — each check is earned.
| Skill | |
|---|---|
I can launch the system with science and read the menu. | ✓ |
I know the ❯ prompt is waiting for me, and I can leave cleanly with exit. | ✓ |
I can run the built-in demos, and jobs like chemistry water and crispr EGFR. | ✓ |
| I can research a gene and read its dossier. | ✓ |
| I can follow every fact back to its source — database and accession. | ✓ |
| I can explain grounding and why “the path is the proof.” | ✓ |
| I can explain why the system abstains, and why that is a correct answer. | ✓ |
| I can turn on and read the Lois honesty gate. | ✓ |
I can check the floor’s status with peel. | ✓ |
| I can explain pre-registration and why earned confidence can’t be faked. | ✓ |
| I can read a verdict (SUPPORTED / CONFLICTING / UNKNOWN) and the functional hard-veto. | ✓ |
| I can run an autonomous campaign and state its honest limits. | ✓ |
| I can explain the hash-chained ledger and why the record can’t be quietly rewritten. | ✓ |
| I understand “witnessed gold” training and the handoff refusal rule. | ✓ |
| I know that no real robot exists, and a simulation can never become a real-world fact. | ✓ |
| Level | Certifies that you… |
|---|---|
| Bronze — Operator ✓ | …can drive the machine: launch it, find your way around, run real jobs, and leave cleanly. You are safe at the keyboard. |
| Silver — Analyst ✓ | …can read what the machine tells you: trace provenance, understand why it abstains, and judge its numbers honestly. You can trust it for the right reasons. |
| Gold — Steward ✓ | …understand why the system can be trusted and exactly where its honesty ends: the hard-veto, the ledger, the handoff rule, and the line between simulation and the real world. You can vouch for it responsibly. |
+--------------------------------------------------------------+
| |
| * CERTIFICATE OF COMPLETION * |
| |
| THE SYMBOLIC FLOOR |
| grounded, provenance-pinned bio-knowledge |
| |
| This certifies that |
| |
| ______________________________________ |
| ( your name ) |
| |
| has completed The Symbolic Floor course and understands |
| grounded, provenance-pinned, non-fabricating |
| bio-knowledge -- how to drive it, how to read it, and |
| why it can be trusted. |
| |
| Levels earned: [x] Bronze [x] Silver [x] Gold |
| |
| Date: ____________________ |
| |
| -- Perslis Research |
| |
+--------------------------------------------------------------+
You are certified — now keep the momentum. A few good next steps:
You now belong to a small group of people who can use a powerful bio-knowledge system and tell the truth about what it does and doesn’t know. That combination is exactly what the world needs more of. Well done — and welcome aboard.
A literal mirror of the application — every source module, its real one-line purpose, straight from the code. Nothing hidden, nothing omitted.
symbolic_floor/*.py| Module | What it is |
|---|---|
| __main__ / cli | The command-line surface: verification + every research lane. |
| campaign | go solve X — the autonomous research campaign. |
| discovery | Traversal discovery with an honest significance test (the null model). |
| evolution | Hypothesis-evolution loop — bounded, curated-frontier, null-model-guarded. |
| reasoner | The three-verdict evaluator. Pure, deterministic, trace-carrying. |
| extract | The bio wheel: one accession → typed Peel facts + link edges + a trace. |
| store | Write/read edge API with provenance enforcement (the only write path). |
| schema | Field-level validation: node IDs, relations, direction, provenance. |
| db | Connection + migrations for the floor DB. |
| recall | Walk everything the floor knows about a subject, with traces. |
| peel_tiles | Canonical-37 PEEL tile trace for the bio wheel. |
| crispr | CRISPR guide design — grounded, API-native, honest. |
| dossier | Grounded target dossier: one gene → a printable HTML report. |
| trials | Trial success prediction — spot the failure before general testing. |
| pathogen | Grounded antimicrobial target triage for drug discovery. |
| compounding | Grounded research for compound medications. |
| agents | Science-agent factory — the floor generates the grounded agent a task needs. |
| datasets | The floor turns what it learned into datasets (relations/features/qa). |
| paper | Academic writer — the system publishes its own findings, grounded. |
| onepager | The labs one-pager: a printable business sheet that pitches deployment. |
| journal | Research journal — the system's unified memory of what it did and found. |
| science_list | Science recorder: the notes write themselves. |
| planner | Layer 3 — the execution planner: knows HOW to use the hands. |
| capabilities | Layer 1 — the affordance model: what hands CAN DO. |
| environments | Layer 2 — the environment registry: the swap layer. |
| handoff | The hand-off terminus: verified result → contract → planned execution. |
| molding | The adaptive runtime engine — "mold this around X." |
| harvest_pack | Import a Desktop Harvest pack into a floor DB (demo lane). |
| security | Auth + tenant isolation for a multi-tenant floor service. |
| service | FloorService — the authenticated, tenant-isolated surface. |
| telemetry | Structured events, metrics, and an alerting signal. |
| ops | Operator CLI — DR + observability (the runbook, executable). |
| backup | Floor backup & restore — the tested DR path. |
| i18n | Multilingual presentation: English / Mandarin / Japanese. |
symbolic_floor/peel/*.py| Module | What it is |
|---|---|
| floor | Bio-structure floor: mounts the vendored Peel engine + registers bio relations + functional flags. |
| relation_schema | The vendored Peel engine — typed relational edges, the compatibility/veto primitive. |
symbolic_floor/connectors/*.py (13)| Connector | Grounds |
|---|---|
| uniprot | accession → canonical sequence (has_sequence). |
| pdb | accession → confirmed experimental structures. |
| alphafold | accession → predicted structure. |
| ensembl | gene symbol → gene metadata + UniProt xrefs. |
| clinvar | gene → clinical variants (significance + condition). |
| vep | dbSNP rsID → predicted molecular consequence + gene(s). |
| pubchem | molecule name → CID → canonical chemistry identifiers. |
| chembl | accession → ChEMBL target → the drugs that bind it. |
| reactome | accession → curated pathways. |
| kegg | accession → KEGG pathways. |
| interpro | accession → curated domains / families. |
| base | Allowlisted HTTP GET: timeouts, bounded retries, injectable transport. |
| resilience | On-disk response cache + a per-host circuit breaker. |
| proposer/ | |
|---|---|
| runtime | local model → strict parse → floor admission |
| contract | the proposal grammar + system prompt |
| resolver | symbolic subject binding (table, not model) |
| dataset | training pairs from the floor (witnessed gold) |
| knowledge_dataset | build a knowledge SML corpus |
| evaluate | scored proposer eval — numbers not prose |
| adapters/ | |
| simulation | deterministic toy bench (always inconclusive) |
| human_tech | plan → work order; the human is the executor |
| dashboard/ | |
|---|---|
| server | the :8977 floor dashboard (web) |
| chat | chat with the floor, grounded |
| scientist | read-only bridge to hypothesis ledgers |
| structures / smallmol | 3D structure + ball-and-stick viewers |
| scientist/ (the ledger package) | |
| ledger / events | typed state machine over a hash-chained log |
| confidence | mechanical confidence — arithmetic, never model-asserted |
| loop / selector | one scientist cycle; "what reduces uncertainty most?" |
| blame / critic / knowledge / roles | failure→hypothesis, subtraction-critic, knowledge-gate, the five learning jobs |
How every piece connects — the exact chain from the word you type to the fact that comes back.
science → grounded answer)~/bin/science (launcher: sets KIST_SCIENCE_PROFILE=1 + a curated --fetch-host allowlist)
│
▼
kist REPL (Swift binary · Sources/Kist) ── science profile gates the toolset
│
▼
ScienceToolset.swift (the bridge · gated on the profile · watchdog-guarded)
│ crispr · discover · research · chemistry · tour · evolution · build-sml · demos
▼
<trunk>/.venv/bin/python -u dogfood_<x>.py (the floor's own stdlib venv)
│
▼
symbolic_floor package → connectors (UniProt/PubChem/Ensembl/ClinVar/…) → floor DBs (data/, gitignored)
Canonical run-home: ~/science-loops-dev/symbolic-floor (its own venv + DBs). Override with KIST_FLOOR_HOME. Sibling read-only words: peel (status), lois (arms the PEEL proof gate).
dashboard/server.py on localhost:8977A parallel surface onto the same floor. Its HTTP routes (the "hooks" the web UI calls):
/api/graph — the knowledge graph/api/node — one node + its edges/api/research — the ONLY write lane/api/ledger — hypothesis ledgers/api/notebook — the lab notebook/api/chat · /api/chats — grounded chat/api/harvest · /api/import — ingestion/api/mold — mold a capability/api/invoke — run a capability/api/report · /api/export — outputs/api/capabilities — the affordance list/api/diagnostics · /api/health — status/api/models · /api/minds — model/mind pickers/api/dbs · /api/libraries — data sources/api/demo/packs · /demo/import · /demo/probe/api/day · /api/calendar — the science-list/api/docscan · /api/partner/tickBeyond the floor, a 44-tool bio-research MCP server (user-scope bio-research) offers direct source-pinned lookups from chat — literature, scholarly graph, proteins/structure, genomics, variants, chemistry, pathways — plus a workspace "wetware" actuation lane. See Map C for the full tool list.
Every way to invoke the system, in one place — the complete command mirror.
crispr <gene> · discover · research · chemistry · tour · evolution · build-sml · demos · peel · lois · lois off · exit
python -m symbolic_floor.<tool>)| Tool | Installed command | Does |
|---|---|---|
| campaign | symbolic-floor-solve | autonomous "go solve X" |
| trials | symbolic-floor-predict | trial success prediction |
| pathogen | symbolic-floor-pathogen | antimicrobial target triage |
| compounding | symbolic-floor-compound | compound-medication research |
| agents | symbolic-floor-agent | generate a grounded agent |
| datasets | symbolic-floor-dataset | relations / features / qa datasets |
| paper | symbolic-floor-write | journal → academic paper |
| ops | symbolic-floor-ops | backup / verify / restore / health / metrics |
| cli | symbolic-floor | the verification + research CLI (below) |
python -m symbolic_floor <cmd>)Verify: seed · claim · evaluate · eval-protein · extract · recall · trace
Research: research-gene · research-chemistry · research-pathways · research-kegg · research-drugs · research-domains · research-references · research-variants · research-variant-effect
Handoff: handoff · handoff-check · handoff-collect · handoffs · env-register · envs
dogfood_crispr · dogfood_ai_scientist · dogfood_science_loop · dogfood_chemistry · dogfood_grand_tour · dogfood_evolution · dogfood_build_sml · dogfood_discovery
| Group | Tools |
|---|---|
| Literature | pubmed_search, pubmed_abstracts, pmc_fulltext, arxiv_search, biorxiv_fetch, biorxiv_recent |
| Scholarly graph | openalex_search, openalex_work, semantic_scholar_search, semantic_scholar_citations |
| Proteins & structure | uniprot_search, uniprot_entry, pdb_search, pdb_entry, alphafold_structure, interpro_domains, interpro_entry |
| Genomics | ensembl_gene, ensembl_sequence, ensembl_xrefs, ncbi_sequence_search, ncbi_fetch_sequence |
| Variants | clinvar_search, clinvar_variant, dbsnp_variant, vep_consequences |
| Chemistry | pubchem_compound, pubchem_compound_by_cid, chembl_search, chembl_bioactivity |
| Pathways | kegg_search, kegg_entry, reactome_search |
| Compute | run_python, list_workspace |
| Wetware (workspace) | wetware_write_file, wetware_read_file, wetware_move, wetware_remove, wetware_job_start, wetware_job_status, wetware_job_output, wetware_jobs, wetware_job_cancel |
~/bin/science | launch the science REPL (profile + curated fetch allowlist) |
~/bin/peel | science-status shell lane |
~/science-loops-dev/symbolic-floor | canonical floor run-home (code + venv + DBs) |
dashboard/server.py --port 8977 | the web dashboard |
— END OF MANUAL — Perslis Research · Symbolic Floor · Rev 2026.09 · Course & Certification Edition · every module & command mirrored
The Lessons (Volume III) teach one tool at a time. These tutorials are different: each is a complete project with a finished result. You'll build real things — a target package, a grounded brief, a defensible finding, your own trained corpus — following clear steps, the way an Adobe how-to walks you from blank page to finished poster.
Beginner ~10 min
Launch → dossier on a cancer gene → trace every fact to its source.
Intermediate ~20 min
The flagship: campaign → pick a target → dossier → trial estimate → a grounded package.
Intermediate ~15 min
Ground a two-drug compound and a real pathogen target into one honest brief.
Advanced ~20 min
Run the AI-scientist loop, then write a defense a skeptic can't wave away.
Advanced ~20 min
Turn gathered biology into a train-ready honest corpus + a custom agent.
Advanced ~15 min
Protect your work, then carry a result to a signed, honestly-labeled lab work order.
Master ~30 min
Chain the whole system into one deliverable you could hand a scientist.
You don't need to be a biologist or a programmer. You need a terminal window open on this machine and about ten minutes. Everything here runs offline — no accounts, no internet, no setup. The system is grounded: it never guesses. If it doesn't have a verified record for something, it says nothing rather than making it up. That is the whole point, and by the end of this tutorial you'll be able to prove it to yourself.
science and press Enter. A banner appears, followed by a prompt — a single character, ❯ — waiting for you. That prompt is where the whole system lives. Anything you type there is a question you're asking of grounded data.
$ science ◫ S C I E N C E · ready · offline · source-pinned ❯
❯ prompt, type demos and press Enter. This lists the tools available to you. You'll see crispr — that's the one you'll use in a moment.
❯ demos ◫ SCIENCE TOOLS crispr [gene] grounded CRISPR target dossier for a gene discover autonomous AI-scientist discovery chemistry native PubChem chemistry tip: try crispr TP53
crispr TP53 and press Enter. The system reads the real Ensembl DNA sequence, finds guide sites, pulls clinical variants, and assembles the protein biology — then prints a four-part dossier. Give it a moment; every number below is computed, not recalled.
❯ crispr TP53 🧬 CONNECT-IT-ALL — grounded CRISPR target dossier: TP53 1) CRISPR GUIDES gene TP53 → Ensembl ENSG00000141510 (chr 17) 1.5) CLINICAL VARIANTS ClinVar: 1761 pathogenic variants 2) TARGET BIOLOGY protein P04637 (UniProt / PDB) ✓ EVERYTHING TALKS
ENSG00000141510) on chromosome 17. Guide sites are computed by scanning the actual DNA sequence, not looked up in a table.P04637 in UniProt, with its experimental PDB structures and its interaction partners.P04637 — and recognize it as a live pointer. It is the UniProt accession for the TP53 protein; ENSG00000141510 is its Ensembl gene ID. Because every fact carries its accession, you (or a reviewer, or a scientist) can open the matching public record and confirm it independently. Nothing in the dossier is unaccountable.
crispr EGFR next and compare. EGFR resolves to ENSG00000146648 on chromosome 7, shows 995 PAM sites in 6000bp, 251 pathogenic ClinVar variants, and protein P00533 with 5 experimental structures and 199 interactors. Seeing two genes side by side makes the structure of a dossier click. Valid genes to explore include EGFR, TP53, KRAS, BRCA1, BRAF, MYC, PTEN, VEGFA, TNF, HBB, HBA1, and MB.crispr on three genes from the valid list and note which has the most pathogenic variants.exit to leave, then relaunch with science so the round trip feels routine.Remember: this is a design-grade research tool — it helps you assemble and trace evidence. It is not a wet-lab result and not a medical product.
Next tutorial → Solve a Disease, End to End
Finish Tutorial 1 first — you should be comfortable at the ❯ prompt and know how to read a dossier. In this tutorial you'll also use two console commands of the form python -m symbolic_floor.<tool>, which you run in a normal terminal (not inside the ❯ prompt). We'll investigate lymphoma. Everything stays offline and source-pinned.
$ python -m symbolic_floor.campaign lymphoma · campaign: solve 'lymphoma' seeds (10): MYC BCL2 BCL6 TP53 MS4A1 CARD11 EZH2 CREBBP CD79B MYD88 cycle 1 — research → expand · frontier +20 (MDM4, TP53BP2, BCAP31, BAX …) ✓ cycle complete
❯ prompt (launch with science if you're not already there) and run crispr TP53. This is the same grounded dossier from Tutorial 1 — genome location, clinical variants, protein biology — now serving as the biological core of your target package.
❯ crispr TP53
🧬 CONNECT-IT-ALL — grounded CRISPR target dossier: TP53
gene TP53 → Ensembl ENSG00000141510 (chr 17)
ClinVar: 1761 pathogenic variants
protein P04637 (UniProt / PDB)
✓ EVERYTHING TALKS
If you chose BCL2 instead, run crispr BCL2 — the shape of the dossier is identical, only the accessions and counts change.
trials command with your gene and the disease in quotes. It returns JSON: a success probability, a plain-language verdict, and the factors that drove the number. Read the factors — they're the honest reasoning behind the estimate, not a black box.
$ python -m symbolic_floor.trials TP53 "lymphoma" { "gene":"TP53", "disease":"lymphoma", "success_probability":0.375, "success_percent":38, "failure_percent":62, "verdict":"PROCEED WITH CARE", "factors":[ {"factor":"phase_2 base rate","value":0.15}, … ] }
Read it plainly: a 38% estimated success, 62% failure, verdict PROCEED WITH CARE. The phase_2 base rate factor of 0.15 shows the estimate is anchored to real-world base rates, not optimism. (The numbers shown are the verified EGFR + "lung cancer" values; run your own pair to get its numbers.)
python -m symbolic_floor.campaign on a different disease and see which seed genes you recognize.trials for two targets against the same disease and compare their verdicts and factors.Next tutorial → Tutorial 3
You'll run two console tools with python -m symbolic_floor.<tool>. Everything here is offline and source-pinned — no internet call, no cloud model. If a fact can't be grounded, the Floor abstains rather than guessing. Keep a blank text file open; you'll paste real output into it as your brief.
python -m symbolic_floor.compounding caffeine aspirin
compound medication — 2/2 ingredients grounded ✓ caffeine C8H10N4O2 MW 194.19 1 target(s) ✓ aspirin C9H8O4 MW 180.16 1 target(s)Both ingredients resolved to real chemistry. 2/2 grounded means the Floor found each one in its pinned chemistry data — nothing was invented.
C8H10N4O2 at MW 194.19; aspirin is C9H8O4 at MW 180.16. The ✓ and target count tell you the Floor knows what each molecule is and at least one thing it acts on. What it does not tell you: whether these two belong together, in what dose, or for whom.
python -m symbolic_floor.pathogen malaria
· pathogen: research Plasmodium falciparum DHFR-TS (P13922) Plasmodium falciparum (taxon 5833) — 1 validated targets DHFR-TS P13922 struct 5 inhib 3 [druggable] bifunctional DHFR–thymidylate synthase — antifolate targetMalaria resolved to Plasmodium falciparum (taxon 5833) with one validated target. Known pathogens the tool covers include covid, e. coli, hiv, malaria, and tuberculosis.
P13922): 5 experimental structures, 3 known inhibitors, tagged [druggable]. It's the bifunctional DHFR–thymidylate synthase — the classic antifolate target. Every one of those numbers is source-pinned; the tool is for research, not medical advice.
python -m symbolic_floor.pathogen tuberculosis (or covid, e. coli, hiv) and compare druggable targets.Next tutorial → Make a Discovery You Can Defend
discover loop separates proposing from proving.These commands are typed at the Floor's ❯ prompt (launched with science), not with python -m. The core idea to hold onto: the AI only proposes ideas — the Floor authors every fact, and a statistical test, not the AI, decides whether a finding is real.
lois
◫ Lois online — Peel symbolic gate ACTIVE · research now requires grounded PEEL evidence · lois off to releaseThe gate is now fail-closed: research must surface grounded PEEL evidence or it doesn't pass. Leave it on for the rest of this tutorial; type
lois off when you want to release it.
discover and watch the five stages. The AI runs as a scientist over the globin protein family:
1) HYPOTHESIZE a testable idea → written to hash-chained ledger (hyp-…) 2) FORMALIZE HBA1=P69905 HBB=P68871 MB=P02144 NGB=Q9NPG2 CYGB=Q8WWM9 3) RESEARCH the Floor authors the facts 4) TRAVERSE walk the typed edges 5) DISCOVERY a convergence with a p-value + an edge-ID proofRead it in order. The idea is proposed in stage 1 and written to the ledger before any research happens. The discovery in stage 5 is not the AI's opinion — it's a convergence the traversal found, reported with a p-value and the exact edge IDs that prove it.
research. It states a hypothesis about hemoglobin beta (P68871), then pre-registers its predictions — hash-chained, before it looks:
HYPOTHESIS hemoglobin beta (P68871)
PRE-REGISTER (hash-chained, before research):
• sequence length == 147
• has ≥1 experimental structure
• heme molecular weight in [500, 750]
Those three predictions are locked in before any result is seen. That ordering is the whole point — a prediction written after the answer proves nothing.
sequence length == 147 ............... PASS has ≥1 experimental structure ........ PASS heme MW in [500, 750] ................ PASS VERDICT: SUPPORTED confidence 0.xxConfidence is pure arithmetic the AI cannot write. And it's capped near zero (0.05) if a key, discriminating prediction FAILS — so you can't rescue a broken hypothesis with a confident-sounding sentence. A prediction registered after the result cannot be graded at all.
hyp-…) was hash-chained before research, so it can't have been backdated; (2) the p-value — the convergence is unlikely to be coincidence, with the edge-ID proof to retrace; (3) the pre-registration — the predictions were locked before the result and graded PASS/FAIL, with confidence capped near zero on any key failure. That's a finding a skeptic can inspect, not just believe.
discover a second time and compare the hypothesis ids — each is a fresh, ledger-stamped entry.lois off, then check status with peel (read-only) to see the difference armed vs. released.Next tutorial → Tutorial 5
build-sml walks gather → grounded corpus → train-ready in one flowagents factory builds a grounded helper with least-privilege capabilitiesYou should have already met the floor at the prompt (Tutorials 1–4): you know that everything here is grounded — no MCP, no cloud, and the system abstains when it has no verified record. Launch the environment with science so you're sitting at the ❯ prompt. Nothing you do in this tutorial reaches the internet; you're distilling data the floor already gathered and verified.
build-sml and press Return. The tool announces the whole arc up front — you're going from raw gathered biology to a corpus a trainer can consume.
❯ build-sml 🧠 BUILD AN SML FROM GATHERED DATA gather → grounded corpus → train-ready
1) GATHER
molecule water/caffeine/aspirin/glucose/ethanol/acetic acid .... ok
protein P69905 (HBA) · P68871 (HBB) ......................... ok
Those two proteins are the alpha and beta chains of human hemoglobin — real UniProt accessions, not stand-ins.
2) DISTIL 124 grounded Q&A pairs
split → train 94 · valid 12 · eval 18
3) SHOW a sample Q: chromosome of gene ZZFAKE1? A: "I do not have a verified record for that, so I won't guess."Read that answer twice. That is the behavior you are training in — not out.
5) TRAIN mlx_lm.lora --model …Llama-3.2-3B-Instruct-4bit --train … corpus train-ready NOW"Train-ready NOW" means the data is done and verified. Kicking off
mlx_lm.lora is the long part, and it happens outside this flow.
agents factory generates a purpose-built agent from a plain-language need, grants it only the capabilities that need matches (least privilege), runs it, and writes its findings back as grounded edges. Describe a real job:
❯ python -m symbolic_floor.agents "find druggable kinases in breast cancer" --gene=EGFR --disease="breast cancer"
generated agent: druggability-agent
granted capabilities (least privilege): matched to need
running… edges written ✓
Because the need was about druggability, the agent gets druggability-shaped capabilities — nothing broader. A different need produces a different agent with a different, minimal grant.
druggability-agent) that was given only the powers its job required and has already written grounded edges back into the floor.build-sml after gathering more molecules or proteins to grow the corpus — the splits scale with your data.agents need string and watch the capability grant change with it.mlx_lm.lora command — but budget hours, not minutes.Next tutorial → Tutorial 6 · From Screen to Bench
ops backup and — critically — ops verify before you trust itYou've built a grounded corpus and an agent (Tutorial 5). Before you move any result toward the physical world, protect it. The ops tools operate on your local database and backup directory — no cloud in the loop.
ops backup at your database and a backup directory. This snapshots the grounded store so an experiment can't cost you your evidence.
$ python -m symbolic_floor.ops backup <db> <dir>
ops verify against the backup — always do this before you'd ever need to lean on it.
$ python -m symbolic_floor.ops verify <backup>Only after this passes should you consider the snapshot safe. And remember:
ops restore <backup> <db> overwrites the live database — it's a last resort, not a convenience.
ops metrics alongside it for detail.
$ python -m symbolic_floor.ops health --sink <telemetry> exit 0 → OK · exit 1 → DEGRADED · exit 2 → CRITICAL
VERIFIED result
→ signed CONTRACT (tamper-evident)
→ PLAN (only actions the ENV can do)
→ DISPATCH
→ COLLECT (result back as new grounded evidence)
The contract is signed and tamper-evident. The plan is built only from actions the chosen environment can actually perform. Whatever comes back is folded in as new grounded evidence — not asserted, collected.
aspirate · dispense · mix · heat · measure_absorbance · read_sensor · labelRefusal rule: if a plan needs a capability the environment lacks, the plan is REFUSED and recorded — never faked. A missing capability produces an honest "no," logged, rather than a pretend success.
contract signed ✓ (tamper-evident) plan → aspirate · dispense · measure_absorbance dispatch → env: HUMAN-TECH · wrote work order #… for a human technician awaiting recorded result → collectIf you'd asked for a capability HUMAN-TECH lacks, that plan would have been refused and recorded instead — no silent substitution.
restore as the fire alarm — it overwrites the live database. Pair a green health (exit 0) with a fresh, verified backup before any dispatch.ops health into your routine so a DEGRADED (exit 1) or CRITICAL (exit 2) blocks a dispatch until you've looked.Next tutorial → Tutorial 7 · Capstone: The Full Pipeline
This capstone assumes you've done Tutorials 1–6: you can launch science, you understand grounding and abstention, you've built a corpus and an agent, and you know the handoff lifecycle and its honest limits. Here we stay higher-level — you already know each tool — and focus on chaining them into one deliverable.
$ python -m symbolic_floor.campaign lymphoma
seeds: MYC · BCL2 · BCL6 · TP53 · … · frontier +20
You now have a ranked field of candidate targets grounded in the floor.
crispr. (Shown here with EGFR to illustrate the shape of a complete dossier.)
❯ crispr EGFR Ensembl ENSG00000146648 · PAM sites 995 · ClinVar pathogenic 251 UniProt P00533 · structures 5 · interactors 199
trials how a target-plus-indication pair tends to fare. The verdict is a grounded, hedged read — not a promise.
$ python -m symbolic_floor.trials EGFR "lung cancer"
38% → PROCEED WITH CARE
discover runs the hypothesize-through-discovery arc and reports a p-value; research pre-registers predictions, then returns a verdict with a confidence. Together they give you a finding you can defend on method, not vibes.
❯ discover hypothesize → … → discovery (with p-value) ❯ research pre-registered predictions → verdict + confidencePre-registration before result is what makes the verdict honest — the prediction can't be moved after the fact.
paper. Every claim in the output is traced back to its source in the floor.
$ python -m symbolic_floor.paper <journal.jsonl> academic write-up — every claim source-tracedBecause the floor abstains rather than guesses, anything unverified simply doesn't appear as a claim — the paper is honest by construction.
trials against several target/indication pairs and rank them by verdict before committing to a finding.Ready to prove it? Take the Certification exam and earn your mark on the full Symbolic Floor pipeline.
The Lois dashboard: the graphical front end that drives the floor. Everything the terminal does symbolically, this shows you visually — "every sentence walks back to a receipt."
Open perslis.com/peel/demo. This is the same floor you drive from the terminal, wearing a GUI. You ask questions in plain language, watch the knowledge graph light up, and click any fact to see the exact database it came from. It is the console that powers the back end for the floor — a window onto the graph, the reasoning, and the provenance.
| Region | What lives there |
|---|---|
| Left rail | Your data + its sources — Chats, PEEL (Harvest/Research tiles), Knowledge Categories, Research libraries, and Minds (which floor DB you're on). Vol VI·3 |
| Center | The knowledge graph + 8 tabs (Graph · Ledger · Notebook · Scientist · Vision · Calendar · Resolver · Trace) + the node legend. Vol VI·1 |
| Right rail | Chat with Lois — ask the floor anything, get grounded evidence with receipts, plus the composer toolbar. Vol VI·2 |
The top bar holds the DB selector (e.g. bio_floor.db · 116 edges), the 8 tabs, a find node… search, and the live edge count.
The public demo is a hosted snapshot with two real, model-free lanes wired to a live backend:
floor-proposer model (Ollama) — those run in your own lab / the terminal, not the public site.The knowledge graph is the floor made visible: typed nodes, typed edges, every one clickable back to its source.
Each dot is a node (a protein, gene, disease, structure, domain…); each line is a typed relation (affects, has_structure, interacts_with…). Click a node to pop its inspection card — its facts and the receipt for each. Colors follow the legend:
| Control | Does |
|---|---|
| Layout dropdown | 🌌 3D orbit · 🧬 helix · 🪐 sphere · 🎯 rings · ▦ classic 2D |
| auto-spin | rotate the 3D layout on/off |
| fit to view | frame the whole graph (also double-click) |
| Focus mode | hide the rails — graph only |
find node… | jump to a node by name/accession (e.g. P69905) |
| Tab | What it shows |
|---|---|
| Graph | the knowledge graph (default view). |
| Ledger | the hash-chained hypothesis ledger — pre-registrations, verdicts, confidence (see Vol II·3). |
| Notebook | the live research journal — what the floor did and found, in order. |
| Scientist | scientist-loop runs: hypothesis → predict → research → grade. |
| Vision | the visual lane — 3D molecules (ball-and-stick), structure viewers, cinematic renders. |
| Calendar | the science-list timeline — the notes that write themselves. |
| Resolver | name → accession binding (symbolic, no model) — see how "BRCA1" becomes P38398. |
| Trace | the canonical-37 PEEL tile trace for an accession — the full provenance record. |
The right rail is the floor's mouth. Ask it anything about a protein or gene; it answers only from evidence — and if it doesn't have the evidence, it goes and gets it.
❯ what evidence connects BRCA1 to breast cancer?
P38398 — 19 provenanced edges on the floor.
affects: breast_cancer, ovarian_cancer, fanconi_anemia …
has_part: brct_1, brct_2 · has_structure: 1T15, 1JNX, 1OQA
Every fact carries its receipt (open the node card).
↳ affects → disease:breast_cancer :: uniprot rest.uniprot.org/uniprotkb/P38398.json
| Button | Does | Where it runs |
|---|---|---|
| New conversation | start a fresh chat | client |
| Conversation history | your past chats | view |
| Document scan | find accessions/proteins in pasted text, show which are grounded | live |
| Sources | where the data came from (the databases) | view |
| Rules | the floor's law (the relation schema + vetoes) | view |
| Learnings | what the system has learned | view |
| Diagnostics | integrity invariants | view |
| Notebook / Session report | the live journal · a run summary | view |
| Raw data | the JSON behind the last reply (the receipts) | client |
| Export | download the conversation | client |
| Teach | add a cited manual edge | lab (write) |
| Hypothesis | claim a structure through the gate | lab (model) |
| Run a research session | the full loop, live in the Notebook | lab (model) |
| Mold | extend the runtime with a new capability | lab (write) |
floor-proposer model. The public site can't host a model or accept public writes, so those run in your own lab (the terminal / local dashboard). The research and graph-building you watch in the chat are model-free — that part is fully live here.Where the knowledge lives and where it came from — the honest supply chain of every fact on screen.
The PEEL panel lists the floor's tiles. Harvest shows harvested tiles per accession (e.g. P69905 · 15 — fifteen tiles); Research shows the research lane. Click any tile to inspect its full text, its 37 fields, and its source. "Click any tile card to inspect its dataset and lineage."
Search, Export, and Import the floor's typed categories. This is the honest import lane — paired with Document scan (Vol VI·2), you point the floor at the entities a document names, and it grounds them from the databases (never from the prose).
"Check which archives the wheel pulls from. A narrowed run says so in its trace." The connectors behind every fact:
| Library | Grounds |
|---|---|
| UniProtKB · rest.uniprot.org | gene, organism, location, disease, domain (root — always on) |
| UniProt FASTA | canonical residue sequence (content-addressed) |
| RCSB PDB · data.rcsb.org | experimental structures (confirmed per entry) |
| AlphaFold DB · alphafold.ebi.ac.uk | predicted structure |
| + ClinVar, Ensembl, ChEMBL, Reactome, KEGG, InterPro, VEP, PubChem | variants, genes, drugs, pathways, domains, chemistry (see Vol I·5) |
The bottom of the rail shows the active Mind (a floor DB): e.g. bio_floor.db · 116 edges · 118 nodes · 118 tiles · 372 KB. One Mind = one floor database. The DB selector in the top bar switches between them.
— END OF MANUAL — Perslis Research · Symbolic Floor · Rev 2026.09 · the web console, 100% mapped
Real screenshots of the live console at perslis.com/peel/demo — every core section numbered and explained, so the manual mirrors exactly what you see on screen.
1
2
3
4
5
6
bio_floor.db). Vol VI·3find node…. Vol VI·1Live screen capture · perslis.com/peel/demo · bio_floor.db.





perslis.com/peel/demo. You land on region 3 — the knowledge graph — with the three panels around it.what evidence connects BRCA1 to breast cancer and press Enter. Watch it answer with grounded facts — BRCT domains, structures 1T15/1JNX — each with a receipt.KRAS P01116. It has no record yet — so it researches it live from UniProt/PDB and builds the graph in ~2–4 seconds. No model, no fabrication.— END OF MANUAL — Perslis Research · Symbolic Floor · Rev 2026.09 · web console, screen-mapped & verified