Docs
/
what you can do

Medicine

<!-- GENERATED by ops/tools/skill-sync — do not edit by hand. Run pnpm skills:sync. -->

<!-- GENERATED by ops/tools/skill-sync — do not edit by hand. Run pnpm skills:sync. -->

Medicine — what you can do

/admin/d/medicine · pillar ai

Run gated drug-discovery investigations — a typed biology graph, an append-only claim ledger, four scores that are never blended, and a human decision at every gate.

Fetch this, never remember it

These change per install and per release. Call for them - a list written here would be a future lie.

WhatCallWhy
the closed vocabularies this engine works inPOST /api/adapters/medicine-engine/vocabularyrelations, entity classes, claim kinds, evidence tiers, the four score fields, the autonomy levels and the operations. A value outside these resolves to NOTHING and the failure is silent — an empty result reads as "no answer", not "wrong word".
what each autonomy level actually permitsPOST /api/adapters/medicine-engine/explainGatethe whole permission table as data. Two operations are REFUSED at every level including the highest, because they assert something happened outside this process — that is not the top of a scale, it is a different state.
what would happen if a proposal were madePOST /api/adapters/medicine-engine/judgeProposaljudges one operation through schema, scientific and permission layers WITHOUT writing. A surface or an agent should be able to show the decision before asking for it.
the investigations on this installPOST /api/adapters/medicine-engine/listInvestigationseach row carries simulated and its record rollup. A run in status awaiting is asking a person for a decision — that is a result, not a failure.
an investigation's claimsPOST /api/adapters/medicine-engine/listClaimsALWAYS narrowed by investigationId — the ledger is append-only and grows with use, so an unnarrowed read is refused rather than allowed to scan. Each row carries its own provenance and its refId (what it is about, as distinct from the row's own id).
what the agents actually didPOST /api/adapters/medicine-engine/listAgentRunsone row per stage, FAILED TURNS INCLUDED — a timeline of successes cannot explain a gap. It carries a capped summary and counts, never the model's prose and never a chain of thought.

How to actually do things here

Written by hand, because the order and the traps are the part no file can derive.

Start an investigation

  1. explainGate first — read what the autonomy level you are about to pass actually permits.
  2. startInvestigation with an investigationId, a plan (discovery · repurposing · target-validation) and that level.
  3. getInvestigation to see where it stopped and what it is waiting for.

Trap: It STOPS at its gates and returns status: "awaiting". Report that as an answer and ask the user — do not retry with a higher autonomy level to make it continue.

Approve or reject a gate

  1. getInvestigation — read awaiting to see whether a STAGE or its WRITES need the decision.
  2. Ask the user. Their answer is the decision; yours is not.
  3. decideGate with the investigationId, approved, and the USER'S name in decidedBy.

Trap: NEVER put your own name in decidedBy. A gate exists so a person takes responsibility; an agent approving on its own behalf is the failure the gate was built to prevent. Approving a parked write APPLIES it; rejecting drops it and records the rejection.

Explain why the system believes something

  1. listClaims for the investigation, narrowed by kindOf when you know which kind you want.
  2. listAgentRuns for what produced them, including the turns that failed.
  3. Report the four scores separately, and say which values are simulated.

Trap: There is no overall score and there will not be. Report confidence, evidenceStrength, modelConfidence and experimentalValidation SEPARATELY. Averaging them hides the zero, and the zero is usually experimentalValidation — the one a reader most needs.

Say what is real and what is not

  1. Read simulated on the ROW itself, never a badge or a label a surface chose to render.
  2. Check the run's mode: mock means every row it wrote is simulated.

Trap: The default mode is mock, so on a fresh install EVERYTHING is simulated. Never restate a simulated value without saying so — the claim validator refuses a simulated record carrying a real DOI precisely so an echoed example cannot become a finding.

Tabs

Every one is a real URL. A tab with its own section below carries a real job.

TabPathGroupWhat it is for
dashboard-The workWhat needs you today — gates waiting, model warnings, and what each run has produced.
investigations-The workEvery question this install is asking, and how far each has got.
discover-The workStart an investigation: pick a plan, pick an autonomy level, and read what each permits.
graph-The scienceDiseases, pathways, genes, proteins and candidates as one typed network.
diseases-The scienceThe subjects under investigation, and what is asserted about each.
targets-The scienceProteins and pathways proposed as points of intervention, and why each is one.
candidates-The scienceInterventions under evaluation, judged on separate dimensions — never one score.
evidence-The evidenceSources, appraised. Tiers are reported separately and never summed.
simulations-The evidenceComputational runs. Everything here is SIMULATED and each row says so.
experiments-The evidenceThe bench half — proposed only. Nothing here runs an experiment.
agents-The machineWho ran what, when, and whether it worked. Failed turns included.
autonomy-The machineThe permission table: what each level actually permits, refuses and gates.
settings-The machineThe vocabularies this engine works in, and the boundaries it will not cross.

API

Mounted prefixes that serve this domain: /api/medicine

The full route table is leumas-capabilities/reference/api-routes.md.

Source .claude/skills/leumas-studio/reference/domains/medicine.md (no-git)markdownjson
Generated from the Leumas repository. Every page cites the file it came from.leumas.techllms.txt