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.
| What | Call | Why |
|---|---|---|
| the closed vocabularies this engine works in | POST /api/adapters/medicine-engine/vocabulary | relations, 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 permits | POST /api/adapters/medicine-engine/explainGate | the 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 made | POST /api/adapters/medicine-engine/judgeProposal | judges 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 install | POST /api/adapters/medicine-engine/listInvestigations | each 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 claims | POST /api/adapters/medicine-engine/listClaims | ALWAYS 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 did | POST /api/adapters/medicine-engine/listAgentRuns | one 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
explainGatefirst — read what the autonomy level you are about to pass actually permits.startInvestigationwith an investigationId, a plan (discovery · repurposing · target-validation) and that level.getInvestigationto 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
getInvestigation— readawaitingto see whether a STAGE or its WRITES need the decision.- Ask the user. Their answer is the decision; yours is not.
decideGatewith 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
listClaimsfor the investigation, narrowed by kindOf when you know which kind you want.listAgentRunsfor what produced them, including the turns that failed.- 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
- Read
simulatedon the ROW itself, never a badge or a label a surface chose to render. - Check the run's
mode:mockmeans 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.
| Tab | Path | Group | What it is for |
|---|---|---|---|
dashboard | - | The work | What needs you today — gates waiting, model warnings, and what each run has produced. |
investigations | - | The work | Every question this install is asking, and how far each has got. |
discover | - | The work | Start an investigation: pick a plan, pick an autonomy level, and read what each permits. |
graph | - | The science | Diseases, pathways, genes, proteins and candidates as one typed network. |
diseases | - | The science | The subjects under investigation, and what is asserted about each. |
targets | - | The science | Proteins and pathways proposed as points of intervention, and why each is one. |
candidates | - | The science | Interventions under evaluation, judged on separate dimensions — never one score. |
evidence | - | The evidence | Sources, appraised. Tiers are reported separately and never summed. |
simulations | - | The evidence | Computational runs. Everything here is SIMULATED and each row says so. |
experiments | - | The evidence | The bench half — proposed only. Nothing here runs an experiment. |
agents | - | The machine | Who ran what, when, and whether it worked. Failed turns included. |
autonomy | - | The machine | The permission table: what each level actually permits, refuses and gates. |
settings | - | The machine | The 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.