Skip to main content

How dose.wiki substance articles are made

Substance articles begin as pipeline drafts compiled from ten selected harm-reduction and reference sites. Code extracts dose and duration tables. A large language model (LLM) drafts the narrative sections from word-for-word excerpts of those sources. Separate automated citation workflows find references and check whether they support the draft's claims.

We spent about a year building the pipeline, then months reviewing its output before publication. Every citation on the site was fetched and tested against the sentence it supports, and the markers that failed were removed, so those sentences now read citation needed. The human passes are further behind, in that some articles have had a full editorial read and no article has yet had a person re-check its citations claim by claim. Each article carries an Article Status panel recording which of those passes it has received, and the About page describes the project's history.

This page explains the production stages and publishes the extraction prompts and committed section prompts. Live section prompts can differ, and the citation and legality workflow prompts are not yet published here. Coverage is still incomplete, and any given article can contain an error. Reader feedback is the main way errors reach a reviewer: the report-an-issue box at the bottom of each article and the feedback form both go directly to the review queue, where an editor reads each message and decides whether a correction is needed. Editors make corrections in the site's Wikipedia-style editor. Every correction fixes the article and the next export of the dataset, which anyone can download and use as a starting point for their own encyclopedia.

00 What is in an article, and who makes it

Each section of a substance article is made by the method that suits its content. Code transcribes tables of numbers, and an LLM never paraphrases them. An LLM drafts narrative sections from word-for-word source excerpts. Research agents propose references and rebuild the legality sections against primary sources. People keep the judgment calls: classification trees, editorial notes, and review.

Two kinds of outside material feed the site. The first is archived reference pages, which are captured once and processed by the pipeline below. The second is live data read from other projects:

  • Effect listings link into the Subjective Effect Index, the taxonomy that Josie Kins created on Disregard Everything I Say in 2011.
  • Interaction ratings come from the drug-combination data that TripSit publishes as a JSON file on GitHub. This file is not the same source as the TripSit factsheet and wiki pages that the pipeline below archives and parses.
  • Reagent colors come from the ProtestKit API at the moment you open the page.

Trip reports are first-person accounts written by people. They are imported with attribution from the Effect Index corpus. Replications are the image and video recreations of subjective effects shown in articles and the gallery. They are human artwork, made by the replications community and by artists who have sent work to Josie Kins over the years. The site hosts them as educational material about subjective-effect documentation and credits their creators.

AI-drafted from excerpts (baseline)
Extracted by code (baseline)
Live API
Manual / curated (built on the baseline)
Per-section production methods
Article sectionMethodHow it is made
Summary
AI-drafted
50–80 word overview written by an LLM from the intro-text excerpts, under the summary prompt (readable in section 05 (AI synthesis & the prompts)).
Identification chemical names, SMILES, InChI, CAS
Extracted by code
curated
Chemistry identifiers merged from parsed sources (DrugBank, PsychonautWiki, Wikipedia) with chemical-name resolution. Provenance is tracked per identifier, and an editor checks the result.
Structure drawing the molecule image
auto layout
hand-drawn
A first layout is made from the SMILES string. Most drawings are then redrawn by hand or aligned to a shared class template to follow chemical drawing conventions (see section 03 (Scraping & parsing)).
Classification psychoactive / chemical classes
Extracted by code
curated
Class assignments come from parsed sources, and the classes themselves can be scientific or political. Editors hand-curate the site-wide classification trees.
Dosage tables
Extracted by code
Dose ranges per route parsed directly from TripSit, PsychonautWiki, and Erowid tables, under the lowest-upper-bound rule (section 03 (Scraping & parsing)).
Duration tables
Extracted by code
Onset / peak / offset values per route, parsed from the same sources.
Subjective effects
Mixed
Where Josie Kins wrote the original effect list for a substance, that list is restored as she wrote it. Otherwise the list is built from her effect taxonomy and the subjective-effects excerpts, with her own projects excluded as sources. Excerpts only fill documented gaps and never overwrite an existing list (section 05 (AI synthesis & the prompts)). Every effect links into the Subjective Effect Index, and an asterisk on an effect marks text she wrote herself.
Pharmacology
AI-drafted
Mechanism-of-action prose written from the pharmacology excerpts under the pharmacology prompt, the longest of the prompts.
Interactions
Extracted by code
Drug-combination risk ratings read from the JSON file that TripSit publishes on GitHub. They do not come from the archived factsheets.
Harm potential
AI-drafted
Toxicity, addiction, and risk prose written from the harm-potential excerpts under the harm potential prompt.
Tolerance
AI-drafted
Tolerance and cross-tolerance prose from the tolerance excerpts.
Legality
AI-drafted
Country-by-country legal status, now rebuilt entry by entry against primary legal sources by the deep-research workflow (section 06 (Citations & legality)). The first draft came from the legality excerpts like the other AI-written sections. Code also prepopulates the structured legal fields where sources state them plainly.
History & culture
AI-drafted
Discovery, medical history, and cultural context from the history-culture excerpts.
Reagent testing
live API
Color reactions fetched live from the ProtestKit API at page view, with stored static results as fallback.
Citations & references
workflow-proposed
structurally validated
References and markers proposed by LLM research agents for the six citable sections, then checked against the cited sources to determine whether each source supports its associated claim (section 06 (Citations & legality)).
Trip reports
human-written
First-person experience reports written by people, imported from the Effect Index corpus with attribution. The encyclopedia-building dataset records which reports informed each article.
Replications
human-created
curated
Image and video recreations of subjective effects, made by the replications community and by artists who have sent work to Josie Kins over the years. The Effect Index archive preserved much of it. Editors hand-curate each article's replication showcase. Each piece is credited with a source link where known. Rights stay with the artists. The license page covers the hosting terms.
Notes
manual
Editor-written remarks and caveats.

01 The ten source sites

We selected ten harm-reduction and reference sites for the baseline drafts, plus one live API. We keep internal working copies of the relevant pages for processing. Each article's source pages section links out to the original pages on the source sites themselves.

The working copies were captured in December 2025, and the pipeline reads the copy. A source site can change after our capture, so this list is a dated snapshot. Improvement after that date comes from editors, the citation workflows, and reader feedback (section 09 (Status & roadmap)).

The ten source sites
SourceWhat we take from itHow it is processed
PsychonautWikiDosage and duration tables, subjective effects by intensity, toxicity / interaction / tolerance prose, legal status, chemistry identifiers, pharmacology prose.
Extracted by code
excerpted
TripSit three feeds: factsheets and wiki (scraped pages), combination data (published JSON on GitHub)From the factsheets and wiki: dosage tables, duration by route, effects lists, tolerance prose, classifications. From the combination data: the drug-combination interaction chart (dangerous / unsafe / caution / low-risk ratings).
Extracted by code
excerpted
ErowidDosage and duration ranges, effects descriptions, legal status, harm-reduction and safety warnings, general narratives.
Extracted by code
excerpted
WikipediaGeneral overviews, history, chemistry identifiers. Also used to discover citable references, but never cited as a reference itself (section 06 (Citations & legality)).
Extracted by code
excerpted
DrugBankChemical data (molecular weight, formula, CAS numbers), pharmacology descriptions, drug and food interactions.
Extracted by code
excerpted
Isomer DesignEffects and experience prose, chemical reference data.
excerpted
SaferPartyHarm reduction guidance, risk descriptions, safer-use notes.
excerpted
The Drug ClassroomEducational overviews, mechanism and effects descriptions.
excerpted
Disregard Everything I SaySubjective effect narratives and substance overviews.
excerpted
Drug Users BibleDosage, effects, and legality information, plus street-name nomenclature.
excerpted
ProtestKit live APIReagent test color reactions (Marquis, Mecke, Mandelin, Simon's, Froehde, Liebermann, Ehrlich, and others), fetched at page view through a rate-limited proxy with a static fallback.
live API
Stored, not yet used Bluelight, D. M. Turner, NervewingArchived with the working copies, but no parser reads them yet. They feed no article content.
archived only

02 The pipeline

Of the four methods in section 00 (What is in an article), the two automated methods run as parallel tracks over the source pages. The deterministic track parses structured data such as dosage tables and interaction matrices. The AI track turns the prose parts of the sources into excerpt documents, then into draft sections. Human and live-API methods sit outside this pipeline and act on its output.

Both tracks fill one draft article. After publication, the citation, audit, and review workflows continue to work on the article. They add markers, evidence records, corrections, and status metadata. Published coverage varies by article. The diagram describes the intended relationships between stages, and articles publish before every stage has run.

Source material / external APIs
Automated processing
Stored data
Human review
Published output
Content pipeline: source pages through parsing/extraction, synthesis, human review, citation, and publication

03 Scraping & parsing

We scraped the source sites once and stored the pages as plain-text working copies, one per substance. They are for internal processing; section 01 (The ten source sites) gives the capture date.

From there, deterministic parsers read that text and extract the structured data: dose ranges by route, duration values, interaction ratings, chemical identifiers, and legal classifications. A parser is deterministic code. Each site needs its own, because each site structures its pages differently.

Table parsers

TripSit factsheets and PsychonautWiki carry the most structured data: dose tiers (threshold / light / common / strong / heavy) per route of administration and onset / peak / offset durations. The parsers read these tables directly and transcribe the numbers as published. A parser does not choose between sources that disagree; the merge step does that later, when the parsed tables enter the article.

The merge applies the lowest-upper-bound rule. Among weight-unit sources, it keeps the entry with the lowest comparable upper bound. The comparison value is the heavy minimum when the source gives one. If not, it falls back to the strong maximum, then the strong minimum, then the common maximum. If two sources tie, the source that fills more dose tiers is used. If no source gives weight units, a fixed source-priority order decides. The preference for a lower comparable bound is intended as a conservative safety measure.

A worked example: if one source lists a heavy oral dose starting at 25 mg and another lists it starting at 35 mg, the article takes the 25 mg source's whole table for that route.

The combination chart

The combination ratings do not come from the archived TripSit pages. TripSit publishes its combination chart as a JSON file on GitHub. After every page parser runs, a separate step reads that file and maps its class-based entries onto substance pairs. That step produces the interaction ratings (dangerous, unsafe, caution, low-risk) shown where an article has matching interaction data and on the Interactions hub.

Chemistry identifiers and structure drawings

dose.wiki merges SMILES strings, InChI keys, CAS numbers, and molecular data from DrugBank, PsychonautWiki, and Wikipedia. Provenance is tracked per identifier, and chemical-name resolution fills the gaps.

The molecule image is made in two steps. A SMILES string says which atoms are joined and how, but it does not say how the molecule should be drawn. Chemical families have conventional drawing styles that automatic layouts often do not follow. Each substance therefore starts from an automatic 2D layout. Then a person redraws it by hand, or aligns it to a template that a person drew once for the whole chemical class. The saved result is an editable MOL block, and the image is rendered from that. Each drawing records whether it is automatic, hand-drawn, or template-aligned. We intend to automate more of this process over time.

The drawing tool and the page image both use one engine: a dose.wiki fork of the open-source OpenChemLib library, with small additions for fine rotation and bold bonds. The published image matches what the editor drew. A check compares the molecule before and after each edit, so a redraw cannot quietly turn it into a different molecule.

Prose-heavy sources

Erowid, Isomer Design, SaferParty, The Drug Classroom, Disregard Everything I Say, and the Drug Users Bible contribute mostly narrative text. Their parsers preserve labeled sections in each collected-source working copy. The extraction stage (section 04 (Verbatim excerpts)) reads those documents and decides which passages matter.

04 Verbatim excerpt extraction

The source pages are long, and most of any page is irrelevant to any one section. Before any writing happens, an extraction pass reads every working copy and copies the passages relevant to each topic, word for word.

An excerpt document holds exact copies of source text: complete paragraphs, formatting preserved, grouped under a heading for each source. The result is one excerpt document per substance per topic, across eight topics: intro text (which feeds the summary), dosage & duration, subjective effects, pharmacology, tolerance, harm potential, history & culture, and legality.

Topic-by-topic extraction

For each topic, the LLM reads the complete collected-source working copy and produces an excerpt document directly. It copies qualifying passages under their original source headings and uses the prompt's marker when a source has no relevant material.

Every source keeps its heading in the output even when it yielded nothing. Those headings carry a marker line such as No tolerance content found., which keeps "we looked and there was nothing" distinct from "this source was skipped".

Because the model emits the excerpt text, its output is not trusted on instruction alone. The prompt requires character-for-character copying, and the completed file is rejected if a passage cannot be found under the same source heading in the working copy.

Audited after extraction

A script then audits every finished excerpt document. It requires that each passage appears in the working copy, under the same source heading, as an exact substring, and rejects a file that drifts.

Tracing drafts to sources

The excerpt documents are the only material the writing stage is allowed to see. These word-for-word copies let a reviewer check draft claims against specific passages on the source pages. Extraction errs toward over-inclusion. The instruction is to keep anything even tangentially relevant, rather than risk losing safety-critical information.

2C-B intro-text excerpt

Example: the 2C-B intro-text excerpt document

The 2C-B example below shows how source passages are grouped before drafting, so readers can inspect the extraction method. It is the working file for 2C-B's intro-text topic: verbatim passages grouped under source headings. The summary section of the 2C-B article was written from this document and nothing else.

# 2C-B - Intro Text Quotes

> Verbatim extractions from source articles. Generated 2026-01-15.

---

## Source: Disregard Everything I Say

2C-B (4-bromo-2,5-dimethoxyphenethylamine) is a psychedelic phenethylamine of the 2C-x family. It was first synthesized by Alexander Shulgin in 1974.

This substance first saw use among the psychiatric community as an aid during therapy. It was considered one of the best drugs for this purpose because of its short duration, relative absence of side effects, and comparably mild nature.

Like many 2c-x substances, this drug is a highly dose sensitive psychedelic known for its entactogenic effects, bright visuals, and intense body load. This substance is often described by users as feeling half way between LSD and MDMA. Many reports suggest that while 2C-B’s entactogenic effects are less pronounced than MDMA, the visual effects are described as more pronounced and colourful.

---

## Source: Drug Users Bible

- **Common Nomenclature:** 2,5-dimethoxy- 4 - bromophenethylamine
- **Street & Reference Names:** Nexus; Bees; Venus; 2cb

2C-B was first synthesised by Alexander Shulgin in 1974 and became one of his most popular creations. It was initially used in psychiatric therapy, before emerging as a popular recreational drug.

For a period in the late 1980s it was sold as a legal alternative to MDMA, but generally it is now perceived more accurately; as a chemical which induces its own unique experience.

---

## Source: Erowid

2C-B is a synthetic psychedelic that first gained popularity as a legal ecstasy replacement in the mid 1980s. It is generally considered to be somewhat 'gentler' than LSD or mushrooms, being less prone to catalyzing dissociated freak-outs or overwhelming panic attacks at normal recreational doses. 2C-B is also known for the strong body component of its effects which are alternately described as pleasurable energy or a 'sense of being in the body', and by others as an unpleasant 'buzzing' or body-load.

2C-B is sometimes chosen for use in psychedelic psychotherapy because its short duration and less 'pushy' character.

## Chemistry
4-Bromo-2,5-dimethoxybenzeneethanamine (2C-B) is a synthetic chemical in the phenethylamine class. It is related structurally to mescaline, DOB, and distantly to MDMA.

---

## Source: PsychonautWiki

**4-Bromo-2,5-dimethoxyphenethylamine** (also known as **Nexus** , **Bromo Mescaline** , **BDMPEA** , **Venus** , and **2C-B** ) is a novel [psychedelic](https://psychonautwiki.org/wiki/Psychedelic) substance of the [phenethylamine](https://psychonautwiki.org/wiki/Phenethylamine) class. It is perhaps the most well-known member of the [2C-x family](https://psychonautwiki.org/wiki/2C-x_family) , which are structurally related to the classical psychedelic [mescaline](https://psychonautwiki.org/wiki/Mescaline) .

2C-B was discovered in 1974 by the American chemist [Alexander Shulgin](https://psychonautwiki.org/wiki/Alexander_Shulgin) , who was investigating psychedelic phenethylamines derived from [mescaline](https://psychonautwiki.org/wiki/Mescaline) .

User reports have described the effects of 2C-B as moderate, warm, colorful, and highly sensual. Similar to [mescaline](https://psychonautwiki.org/wiki/Mescaline) , it is described as possessing a less serious or grandiose headspace than [tryptamines](https://psychonautwiki.org/wiki/Tryptamines) like [LSD](https://psychonautwiki.org/wiki/LSD) or [psilocybin mushrooms](https://psychonautwiki.org/wiki/Psilocybin_mushrooms) , placing greater emphasis on the visual and tactile domain.

## Chemistry

2C-B, or 2,5-dimethoxy-4-bromophenethylamine, is a [substituted phenethylamine](https://psychonautwiki.org/wiki/Substituted_phenethylamine) .

---

## Source: The Drug Classroom

2C-B is a psychedelic that was created in the 1970s. It’s a member of the 2C family ( [2C-E](http://thedrugclassroom.com/video/2c-e/) , [2C-I](http://thedrugclassroom.com/video/2c-i/) , etc) and along with having psychedelic effects, 2C-B has aphrodisiac qualities.

2C-B = 2,5-dimethoxy-4-bromophenethylamine; Nexus; Eros

---

## Source: TripSit Factsheets

## Classification
- **Categories:** psychedelic, empathogen, common
- **Also known as:** bees, nexus, 2cb, 2cb, 2-cb

---

## Source: TripSit Wiki

**2C-B** is a [psychedelic](https://wiki.tripsit.me/wiki/Psychedelics) drug of the [2C-X family](https://wiki.tripsit.me/wiki/2C-X). Effects are often described as being more easily managed than other psychedelics; it is often compared to a mixture of a LSD and MDMA. 2C-B is also known for the strong body component of its effects.

---

## Source: Wikipedia

2C-B, also known as 4-bromo-2,5-dimethoxyphenethylamine or by names such as Nexus or Erox, is a psychedelic drug of the phenethylamine and 2C families. It is a synthetic analogue of mescaline. The drug is used as a recreational drug and is usually taken orally. 2C-B produces hallucinogenic, mild stimulant, and mild entactogenic-like effects. Its hallucinogenic effects at typical doses are milder than those of other psychedelics like LSD or psilocybin.

2C-B was developed by Alexander Shulgin in 1974 and was described by him in the scientific literature in 1975.

The extraction prompts

All eight extraction prompts appear below. This page reads them straight from content/prompts/extraction/ when it builds, so they are the same files the pipeline runs.

The pipeline calls the LLM once per substance and topic. The harness loads that category's prompt directly and sends it with the complete collected-source working copy. The model is not named here because the choice changes over time. Changing the model can alter which passages are kept, while the prompt and post-extraction audit require the retained passages to preserve source wording.

The eight share one skeleton: hard verbatim rules, an input format, and empty-result handling. They differ mainly in their "what counts" sections.

Each prompt below defines both what counts as relevant for its topic and the excerpt document it must return. The output keeps source headings in input order, copies qualifying text verbatim, records empty results explicitly, and adds no commentary to source passages.

Extraction prompt: intro text (7 KB)

This is the complete category prompt loaded by the extraction harness.

# Intro Text Extraction Prompt

Extract introductory content from the supplied collected-source file for one psychoactive substance. Use only the supplied source documents. Extraction preserves source text verbatim; it is not summarisation or article writing.

## 1. Identify sources

The input begins with the substance title and a Collected Sources suffix; each document begins with `## Source: <Source Name>` and is separated from the next by `---`. Sources vary in length and quality.

Account for every source, retaining its exact name and input order. Keep each passage attached to its originating source.


## 2. Decide which complete units qualify

Read every source for passages that orient a reader: what the substance is, its family, and how it is encountered. Judge a paragraph by its main subject, then include or skip it whole.

| Include introductory content | Boundary |
| --- | --- |
| Defining lead sentence, primary name, chemical class or family, psychoactive class | Include definitions and classification, rather than detailed mechanism or receptor data. |
| Common, IUPAC or substitutive names; brands, street names and synonym lists | Copy labelled name lines and lead sentences where present, rather than hunting body text for scattered name mentions. |
| One- or two-sentence characterisation of what the substance does; comparisons to related substances | Keep lead-paragraph characterisation, rather than named-effect lists, descriptions or trip-report phenomenology. |
| Physical form, colour, taste, smell, how it is encountered, and general potency | Dose tiers, numerical dose ranges, mg or mg/kg figures, and effect timing belong to dosage-duration. |
| General recreational, medical, veterinary, therapeutic or traditional use context | A paragraph mainly about clinical dosing or timing is excluded whole, even if it opens with general use context. |
| One-sentence origin note: first synthesis, discoverer, date or traditional origin | Multi-era timelines, cultural reception and discovery narratives beyond one sentence belong to history-culture. |
| Prominent safety framing in the source's own lead | Detailed LD50, addiction, dependence, overdose, organ damage and drug interactions belong to harm-potential. |
| Factsheet header lines such as `**Categories:**`, `**Also known as:**`, `**Synonyms:**`, `**Summary:**`, `**Street & Reference Names:**`, `**Form:**`, `**IUPAC Name:**` | Preserve the source's labels and content as written. |

Also exclude paragraphs mainly about mechanism, receptor binding, half-life, bioavailability or metabolism (pharmacology); tolerance build, decay or cross-tolerance (tolerance); and country legal status, scheduling, court cases or analogue-act discussion (legality).

The decision question is whether the unit mainly answers what the substance is. A definitional passage whose introductory relevance remains uncertain is included. This uncertainty rule does not turn a paragraph mainly about another section's topic into introductory content.

Inspect the lead before the first subheading and sections named Summary, Overview, Description, About, Basics, Classification and Chemistry. Chemistry may contain a separate orienting structural-class paragraph. Before concluding that Wikipedia, PsychonautWiki, DrugBank or Erowid has no introductory content, re-read its first paragraphs.

Most sources yield one to four paragraphs. Treat a longer selection as a reason to reconsider each paragraph's main subject, not as a length cap.

Continue when every candidate has an inclusion or exclusion decision and all likely locations have been examined. A source with no qualifying content is a valid result.

## 3. Preserve the selected material

- Select complete paragraphs, list items, table rows, or sections including their heading. A paragraph stays whole; never trim it to a qualifying sentence.
- Preserve every character: spelling, capitalisation, punctuation, markdown, inline links, footnote markers and within-line whitespace. Copy numbers, units and chemical names without conversion, rounding or reformatting.
- Keep claims within their original source. Do not supply definitions, classes, dates or comparisons from memory, a related substance, or another source block.
- Each content line is copied from that source or is blank. The only authored text is the document metadata, source headings, separators and empty-source markers specified in step 4. Add no labels, quotation marks, formatting or commentary to passages.

Continue when all selected units retain their original wording and provenance. Each passage must match its source character for character; the downstream substring check rejects any drift.

## 4. Emit the excerpt document

Output this excerpt document body, without surrounding code fences, preamble or closing commentary:

```
# <Substance Title> - Intro Text Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted text>

---

## Source: <Source Name>

*No intro content found.*

---
```

Use the substance title from the input's first line, without its Collected Sources suffix, and today's date as `YYYY-MM-DD`. Emit exactly one `## Source:` heading for every input source, with its exact name and original order. End every source block with `---`.

For a nonempty document with no qualifying content, place exactly `*No intro content found.*` alone under its source heading. For an empty document, use exactly `*No content available for this source.*`. An all-empty extraction is complete and successful.

## 5. Check completion

Before responding, confirm:

- Every source has been examined and is represented once, in order, including empty results.
- Every selected unit passes the main-subject decision, with the definitional uncertainty rule applied.
- Every selected unit is complete and source-faithful, and every qualifying candidate is included.
- The response follows the excerpt-document format exactly.
- The following downstream needs have been checked wherever the source supplies introductory evidence. They guide coverage, not output organisation or invention.

The downstream generator fills `summary`, a 50–80 word opening paragraph, from these excerpts:

| Need | Source material |
| --- | --- |
| What it is | Chemical class and primary name, mirroring `classification.chemical_class` |
| Psychoactive class | Primary effects category, mirroring `classification.psychoactive_class` |
| Origin | Attested first synthesis, discoverer, date or traditional use |
| Notable characteristics | What distinguishes the substance from similar ones |
| Prominent safety framing | Safety context carried by the source's own lead |

Nomenclature lines also feed `identification.*` fields rendered above the summary. Preserve them in source order; do not sort, label or restructure excerpts around downstream fields.
Extraction prompt: dosage & duration (9 KB)

This is the complete category prompt loaded by the extraction harness.

# Dosage & Duration Extraction Prompt

You are given one staged source file containing every collected source document for a single
psychoactive substance. Transcribe the dosage and duration passages out of it, verbatim, into the
output format below.

This is transcription, not translation. You copy characters. You do not summarise, rewrite,
normalise, convert, reorder, complete, or correct anything. Your output is machine-verified by
substring match against the staged source file: a passage that does not appear
character-for-character in the source fails the check and the whole file is rejected.

## The three rules

**1. Copy exactly.** Every digit, unit, symbol, route name, label, space, and punctuation mark comes
across as written. `15-25mg` stays `15-25mg`, not `15–25 mg`, not `15 to 25 mg`. `45 mg +` stays
`45 mg +`. `1 Hours / 6 Hours` stays `1 Hours / 6 Hours`. `≤0.3 mg` keeps the `≤`. `00:45 – 01:30`
stays in clock notation. Never convert grams to milligrams, hours to minutes, or mg/kg to a total.
Never round. Typos, doubled spaces, misplaced asterisks (`*Onset : *20 - 90 minutes`), and OCR
damage (`7 00mg`) are copied intact, they are the source's, not yours to fix.

**2. Never fill a gap.** If a source gives Light, Common, and Strong but no Threshold or Heavy, you
transcribe three tiers. If it gives oral doses only, you transcribe oral only. If it gives onset but
no total duration, you transcribe onset. Do not supply the missing tier, route, or stage from
another source in the file, from a related substance, or from your own knowledge. An incomplete
table is the correct output for an incomplete source. Never merge two sources' tables into one.

**3. An empty result is a correct result.** Many sources say nothing about dosage or duration,
legal-status pages, chemistry stubs, pharmacology-only entries. Writing
`*No dosage or duration content found.*` under every heading is a complete, successful run.
Inventing a plausible milligram figure is the only real failure, and it is a serious one: these
numbers reach a published dose table that people use to decide what to take.

## Input format

```
# <Substance Title>: Collected Sources

## Source: TripSit Factsheets

<full document text>

---

## Source: Wikipedia

<full document text>

---
```

Source count varies from two to a dozen. Read every source document in full. Dosage and duration
text is not confined to sections labelled "Dosage" or "Duration", it also appears in Quick
Reference blocks, Timeline sections, Use and effects prose, summaries, warnings, and footnotes.

## Output format

Reproduce this exactly, substituting the substance title from the input header, today's date, and
one block per source.

```
# <Substance Title> - Dosage & Duration Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted text>

---

## Source: <Source Name>

*No dosage or duration content found.*

---
```

- One `## Source:` heading per source in the staged file, in the same order, using the same source
  name. Every source gets a block, including the ones that yielded nothing. Never merge, reorder,
  rename, or omit a source.
- A source with nothing relevant gets `*No dosage or duration content found.*` alone under its
  heading.
- A source that was present but had no document text at all gets
  `*No content available for this source.*`
- Every block ends with a `---` rule.
- Output the file body only. No code fences around it, no preamble, no closing commentary.

## What counts as dosage content

- Dose tiers with numbers: threshold, light, common, moderate, strong, heavy, and any other tier
  label the source uses (Initial, Maintenance, Range, museum level, plateau).
- Route-specific doses: oral, insufflated, smoked, vaporised, IV, IM, sublingual, buccal, rectal,
  transdermal, inhaled. Bioavailability figures stated alongside a route.
- Weight-based (`mg/kg`, `.15 - .3 mg / lb`) and daily (`mg/d`) doses.
- Non-milligram units in a tiered structure, `1-2 seeds`, `1-3 lungs`, `2 drinks`, `0.066 gram`.
  The unit does not matter; the dose statement does.
- Dose stated in prose: "A standard oral dose of 2C-B is between 10 and 40 mg."
- Dose form and preparation notes that change the dose: blotter, pill strength, extract ratio,
  THC percentage, purity.
- Ceiling doses, maximum recommended doses, dose-response remarks, individual-variation caveats,
  dosing warnings.

## What counts as duration content

- Onset, come-up, peak (also "plateau", "strongest"), offset (also "coming down"), after-effects,
  total duration, any time unit, including seconds. Per-route timing differences.
- Time-to-peak-plasma and half-life values.
- Redose intervals and redose timing advice.
- Variability notes ("On a full stomach, onset can be considerably slower.").

## What does not count

Mechanism, receptor binding, metabolism pathways, chemistry, subjective effect descriptions, legal
status, and tolerance-reset timelines measured in days or weeks. These have their own extraction
passes.

Worked boundary:

- **Include**: "Doses above 35 mg can be experienced as unpleasantly strong even by experienced
  users." A dose figure with a consequence.
- **Exclude**: "Alprazolam binds to the benzodiazepine allosteric site of the GABA-A receptor."
  No dose, no timing.
- **Include, unchanged**: `- **Maximum Dose Experienced:** 80mg+30mg+55mg`. This is a personal
  consumption log, not a harm-reduction tier, but a reviewer needs to see it. Carry the label with
  it so it stays identifiable as a log. Never rewrite it into a tier.

When you are unsure whether a passage belongs, include it. A human reviews this file. An extra
paragraph costs nothing; a missed dose figure is invisible.

## Carrying tables and lists across intact

Numbers without their route are unusable and unsafe. Whenever you copy a dose or duration table,
copy the headings that identify it, the section heading (`## Dosage`, `## Duration`, `## Timeline`,
`## Quick Reference`) and the route or form heading (`### Oral`, `#### Intranasal`, `**Oral**`,
`**Dosage (insufflated)**`, `### Hawaiian Baby Woodrose Seeds`).

- **Pipe tables**: copy every row, including the `| --- | --- |` separator row and any repeated
  header rows. Do not convert a table into a list.
- **Bold- or italic-label lists**: copy the label, its markers, its colon, and its spacing exactly:
  `- **Common:** 15-30mg`, `*Threshold :* 2-5mg`, `*Light  :* 5-15mg`.
- **Row order**: keep the source's order even when it is odd. TripSit lists tiers alphabetically
  (Common, Heavy, Light, Strong); transcribe them alphabetically. Never re-sort into
  threshold-to-heavy order.
- **Embedded data structures**: copy them raw. TripSit duration lines such as
  `- **Onset:** {'_unit': 'minutes', 'Insufflated': '1-10', 'Oral': '20-75', 'Rectal': '5-20'}`
  are transcribed exactly as printed, not unpacked into per-route lines.
- **Multiple tables per source**: a source giving separate tables for oral, insufflated, and IV
  gets all three, each under its own heading, in source order.
- **Prose around a table**: a warning or note sitting inside the dosage section
  (`*Warning!!! (2C-B insufflation is extremely painful)*`) comes across with the table.
- **Mid-paragraph facts**: a dose figure embedded in a paragraph about something else brings the
  whole paragraph. Never truncate mid-sentence.

## Schema field mapping

The downstream generator fills these fields. Use the mapping to recognise relevant text, not to
relabel it. Source labels are transcribed as the source wrote them.

**Dosage** (`dosage.routes[]`)

| Field | Source text that feeds it |
|---|---|
| `route` | The route heading above the table |
| `dose_ranges.threshold` | Threshold |
| `dose_ranges.light` | Light |
| `dose_ranges.moderate` | Common, Moderate |
| `dose_ranges.strong` | Strong |
| `dose_ranges.heavy` | Heavy |
| `bioavailability` / `bioavailability_notes` | Route-specific bioavailability percentages |
| `notes` | Ceiling and maximum doses, dose forms, purity, warnings, variation caveats |

There is no maximum-dose tier; ceiling and maximum doses are transcribed as prose and land in
`notes`. `dosage.plateau_dosing` exists only for DXM-style plateau tables (`first_plateau` through
`fifth_plateau`, each with `min`, `max`, `unit`, `effects`), transcribe plateau tables in full,
including the effect description attached to each plateau.

**Duration** (`duration.routes[]`)

| Field | Source text that feeds it |
|---|---|
| `route` | Per-route duration heading |
| `stages.onset` | Onset |
| `stages.come_up` | Come up, Coming Up |
| `stages.peak` | Peak, Plateau, Strongest |
| `stages.offset` | Offset, Come down, Coming Down |
| `stages.after_effects` | After effects, Normal After Effects |
| `stages.total_duration` | Total, Duration, Total Duration |
| `half_life` / `half_life_notes` | Elimination half-life values and ranges |

## Before you finish

- Every source in the staged file has exactly one block, in input order.
- Every block ends with `---`.
- Every number, unit, and label you wrote can be found character-for-character in the staged file.
- No tier, route, or stage appears in your output that was absent from that source.
Extraction prompt: subjective effects (8 KB)

This is the complete category prompt loaded by the extraction harness.

# Subjective Effects Extraction

You are given one staged source file covering a single psychoactive substance. Copy, verbatim, every
passage describing what taking the substance feels like. Produce one output file. Do nothing else.

This is selection and copying, not writing. You never compose a sentence of your own.

## Hard rules

1. **Character-for-character.** Every passage you output must appear in the staged file exactly as you
   reproduce it, same wording, punctuation, curly quotes, em dashes, capitalisation, spelling mistakes,
   numbers, and units. A script re-checks each passage against the staged file by exact substring match.
   One altered character fails the file.
2. **Never join.** Each passage is one contiguous run of source text. Passages separated in the source
   stay separated in your output, one blank line between them. Joining two manufactures text that exists
   nowhere in the source.
3. **Complete units.** Copy whole paragraphs, list items, table rows, sentences. Never begin or end
   mid-sentence. Keep the source's markdown: headings, `-` bullets, bold, `>` markers, table pipes.
4. **Over-include.** Unsure whether a passage counts? Include it. A human reviews this file afterwards;
   an extra paragraph costs them a second, a missed one is invisible forever.
5. **Never supplement.** You know a great deal about these substances. None of it may enter the file. If
   the sources describe no visuals, the file describes no visuals.
6. **An empty result is a correct result.** Many sources are chemistry or pharmacology pages carrying no
   experiential content at all. A file whose every block reads `*No subjective effects content found.*`
   is a successful run. Writing one plausible paragraph to avoid an empty-looking file is the only real
   failure here, and it poisons a published article.

## Input

The staged file concatenates every collected source document for one substance:

```
# <Substance Title>: Collected Sources

## Source: TripSit Factsheets

<full document text>

---

## Source: Drug Users Bible

<full document text>

---
```

Two to a dozen sources, ranging from a two-line factsheet to a book chapter. Read each in full: relevant
material turns up outside "Effects" headings, in overviews, summaries, comparisons, mid-paragraph asides.

## Output

Emit the file body only. No code fences, no preamble, no closing commentary.

```
# <Substance Title> - Subjective Effects Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted passages>

---

## Source: <Source Name>

*No subjective effects content found.*

---
```

- Take `<Substance Title>` from the staged file's first heading, exactly as written.
- One `## Source:` block per source in the staged file, **in the staged order, including sources that
  yielded nothing**. Never merge, reorder, or omit a source. Reproduce each source name exactly.
- A source with no experiential content gets `*No subjective effects content found.*` alone.
- A source whose document is empty gets `*No content available for this source.*`
- Every block ends with a `---` rule.

## What counts

Text describing what a person perceives, feels, thinks, or does under the substance, as clinical prose,
a bulleted effect list, or first-person narrative:

- **Physical**: body high, tingling, warmth, chills, heaviness, stimulation or sedation, physical
  euphoria, nausea, appetite, pupil dilation, sweating, tremor, coordination, muscle tension, perceived
  heart rate, pain perception, energy, body load.
- **Cognitive**: thought acceleration, deceleration, or looping; time distortion, memory effects,
  introspection, mood lift, anxiety, paranoia, confusion, delusion, ego suppression or dissolution,
  unity, empathy, sociability, focus, creativity, déjà vu.
- **Visual**: colour and acuity enhancement; drifting, melting, breathing, morphing, tracers,
  after-images, depth and perspective distortion, texture repetition; open- and closed-eye geometry and
  its style, complexity, and intensity; internal and external hallucinations, entities, transformations.
- **Other senses**: sound enhancement, distortion, and hallucination; music appreciation; tactile,
  smell, taste, and synaesthetic effects.
- **States and arc**: mystical, near-death, out-of-body, hole, and peak experiences; how effects rise,
  peak, plateau, and fade, and what the comedown and afterglow feel like.

Receptor pharmacology, metabolism, dose tables, duration figures, legality, chemistry, and history belong
to other sections. When one paragraph carries both, copy the whole paragraph.

## Trip reports

First-person experience prose is the richest material this section gets, and it arrives as long
unstructured narrative. Work through it paragraph by paragraph.

**Copy** any paragraph describing perception, sensation, mood, thought, or hallucination, including
timestamped entries, taking the timestamp label along with the paragraph it prefixes, since it is part of
that line. Copy comparative descriptions ("similar to X but with more…") and temporal ones ("at the
peak…", "as it wore off…"). Keep the author's voice, hedges, and asides intact.

**Leave out** paragraphs that are purely logistics or scene-setting: sourcing and price, weighing and
preparation, route and timing of ingestion, who was present and where, unrelated events during the
experience, plans for future trials.

**Carry the sentence.** An effect named inside a longer sentence travels with that sentence, never lifted
out as a phrase. The downstream generator needs a name *and* descriptive prose per effect; a bare keyword
list gives it nothing to describe and cannot be traced to the source.

### Worked examples

Copy whole, timestamp included:

```
**T+2:30** - Content and happy enough, although not tripping high or particularly intensively. The shivers and chills have largely dissipated and there is no perceptible discomfort in terms of body load. Skin feels relatively sensitised, in a strange entactogenic sort of way.
```

Skip, logistics and setting, no effect described:

```
The material was weighed on a milligram scale and taken orally on an empty stomach at 9pm, with a trusted friend present as a sitter.
```

Copy the entire sentence:

```
As the effects intensify, a wide variety of perceptual changes may occur; pupil dilation, visual patterning and movement, mental stimulation, new perspectives, feelings of insight, emotional shifts (mood lift or introspection), anxiety and confusion.
```

Reducing that to `pupil dilation, visual patterning and movement, mental stimulation` is wrong twice
over: it is a fragment, and it drops the qualification that these arrive as effects intensify. And if
that sentence sits three paragraphs of setting away from the next effects paragraph, output both with a
blank line between them rather than closing the gap.

## Schema field mapping

The generator reading this file fills the substance's `subjective_effects` section. Every leaf effect
needs a short name *and* a descriptive sentence, which is why prose matters more than effect names alone.

| Schema field | What to look for |
| --- | --- |
| `notes.overview` | Overall character of the experience; how a source summarises it |
| `notes.physical`, `notes.cognitive`, `notes.sensory` | Category-level summary prose |
| `physical` | Named body effects with descriptions |
| `cognitive` | Named thought, mood, memory, time, and ego effects with descriptions |
| `sensory.visual` | Enhancements, distortions, geometry, hallucinatory states |
| `sensory.auditory` | Sound enhancement, distortion, hallucination, music appreciation |
| `sensory.tactile`, `sensory.olfactory`, `sensory.gustatory`, `sensory.multisensory` | Touch, smell, taste, synaesthesia |
| `progressive_stages` | Onset, come-up, peak, plateau, offset, afterglow, timestamped trip-report entries land here |
| `attribution` | Author, publication, or byline attached to a quoted experience |
Extraction prompt: pharmacology (7 KB)

This is the complete category prompt loaded by the extraction harness.

# Pharmacology Extraction Prompt

Extract every pharmacodynamics or pharmacokinetics passage from the supplied collected-source file for one substance. Use only the supplied documents. Extraction preserves source text verbatim; it is not summarisation, synthesis or rewriting.

## 1. Identify sources

The staged file begins with the substance title and a Collected Sources suffix; each document begins with `## Source: <Source Name>` and is separated from the next by `---`. Source count, length and quality vary.

Account for every source, retaining its exact name and input order. Keep each passage attached to its originating source.


## 2. Find and classify every pharmacology passage

Read each source end to end. Relevant material may appear under Pharmacology, Chemistry, Mechanism of Action, Absorption, Metabolism, Effects or Summary, or in infobox tables and image captions.

### Pharmacodynamics: target action and mechanism

Include passages covering:

- Receptor or transporter agonism, antagonism, partial agonism, inverse agonism or allosteric modulation.
- Binding affinity and potency: Ki, Kd, pKi, EC50, IC50, Emax and intrinsic activity.
- Selectivity between receptor subtypes and binding comparisons across targets.
- Neurotransmitter release and reuptake inhibition, including serotonin, dopamine, norepinephrine, GABA, glutamate and acetylcholine.
- Ion channel effects, second messengers and downstream signalling.
- Mechanisms described as unknown, disputed or assumed from structural similarity.
- Statements that the substance does not act at a target.

### Pharmacokinetics: absorption, distribution, metabolism and elimination

Include passages covering:

- Bioavailability, with administration route where stated.
- Absorption rate, onset of plasma levels, Cmax, Tmax, AUC and food effects.
- Volume of distribution, protein binding and blood-brain barrier passage.
- Metabolic sites, CYP enzymes, first-pass metabolism, phase I/II pathways, deacetylation, hydrolysis, and enzyme induction or inhibition.
- Metabolite names, active or inactive status, and prodrug conversion.
- Distribution, elimination and terminal half-lives, and clearance rate.
- Elimination routes, recovery percentages in urine, feces or bile, and detection windows.

Complete the same source review whether or not PK is found. Absent pharmacokinetic data is a normal result, including alongside rich pharmacodynamics. Once the supplied sources have been reviewed, leave unsupported PK absent. Do not infer it from structure, a related compound or reported effect duration, or seek material beyond the supplied file.

### Relevance boundary

On their own, dose ranges, effect duration and onset times, subjective effects, legal status, synthesis routes, molecular weight, melting point, LD50, overdose case reports, tolerance schedules and drug-interaction warnings do not qualify. Plasma-level timing qualifies under PK; effect timing alone does not.

If a pharmacology fact appears inside a paragraph mainly about another topic, include the whole paragraph. Include a passage when its pharmacological relevance remains uncertain.

Continue when every source has been reviewed and each qualifying or uncertain passage identified. A source with no qualifying pharmacology is a valid result.

## 3. Preserve complete units and attached context

- Copy whole paragraphs, whole list blocks and whole table rows. Preserve source headings, bullets, bold, links and table pipes. A mixed-topic paragraph stays whole.
- Copy every character exactly, including typos, spacing, punctuation, symbols and units. Preserve numerical precision, leading zeroes, range order, micro signs and subscript styling without conversion or rounding.
- Carry the context attached to each value: target receptor, species, assay, study citation and cell-line notes. Include the introductory lines that establish this context.
- Keep administration route names attached to half-life and bioavailability values wherever stated, including oral, insufflated, sublingual, smoked, vaporised, intravenous, intramuscular and rectal routes.
- Copy a selected table whole: header, separator and every data row, with every column intact. Include its introductory sentence. A selected sentence introducing a table also requires the table beneath it. Retain the original table format.
- Preserve hedges and limitations with their claims, including assumptions based on structural similarity. Keep each claim under its own source; never supply a mechanism from memory or transfer a claim from a related substance.
- Author only the metadata, headings, separators and markers defined in step 4. All extracted text remains source text, without added explanation or merged sentences.

Continue when every selected unit is intact, with its attached context and original provenance. Each passage must match its source character for character; the downstream substring check rejects any drift.

## 4. Emit the excerpt document

Output this excerpt document body, without surrounding code fences, preamble or closing commentary:

```
# <Substance Title> - Pharmacology Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted text>

---

## Source: <Source Name>

*No pharmacology content found.*

---
```

Take the substance title from the staged file's first line, without its Collected Sources suffix. Join it to `Pharmacology Quotes` with a plain hyphen `-`. Use today's date as `YYYY-MM-DD`.

Emit exactly one `## Source:` heading for every input source, with its exact name and original order. End every source block with `---`. A nonempty document with no qualifying content gets exactly `*No pharmacology content found.*` alone under its heading. An empty document gets exactly `*No content available for this source.*`. An all-empty extraction is complete and successful.

## 5. Check completion

Before responding, confirm:

- Every source has been reviewed end to end and is represented once, in order.
- Every qualifying or uncertain pharmacology passage is included as a complete unit.
- Every selected table has its header, separator, all rows and columns, and introductory context.
- Values retain their targets, assay/species context and routes wherever supplied; all wording and hedges remain source-faithful.
- Unsupported PD or PK remains absent.
- The response follows the excerpt-document format exactly.
- Every downstream field below has been checked for available evidence. These fields guide coverage, not output labels or reorganisation.

| Field | Half | What feeds it |
| --- | --- | --- |
| `pharmacodynamics` | PD | Mechanism prose: receptor and transporter action, functional mechanism |
| `binding_sites` | PD | Per-target rows: target name, mechanism role, `affinity` (Ki/EC50), `efficacy` (Emax, intrinsic activity) |
| `pharmacokinetics` | PK | Absorption, distribution, metabolism and elimination prose |
| `metabolites` | PK | Named metabolic products, marked active or inactive |
| `half_life`, `route_half_life`, `route_half_life_notes` | PK | Half-life values, per route where stated, with qualifying context |
| `bioavailability_notes`, `route_bioavailability`, `route_bioavailability_notes` | PK | Bioavailability percentages, per route where stated, with absorption context |
| `protein_binding` | PK | Plasma protein binding percentage |
| `volume_of_distribution` | PK | Vd value |
Extraction prompt: tolerance (6 KB)

This is the complete category prompt loaded by the extraction harness.

# Tolerance Extraction

Extract every tolerance passage from the supplied collected-source file for one substance article. Use only the supplied source documents. Extraction preserves source text verbatim; it is not summarisation, synthesis, rewriting or explanation.

## 1. Identify sources

The staged file begins with the substance title and a Collected Sources suffix; each document begins with `## Source: <Source Name>` and is separated from the next by `---`. There may be one to a dozen sources, ranging from a few lines to many pages. Source names may be slugs; retain them exactly as written.

Account for every source in input order, including empty documents. Keep each passage attached to its originating source.


## 2. Decide which passages qualify

Include any passage about the body's response changing with repeated exposure to this substance, or about how far apart doses should be spaced.

| Include | Boundary or context to retain |
| --- | --- |
| Tolerance building | How fast, how far, to which effects and after how many doses |
| Tolerance fading | Half-tolerance and baseline reset times; advice to wait between uses, even without the word tolerance |
| Reduced tolerance after abstinence | Associated overdose risk on relapse, with the whole surrounding paragraph |
| Cross-tolerance | Substances or classes involved, direction and completeness |
| Reverse tolerance, sensitisation, tachyphylaxis and kindling | The source's account of changing response |
| Receptor downregulation or upregulation, enzyme induction and neuroadaptation | Include when offered as an explanation for tolerance |
| Dosing that depends on tolerance | Statements about naive or non-tolerant users, higher dose requirements in regular users, and ceiling effects |
| Dependence, withdrawal and abuse-potential prose | Include when the same passage also addresses tolerance; take a paragraph headed Tolerance and addiction potential whole |

Exclude other meanings of tolerance: social or political attitudes, crop or herbicide tolerance, tolerance of heat, cold, stress or exercise described as a drug effect, and food intolerance or allergy. These meanings alone do not describe repeated-exposure tolerance or dose spacing.

Include a passage when its relevance remains uncertain. A tolerance fact embedded in an otherwise unrelated paragraph qualifies the entire paragraph.

Read every source end to end. Before concluding that it is silent, inspect:

- Tolerance and addiction potential, and Dependence and abuse potential sections.
- Pharmacology, pharmacokinetics and mechanism-of-action sections.
- Dosage sections and warnings, including advice for non-tolerant users and starting doses.
- Harm-reduction, safety, health and responsible-use notes.
- Interaction lists, including one drug lowering tolerance to another.
- Summary and overview paragraphs.

Continue when every source has been reviewed and every qualifying or uncertain passage identified. A no-content result is justified only when no passage in that source qualifies; an all-empty extraction is valid.

## 3. Preserve the selected material

- Copy the whole paragraph, whole list item or whole table row. Every sentence remains complete, including when the tolerance fact occupies only part of the unit.
- Copy text directly from its source, character for character: spelling, punctuation, markdown, links, typos, numbers and units. Keep all qualifications as written, without conversion, rounding or reformatting.
- Keep source boundaries intact. Never invent a tolerance timeline or supplement the source from memory or another source.
- Author only the metadata, source headings, separators and markers in step 4. Separate multiple passages from the same source with a single blank line; `---` marks only the end of a source block.

Continue when all selected units retain their complete wording and provenance. Each passage must match its source character for character; the downstream substring check rejects any drift.

## 4. Emit the excerpt document

Output this excerpt document body, without surrounding code fences, preamble or closing commentary:

```
# <Substance Title> - Tolerance Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <first source name>

<verbatim passage>

<verbatim passage>

---

## Source: <second source name>

*No tolerance content found.*

---
```

Take the substance title from the staged file's first line, removing the Collected Sources suffix and its separator. Use today's date as `YYYY-MM-DD`.

Emit exactly one `## Source:` heading for every input source, with its exact name and original order. End every source block with `---`. A nonempty document with no qualifying passage gets exactly `*No tolerance content found.*` alone under its heading. An empty document gets exactly `*No content available for this source.*`.

## 5. Check completion

Before responding, confirm:

- Every source has been read end to end, including the likely locations in step 2, and is represented once in input order.
- Every qualifying or uncertain passage is included as a complete unit; unrelated meanings of tolerance alone are excluded.
- All copied claims, timings, numbers and qualifications retain their original wording and source.
- Empty results reflect missing source evidence rather than an incomplete search.
- The response follows the excerpt-document format exactly.
- The four downstream fields below have been checked for available evidence. They identify high-value passages, not a narrower selection rule: other passages still qualify under step 2.

| Field | What it needs from the source |
| --- | --- |
| `full_tolerance` | How long continuous use takes to build full tolerance, and to which effects |
| `half_tolerance` | How long abstinence takes to halve tolerance |
| `baseline_tolerance` | How long abstinence takes to reset tolerance to baseline |
| `cross_tolerance` | Which substances or drug classes share tolerance with this one |
Extraction prompt: harm potential (7 KB)

This is the complete category prompt loaded by the extraction harness.

# Harm Potential Extraction Prompt

Extract every harm-related passage from the supplied collected-source file for one psychoactive substance. Use only the supplied documents. Extraction preserves source text verbatim; it is not summarisation or article writing.

## 1. Identify sources

The input begins with the substance title and a Collected Sources suffix; each document begins with `## Source: <Source Name>` and is separated from the next by `---`. Sources vary in number, length and quality.

Account for every source, retaining its exact name and input order. Keep each passage attached to its originating source.


## 2. Identify all harm content

Read every source for the following content:

| Include | Context or boundary |
| --- | --- |
| Addiction, abuse potential, habit formation and compulsive redosing | Include physical or psychological dependence, withdrawal and withdrawal timelines. |
| LD50, lethal, toxic or fatal doses, overdose thresholds, deaths, death counts and overdose management | Preserve species, administration route, value and unit wherever supplied. |
| Organ and system toxicity | Include liver, kidney, cardiac, neurological, bladder, respiratory and vascular findings. |
| Neurotoxicity | Include disputed and unresolved findings with their uncertainty. |
| Carcinogenicity, mutagenicity and genotoxicity | Carry the evidence supporting or limiting each claim. |
| Psychosis, HPPD, mania and precipitation of latent mental illness | Preserve the source's qualifications. |
| Seizures and lowered seizure threshold | Preserve the source's qualifications. |
| Dangerous interactions and combinations, contraindications and medications to avoid | Preserve complete combination lists, charts, tables and warnings as specified in step 3. |
| Serotonin syndrome, hyperthermia, hyponatremia and respiratory depression | Include the surrounding harm context. |
| Adulterants, misidentification and substitution risks | Include the source's risk descriptions. |
| Antibiotic or antimicrobial activity | Include this content even when it is not framed as harm. |
| Harm-reduction advice, dosing-interval warnings and route-specific risks | Preserve the advice's conditions and route distinctions. |
| Explicit low-harm, safety or absence-of-known-toxicity statements | These qualify as harm content alongside adverse findings. |

Tolerance build or decay timing alone belongs to tolerance extraction. When it appears within a qualifying section such as Dependence and abuse potential, take the whole section, including its heading and tolerance paragraph.

If a harm fact sits inside a paragraph mainly about something else, take the entire paragraph. Include a passage when its relevance remains uncertain.

Continue when every source has been examined and every qualifying or uncertain passage identified. A source that supplies no harm content is a valid result.

## 3. Preserve complete evidence units

### Passages and source fidelity

- Copy complete paragraphs, list items, table rows and sections including their heading. Keep mixed-topic units whole and every sentence complete.
- Preserve every character, including spelling, capitalisation, punctuation, markdown, inline links, footnote markers, numbers and units. Retain numerical precision and units without conversion, rounding or reformatting.
- Keep hedges and evidence limitations attached to their claims, including reported, assumed or anecdotal status and citation-needed markers.
- Use only claims made by the originating source. Never supply an LD50, interaction, contraindication, threshold, death count or organ finding from memory, a related substance or another source block.
- Every content line is copied from that source or is blank. Author only the metadata, source headings, separators and empty-source markers in step 4; add no headings, labels, quotation marks, formatting or commentary inside extracted content.

### Interaction lists, combination charts and tables

- Copy a markdown table whole: header row, separator row and every data row, with its original formatting. Include any caption or sentence directly above it that names the table.
- Copy a bulleted combination list whole, with every bullet, bolded substance name and introductory warning paragraph.
- Copy short structured lines as written, retaining their labels and values.
- Keep each structure in its source format, with multi-line entries intact.

Continue when every selected unit retains its full content, attached warnings, uncertainty and provenance. Each passage must match its source character for character; the downstream substring check rejects any drift.

## 4. Emit the excerpt document

Output this excerpt document body, without surrounding code fences, preamble or closing commentary:

```
# <Substance Title> - Harm Potential Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted text>

---

## Source: <Source Name>

*No harm potential content found.*

---
```

Take the substance title from the input's first line, without its Collected Sources suffix. Use today's date as `YYYY-MM-DD`.

Emit exactly one `## Source:` heading for every input source, with its exact name and original order. End every source block with `---`. A nonempty document with no qualifying content gets exactly `*No harm potential content found.*` alone under its heading. An empty document gets exactly `*No content available for this source.*`. An all-empty extraction is complete and successful; missing evidence stays absent.

## 5. Check completion

Before responding, confirm:

- Every source has been examined and is represented once, in order, including empty results.
- Every qualifying or uncertain passage is included as a complete unit, including low-harm statements and qualifying mixed-topic sections.
- Every selected combination list and table is intact with its introductory warning or caption, names, rows and columns.
- Species, route, numbers, units, conditions and uncertainty survive wherever supplied.
- Every claim remains source-faithful and attached to its originating source.
- The response follows the excerpt-document format exactly.
- Every downstream field below has been checked for available evidence. These mappings guide coverage; do not sort, label or restructure output around them.

| Field | Evidence to preserve |
| --- | --- |
| `harm_potential.addiction.psychological` and `.physical_dependence` | Each `{ level, description }` |
| `harm_potential.toxicity.lethal_dosage.ld50[]` | `{ species, route, value, unit }`, with all four elements retained where supplied |
| `harm_potential.toxicity.lethal_dosage.notes` | Human lethal dose, fatalities and overdose thresholds |
| `harm_potential.toxicity.organ_toxicity[]` | `{ system, findings, mechanism, notes }` |
| `harm_potential.toxicity.carcinogenicity` | `{ level, evidence, description }`; evidence distinguishes human epidemiology, animal models with species, in vitro assays and mechanistic evidence |
| `harm_potential.toxicity.antibiotic_function` | `{ level, description }` |
| `harm_potential.toxicity.other` | Toxicological content fitting nowhere above |
| `harm_potential.psychosis` and `harm_potential.seizure` | Each `{ level, description }` |
| `interactions.dangerous[]`, `.unsafe[]`, `.caution[]` | Complete combination lists and charts, preserving their categories |
Extraction prompt: history & culture (7 KB)

This is the complete category prompt loaded by the extraction harness.

# History & Culture Extraction Prompt

Extract every history and culture passage from the supplied collected-source file for one substance. Use only the supplied documents. Extraction preserves source text verbatim; it is not summarisation, synthesis or rewriting. Missing history stays absent rather than being completed from memory.

## 1. Identify sources

The staged file begins with the substance title and a Collected Sources suffix; each document begins with `## Source: <Source Name>` and is separated from the next by `---`. Source count, length and quality vary.

Account for every source, retaining its exact name and input order. Keep each passage attached to its originating source.


## 2. Decide which history and culture passages qualify

Read every source end to end. Relevant material may appear in introductions, Background, Overview and Society and culture, as well as History sections. A lone historical sentence inside otherwise unrelated prose qualifies its whole paragraph.

| Include | Content to select |
| --- | --- |
| Discovery and synthesis | First synthesis, chemist, laboratory or company, original research purpose, patents and accidental-discovery stories |
| Medical and therapeutic history | Early clinical use, research programmes and trials, psychotherapy use, approval or rejection history, and brands under which the substance was sold |
| Market and recreational emergence | First street or research-chemical market appearance, spread, first seizures or vendor reports, street-name origins and slang etymology |
| Counterculture and the arts | Associated movements, scenes and eras, named advocates and public figures, and influence on music, literature, film or art |
| Programmes and controversies | State or military research, notable incidents framed as historical events, media coverage and moral panics |
| Traditional and indigenous use | Ceremonial and ritual use, shamanic practice, ethnobotanical history, pre-modern records and significance to a people |
| Modern revival | Renewed research interest, current clinical programmes and shifts in scientific or public attitude |

Apply these boundaries beside the inclusion criteria:

- Current country-by-country schedule lists and legal-status tables belong to legality extraction. Exclude those blocks even when they contain dates. Include a scheduling event narrated as part of a historical story, such as a legal change linked to market developments.
- Pure effects, dosing, duration, pharmacology or harm content belongs to other extraction passes. This includes experience descriptions, dose figures, onset tables, receptor binding, metabolism, LD50 figures, case reports and fatality write-ups without a historical framing.
- Where a passage mixes qualifying history with another topic, copy the whole passage. Include a passage when its historical or cultural relevance remains uncertain.

Continue when every source has been reviewed and every qualifying or uncertain passage identified. A source with no history or culture content is a valid result.

## 3. Preserve complete units and historical uncertainty

- Copy complete paragraphs, list items, table rows and headings. Keep mixed-topic paragraphs whole and every sentence complete.
- Preserve all characters, including typos, doubled spaces, unusual punctuation and markdown headings, bullets, bold, tables and blockquotes. Numbers and units retain their original form without conversion or rounding.
- Copy dates, names and place names exactly as given, including vague dates or unnamed people and companies. Never resolve a vague reference using outside knowledge.
- Preserve contradictions between sources, each under its own source heading. Reconciliation belongs to later review, not extraction.
- Retain the sentence carrying an event date, rather than extracting a date in isolation.
- Separate non-contiguous passages with a blank line. Use no invented connectors or commentary. If a source is wrapped in a markdown code fence, copy its contents without the packaging fence lines.
- Author only the metadata, source headings, separators and empty-source markers defined in step 4. Every historical claim must come from its own source; do not fill gaps with remembered facts, even if they are true.

Continue when every selected unit retains its complete wording, ambiguity and provenance. Each passage must match its source character for character; the downstream substring check rejects any drift.

## 4. Emit the excerpt document

Output this excerpt document body, without surrounding code fences, preamble or closing commentary:

```
# <Substance Title> - History & Culture Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted text>

---

## Source: <Source Name>

*No history or culture content found.*

---
```

Take the substance title from the input's first line, without its Collected Sources suffix. Use today's date as `YYYY-MM-DD`.

Emit exactly one `## Source:` heading for every input source, with its exact name and original order. End every source block with `---`. A nonempty document with no qualifying content gets exactly `*No history or culture content found.*` alone under its heading. An empty document gets exactly `*No content available for this source.*`. An all-empty extraction is complete and successful.

## 5. Check completion

Before responding, confirm:

- Every source has been read end to end and is represented once, in order, including empty results.
- Every qualifying or uncertain passage is included, including historical sentences embedded in other topics.
- Current legal-status lists and tables remain excluded; narrated historical scheduling events remain eligible.
- Every selected unit is complete, with dates attached to their event sentences, vague references unresolved and source contradictions intact.
- Every historical claim matches its originating source rather than outside knowledge.
- The response follows the excerpt-document format exactly.
- Every downstream field below has been checked for available evidence. These fields guide coverage, not authored labels or output reorganisation.

The excerpts feed these `history_culture` fields:

| Field | Fed by |
| --- | --- |
| `content` | Any historical prose; for substances with little history this is the only field used |
| `sections[].heading` | Topic labels used by the sources, including History, Society and culture, and Discovery |
| `sections[].content` | Narrative paragraphs under those headings |
| `sections[].date_range.start` / `.end` | Years, full dates and date spans attached to events, retained in their sentences |
| `sections[].subsections[]` | Standalone passages about a single named person or programme |
Extraction prompt: legality (7 KB)

This is the complete category prompt loaded by the extraction harness.

# Legality Extraction Prompt

You copy legality passages out of a staged source file, verbatim, into an excerpt file. Mechanical
copy-paste: no summarising, no synthesis, no rewriting, no explaining.

## The hardest rule: your own legal knowledge is banned

You know scheduling facts about most psychoactive substances. Every one of them is off-limits here.
Legal status changes constantly, so anything you recall is likely stale, and a stale scheduling
claim reads as authoritative and misleads readers in the jurisdiction where it is wrong.

Write only two kinds of text: the scaffolding specified below (headings, date line, italic markers,
`---` rules), and passages copied character-for-character from the staged file.

Worked example. The source says, in full:

> As of 13 December 2014, 2-FMA is a controlled substance in Germany.

Correct output is that sentence, copied. Adding "In the United States, 2-FMA may be prosecuted under
the Federal Analogue Act" is a fabrication even though it is plausible and even if it is true, the
source did not say it. So is "2-FMA is banned across the EU": Germany is one country, not a bloc.

Your output is machine-verified. A script substring-matches every extracted passage against the
staged source and rejects the file if any passage fails to appear.

## Copying rules

- **Name jurisdictions exactly as the source does**: "The Netherlands", "UK", "Republic of
  Ireland". Never widen one country into a region, bloc, or "most countries", and never narrow a
  regional claim onto one country.
- **Carry every date and "as of" qualifier.** A scheduling claim stripped of its date is worse than
  no claim, so extend the passage until the qualifier sits inside it.
- **Preserve hedges intact**: "gray area", "may soon be banned", "would be considered", "pending
  legislation", "unconfirmed". Copy the uncertainty; never resolve it into a definite status.
- **Extract complete units**: whole paragraphs, list items, table rows. Never truncate mid-sentence.
  When a legal fact sits inside a paragraph about something else, copy the whole paragraph.
- **Preserve markdown exactly**: headings, bullets, bold, tables, footnote markers.
- **Copy numbers, thresholds, and penalties exactly.** Never convert units or round figures.
- **Bias toward including.** A human reviews this file; an extra passage costs a moment, a missed
  one is invisible.

## What counts as legality content

**Country and sub-national status**: legal, illegal, controlled, decriminalised,
prescription-only, unscheduled; the named instrument (Misuse of Drugs Act 1971, Anlage I BtMG,
Verzeichnis E); the class or schedule label (Class A, Schedule III, Tabelle I); penalties,
thresholds, possession-versus-trafficking distinctions, import/export limits, medical, research and
religious exemptions, and state, province, or city-level variation.

**Analogue-act and blanket-ban provisions**: US Federal Analogue Act, UK Psychoactive Substances
Act 2016, Canadian and New Zealand analogue clauses, generic bans. For research chemicals these are
often the only legal statement any source makes. Extract them.

**International and treaty-level status**: UN Single Convention 1961, Convention on Psychotropic
Substances 1971, 1988 Convention, WHO/ECDD recommendations, INCB listings. Extracting these is not
a reason to drop country-level content, or the reverse; both belong in the file.

**Legal history**: when and why the substance was scheduled, prior status, changes over time, even
when it appears inside a History section.

**Statements of absence**: "not scheduled in any country", "no known legal restrictions",
"uncontrolled" are legality findings. Extract them.

Qualifies, from a PsychonautWiki country list:

> - **The Netherlands**: 2-FMA is currently legal, but it is part of a substance group that may be
>   banned soon as part of a recently passed law on New Psychoactive Substances (NPS).

Qualifies, being the only US sentence in a Wikipedia article:

> As a close analog of a scheduled controlled substance, sale or possession of 2-FMA could
> potentially be prosecuted under the Federal Analogue Act.

Does not qualify: "schedule" and "controlled" are not legal terms here:

> Participants followed a fixed dosing schedule in a placebo-controlled crossover trial.

## Input you receive

One staged file holding every collected source document for a single substance:

```
# <Substance Title>: Collected Sources

## Source: TripSit Factsheets

<full document text>

---

## Source: Wikipedia

<full document text>

---
```

Source count and length vary widely, two sources for some articles, a dozen for others. Legality
content is not confined to sections labelled "Legal status"; it also appears in overviews,
introductions, history sections, harm-reduction warnings, and footnotes. Read every source in full.

## Output you produce

```
# <Substance Title> - Legality Quotes

> Verbatim extractions from source articles. Generated <YYYY-MM-DD>.

## Source: <Source Name>

<verbatim extracted text>

---

## Source: <Source Name>

*No legality content found.*

---
```

- One `## Source:` heading per source in the staged file, in the same order, including sources that
  yielded nothing. Never merge, reorder, or omit a source.
- A source with no legality content gets `*No legality content found.*` alone under its heading.
- A source that was present but empty gets `*No content available for this source.*`
- Every source block ends with a `---` rule.
- Take the substance title from the staged file's own title line.
- Emit the file body only, no code fences, no preamble, no closing commentary.

**An all-empty file is a correct result.** Many substances, especially obscure research chemicals,
have sources that say nothing about legal status. `*No legality content found.*` under every heading
is a successful run. Inventing a plausible scheduling claim to fill the gap is the one failure this
task cannot tolerate.

## What the downstream generator builds from this

Passages carrying these fields are the most valuable, so extend a passage when a neighbouring
sentence supplies one:

| Schema field | What supplies it |
|---|---|
| `international[]` | UN convention and treaty-level statements |
| `countries.<Country>.status` | The short status phrase for that country |
| `countries.<Country>.notes` | Penalties, thresholds, exemptions, dates, caveats |
| `countries.<Country>.instrument` | The named law or register the status rests on |
| `countries.<Country>.designation` | The class or schedule label itself |
| `usStates.<State>` | US state-level status, and any city-level divergence |

You fill none of these fields yourself. You supply the source text they will be built from.

05 AI synthesis & the prompts

Six article sections begin as AI-generated drafts: summary, pharmacology, tolerance, harm potential, history & culture, and legality. An LLM writes each one from exactly two inputs: the excerpt document for that topic, and a section-specific prompt. The model differs by section and changes over time. The LLM writes original prose from the excerpts; committed copies of the prompts appear below. We are experimenting with other ways to summarize the excerpts as well.

The two remaining excerpt topics, dosage & duration and subjective effects, serve a narrower purpose. Those sections come from parsed tables and from Josie Kins' effect taxonomy. Their excerpts only fill documented gaps, and never overwrite what is already there.

Some sections are harder to get right than others. Pharmacology is tricky, and its drafts are the most likely to be wrong. The stakes are highest where a wrong figure can hurt someone, which is exactly why doses are transcribed by code and interaction ratings come from curated data rather than drafted prose. The other sections are easier and reach high quality more reliably.

The prompts share one skeleton: a style definition, a hard evidence rule, a fixed output format, worked examples, and a checklist. All of them carry the same two constraints:

Evidence constraint

The prompts instruct the LLM to include only information explicitly stated or clearly implied in the supplied quotes, and to omit information that it cannot find there. The limits of that rule are stated once, in section 08 (What can still go wrong).

Original prose

The writing stage uses the excerpts as evidence for a new account of the subject. Its instructions are to synthesize the information, not reproduce the source's sentences or lengthy phrases. Keeping the excerpts separate makes it possible to check both the factual basis of a draft and how it uses the source material. A script also appends the relevant excerpts from each source, copied verbatim, after the paragraphs they informed, so the output can be audited against exactly what the model was given. That audit is still being improved.

Later citation research checks claims against supporting references, and editors correct and expand the text. The source-page links remain available for readers who want the original discussion and context.

The prompts for all six AI-drafted sections appear below, largest first. This page reads them from content/prompts/sections/ when it builds. Two copies of each prompt exist: the committed file shown here, and a live copy the editorial team can edit, which generation runs use. The live copies were seeded from these files, and a comparison script reports any drift between the two. The copy that produced a given article can differ from the copy printed here.

Section prompt: pharmacology (16 KB)
# Generate the pharmacology section

Generate only `pharmacology` for a dose.wiki substance article. Use supplied substance names and class labels for orientation when present; the provided source excerpts are the evidence. The rest of the article is unavailable.

Follow the sequence below. Keep all working decisions internal and return the YAML specified in step 6.

## 1. Select evidence and establish scope

Use only information explicitly stated or clearly implied in the excerpts. Leave unsupported fields empty rather than adding knowledge from memory. Numerical binding values require explicit numerical evidence, as specified in step 3.

When findings conflict, prefer primary pharmacological sources (DrugBank, Wikipedia citing studies) over community sources. Use study-based findings over conflicting general community classifications and omit the lower-priority inventory. Present the selected pharmacology directly, without source commentary or narration of the selection process. Omit missing functional data without commenting on its absence.

For conflicts that remain after source priority, describe the findings neutrally at the sources' level of certainty. Preserve genuine experimental uncertainty and source-stated qualifiers, including animal species or model qualifiers. Explain a discrepancy by assay, methodology, species, dose, route, or another factor only when the excerpts explicitly provide that explanation. Describe current scientific understanding rather than historical theories, debates, or changes in consensus.

Keep uncertain mechanisms hedged: a mechanism framed as inferred, presumed, likely, or based on structural similarity may appear only in `pharmacodynamics`, with its uncertainty preserved. It must not become a `binding_sites` entry or acquire an affinity or efficacy value. When structural speculation is the only mechanism evidence, use a short hedged pharmacodynamics sentence and an empty `binding_sites` array.

Keep content within these boundaries:

| Content | Destination |
| --- | --- |
| Receptor/transporter action and functional mechanism | `pharmacodynamics` and supported `binding_sites` entries |
| Absorption, distribution, metabolism, first-pass effects, enzymes, bioavailability, elimination, half-life, and metabolite production | `pharmacokinetics` and applicable structured route fields |
| Specific metabolite names | `metabolites` |
| Addiction, dependence, toxicity, LD50, organ damage, and other risks | Outside this section: `harm_potential` |
| Drug combinations and interactions | Outside this section: `interactions` |
| Tolerance and cross-tolerance | Outside this section: `tolerance` |
| Phenomenological effect descriptions | Outside this section: `subjective_effects` |
| Doses and therapeutic dosing recommendations | Outside this section: `dosage` |
| Subjective effect duration and timelines | Outside this section: `duration` |
| Legal status | Outside this section: `legality` |
| Chemical identity, classification, article summary, drug comparisons, reagent results, and citation lists | Outside this section; emit no corresponding article fields |

Completion: every usable finding has an owned destination and retains its evidence limits; unsupported and out-of-scope material is excluded.

## 2. Write `pharmacodynamics`

Write original, neutral, clinical but approachable prose. Synthesize and restructure the excerpts instead of copying sentences or lengthy phrases; standard technical terminology may remain unchanged. Apply this prose style to `pharmacokinetics` as well. Use commas, parentheses, or separate sentences instead of em dashes.

`pharmacodynamics` is a string, usually one concise paragraph of roughly 3-5 sentences. Use a second paragraph or additional sentences only when genuine pharmacodynamic nuance requires it, such as conflicting assay interpretations or an especially important secondary mechanism.

Lead with the main mechanism and give it the most space. Select the most relevant secondary targets, compressing them into one sentence where possible. Explain their significance rather than reproducing the target inventory in `binding_sites`; prioritize a human-curated overview over an exhaustive source digest.

Every sentence should primarily answer what this substance itself is doing pharmacologically. Mention enantiomers, other chemical classes, or general receptor/transporter/neurotransmitter biology only when supported and directly clarifying its own action. Any experiential reference must be brief and mechanistic rather than phenomenological. Keep route-specific details and all pharmacokinetic content in their destinations from step 1.

Completion: each sentence advances the substance's mechanism, the main action leads, secondary findings remain selective, and the evidence and scope rules from step 1 hold.

## 3. Build `binding_sites`

Extract all relevant supported target interactions, including secondary ones, in order of pharmacological importance. Each array entry has the following fields; omit optional fields when unsupported.

| Field | Type | Rule |
| --- | --- | --- |
| `target` | Required string | Use a short canonical identifier consistently, such as `5-HT2A`, `D2`, `NMDA`, `DAT`, or `SERT`. |
| `tag` | Optional string | Use a mechanism tag only for an interaction that qualifies as a mechanism of action. Omit it for binding that is not considered a primary mechanism. Apply the vocabulary and evidence rules below. |
| `affinity` | Optional string | Extract explicitly stated Ki, EC50, IC50, Kd, or other binding values with units. Preserve stated ranges and bounds. If only qualitative affinity is supplied, retain that qualitative description. Never estimate, extrapolate, derive, or infer a numerical affinity from it. |
| `efficacy` | Optional string | Include supported Emax, intrinsic activity, or functional efficacy, such as partial agonism. Keep wording concise and parallel across entries. |

### Target grouping and shared numerical bounds

Create one entry per interaction distinguished in the excerpts. Use a family-level entry only when the sources report the interaction solely at that level and name no subtypes. When subtype data exists for a family, use subtype entries throughout that family. Combine targets in a slash- or comma-joined label only when the sources report them solely jointly.

When an excerpt names receptor subtypes and explicitly assigns one shared numerical value or bound to them, give every named subtype its own entry with that same stated value or bound. A family-only row is insufficient. Preserve ranges as ranges; neither invent unmentioned subtypes nor divide a shared range into unsupported individual values.

Keep sibling entries internally parallel: short target identifiers, consistent supported tags for the same interaction type, and concise affinity/efficacy phrasing. Express source-supported differences in confidence or specificity in `affinity` or `efficacy`. Parallel formatting never justifies an unsupported tag or qualifier.

### Mechanism tag vocabulary

Use the following tags exactly when they match the evidence. Every qualifier requires support, including selectivity, full/partial activity, and competitive mechanism. Match partial versus full agonism to the source. When no listed tag fits without adding a claim, omit `tag` and retain the supported target and assay data. A new tag is permitted only for a genuinely uncovered mechanism, with any qualifier at the end in parentheses; it must not add unsupported specificity or merely vary or abbreviate a listed tag.

#### Serotonin receptors
- `5-HT1A receptor agonist (full)`
- `5-HT1A receptor agonist (partial)`
- `5-HT1A receptor antagonist`
- `5-HT2A receptor agonist (full)`
- `5-HT2A receptor agonist (partial)`
- `5-HT2A receptor antagonist`
- `5-HT2B receptor agonist`
- `5-HT2C receptor agonist (partial)`
- `5-HT2C receptor antagonist`

#### Dopamine system
- `Dopamine releasing agent`
- `Dopamine reuptake inhibitor`
- `Dopamine D1 receptor agonist`
- `Dopamine D2 receptor agonist`
- `Dopamine D2 receptor agonist (partial)`
- `Dopamine D2 receptor antagonist`
- `Dopamine D3 receptor agonist`
- `Dopamine D4 receptor agonist`

#### Norepinephrine system
- `Norepinephrine releasing agent`
- `Norepinephrine reuptake inhibitor`
- `Alpha-1 adrenergic receptor agonist`
- `Alpha-2 adrenergic receptor agonist`
- `Alpha-2 adrenergic receptor antagonist`
- `Beta adrenergic receptor antagonist`

#### Combined releasing agents
- `Serotonin releasing agent`
- `Serotonin-norepinephrine releasing agent (SNRA)`
- `Serotonin-dopamine releasing agent (SDRA)`
- `Serotonin-dopamine-norepinephrine releasing agent (SNDRA)`

#### Reuptake inhibitors
- `Serotonin reuptake inhibitor (selective, SSRI)`
- `Serotonin-norepinephrine reuptake inhibitor (SNRI)`
- `Norepinephrine-dopamine reuptake inhibitor (NDRI)`
- `Triple reuptake inhibitor (SNDRI)`

#### GABA system
- `GABA-A receptor positive allosteric modulator (benzodiazepine site)`
- `GABA-A receptor positive allosteric modulator (barbiturate site)`
- `GABA-A receptor agonist`
- `GABA-B receptor agonist`
- `GABA reuptake inhibitor`

#### Glutamate system
- `NMDA receptor antagonist (uncompetitive)`
- `NMDA receptor antagonist (competitive)`
- `AMPA receptor positive allosteric modulator`
- `mGluR2 receptor agonist`
- `mGluR5 receptor antagonist`

#### Opioid receptors
- `μ-opioid receptor agonist (full)`
- `μ-opioid receptor agonist (partial)`
- `μ-opioid receptor antagonist`
- `κ-opioid receptor agonist`
- `κ-opioid receptor antagonist`
- `δ-opioid receptor agonist`

#### Cannabinoid receptors
- `CB1 receptor agonist (full)`
- `CB1 receptor agonist (partial)`
- `CB1 receptor antagonist`
- `CB2 receptor agonist`

#### Cholinergic system
- `Muscarinic acetylcholine receptor antagonist`
- `Nicotinic acetylcholine receptor agonist`
- `Nicotinic acetylcholine receptor antagonist`
- `Acetylcholinesterase inhibitor`

#### Other targets
- `Sigma-1 receptor agonist`
- `Sigma-2 receptor agonist`
- `TAAR1 agonist (trace amine-associated receptor)`
- `Histamine H1 receptor antagonist`
- `Histamine H3 receptor antagonist`
- `Adenosine receptor antagonist`
- `Voltage-gated sodium channel blocker`
- `Voltage-gated calcium channel blocker`
- `HCN channel blocker`
- `Monoamine oxidase inhibitor (MAO-A)`
- `Monoamine oxidase inhibitor (MAO-B)`
- `Monoamine oxidase inhibitor (non-selective)`

Completion: every supported target interaction is represented at the source's grouping level, every shared subtype value or bound is retained, and every optional field passes its evidence rule.

## 4. Write `pharmacokinetics` and `metabolites`

### `pharmacokinetics`

Write a concise article-facing string, preferably one short paragraph unless the evidence genuinely needs more, using the prose style from step 2. This is the second prose subsection, after pharmacodynamics.

Prioritize first-pass metabolism, oral bioavailability context, major enzymes, and the broad metabolic pathway. Include relevant absorption, distribution, elimination, half-life context, and metabolite production here rather than in pharmacodynamics. Use specific enzyme names and values or ranges when available. Identify hepatic, renal, or other metabolic routes, phase I processes such as oxidation or reduction, and phase II conjugation when described. Include enzyme inhibition or induction when relevant to the substance itself.

Keep specific metabolite names in `metabolites` rather than turning this paragraph into a catalog. Concise prose does not replace complete extraction into the route fields in step 5.

### `metabolites`

Use an array of strings with proper chemical names when available. Prioritize active metabolites and identify activity in parentheses when supported. Include inactive metabolites when clinically relevant, retaining supported activity status.

Completion: the prose covers the selected pharmacokinetic findings without a metabolite catalog, and the separate array captures active or notable metabolites with supported names and activity labels.

## 5. Extract route data and notes

Populate all applicable structured route fields even when the article prose does not emphasize those findings. Use only routes with explicitly supplied bioavailability or half-life data in the corresponding value fields. A half-life may be shared by several routes when the excerpts support those assignments; do not infer additional route assignments from a general half-life.

### Canonical route mapping

Use these exact keys in all four route objects:

| Key | Source route wording |
| --- | --- |
| `Oral` | Oral, by mouth |
| `Insufflated` | Intranasal, snorted, insufflated |
| `Sublingual` | Under the tongue, buccal |
| `Smoked` | Smoking, inhalation/smoking, inhalation of combusted material |
| `Vaporized` | Vaporization, non-combustion |
| `Intravenous` | IV, intravenous injection |
| `Intramuscular` | IM, intramuscular injection |
| `Rectal` | Rectal, plugging |

For pharmacokinetic data from a route outside this vocabulary, retain the value and exact route qualifier in `pharmacokinetics` prose. Do not discard it, substitute a different route, or invent a route key.

### Value and note fields

| Field | Value and content |
| --- | --- |
| `route_bioavailability` | String percentages or percentage ranges, retaining supplied approximations, such as `67%`, `70-80%`, or `~45%`. |
| `route_half_life` | String elimination half-life values or ranges with units, such as `3-6 hours`, `45 min`, or `2.5-3 hours`. |
| `route_half_life_notes` | Additional timing context: time to peak blood levels, factors that speed or slow elimination, time remaining in the body, dose-dependence, or differences between people. Include a note only when it adds meaningful context beyond the value. |
| `route_bioavailability_notes` | Absorption-efficiency context: loss before reaching the bloodstream, food's effect on the amount absorbed, or why a route delivers more or less to the body. |

For both note fields, write one clear fact per line in plain language accessible without a chemistry background. Explain technical concepts simply. Separate lines with `\n` line breaks only, without bullet symbols; the UI supplies bullets. Keep timing facts in `route_half_life_notes` and absorption-efficiency facts in `route_bioavailability_notes`.

Completion: every explicit route-specific value is retained in the correct canonical field or, for an unsupported route, qualified prose; notes are correctly separated by topic and add readable context.

## 6. Assemble and check the output

Return only valid YAML with this exact structure, without markdown fences or commentary:

```yaml
pharmacology:
  pharmacodynamics: ""
  binding_sites: []
  pharmacokinetics: ""
  metabolites: []
  route_bioavailability: {}
  route_half_life: {}
  route_half_life_notes: {}
  route_bioavailability_notes: {}
```

Use two-space indentation and no tabs. Populated arrays use `- ` item prefixes. Objects use key-value pairs, with quoted keys for all route objects. All eight fields remain present, including when empty: use `""` for strings, `[]` for arrays, and `{}` for objects, never `null`.

Before returning, check every item:

- Evidence and scope: every claim and value passes step 1, including source precedence, retained uncertainty and animal qualifiers, speculative-mechanism restrictions, current-understanding framing, and source-supported discrepancy explanations. Only pharmacology content is present.
- Prose: both strings satisfy step 2's synthesis, tone, and punctuation rules. Pharmacodynamics passes its substance-action, hierarchy, and concision criteria; pharmacokinetics passes step 4. Their content respects the step 1 split, with specific metabolite names confined to `metabolites`.
- Targets: every entry has `target` and only supported optional `tag`, `affinity`, and `efficacy` fields. Every interaction, grouping, shared numerical bound, ordering, identifier, qualifier, and tag passes step 3.
- Metabolites: the field is an array of strings with supported names and activity labels, meeting step 4's selection rules.
- Routes: all explicit data is accounted for under step 5, including outside-vocabulary routes in qualified prose. All four objects use exact canonical keys and appropriate string values; notes meet topic, additional-context, plain-language, and line-format rules.
- Serialization: the exact root and eight fields are present with the required types, empty forms, indentation, array syntax, and quoted route keys. The response contains YAML only.
Section prompt: harm potential (15 KB)
# Harm Potential Section Generation

Generate only the `harm_potential` section of a dose.wiki substance article from the provided source excerpts. Work through evidence selection, field population, and completion checks in order. All instructions needed for this task are below.

## 1. Select eligible evidence

Use only information explicitly supported by specific text in the provided excerpts. Apply this requirement to every fact, value, mechanism, classification, and description. Populate every supported field; use the empty values defined in step 3 for unsupported content. General knowledge, training data, assumptions, and inferred safety or danger cannot fill evidence gaps.

Select substance-specific findings or explicitly attested uncertainty. Generic disclaimers and reusable adverse-effect warnings are not substance-specific evidence, even when quoted from this substance's article. Exclude that boilerplate rather than deriving addiction potential, dose-risk relationships, injury, or fatal outcomes from it.

Preserve the scope of safety claims. Omit undated statements that no deaths or adverse effects have been reported: they do not establish present-day absence. Anecdotal impressions and absent reports cannot establish that common doses are safe or not acutely dangerous. Retain explicitly attested uncertainty about toxic thresholds without adding reassurance or invented risks.

When severity assessments conflict, prefer the more authoritative assessment, prioritizing primary medical/toxicological evidence over community or anecdotal evidence. If assessments genuinely disagree and neither is clearly stronger, use the lower supported level and describe the uncertainty in the risk assessment directly. Match the evidence's actual risk rather than inflating rare outcomes or discounting documented ones.

### Scope

Keep addiction, physical dependence, lethal dosage, organ toxicity, carcinogenicity, antimicrobial activity, psychosis, and seizure findings here. Route-specific toxicity and the molecular mechanism of tissue damage belong here when supported.

Keep the following material in its separate article section:

| Material | Section |
|----------|---------|
| Receptor binding and primary or therapeutic mechanism of action | `pharmacology` |
| Drug interactions and combinations, including combination-related fatalities | `interactions` |
| Tolerance development timeline | `tolerance` |
| Subjective effect descriptions | `subjective_effects` |
| General dosing information | `dosage` |
| Effect duration and timeline | `duration` |
| Legal status | `legality` |

**Selection complete when:** every candidate finding has specific supporting excerpt text, belongs to an owned field, and passes the evidence and scope rules above. Apply the additional lethal-dose source restriction when populating that field.

## 2. Populate fields with direct findings

Write original, information-dense prose that is clinically precise, accessible, neutral, and harm-reduction focused. Synthesize and restructure the excerpts; standard medical and toxicological terminology may remain unchanged, but do not copy sentences or lengthy phrases.

Make each description about the substance, outcome, or biological process itself. State the actual supported finding directly, preserving species, route, exposure conditions, causal uncertainty, frequency, reversibility, and other qualifiers that limit its meaning. Report tested negative findings within their tested scope. Historical or descriptive labels attached to a claim and statements that testing was absent do not add findings to the prose; retain any actual supported result or risk uncertainty instead. Evidence-availability classifications may still be encoded where the schema explicitly supports them.

Use empty fields for missing information, not commentary about excerpts, documentation, sources, or data availability. This distinction preserves substantive uncertainty about a finding while keeping the writing focused on the substance. If equally authoritative severity assessments conflict, express the disagreement as uncertainty about the risk itself.

Keep descriptive string fields to 1-3 concise sentences, with the narrower psychological-addiction limit below. Use short labels for species, routes, units, anatomical systems, and assay names.

### Addiction, physical dependence, psychosis, and seizure

Map the source's own risk language about this substance onto the following enum. This mapping is expected; asserting an unsupported risk is not. Apply the full definition, including frequency and exposure pattern, rather than treating the seriousness of one outcome as evidence of how commonly it occurs.

| Level | Definition |
|-------|------------|
| `extremely_low` | Minimal risk even with regular use; virtually no documented cases |
| `low` | Rare occurrences; typically requires predisposing factors or heavy use |
| `moderate` | Documented risk at typical doses; occurs in a notable minority of users |
| `high` | Common occurrence; expected with regular use |
| `extremely_high` | Near-certain with regular use; potentially life-threatening |

Use `level: null` when the excerpts provide no risk assessment or lack the frequency or exposure pattern needed to meet a definition. Retain a supported adverse outcome or warning in `description` even when its level is unclassified. Leave the description empty only when no eligible finding supports it. Preserve rarity and relevant severity, including severe or life-threatening outcomes, without converting severity alone into frequency.

| Field | Population target |
|-------|-------------------|
| `addiction.psychological` | In 1-2 sentences, describe psychological addiction, abuse potential, reinforcement, habit formation, compulsive redosing, or difficulty stopping. Include supported daily-use or binge patterns and route differences. Assign level according to how commonly psychological addiction develops. |
| `addiction.physical_dependence` | Describe physical dependence distinctly from psychological addiction, including withdrawal or discontinuation symptoms and relevant tolerance development without its timeline. Preserve supported withdrawal severity, hospitalization needs, and fatality risk. Assign level according to likelihood and severity of dependence. |
| `psychosis` | Describe supported psychosis, psychotic episodes, delusions, paranoia, or emergence delirium. Include hallucinations only as part of a supported psychiatric risk finding, not ordinary subjective effects. Distinguish acute symptoms during use from persistent symptoms after use. Assign level according to supported frequency and severity. |
| `seizure` | Describe seizures, convulsions, epileptic effects, or seizure-threshold changes, with the conditions that increase risk. Assign level according to how commonly seizures occur. |

### `toxicity.lethal_dosage`

**Source restriction:** exclude all content from "Disregard Everything I Say" from both `notes` and `ld50`. Its speculative LD50 extrapolations are unsuitable for this field. Use only formal medical/toxicological sources, including the original source categories of PsychonautWiki, Wikipedia, Erowid, and academic sources. This exclusion is limited to lethal dosage; other harm-potential fields may use eligible findings from "Disregard Everything I Say".

- `notes`: approximate human lethal-dose estimates, case reports, anecdotal findings, informal ranges, and other information unsuitable for a formal LD50 entry. Preserve supported route- and tolerance-related variability and uncertainty. The interaction exclusion also applies here.
- `ld50`: formal LD50 results from controlled human or animal studies only. Each entry has `species`, `route`, numeric `value` or `null` for descriptive-only data, and `unit`. Preserve the reported administration route and units.

Informal estimates belong only in `notes`; leave `ld50: []` when no formal structured data is available. Never turn informal estimates into formal LD50 values.

### `toxicity.organ_toxicity`

Create one entry per affected organ or body system. Include supported organ damage, biomarker elevations, mechanistic models, and route-specific toxicity differences. Populate each entry as follows:

| Field | Population target |
|-------|-------------------|
| `system` | Anatomical organ or body-system name. |
| `findings` | A complete, self-contained sentence describing the damage and its supported exposure conditions. This is the summary visible in a collapsed card, so retain essential species, route, dose/frequency, duration, risk-factor, and causal qualifiers here. State explicitly when a finding applies only to heavy, chronic, compulsive, prolonged, extreme-dose, or overdose exposure. Use only conditions the excerpt supports; an unspecified condition is not a reason to invent one or imply safety at other exposures. |
| `mechanism` | Only the biochemical or molecular pathway of damage: molecular targets, cellular processes, or biochemical pathways. Keep mechanistic models qualified as models. Use `""` when no biochemical explanation is supported. |
| `notes` | Additional clinical context: prevalence, statistics, reversibility, case counts, populations, risk factors, dosing/frequency patterns, and observations without a biochemical explanation. Keep the essential conditions needed to understand the damage in `findings`; place further detail here. |

Keep findings proportionate to the attested exposure pattern. Evidence of damage under extreme use does not establish the same risk under occasional use, and it does not establish safety under occasional use either.

### `toxicity.carcinogenicity`

Use supported cancer, carcinogenicity, mutagenicity, or classification findings. Select the level from the definitions below, not from missing excerpts.

| Level | Definition |
|-------|------------|
| `confirmed` | IARC Group 1 or equivalent; established human carcinogen |
| `probable` | IARC Group 2A; strong animal evidence and limited human data |
| `possible` | IARC Group 2B; some evidence, not conclusive |
| `no_evidence` | Studies exist showing no carcinogenic activity |
| `unknown` | Explicitly attested insufficient data or absence of conducted studies |

Use `null` if the excerpts do not support a classification. Write `description` as direct cancer-risk findings, including negative study results with their species and other scope qualifiers. An explicitly attested absence of testing may support `unknown` without supplying descriptive prose.

Use `evidence: null` when no detailed evidence breakdown is supported. Otherwise populate the evidence object in step 3:

- `human_epidemiological`: evidence level for human epidemiological findings.
- `animal_models`: evidence level and array of tested species.
- `in_vitro`: `type` of finding and `assay_type`; use `null` for the whole object when no in-vitro data is available. When the object is present, its inner fields are strings, using `""` for unsupported text rather than inner `null` values.
- `mechanistic`: evidence level and the supported receptor or mechanism `basis`; the whole object may be `null` when no mechanistic evidence is available.

Apply these evidence levels only when explicitly supported:

| Level | Definition |
|-------|------------|
| `none` | No studies conducted |
| `negative` | Studies show no effect or carcinogenic activity |
| `limited` | Some studies suggest activity but remain inconclusive |
| `positive` | Clear evidence of carcinogenic activity |

Use `null` for an unassigned evidence level. An absent excerpt does not establish `none`, and an absence of studies does not establish `negative` or `no_evidence`.

### `toxicity.antibiotic_function`

Describe supported antimicrobial, antibiotic, bactericidal, or bacteriostatic findings directly, retaining experimental conditions and uncertainty. Select a classification only when the excerpts support it:

| Level | Definition |
|-------|------------|
| `confirmed` | Documented antimicrobial activity at pharmacological doses |
| `probable` | Strong in-vitro evidence with an understood mechanism |
| `possible` | Some evidence of antimicrobial properties |
| `no_evidence` | Studies show no antimicrobial activity |
| `unknown` | Explicitly attested absence of study of antimicrobial properties |

Use `null` when no classification is supported. Explicitly absent testing can support `unknown`; keep the description empty unless an actual finding is supported.

**Population complete when:** every eligible finding is represented in its correct field, every level meets its definition or is `null`, and descriptions retain the qualifiers needed to interpret findings without source commentary.

## 3. Return the exact YAML contract

Return only valid YAML with the single top-level key `harm_potential`, no Markdown fences or commentary. Include every field in the empty template, replacing empty values only where supported. Use `""` for empty strings, `[]` for empty arrays, and `null` for unassigned levels or unavailable optional evidence objects. Indent with spaces, not tabs.

```yaml
harm_potential:
  addiction:
    psychological:
      level: null
      description: ""
    physical_dependence:
      level: null
      description: ""
  toxicity:
    lethal_dosage:
      notes: ""
      ld50: []
    organ_toxicity: []
    carcinogenicity:
      level: null
      evidence: null
      description: ""
    antibiotic_function:
      level: null
      description: ""
  psychosis:
    level: null
    description: ""
  seizure:
    level: null
    description: ""
```

When populated, array entries and the carcinogenicity evidence object use exactly these fields and types. The notation below defines types, not literal output values.

```yaml
ld50:
  - species: string
    route: string
    value: number | null
    unit: string
organ_toxicity:
  - system: string
    findings: string
    mechanism: string
    notes: string
evidence:
  human_epidemiological: "none" | "negative" | "limited" | "positive" | null
  animal_models:
    level: "none" | "negative" | "limited" | "positive" | null
    species: string[]
  in_vitro:  # object | null
    type: string
    assay_type: string
  mechanistic:  # object | null
    level: "none" | "negative" | "limited" | "positive" | null
    basis: string
```

## 4. Check completion

Before returning, check every populated field against its supporting excerpt and confirm:

- All required keys and object/array shapes match step 3; each level is an allowed enum or `null`.
- Each fact passes step 1, including boilerplate, safety-claim, interaction, and owned-section boundaries.
- Both lethal-dose fields pass their source restriction, with informal estimates kept separate from formal LD50 results.
- Organ findings stand alone with supported conditions and qualifiers; mechanisms explain molecular damage, and additional clinical context is in notes.
- Every supported finding survives even when its severity is unclassified; unsupported information uses the specified empty value.
- Prose states direct findings or substantive uncertainty, with historical/descriptive labels and absent-testing commentary omitted. Tested negative results retain their experimental scope.
- The response is valid YAML only.
Section prompt: legality (10 KB)
# Legality Section Generation

You are a harm-reduction database assistant generating ONLY the `legality` section of a dose.wiki substance article.

---

## Context

dose.wiki is a new harm reduction database created by Josie Kins, a psychedelic researcher and the founder of PsychonautWiki, the Subjective Effect Index, Effect Index, and the blog "Disregard Everything I Say." She is known for her work on psychedelic harm reduction documentation, subjective effect taxonomy, and visual replication art.

---

## Style

Write in the style of Josie Kins' psychedelic harm reduction documentation:
- Notes are 1-3 short declarative sentences
- Neutral register: state what the law is; never advise or editorialize

---

## Critical Constraints

- SYNTHESIZE information from the provided excerpts into original prose
- Do not copy sentences or lengthy phrases verbatim from any source
- Standard legal terminology (schedule names, legislation names) can remain as-is
- Restructure and reframe information in your own voice
- Include ONLY information present in the provided excerpts (one bounded exception for explaining bare classifications, see Core Principles)
- Do not reference or comment on sources; present information directly without meta-commentary

---

## Core Principles

**Extract ALL Jurisdictions:** You MUST extract every jurisdiction mentioned in the source material, even if the information is minimal. Countries go in `countries`; US state entries go in `usStates` (see Field Definitions), never as `countries` keys.

**Evidence Only:** Only include legal statuses explicitly mentioned in sources. Laws change frequently - do not assume based on drug class. Match the size of the output to the size of the evidence: if the excerpts contain no legal status information for any jurisdiction, `international: []` with `countries: {}` is the correct and complete output, an empty section is right; a guessed jurisdiction is a failure.

One bounded exception to evidence-only: when a source gives only a bare classification, the note may explain what that classification generally entails (severity tier; whether possession, sale, or production is prohibited), but must not add legislation names, penalty figures, or dates the excerpts do not contain. Include legislation names only when the source provides them.

**Preserve Dates:** When a source gives an effective date, scheduling date, or "as of" date, carry it into the note (e.g., "Controlled since January 26, 2016"). Present a dated claim with its date qualifier, not as an undated present-tense fact, this matters most for "legal" or "unscheduled" statuses, which go stale silently (e.g., "Reported as federally unscheduled as of 2016").

**Conflicting Sources:** When sources disagree about a jurisdiction, prefer the claim with the more recent date. If neither is dated, report the more restrictive status and note the discrepancy (e.g., "Sources differ; listed as a controlled substance, though older sources describe it as unscheduled").

**Use Full Country Names:** Use complete, human-readable country names as keys (e.g., "United States" not "US", "United Kingdom" not "UK" or "U.K. (Britain)", "Australia" not "AU").

**Notes Are Required:** Every entry MUST have a non-empty `notes` field that explains the status, what it means, the legislation (when the source names it), or the practical consequences.

Examples of valid notes (even with minimal source info):
- "Classified as a narcotic substance on January 18, 2019."
- "Class A drug under the N-benzylphenethylamine catch-all clause in the Misuse of Drugs Act 1971."
- "Controlled substance; possession, production, and distribution are prohibited."

---

## Output Format

Return ONLY valid YAML for this structure (no markdown code fences, no commentary). `usStates` and `usStatesNote` are added only when sources give US state-level information:

```yaml
legality:
  international: []
  countries: {}
```

---

## Field Definitions

| Field | Type | Description | Example |
|-------|------|-------------|---------|
| `international` | `array` | International treaties and agreements; name the instrument, then the schedule | `["UN Convention on Psychotropic Substances 1971 (Schedule I)"]` |
| `countries` | `object` | Country-specific status keyed by full country name | See below |
| `usStates` | `object` (optional) | US state-level statuses keyed by full state name, same `{status, notes}` shape as countries; include only when sources give state-specific information | See Example Output |
| `usStatesNote` | `string` (optional) | One-sentence summary of the US state-level picture; include only when `usStates` is present | `"Unscheduled federally, but controlled in several individual states."` |

Emit only the fields defined here; other schema fields are populated downstream.

### Country Object Format

Every entry must have both `status` and `notes`. In these examples, assume every detail (legislation, dates, meanings) appeared in the source excerpts:

```yaml
countries:
  United States:
    status: "Schedule I"
    notes: "Controlled under the Controlled Substances Act. Classified as having high abuse potential with no accepted medical use."
  United Kingdom:
    status: "Class A"
    notes: "Controlled under the Misuse of Drugs Act 1971. Class A carries the most severe penalties."
  Germany:
    status: "Anlage I BtMG"
    notes: "Listed in Anlage I of the Betäubungsmittelgesetz (Narcotics Act). Prohibited with no medical use permitted."
  Australia:
    status: "Schedule 9"
    notes: "Prohibited substance under the Poisons Standard. No therapeutic use recognized."
  Netherlands:
    status: "List I (Opiumwet)"
    notes: "Controlled under the Opium Act. Possession, distribution, and production without license is illegal."
```

---

## Common Legal Statuses

Reference for explaining a classification the excerpts assign, never a source of statuses. A substance belongs under one of these only if the excerpts place it there.

### United States
- Schedule I (no accepted medical use, high abuse potential)
- Schedule II (high abuse potential, accepted medical use)
- Schedule III-V (decreasing restriction)
- Unscheduled / Legal
- Analogue Act applies (when sold for human consumption)

### United Kingdom
- Class A (most severe, e.g., heroin, cocaine, MDMA)
- Class B (e.g., amphetamines, cannabis)
- Class C (e.g., benzodiazepines, ketamine)
- Psychoactive Substances Act 2016 (blanket ban)

### Germany
- Anlage I BtMG (prohibited, no medical use)
- Anlage II BtMG (marketable but prescription only)
- Anlage III BtMG (prescription only)
- NpSG (New Psychoactive Substances Act)

### Australia
- Schedule 9 (prohibited, no therapeutic use)
- Schedule 8 (controlled drugs)
- Schedule 4 (prescription only)

---

## International Treaties

- UN Single Convention on Narcotic Drugs 1961
- UN Convention on Psychotropic Substances 1971
- UN Schedule I, II, III, IV (different from US schedules)

---

## Extraction Rules

- Look for "legal status", "scheduling", "controlled substance" sections
- Check for analogue act applicability
- Note blanket bans (UK PSA, German NpSG)
- Include exceptions (medical use, research exemptions)
- Include legislation names when the source provides them

---

## Example Output

Every detail below (legislation names, dates, penalties) is assumed to be present in the source excerpts, include such details only when your excerpts state them:

```yaml
legality:
  international:
    - "UN Convention on Psychotropic Substances 1971 (Schedule I)"
  countries:
    United States:
      status: "Unscheduled (federal)"
      notes: "Reported as federally unscheduled as of 2016. Controlled in several individual states."
    United Kingdom:
      status: "Class A"
      notes: "Controlled under the Misuse of Drugs Act 1971. Possession punishable by up to 7 years imprisonment."
    Germany:
      status: "Anlage I BtMG"
      notes: "Listed in Anlage I of the Betäubungsmittelgesetz. Manufacturing, possession, and distribution prohibited without license."
    Australia:
      status: "Schedule 9"
      notes: "Prohibited substance under the Poisons Standard. No therapeutic use recognized."
    Netherlands:
      status: "List I (Opiumwet)"
      notes: "Controlled under the Opium Act. Personal use not criminalized but possession, distribution, and production without license is illegal."
    Portugal:
      status: "Decriminalized (personal use)"
      notes: "Production and sale remain illegal. Since 2001, personal possession of small quantities is not a criminal offense; individuals may be referred to dissuasion commission."
  usStatesNote: "Unscheduled federally as of 2016, but controlled in some individual states."
  usStates:
    Florida:
      status: "Schedule I"
      notes: "Added to Florida's Schedule I controlled substance list in 2012."
    Maine:
      status: "Schedule X"
      notes: "Listed as a Schedule X substance under Maine law."
```

---

## Validation Checklist (MUST pass all before output)

- [ ] **ALL jurisdictions from source are included** - countries in `countries`, US states in `usStates`
- [ ] Country keys use full country names (e.g., "United States" not "US"); no US state appears as a `countries` key
- [ ] Every entry has both `status` and a non-empty `notes` that explains the status
- [ ] Source dates survive into notes - no undated present-tense claim from a dated source
- [ ] No legislation names, penalty figures, or dates beyond what the excerpts contain
- [ ] Output size matches evidence size - no-evidence excerpts produce empty `international` and `countries`
- [ ] `international` is an array of strings naming the instrument
- [ ] Only includes jurisdictions mentioned in sources
- [ ] No markdown code fences in output
Section prompt: history & culture (6 KB)
# History & Culture Section Generation

Generate only the `history_culture` section of a dose.wiki substance article. dose.wiki is Josie Kins' harm reduction database; use the neutral, encyclopedic voice of her harm reduction documentation.

## 1. Select historical and cultural evidence

When current article YAML is supplied, use it only as context for identifying the substance. Derive every output claim from the provided excerpts: dates, people, institutions, facts, and framing all require excerpt support. Never fill gaps with prior knowledge.

When excerpts conflict on a fact or date, prefer the Wikipedia excerpt over community wiki excerpts. State only that better-attested account, preserving its own level of certainty and temporal precision.

Discovery basics may overlap with the separately generated `summary`. Keep other article domains in their own sections:

| Material | Owning section |
|----------|----------------|
| Receptor binding and mechanism of action | `pharmacology` |
| Drug interactions and combinations | `interactions` |
| Tolerance development timeline | `tolerance` |
| Effect descriptions | `subjective_effects` |
| Dosing information | `dosage` |
| Duration and timeline of effects | `duration` |
| Legal status and scheduling or ban dates | `legality` |
| Toxicity, LD50, and health risks | `harm_potential` |

Scheduling and ban dates belong here only when the excerpts tie them to a cultural consequence, such as a market shift to successor compounds. Identification, classification, and citations are also generated separately.

**Complete when:** every genuine historical or cultural passage has been considered, every retained claim is excerpt-supported, each conflict is resolved by the stated priority, and all retained material fits this section's ownership.

## 2. Choose the structure the evidence supports

The root has both `content` and `sections`. With supported historical or cultural content, populate exactly one: use `sections: []` with root prose, or `content: ""` with sections. When no genuine historical or cultural content is supported, return `content: ""` and `sections: []`.

| Evidence available | Structure |
|--------------------|-----------|
| Everything fits in 3 or fewer paragraphs | Root `content` only |
| Richer material requiring more space and supporting at least 3 distinct topics | `sections` only |

A sentence or two of genuine history calls for one short root paragraph of matching length. Write only the supported material and stop. Choose section headings from the topics actually covered, whether a person's work, an incident, an era, or another supported theme.

### Sections and nested subsections

Every section has `heading`, `content`, and `subsections`.

- For an ordinary prose section, populate `content` and set `subsections: []`.
- For a list of distinct entities that each warrant a heading, such as notable individuals or research programs, use nested subsections and set the parent section's `content: ""`.
- Every nested subsection has its own `heading` and `content`. Use nesting only for these list-of-entities sections.

### Optional `date_range`

A section or nested subsection may include `date_range` only when it has a clear time period. Omit the field entirely for a topic without a specific time period.

- `start` is required whenever `date_range` is present.
- Add `end` for a span; omit it for a single date.
- Use quoted years or, when needed, full dates in `YYYY-MM-DD` format.
- Express decade-scale spans with start and end years, not decade labels.
- Date ranges may overlap between sections.
- Use only excerpt-attested dates and precision.

**Complete when:** the chosen root structure matches the amount of evidence, every heading has supported material, every section and subsection has its required fields, and every optional date range meets all rules above.

## 3. Write the narrative

Synthesize the selected evidence into original prose. Historical dates, names, and specific facts may remain as given; do not copy source sentences or lengthy phrases.

Write in encyclopedic third person, using past tense for historical events. Anchor claims to the specific dates, people, and institutions the excerpts provide. Present information directly without source commentary. Maintain neutral documentation without advocacy or moralizing about drug use, culture, or prohibition.

**Complete when:** the prose covers the selected history at its supported level of detail, preserves the evidence's temporal precision, and satisfies every voice and originality rule above.

## 4. Return the YAML

The entire reply must be valid raw YAML beginning with `history_culture:` on the first line. Use 2-space indentation and no tabs, code fences, commentary, or additional root fields. Use a YAML literal block scalar (`|`) for multi-paragraph content to preserve paragraph breaks.

Root prose shape:

```yaml
history_culture:
  content: ""
  sections: []
```

Section shape:

```yaml
history_culture:
  content: ""
  sections:
    - heading: ""
      content: ""
      subsections: []
```

Nested subsection shape:

```yaml
history_culture:
  content: ""
  sections:
    - heading: ""
      content: ""
      subsections:
        - heading: ""
          content: ""
```

Populate the chosen shape according to steps 2 and 3. Add optional `date_range` mappings at the applicable section or subsection level using `start` and, for spans, `end` as defined in step 2.

**Completion check:** before returning, confirm all evidence and ownership criteria in step 1, every structure and date criterion in step 2, and every prose criterion in step 3. Confirm the reply has both root fields, exactly one populated when content is supported or both empty when it is not, all required nested fields, and only the required raw YAML.
Section prompt: tolerance (5 KB)
# Tolerance Section Generation

Generate only the `tolerance` section of a dose.wiki substance article. dose.wiki is Josie Kins' harm reduction database; use the neutral, precise, accessible voice of her harm reduction documentation.

## 1. Select tolerance evidence

Use only provided passages about tolerance, cross-tolerance, or tolerance timelines. Excerpts may also contain unrelated pharmacology, trip reports, or sources marked as containing no tolerance content; select material by its relevance to these tolerance topics.

Every timeline, condition, and cross-tolerance entry must be attested in the excerpts. Preserve every uncertainty qualifier, including whether a claim is possible, suspected, or expressed with “may” or “might”. Apply that uncertainty to every output field rather than converting it into an established effect or fixed timeline.

When excerpts give different timeframes, report the supported range or explicitly describe the divergence instead of silently selecting one source. Include specific time ranges when available, with units.

**Complete when:** every relevant passage has been considered and its attested claims, conditions, uncertainty, and any conflicting timeframes are accounted for in the field decisions below.

## 2. Populate the four fields

Use the following definitions and extraction rules. Each populated prose string is 1-3 complete sentences; an unattested string field is `""`. An unattested `cross_tolerance` is `[]`. Empty fields are complete output when evidence is absent.

### `full_tolerance`: time to develop full tolerance with continuous use

Capture statements about tolerance developing, repeated use causing tolerance, or tolerance building rapidly. Preserve use conditions such as daily or consecutive use and any distinction between tolerance to specific effects.

**Complete when:** the field contains the attested development information and all applicable conditions and effect distinctions, or is empty if none is attested.

### `half_tolerance`: time for tolerance to reduce by 50%

Populate only when an excerpt explicitly states a half-tolerance timeframe. Statements about tolerance beginning to decrease are relevant only if they also establish when it reaches half. Never derive this value from baseline tolerance or general knowledge.

**Complete when:** the field states an explicitly attested half-tolerance timeframe with its qualifications, or is empty.

### `baseline_tolerance`: time to return fully to baseline

Capture the full-reset timeframe. Excerpts may express it as spacing advice to wait a stated interval between uses; extract that timeframe while preserving the conditions and uncertainty attached to it.

**Complete when:** the field contains the attested reset timeframe, including relevant spacing advice, or is empty if none is attested.

### `cross_tolerance`: array of strings naming classes with shared tolerance

Include every cross-tolerant drug class mentioned in the excerpts, using standard terminology. A short parenthetical of representative drugs is allowed only when the excerpts name them. Preserve uncertainty in the label itself, such as a “Possible cross-tolerance with” qualification. Never infer cross-tolerance from the substance's class or use an unqualified label for a qualified claim.

**Complete when:** every attested class is represented with its qualifications, every named representative drug is excerpt-supported, and no entry is inferred; use an empty array when cross-tolerance is unattested.

## 3. Synthesize the prose

Express the selected evidence in original wording while retaining standard receptor names and pharmacological terminology. Do not copy source sentences or lengthy phrases.

Use phenomenologically precise, technically accurate, information-dense prose that remains readable and clinical without being cold. Present the substance directly in a neutral, non-advocacy register, without source commentary.

**Complete when:** all populated fields use original, readable prose or concise class labels as appropriate, and retain every qualification and conflict identified in step 1.

## 4. Return the YAML

Return all four fields in this exact structure and order:

```yaml
tolerance:
  full_tolerance: ""
  half_tolerance: ""
  baseline_tolerance: ""
  cross_tolerance: []
```

The entire reply must be valid raw YAML. Its first line is exactly `tolerance:` and its last line is the final field or its final array entry. Do not include code fences, commentary, or additional fields. `full_tolerance`, `half_tolerance`, and `baseline_tolerance` are strings; `cross_tolerance` is an array of strings.

**Completion check:** before returning, confirm every field meets its step 2 criterion, every timeline has units, steps 1 and 3 are satisfied, and the reply matches the required YAML shape and output boundary.
Section prompt: summary (3 KB)
# Summary Section Generation

Generate only the `summary` section of a dose.wiki substance article. dose.wiki is Josie Kins' harm reduction database; use the neutral, precise, accessible voice of her harm reduction documentation.

## 1. Select the supported overview

Use only claims explicitly stated or clearly implied in the provided excerpts. A synthesis date, discoverer, or origin requires explicit attestation; never fill gaps from prior knowledge.

Consider every topic below, retaining only what the excerpts support:

| Topic | Scope |
|-------|-------|
| Identity | Primary name and chemical class |
| Psychoactive class | Primary effects category |
| History or origin | First synthesis, discoverer, or traditional use |
| Distinguishing characteristics | Features that distinguish the substance from similar substances |
| Key safety notes | Attested adverse outcomes, adulterants, or caustic routes, with the conditions and uncertainty attached to those hazards. Research availability is not itself an adverse outcome and is outside this overview. |

Keep the overview within these ownership boundaries:

| Material owned elsewhere | Summary allowance |
|--------------------------|-------------------|
| `dosage`: specific dosage numbers | One qualitative potency note |
| `duration`: onset, peak, and offset timelines | One overall-duration clause |
| `pharmacology`: detailed mechanism of action | None of that detail |
| `legality`: legal status details | None |
| `subjective_effects`: exhaustive effect lists | Only the overview topics above |
| Identification above the summary: alternative, slang, and chemical names | Primary name only |

**Complete when:** all five topics have been considered, every selected claim has excerpt support, and all selected material fits the ownership boundaries.

## 2. Write the overview paragraph

Synthesize the selected information into original prose, ordered naturally for someone unfamiliar with the substance. Retain standard technical terminology such as chemical and drug class names, but do not copy source sentences or lengthy phrases.

Aim for 50-80 words. If the excerpts support fewer than 50 words, write a shorter paragraph of matching substance rather than padding it.

Write in third person and declarative present tense, using past tense for origins. Build each sentence around what the substance is, does, or causes, or when and how it originated. Attach uncertainty to those specific facts. Use neutral, precise, technically accurate prose that is readable without specialist knowledge. The paragraph is a substance description, not an assessment of research coverage or a request for further study.

**Complete when:** every sentence states a supported identity, effect, origin, distinguishing property, or concrete hazard; qualifications describe that fact's limits. The paragraph uses original wording and the specified voice, and meets the length target or is shorter because those facts warrant fewer words.

## 3. Return the YAML

Return exactly one string field in this structure:

```yaml
summary: ""
```

The entire reply must be valid raw YAML, beginning with `summary:`. Use proper string quoting and no tabs. Do not include code fences, commentary, explanations, or additional fields.

**Completion check:** before returning, confirm every criterion in steps 1 and 2 is satisfied and the reply contains only the required YAML string field.

The six prompts are version-controlled alongside the code, and the live copies are editable by the editorial team. The prompts have been undergoing continuous improvement, and they are stable enough that editors should feel empowered to adjust them as necessary. Prompt changes affect future generation runs that use the revised version. Not every prompt the site uses is published: besides the ones on this page, some exist as template literals in code, and some are stored privately. The citation and legality workflows carry their own prompt families; those live in the repository under scripts/citations/ and scripts/legality/ and are not yet published on this page.

06 Citations & legality deep research

The six AI-drafted sections are the citable sections: those that can carry Wikipedia-style markers linked to a reference list. Other sections, including dosage tables, interaction ratings, and subjective effects, use separate provenance and review paths. Citation work has run in three passes: a marking pass that proposed the markers, a legality rebuild that set a stricter standard, and an automated check of whether each cited source supported its associated claim. This last pass is called an entailment audit.

Every live marker on an article today has passed the audit in pass three: the cited source was fetched and found to support the sentence. Markers that failed were removed, and their sentences now show citation needed.

Pass one: proposing markers

LLM research agents read the citable prose and choose bounded claims that may need support. They inspect candidate sources and record the relationship they believe each source supports. A marker appears only when inspected evidence supports a nearby claim. Uncertain relationships are recorded as internal gaps and receive no marker.

1Automated
Identify claims
Research agents inspect the citable prose and choose bounded claims that may need support
2Automated
Inspect references
Agents inspect candidate sources and record the relationship they believe each source supports
3Automated
Mark
The workflow inserts citation markers into the text. Nothing else changes, byte for byte
4Stored
Record evidence
The workflow records a short source quote and rationale behind each proposed marker
5Stored
Validate structure
Deterministic gates check marker, reference, and evidence consistency before a draft can be reviewed

Reference standards

  • Wikis are discovery sources only. The workflow uses Wikipedia and PsychonautWiki to find candidates, while final references are intended to be inspectable journals, government documents, drug labels, books, or databases.
  • Page-specific identifiers. Repeated same-site sources, for example DailyMed drug labels, receive distinct per-page reference IDs so separate documents remain separate during review.
  • Access limitations stay visible. If the accessible abstract of a paywalled paper supports the claim, the workflow can use that paper. The record notes abstract-only access so that reviewers know what was inspected.

Citations render as numbered markers linked to the reference list. Behind each marker, the workflow retains the quote and rationale as review evidence, so a human can inspect exactly what the marker was based on. Whatever a citation's review state, every source link stays followable, so readers can always see where the information comes from. Section 08 (What can still go wrong) states what a marker does and does not establish.

Pass two: legality deep research

Legal information can become outdated because drug law changes often. Laws also differ by country, and most published summaries cite other summaries instead of the law. The legality section therefore has its own deep-research workflow, separate from the main pipeline. It reads primary legal sources only: statutes, official schedules, and government legislation portals.

Legality was also the test case for a per-subsection research pipeline. Each country is a separate subsection with one question and one class of source. The test case established the invariants below, rules that every run must follow. These rules also form the template for a separate pipeline for each remaining subsection. Pharmacology is next. The end state is one pipeline per subsection, run over every article.

One orchestrator agent runs the workflow for one substance at a time. It launches many small research agents in parallel. Each agent starts with a blank context, one narrow question, and a strict output contract. Research and refutation are never the same agent. Every surviving claim is checked by an independent refuter, an agent that tries to disprove it without the research agent's prior conversation. A refuted claim becomes a recorded gap, or it re-enters research for at most two recovery cycles. The point of the adversarial loop is precision, so that human verification of the finished section is efficient. The diagram below shows the full sequence, from export packet through the cite, discovery, gap, and correction passes to the US state pass, merge, and human-confirmed write.

External research
Automated pipeline
Data store
Human decision
Published output
Legality deep research: export packet through parallel research passes, adversarial refutation, US state pass, merge and validation, human-confirmed write, and citations

Invariants

  • No entry enters the draft without a primary source (no source means a recorded gap, never a published claim).
  • Research and refutation are always separate blank-context agents.
  • A human confirms every write.
  • Legacy claims that cannot be sourced are flagged citation needed for review. Corrections or removals must be recorded, never made silently.

Pass three: checking claims against sources

The legality loop has four steps: validate what can be validated, cite what a primary source supports, find sources for the rest, and correct or remove what cannot be sourced. The audit ran the first and last of those steps over the other citable sections. It fetched each cited source and compared it with the claim. A marker stayed only when the source explicitly supported the claim as written. Every other marker was removed, and its sentence now shows citation needed. Safety-sensitive pairs also faced an independent adversarial re-check before the audit accepted any change. The audit kept the invariants listed under pass two.

The middle two steps come next: find sources for the claims that lost their markers, and change or remove any claim that no source supports. Section 09 (Status & roadmap) tracks that work.

07 Human review

Editorial review is the first person-led stage specific to one article. The baseline pipeline before it was produced for every substance at once. Editors verify the pharmacology, check the doses and interactions where a wrong figure can hurt someone, and add what the sources left out.

Readers take part in this stage. The report-an-issue form at the bottom of each article, or the site-wide feedback form, sends a note to the review queue. An editor reads each note and decides whether the article changes. Reader feedback is the main way that errors reach a reviewer.

It took us about a year to build the pipeline, and editors have been reviewing articles for months. Reviewing is ongoing work, and help is welcome: checking citations and reporting errors and omissions both feed the queue. Editors also add material that exists nowhere else: remarks and caveats, hand-drawn structure images, and placement in the site's own substance and effect taxonomies. The article editor works like Wikipedia's, so you can view recent changes on any article and propose changes yourself. All changes made through it are reflected in future releases of the open dataset.

Editorial review is a recorded human workflow with four steps.

1Review
Inspect
A reviewer reads the article and follows the sources relevant to the review
2Review
Check
The reviewer checks important claims and records uncertainty rather than assuming coverage
3Review
Edit
Corrections use the editor's normal diff and save workflow
4Stored
Record status
The separate review action stores status, reviewer identity, and completion time

Each article shows this as a three-step Article Status. Step 1 is automated synthesis, which creates the baseline draft. Step 2 is the editorial review described here. Step 3 is a human citation review that compares each claim with its source. It is the pass planned as Phase 4 in section 09 (Status & roadmap), and no article has completed it yet.

Updates to a published article can also start from the pipeline. Re-running the extraction and synthesis prompts for a section produces a suggested edit that an editor can review; citation markers are ignored during that pass, and citation status is tracked separately. Different parts of an article get different review tools: dosage tables are reviewed in a table editor, interaction ratings are calculated and reviewed, and subjective effects are reviewed in a taxonomy-based editor. Each tracks citation status through its own prompt families. Editorial review and citation status are recorded separately in each of these tools.

The review workbench stores one of three statuses: needed, in progress, or completed. Completed means a human editor recorded a review at a point in time. When the stored reviewer identity resolves to a public contributor profile, the article attributes that specific review. Editor saves and review status are distinct records: the changelog shows who changed text and when, while the review status shows that a review was marked complete.

The editorial reviewer reads and corrects the article text. The citation workflows (section 06 (Citations & legality)) attach and audit citation markers under their own recorded states, separate from editorial review. Section 08 (What can still go wrong) states what a completed status does and does not establish.

Structure drawings are the one pipeline output a person makes by hand. The molecule editor is a separate tool from the text editor (section 03, Scraping & parsing, under Chemistry identifiers). An editor redraws the molecule by hand, or draws one template for a chemical class and applies it to every member. Hand-drawn molecules are never overwritten by a template. Saving a drawing does not change the article text or its review status.

08 What can still go wrong

The workflows above reduce error without eliminating it.

Source links record influence only. Source-page links document material that informed the pipeline. They do not, by themselves, show that a source supports a particular sentence. Citation markers record the separate, intended evidentiary relationships between claims and references, and section 06 (Citations & legality) describes how those are produced and audited.

Citation evidence can be wrong. A marker records a quote and a rationale, and the entailment audit checked that the source supports the sentence. It does not prove source quality or current accuracy. Important claims still need a human check against the cited source.

Workflow controls have limits. Prompts, validators, citation evidence, and editorial review reduce error and make decisions inspectable. They cannot guarantee that prose is complete, that a citation entails every nearby phrase, or that information remains current.

A completed review is a dated record. Completed means a human editor recorded a review at a point in time. It does not certify every sentence, dose, interaction, citation, or legal conclusion. The status does not pin the exact article revision that was reviewed. Later edits can make an older completion record stale, and the stored status does not change. Citation states (including the visible citation needed indicator) are workflow records, never the reviewer's personal claims.

The working copies have a date. The pipeline reads working copies captured on the date given in section 01 (The ten source sites). Source sites keep evolving after capture, and the baseline is never re-captured; automatic updating of the source baseline is not yet available. Later accuracy comes from the human and citation stages in section 09 (Status & roadmap).

LLMs make mistakes. The verbatim-excerpt rule exists because an LLM that re-types source text can hallucinate: a changed digit or an invented phrase can slip in unnoticed (section 04 (Verbatim excerpts)). So LLMs never transcribe, and drafts are held to their excerpt documents. Synthesis can still misweigh or omit evidence. Drafts stay revisable because they return through the citation and review workflows.

09 Status & roadmap

dose.wiki is in beta. Every article is generated, checked, and corrected in public through workflows that are still running.

Work on the baseline runs in stages. Some are finished, and the rest are planned. This section records where each stands as of August 31, 2026.

Phase 1: Foundation pipeline

Complete

The baseline is complete for every article: verbatim excerpt extraction, AI synthesis, and claim-level citations across the working copies. Sections 02 through 06 describe this pipeline. This page publishes all eight extraction prompts and committed copies of the six section prompts; live section prompts can differ.

Phase 2: Legality primary-source remediation

Complete

This was the country-by-country deep research in section 06 (Citations & legality). The workflow validated existing legality entries against statutes and official schedules where possible. Remaining claims received targeted primary-source searches. Entries that survived were cited. Entries that could not be sourced were corrected, removed, or flagged citation needed.

Phase 3: Citation entailment audit

Complete

The legality process, generalized to the other citable sections (section 06 (Citations & legality)): the audit re-examined every claim–citation pair against a fresh fetch of its source. Markers the source did not explicitly support were removed, and those sentences now show citation needed.

Phase 4: Citation research and correction

Planned

A research pass over the audit's output, starting with pharmacology. Some errors in the corpus come from incorrect excerpts collected in phase one, and others may have been overlooked in phase three; this pass hunts both down. Each citation needed claim receives a source search. If a source is found, the marker is restored. If none is found, or the source disagrees, the claim is changed or removed. A recorded human pass then reviews the results. The site tracks this separately from editorial review (section 07 (Human review)), so each carries its own status and scope. Done when every flagged entry carries a recorded disposition.

Phase 5: Emergent Subjective Effect Index

Planned

This is a new version of the Subjective Effect Index, developed by Josie Kins at Mindstate Design Labs. On release it replaces the current Subjective Effect Index, and the subjective effects section of every article is rebuilt on it.

Phase 6: More substances

Planned

The current substance set is the one the working copies cover. New substances are added by running the same pipeline on new source pages, then passing through the audit and review stages above.

Phase 7: Editor and reader corrections

Ongoing

dose.wiki is a wiki, and errors will always happen. Editor corrections, messages sent through the article feedback form, replication evidence, and curated additions continue to build on the baseline.

10 The open dataset

The pipeline produces SubstanceIndex.json: the full substance database in one consistent schema and one downloadable file. The download is a snapshot, made when the dataset is exported. The article database continues to change between snapshots.

It also produces the molecule pack: one SVG drawing per substance, plus generic skeletons for chemical classes, plus a manifest that lists each drawing with its SMILES string and whether it was drawn by hand, aligned to a template, or left as an automatic layout. Each drawing is distributed in two color sets, the dose.wiki brand colors and the standard textbook colors. The pack is rebuilt every night from the live depiction database.

The drafts come with their receipts. The prompts published on this page and the encyclopedia-building dataset show what went into each draft and how it was produced, so you can build your own encyclopedia pipeline or other things on top of it. Running the same pipeline will not necessarily produce the same article. Other sites and apps already make extensive use of the encyclopedia's content.

Sample record · refreshed nightly from the live database
1{
2 "id": 5,
3 "title": "1cP-MiPLA",
4 "priority": "high",
5 "index_categories": [],
6 "identification": {
7 "common_name": "1cP-MiPLA",
8 "substitutive_name": "1-Cyclopropionyl-N-methyl-N-isopropyllysergamide",
9 "iupac_name": "(6aR,9R)-4-(cyclopropanecarbonyl)-N,7-dimethyl-N-propan-2-yl-6,6a,8,9-tetrahydroindolo[4,3-fg]quinoline-9-carboxamide",
10 "alternative_names": [
11 "1cP-MIPLA",
12 "Lamide (parent compound)"
13 ],
14 "smiles": "CN1C[C@@H](C=C2[C@H]1Cc1cn(c3c1c2ccc3)C(=O)C1CC1)C(=O)N(C(C)C)C",
15 "inchi_key": "",
16 "cas_number": "",
17 "molecular_formula": "C24H29N3O2",
18 "molecular_weight": "391.506 g/mol",
19 "skeletal_structure_image": "",
20 "botanical_name": ""
21 },
22 "classification": {
23 "psychoactive_class": [
24 "Psychedelic"
25 ],
26 "chemical_class": [
27 "Lysergamide"
28 ]
29 },
30 "summary": "1cP-MiPLA is a semisynthetic psychedelic of the lysergamide class that first emerged as a novel designer drug around 2020.[citation-needed] It is a structural analog of MiPLA and is suspected to act as a prodrug for that compound, though insufficient data currently exists to confirm this relationship.[citation-needed] As a research chemical with limited documented human use, its safety profile and pharmacological properties remain poorly characterized.",
31 "dosage": {
32 "routes": [
33 {
34 "route": "oral",
35 "bioavailability": "",
36 "bioavailability_notes": "",
37 "dose_ranges": {
38 "threshold": {
39 "min": 50,
40 "max": null,
41 "unit": "µg"
42 },
43 "light": {
44 "min": 100,
45 "max": 150,
46 "unit": "µg"
47 },
48 "moderate": {
49 "min": 150,
50 "max": 200,
51 "unit": "µg"
52 },
53 "strong": {
54 "min": 200,
55 "max": 250,
56 "unit": "µg"
57 },
58 "heavy": {
59 "min": 300,
60 "max": null,
61 "unit": "µg"
62 }
63 },
64 "notes": "The spacing between threshold and light dose ranges is unusually wide, reflecting the scarcity of reliable dosing data for this recently emerged compound.",
65 "reference_ids": []
66 }
67 ],
68 "plateau_dosing": null
69 },
70 "duration": {
71 "routes": [
72 {
73 "route": "oral",
74 "half_life": "",
75 "half_life_notes": "",
76 "stages": {
77 "onset": {
78 "min": 20,
79 "max": 40,
80 "unit": "minutes"
81 },
82 "come_up": {
83 "min": 45,
84 "max": 90,
85 "unit": "minutes"
86 },
87 "peak": {
88 "min": 1,
89 "max": 2,
90 "unit": "hours"
91 },
92 "offset": {
93 "min": 1,
94 "max": 2,
95 "unit": "hours"
96 },
97 "after_effects": {
98 "min": null,
99 "max": null,
100 "unit": "hours"
101 },
102 "total_duration": {
103 "min": 4,
104 "max": 6,
105 "unit": "hours"
106 }
107 },
108 "reference_ids": []
109 }
110 ]
111 },
112 "subjective_effects": {
113 "notes": {
114 "overview": "1cP-MiPLA is believed to act as a prodrug for MiPLA, and its subjective effects are correspondingly reported to closely mirror those of its parent compound. The experience is that of a classic lysergamide psychedelic in the vein of LSD, though it is generally described as gentler, shorter-lasting, and less mentally demanding than LSD itself. Formal documentation of this compound remains minimal, and its effect profile is inferred largely from user reports and its relationship to MiPLA.",
115 "sensory": "Visual effects follow the typical lysergamide pattern of color enhancement, flowing distortions, and geometric patterning, though they are commonly reported as softer and less forceful than those of LSD at comparable doses.",
116 "cognitive": "The headspace is often characterized as relatively clear and easygoing, with euphoria and an altered sense of time, and with less of the anxiety and cognitive intensity associated with LSD.",
117 "physical": "The body load is generally described as light, consisting primarily of mild stimulation alongside standard serotonergic psychedelic signs such as pupil dilation."
118 },
119 "sensory": {
120 "visual": {
121 "note": "Visual effects are characteristic of lysergamide psychedelics but are typically milder than those of LSD at equivalent doses.",
122 "subcategories": {
123 "geometry": {
124 "note": "",
125 "effects": [
126 {
127 "name": "Geometry",
128 "description": "Geometric patterning is present but generally less intricate and intense than that produced by LSD."
129 }
130 ]
131 },
132 "distortions": {
133 "note": "",
134 "effects": [
135 {
136 "name": "Drifting",
137 "description": ""
138 },
139 {
140 "name": "Tracers",
141 "description": ""
142 }
143 ]
144 },
145 "enhancements": {
146 "note": "",
147 "effects": [
148 {
149 "name": "Color enhancement",
150 "description": ""
151 }
152 ]
153 }
154 }
155 },
156 "auditory": {
157 "note": "",
158 "subcategories": {}
159 },
160 "tactile": {
161 "note": "",
162 "subcategories": {}
163 },
164 "olfactory": {
165 "note": "",
166 "subcategories": {}
167 },
168 "gustatory": {
169 "note": "",
170 "subcategories": {}
171 },
172 "multisensory": {
173 "note": "",
174 "subcategories": {}
175 }
176 },
177 "cognitive": {
178 "emotional": {
179 "note": "",
180 "effects": [
181 {
182 "name": "Euphoria",
183 "description": ""
184 }
185 ]
186 },
187 "perception": {
188 "note": "",
189 "effects": [
190 {
191 "name": "Time distortion",
192 "description": ""
193 }
194 ]
195 }
196 },
197 "physical": {
198 "stimulation": {
199 "note": "",
200 "effects": [
201 {
202 "name": "Stimulation",
203 "description": "Mild and less pronounced than the stimulation associated with LSD."
204 }
205 ]
206 },
207 "neurological": {
208 "note": "",
209 "effects": [
210 {
211 "name": "Pupil dilation",
212 "description": ""
213 }
214 ]
215 }
216 },
217 "attribution": {
218 "author": "dose.wiki AI editorial pipeline",
219 "text": "This section was synthesized from the article's collected source material by dose.wiki's AI editorial pipeline.",
220 "url": ""
221 }
222 },
223 "comparisons": [],
224 "pharmacology": {
225 "pharmacodynamics": "Direct receptor-binding and functional-activity data have not been reported for 1cP-MiPLA. The available primary study identified the substance in sheet products but did not assess its biological activity.[cite:doi-10-1007-s11419-023-00661-1]",
226 "binding_sites": [],
227 "pharmacokinetics": "No substance-specific metabolic pathway has been reported for 1cP-MiPLA.[citation-needed] Conversion to MiPLA remains a hypothesis by analogy with other N1-acyl lysergamides: conversion of 1cP-LSD to LSD has been demonstrated in human serum, but conversion of 1cP-MiPLA to MiPLA has not.[citation-needed]",
228 "metabolites": []
229 },
230 "interactions": {
231 "dangerous": [
232 "Lithium (There are a large number of reports indicating a high seizure and psychosis risk from this combination.)"
233 ],
234 "unsafe": [
235 "Tramadol (Tramadol is well known to lower seizure threshold and psychedelics also cause occasional seizures.)"
236 ],
237 "caution": [
238 "Amphetamines (Stimulants increase anxiety levels and the risk of thought loops which can lead to negative experiences)",
239 "Cannabis (Cannabis has an unexpectedly strong and somewhat unpredictable synergy with psychedelics.)",
240 "Cocaine (Stimulants increase anxiety levels and the risk of thought loops which can lead to negative experiences)",
241 "Diphenhydramine (At 25-50mg, DPH may assist with side effects of the LSD such as nausea and anxiety. At higher dosages, the combination of a deliriant (DPH) and LSD is cautioned against. LSD is likely to increase the deliriant and negative effects of DPH, in addition to increasing the risk of severe injury and mental trauma. LSD and DPH at recreational dosages have additional cardiac concerns such as vasoconstriction, tachycardia, hypertension, which in combination may be exacerbated.)",
242 "Mephedrone (The anxiogenic and focusing effects of stimulants increase the chance of unpleasant thought loops, in addition to the possible negative side effects of coming down from said stimulant while on a psychedelic. In extreme cases, stimulants, especially in combination can result in severe vasoconstriction, tachycardia, hypertension, and heart failure.)",
243 "Pregabalin (Caution should be given due to LSD’s stimulating effects and pregabalin’s seizure concerns at higher dosages. Pregabalin may reduce the vasoconstriction, anxiety, and other side effects of LSD. Additionally, Pregabalin may increase LSD’s inhibition and risk of injury.)"
244 ]
245 },
246 "reagent_testing": {},
247 "tolerance": {
248 "full_tolerance": "Tolerance to the effects of 1cP-MiPLA develops almost immediately following ingestion, consistent with the rapid tolerance pattern observed with other lysergamide psychedelics.",
249 "half_tolerance": "Approximately 5-7 days after use, tolerance is estimated to decrease to roughly half of its peak level.",
250 "baseline_tolerance": "Complete return to baseline tolerance typically requires around 14 days of abstinence from 1cP-MiPLA and other serotonergic psychedelics.",
251 "cross_tolerance": [
252 "Serotonergic psychedelics (LSD, psilocybin, mescaline, DMT)",
253 "Other lysergamides"
254 ]
255 },
256 "harm_potential": {
257 "addiction": {
258 "psychological": {
259 "level": "extremely_low",
260 "description": "Assumed to be non-habit-forming based on its similarity to LSD[citation-needed]; the desire to use may actually decrease with repeated administration. No formal studies have been conducted."
261 },
262 "physical_dependence": {
263 "level": "extremely_low",
264 "description": "No evidence of physical dependence potential. Like LSD, 1cP-MiPLA is not associated with withdrawal symptoms or compulsive physical need for the substance.[citation-needed]"
265 }
266 },
267 "toxicity": {
268 "organ_toxicity": [],
269 "carcinogenicity": {
270 "level": "unknown",
271 "evidence": null,
272 "description": "No carcinogenicity studies have been conducted on 1cP-MiPLA."
273 },
274 "antibiotic_function": {
275 "level": "unknown",
276 "description": "No studies on antimicrobial properties."
277 }
278 },
279 "psychosis": {
280 "level": null,
281 "description": "May act as a potential trigger for psychotic episodes in individuals with underlying psychiatric conditions or family history of mental illness.[citation-needed] Adverse psychological reactions including delusions become more likely at higher doses, though severe psychotic episodes requiring medical attention are uncommon with this substance alone."
282 },
283 "seizure": {
284 "level": null,
285 "description": "Seizures are reported rarely and are thought to mainly pose a risk in those who are genetically predisposed[citation-needed], particularly when accompanied by physically taxing conditions such as dehydration, fatigue, or undernourishment. Risk is extrapolated from seizures reported following LSD use."
286 }
287 },
288 "history_culture": {
289 "content": "1cP-MiPLA is a novel synthetic lysergamide that first emerged on online research chemical markets around 2020.[citation-needed] The compound's origins remain somewhat unclear, with unverified reports attributing its initial synthesis to either Skyler Ulrich or a chemist or group operating under the name Gerstmann. It appeared alongside several other novel lysergamide derivatives, including 1cP-AL-LAD[citation-needed], as part of a wave of new designer psychedelics entering the grey market during this period.\n\nBy 2022, the compound had been identified in Japan[cite:doi-10-1007-s11419-023-00661-1], indicating its spread beyond initial Western markets. Like many contemporary research chemicals, 1cP-MiPLA was developed and distributed primarily through online vendors catering to the research chemical community[citation-needed], with limited formal scientific investigation into its properties beyond forensic identification studies.[citation-needed]\n",
290 "sections": []
291 },
292 "legality": {
293 "international": [],
294 "countries": {
295 "Russia": {
296 "status": "Schedule I",
297 "notes": "Classified as a schedule I controlled substance under Russian drug control legislation.[cite:url-normativ-kontur-ru-document-moduleid-1-documentid-503195]"
298 },
299 "Austria": {
300 "status": "Controlled under analogue or structural rule",
301 "notes": "1cP-MiPLA is covered by NPSV Annex II no. 11 as a 9,10-didehydro-ergoline-8-carboxamide derivative. NPSV Annex III no. 11 provides illustrative lysergamide examples, but does not name 1cP-MiPLA specifically. Under NPSG, § 4(1) establishes a conduct- and intent-specific offense for producing, importing, exporting, transferring or supplying a covered NPS for another person's psychoactive use with intent to obtain an advantage (up to two years' imprisonment). The prohibition is not unqualified: mere possession or personal use is not prohibited in every circumstance.",
302 "canonicalStatus": "analog_covered",
303 "instrument": "Neue-Psychoaktive-Substanzen-Verordnung (NPSV), Annex II no. 11; NPSG § 4(1) [cite:ris-bka-gv-at-neue-psychoaktive-substanzen-verordnung-npsv-annex-ii-no-11-npsg-4-1][cite:ris-bka-gv-at-neue-psychoaktive-substanzen-verordnung-npsv-annex-ii-no-11-npsg-4-1-37a749][cite:ris-bka-gv-at-neue-psychoaktive-substanzen-verordnung-npsv-annex-ii-no-11-npsg-4-1-66706f]"
304 },
305 "Germany": {
306 "status": "Illegal",
307 "notes": "Controlled substance as of July 2021.[cite:de-npsg-anlage1-ergolene-2021] Possession, production, and distribution are prohibited.[cite:de-npsg-para3-prohibitions]"
308 },
309 "Switzerland": {
310 "status": "Controlled (Verzeichnis E)",
311 "notes": "Listed as a defined derivative of Lysergic Acid under Verzeichnis E point 263 of the controlled substances ordinance.[cite:ch-betmvv-edi-verzeichnis-e-263] Exempt when used for scientific or industrial purposes.[cite:ch-betmvv-edi-verzeichnis-e-263]"
312 },
313 "United States": {
314 "status": "Unscheduled",
315 "notes": "Not specifically scheduled under the Controlled Substances Act. However, may be prosecuted as an analogue of LSD under the Federal Analogue Act when intended for human consumption.[cite:us-21-usc-813-analogue-act]"
316 }
317 }
318 },
319 "source_citations": [
320 {
321 "name": "Isomer Design (TiHKAL/PiHKAL)",
322 "url": "https://isomerdesign.com/PiHKAL/explore.php?domain=pk&id=11316&name=1cP-MiPLA"
323 },
324 {
325 "name": "PsychonautWiki",
326 "url": "https://psychonautwiki.org/wiki/1cP-MiPLA"
327 },
328 {
329 "name": "TripSit: Drug Combinations Chart",
330 "url": "https://combo.tripsit.me/"
331 },
332 {
333 "name": "Wikipedia",
334 "url": "https://en.wikipedia.org/wiki/1cP-MiPLA"
335 }
336 ],
337 "citations": [
338 {
339 "name": "Halberstadt A.L. et al. Pharmacological characterization of novel lysergamides including MiPLA. Neuropharmacology (2020)",
340 "url": "https://pubmed.ncbi.nlm.nih.gov/32470368/"
341 },
342 {
343 "name": "Tanaka R. et al. Identification of LSD analogs, 1cP-AL-LAD, 1cP-MIPLA, 1V-LSD and LSZ in sheet products. Forensic Science International (2023)",
344 "url": "https://doi.org/10.1016/j.forsciint.2023.111594"
345 },
346 {
347 "name": "TripReport.net substance overview: 1cP-MiPLA",
348 "url": "https://tripreport.net/substances/1cP-MiPLA"
349 },
350 {
351 "name": "Wagmann L. et al. Analysis of LSD analogs (1cP-MiPLA, 1cP-LSD, etc.) in seized blotters. Forensic Toxicology (2021)",
352 "url": "https://link.springer.com/article/10.1007/s11419-021-00554-y"
353 }
354 ],
355 "references": [
356 {
357 "id": "ch-betmvv-edi-verzeichnis-e-263",
358 "type": "webpage",
359 "template": null,
360 "title": "Betäubungsmittelverzeichnisverordnung (BetmVV-EDI, SR 812.121.11), Anhang 5 Verzeichnis e, Ziff. 263 Lysergsäurederivate",
361 "authors": [],
362 "year": null,
363 "date": null,
364 "containerTitle": null,
365 "siteName": null,
366 "publisher": "Eidgenössisches Departement des Innern (EDI) / Bundesrecht (admin.ch)",
367 "volume": null,
368 "issue": null,
369 "pages": null,
370 "articleNumber": null,
371 "chapter": null,
372 "edition": null,
373 "series": null,
374 "location": null,
375 "institution": null,
376 "language": null,
377 "doi": null,
378 "pmid": null,
379 "isbn": null,
380 "url": "https://res.cloudinary.com/adminch/image/private/s--aGGgd8MH--/v1773719628/Bundespublikationen/812-121-11d.pdf",
381 "archiveUrl": null,
382 "archiveDate": null,
383 "accessedAt": null,
384 "sourceType": "unknown",
385 "quality": "high",
386 "discoverySource": "live_web_research",
387 "access": "open",
388 "supportStatus": "inspected",
389 "apaText": null
390 },
391 {
392 "id": "de-npsg-anlage1-ergolene-2021",
393 "type": "webpage",
394 "template": null,
395 "title": "Anlage NpSG — Änderung vom 03.07.2021 (Einführung Stoffgruppe 5.2 Δ9,10-Ergolene), Verordnung vom 28.06.2021 (BGBl. I S. 2231)",
396 "authors": [],
397 "year": null,
398 "date": null,
399 "containerTitle": null,
400 "siteName": null,
401 "publisher": "buzer.de (Gesetze-Änderungsdienst, Volltext mit BGBl.-Fundstellen)",
402 "volume": null,
403 "issue": null,
404 "pages": null,
405 "articleNumber": null,
406 "chapter": null,
407 "edition": null,
408 "series": null,
409 "location": null,
410 "institution": null,
411 "language": null,
412 "doi": null,
413 "pmid": null,
414 "isbn": null,
415 "url": "https://www.buzer.de/gesetz/12250/al149920-0.htm",
416 "archiveUrl": null,
417 "archiveDate": null,
418 "accessedAt": null,
419 "sourceType": "unknown",
420 "quality": "high",
421 "discoverySource": "live_web_research",
422 "access": "open",
423 "supportStatus": "inspected",
424 "apaText": null
425 },
426 {
427 "id": "de-npsg-para3-prohibitions",
428 "type": "webpage",
429 "template": null,
430 "title": "§ 3 NpSG — Unerlaubter Umgang mit neuen psychoaktiven Stoffen",
431 "authors": [],
432 "year": null,
433 "date": null,
434 "containerTitle": null,
435 "siteName": null,
436 "publisher": "Bundesministerium der Justiz",
437 "volume": null,
438 "issue": null,
439 "pages": null,
440 "articleNumber": null,
441 "chapter": null,
442 "edition": null,
443 "series": null,
444 "location": null,
445 "institution": null,
446 "language": null,
447 "doi": null,
448 "pmid": null,
449 "isbn": null,
450 "url": "https://www.gesetze-im-internet.de/npsg/__3.html",
451 "archiveUrl": null,
452 "archiveDate": null,
453 "accessedAt": null,
454 "sourceType": "unknown",
455 "quality": "high",
456 "discoverySource": "live_web_research",
457 "access": "open",
458 "supportStatus": "inspected",
459 "apaText": null
460 },
461 {
462 "id": "doi-10-1002-dta-2789",
463 "type": "journal_article",
464 "template": null,
465 "title": "Return of the lysergamides. Part VI: Analytical and behavioural characterization of 1-cyclopropanoyl-d-lysergic acid diethylamide (1CP-LSD)",
466 "authors": [
467 "Brandt SD",
468 "Kavanagh PV",
469 "Westphal F",
470 "Stratford A",
471 "Odland AU",
472 "Klein AK",
473 "Dowling G",
474 "Dempster NM",
475 "Wallach J",
476 "Passie T",
477 "Halberstadt AL"
478 ],
479 "year": 2020,
480 "date": null,
481 "containerTitle": "Drug Testing and Analysis",
482 "siteName": null,
483 "publisher": null,
484 "volume": "12",
485 "issue": "6",
486 "pages": "812-826",
487 "articleNumber": null,
488 "chapter": null,
489 "edition": null,
490 "series": null,
491 "location": null,
492 "institution": null,
493 "language": null,
494 "doi": "10.1002/dta.2789",
495 "pmid": "32180350",
496 "isbn": null,
497 "url": "https://pubmed.ncbi.nlm.nih.gov/32180350/",
498 "archiveUrl": null,
499 "archiveDate": null,
500 "accessedAt": null,
501 "sourceType": "primary_literature",
502 "quality": "high",
503 "discoverySource": "live_web_research",
504 "access": "abstract_only",
505 "supportStatus": "inspected",
506 "apaText": null
507 },
508 {
509 "id": "doi-10-1002-nrc-20023",
510 "type": "journal_article",
511 "template": "unknown",
512 "title": "10.1002/nrc.20023",
513 "authors": [],
514 "year": "2004",
515 "date": null,
516 "containerTitle": null,
517 "siteName": null,
518 "publisher": null,
519 "volume": null,
520 "issue": null,
521 "pages": null,
522 "articleNumber": null,
523 "chapter": null,
524 "edition": null,
525 "series": null,
526 "location": null,
527 "institution": null,
528 "language": null,
529 "doi": "10.1002/nrc.20023",
530 "pmid": null,
531 "isbn": null,
532 "url": "https://doi.org/10.1002/nrc.20023",
533 "archiveUrl": null,
534 "archiveDate": null,
535 "accessedAt": null,
536 "sourceType": "primary_literature",
537 "quality": "medium",
538 "discoverySource": "psychonautwiki_local_rendered_reference_section",
539 "access": "unknown",
540 "supportStatus": "discovery_only",
541 "apaText": null
542 },
543 {
544 "id": "doi-10-1007-bf03161089",
545 "type": "journal_article",
546 "template": "unknown",
547 "title": "Dose-independent occurrence of seizure with tramadol",
548 "authors": [],
549 "year": "2009",
550 "date": null,
551 "containerTitle": null,
552 "siteName": null,
553 "publisher": null,
554 "volume": null,
555 "issue": null,
556 "pages": null,
557 "articleNumber": null,
558 "chapter": null,
559 "edition": null,
560 "series": null,
561 "location": null,
562 "institution": null,
563 "language": null,
564 "doi": "10.1007/BF03161089",
565 "pmid": null,
566 "isbn": null,
567 "url": "https://doi.org/10.1007/BF03161089",
568 "archiveUrl": null,
569 "archiveDate": null,
570 "accessedAt": null,
571 "sourceType": "primary_literature",
572 "quality": "medium",
573 "discoverySource": "psychonautwiki_local_rendered_reference_section",
574 "access": "unknown",
575 "supportStatus": "discovery_only",
576 "apaText": null
577 },
578 {
579 "id": "doi-10-1007-s11419-023-00661-1",
580 "type": "journal_article",
581 "template": "cite_journal",
582 "title": "Identification of LSD analogs, 1cP-AL-LAD, 1cP-MIPLA, 1V-LSD and LSZ in sheet products",
583 "authors": [
584 "Rie Tanaka",
585 "Maiko Kawamura",
586 "Sakumi Mizutani",
587 "Ruri Kikura-Hanajiri"
588 ],
589 "year": null,
590 "date": "2023",
591 "containerTitle": "Forensic Toxicology",
592 "siteName": null,
593 "publisher": null,
594 "volume": "41",
595 "issue": "2",
596 "pages": "294–303",
597 "articleNumber": null,
598 "chapter": null,
599 "edition": null,
600 "series": null,
601 "location": null,
602 "institution": null,
603 "language": null,
604 "doi": "10.1007/s11419-023-00661-1",
605 "pmid": "36809464",
606 "isbn": null,
607 "url": "https://link.springer.com/content/pdf/10.1007/s11419-023-00661-1.pdf",
608 "archiveUrl": null,
609 "archiveDate": null,
610 "accessedAt": "26 July 2025",
611 "sourceType": "primary_literature",
612 "quality": "high",
613 "discoverySource": "worker_inspected",
614 "access": "open",
615 "supportStatus": "inspected",
616 "apaText": null
617 },
618 {
619 "id": "doi-10-1016-0014-2999-94",
620 "type": "journal_article",
621 "template": "unknown",
622 "title": "Potentiation of 3,4-methylenedioxymethamphetamine-induced dopamine release and serotonin neurotoxicity by 5-HT2 receptor agonists",
623 "authors": [],
624 "year": "1994",
625 "date": null,
626 "containerTitle": null,
627 "siteName": null,
628 "publisher": null,
629 "volume": null,
630 "issue": null,
631 "pages": null,
632 "articleNumber": null,
633 "chapter": null,
634 "edition": null,
635 "series": null,
636 "location": null,
637 "institution": null,
638 "language": null,
639 "doi": "10.1016/0014-2999(94",
640 "pmid": null,
641 "isbn": null,
642 "url": "https://doi.org/10.1016/0014-2999(94",
643 "archiveUrl": null,
644 "archiveDate": null,
645 "accessedAt": null,
646 "sourceType": "primary_literature",
647 "quality": "medium",
648 "discoverySource": "psychonautwiki_local_rendered_reference_section",
649 "access": "unknown",
650 "supportStatus": "discovery_only",
651 "apaText": null
652 },
653 {
654 "id": "doi-10-1016-j-neuro-2007-04-005",
655 "type": "journal_article",
656 "template": "unknown",
657 "title": "Ecstasy induces apoptosis via 5-HT2A-receptor stimulation in cortical neurons",
658 "authors": [],
659 "year": "2007",
660 "date": null,
661 "containerTitle": null,
662 "siteName": null,
663 "publisher": null,
664 "volume": null,
665 "issue": null,
666 "pages": null,
667 "articleNumber": null,
668 "chapter": null,
669 "edition": null,
670 "series": null,
671 "location": null,
672 "institution": null,
673 "language": null,
674 "doi": "10.1016/j.neuro.2007.04.005",
675 "pmid": "17572501",
676 "isbn": null,
677 "url": "https://doi.org/10.1016/j.neuro.2007.04.005",
678 "archiveUrl": null,
679 "archiveDate": null,
680 "accessedAt": null,
681 "sourceType": "primary_literature",
682 "quality": "medium",
683 "discoverySource": "psychonautwiki_local_rendered_reference_section",
684 "access": "unknown",
685 "supportStatus": "discovery_only",
686 "apaText": null
687 },
688 {
689 "id": "doi-10-1016-j-toxac-2022-06-295",
690 "type": "journal_article",
691 "template": "cite_journal",
692 "title": "Analyses of LSD analogs in illegal products: The identification of 1cP-AL-LAD, 1cP-MIPLA and 1V-LSD",
693 "authors": [
694 "Rie Tanaka",
695 "Maiko Kawamura",
696 "Sakumi Mizutani",
697 "Ruri Kikura-Hanajiri"
698 ],
699 "year": null,
700 "date": "2022",
701 "containerTitle": "Toxicologie Analytique et Clinique",
702 "siteName": null,
703 "publisher": null,
704 "volume": "34",
705 "issue": "3",
706 "pages": "S171",
707 "articleNumber": null,
708 "chapter": null,
709 "edition": null,
710 "series": null,
711 "location": null,
712 "institution": null,
713 "language": null,
714 "doi": "10.1016/j.toxac.2022.06.295",
715 "pmid": null,
716 "isbn": null,
717 "url": "https://doi.org/10.1016/j.toxac.2022.06.295",
718 "archiveUrl": null,
719 "archiveDate": null,
720 "accessedAt": null,
721 "sourceType": "primary_literature",
722 "quality": "high",
723 "discoverySource": "worker_inspected",
724 "access": "abstract_only",
725 "supportStatus": "inspected",
726 "apaText": null
727 },
728 {
729 "id": "doi-10-1111-j-1755-5949-2008-00059-x",
730 "type": "journal_article",
731 "template": "unknown",
732 "title": "The Pharmacology of Lysergic Acid Diethylamide: A Review",
733 "authors": [],
734 "year": "2008",
735 "date": null,
736 "containerTitle": null,
737 "siteName": null,
738 "publisher": null,
739 "volume": null,
740 "issue": null,
741 "pages": null,
742 "articleNumber": null,
743 "chapter": null,
744 "edition": null,
745 "series": null,
746 "location": null,
747 "institution": null,
748 "language": null,
749 "doi": "10.1111/j.1755-5949.2008.00059.x",
750 "pmid": null,
751 "isbn": null,
752 "url": "https://doi.org/10.1111/j.1755-5949.2008.00059.x",
753 "archiveUrl": null,
754 "archiveDate": null,
755 "accessedAt": null,
756 "sourceType": "primary_literature",
757 "quality": "medium",
758 "discoverySource": "psychonautwiki_local_rendered_reference_section",
759 "access": "unknown",
760 "supportStatus": "discovery_only",
761 "apaText": null
762 },
763 {
764 "id": "pmid-26841800",
765 "type": "journal_article",
766 "template": null,
767 "title": "Psychedelics",
768 "authors": [
769 "Nichols DE"
770 ],
771 "year": 2016,
772 "date": null,
773 "containerTitle": "Pharmacological Reviews",
774 "siteName": null,
775 "publisher": null,
776 "volume": "68",
777 "issue": "2",
778 "pages": "264–355",
779 "articleNumber": null,
780 "chapter": null,
781 "edition": null,
782 "series": null,
783 "location": null,
784 "institution": null,
785 "language": null,
786 "doi": "10.1124/pr.115.011478",
787 "pmid": "26841800",
788 "isbn": null,
789 "url": "https://pubmed.ncbi.nlm.nih.gov/26841800/",
790 "archiveUrl": null,
791 "archiveDate": null,
792 "accessedAt": null,
793 "sourceType": "unknown",
794 "quality": "fallback",
795 "discoverySource": "existing_article_reference",
796 "access": "open",
797 "supportStatus": "inspected",
798 "apaText": null
799 },
800 {
801 "id": "pmid-35107059",
802 "type": "journal_article",
803 "template": null,
804 "title": "Adverse effects of psychedelics: From anecdotes and misinformation to systematic science",
805 "authors": [
806 "Schlag AK",
807 "Aday J",
808 "Salam I",
809 "Neill JC",
810 "Nutt DJ"
811 ],
812 "year": 2022,
813 "date": null,
814 "containerTitle": "Journal of Psychopharmacology",
815 "siteName": null,
816 "publisher": null,
817 "volume": "36",
818 "issue": "3",
819 "pages": "258–272",
820 "articleNumber": null,
821 "chapter": null,
822 "edition": null,
823 "series": null,
824 "location": null,
825 "institution": null,
826 "language": null,
827 "doi": "10.1177/02698811211069100",
828 "pmid": "35107059",
829 "isbn": null,
830 "url": "https://pubmed.ncbi.nlm.nih.gov/35107059/",
831 "archiveUrl": null,
832 "archiveDate": null,
833 "accessedAt": null,
834 "sourceType": "unknown",
835 "quality": "fallback",
836 "discoverySource": "existing_article_reference",
837 "access": "open",
838 "supportStatus": "inspected",
839 "apaText": null
840 },
841 {
842 "id": "pmid-35981469",
843 "type": "journal_article",
844 "template": null,
845 "title": "Prevalence and associations of classic psychedelic-related seizures in a population-based sample",
846 "authors": [
847 "Simonsson O",
848 "Goldberg SB",
849 "Chambers R",
850 "Osika W",
851 "Long DM",
852 "Hendricks PS"
853 ],
854 "year": 2022,
855 "date": null,
856 "containerTitle": "Drug and Alcohol Dependence",
857 "siteName": null,
858 "publisher": null,
859 "volume": "239",
860 "issue": null,
861 "pages": "109586",
862 "articleNumber": null,
863 "chapter": null,
864 "edition": null,
865 "series": null,
866 "location": null,
867 "institution": null,
868 "language": null,
869 "doi": "10.1016/j.drugalcdep.2022.109586",
870 "pmid": "35981469",
871 "isbn": null,
872 "url": "https://pubmed.ncbi.nlm.nih.gov/35981469/",
873 "archiveUrl": null,
874 "archiveDate": null,
875 "accessedAt": null,
876 "sourceType": "unknown",
877 "quality": "fallback",
878 "discoverySource": "existing_article_reference",
879 "access": "open",
880 "supportStatus": "inspected",
881 "apaText": null
882 },
883 {
884 "id": "url-admin-ch-5093-pdf",
885 "type": "webpage",
886 "template": "unknown",
887 "title": "Verordnung des EDI über die Verzeichnisse der Betäubungsmittel,psychotropen Stoffe, Vorläuferstoffe und Hilfschemikalien: Änderung vom 2. November 2015",
888 "authors": [],
889 "year": "2015",
890 "date": null,
891 "containerTitle": null,
892 "siteName": null,
893 "publisher": null,
894 "volume": null,
895 "issue": null,
896 "pages": null,
897 "articleNumber": null,
898 "chapter": null,
899 "edition": null,
900 "series": null,
901 "location": null,
902 "institution": null,
903 "language": null,
904 "doi": null,
905 "pmid": null,
906 "isbn": null,
907 "url": "https://www.admin.ch/opc/de/official-compilation/2015/5093.pdf",
908 "archiveUrl": null,
909 "archiveDate": null,
910 "accessedAt": null,
911 "sourceType": "unknown",
912 "quality": "fallback",
913 "discoverySource": "psychonautwiki_local_rendered_reference_section",
914 "access": "unknown",
915 "supportStatus": "discovery_only",
916 "apaText": null
917 },
918 {
919 "id": "url-aipsin-com-562",
920 "type": "webpage",
921 "template": "cite_web",
922 "title": "1cP-MIPLA",
923 "authors": [],
924 "year": null,
925 "date": null,
926 "containerTitle": "АИПСИН",
927 "siteName": "АИПСИН",
928 "publisher": null,
929 "volume": null,
930 "issue": null,
931 "pages": null,
932 "articleNumber": null,
933 "chapter": null,
934 "edition": null,
935 "series": null,
936 "location": null,
937 "institution": null,
938 "language": null,
939 "doi": null,
940 "pmid": null,
941 "isbn": null,
942 "url": "https://aipsin.com/newsubstance/562/",
943 "archiveUrl": null,
944 "archiveDate": null,
945 "accessedAt": "26 July 2025",
946 "sourceType": "unknown",
947 "quality": "fallback",
948 "discoverySource": "worker_inspected",
949 "access": "open",
950 "supportStatus": "inspected",
951 "apaText": null
952 },
953 {
954 "id": "url-deadiversion-usdoj-gov-orangebook-pdf",
955 "type": "unknown",
956 "template": "unknown",
957 "title": "Orange Book: List of Controlled Substances and Regulated Chemicals (January 2026)",
958 "authors": [],
959 "year": null,
960 "date": "January 2026",
961 "containerTitle": null,
962 "siteName": null,
963 "publisher": "U.S. Department of Justice: Drug Enforcement Administration (DEA): Diversion Control Division",
964 "volume": null,
965 "issue": null,
966 "pages": null,
967 "articleNumber": null,
968 "chapter": null,
969 "edition": null,
970 "series": null,
971 "location": null,
972 "institution": null,
973 "language": null,
974 "doi": null,
975 "pmid": null,
976 "isbn": null,
977 "url": "https://www.deadiversion.usdoj.gov/schedules/orangebook/orangebook.pdf",
978 "archiveUrl": null,
979 "archiveDate": null,
980 "accessedAt": null,
981 "sourceType": "unknown",
982 "quality": "fallback",
983 "discoverySource": "wikipedia_reference_cache",
984 "access": "unknown",
985 "supportStatus": "discovery_only",
986 "apaText": null
987 },
988 {
989 "id": "url-gesetze-im-internet-de-npsg-bjnr261510016-html",
990 "type": "unknown",
991 "template": null,
992 "title": "Neue-psychoaktive-Stoffe-Gesetz (NpSG) — Anlage 1",
993 "authors": [],
994 "year": null,
995 "date": null,
996 "containerTitle": null,
997 "siteName": null,
998 "publisher": "Bundesministerium der Justiz",
999 "volume": null,
1000 "issue": null,
1001 "pages": null,
1002 "articleNumber": null,
1003 "chapter": null,
1004 "edition": null,
1005 "series": null,
1006 "location": null,
1007 "institution": null,
1008 "language": null,
1009 "doi": null,
1010 "pmid": null,
1011 "isbn": null,
1012 "url": "https://www.gesetze-im-internet.de/npsg/BJNR261510016.html",
1013 "archiveUrl": null,
1014 "archiveDate": null,
1015 "accessedAt": null,
1016 "sourceType": "unknown",
1017 "quality": "high",
1018 "discoverySource": null,
1019 "access": "open",
1020 "supportStatus": "inspected",
1021 "apaText": null
1022 },
1023 {
1024 "id": "url-normativ-kontur-ru-document-moduleid-1-documentid-503195",
1025 "type": "unknown",
1026 "template": null,
1027 "title": "Постановление Правительства РФ от 30.06.1998 N 681 — Перечень наркотических средств, психотропных веществ и их прекурсоров, подлежащих контролю в Российской Федерации (ред. от 11.06.2025)",
1028 "authors": [],
1029 "year": null,
1030 "date": null,
1031 "containerTitle": null,
1032 "siteName": null,
1033 "publisher": "Правительство Российской Федерации",
1034 "volume": null,
1035 "issue": null,
1036 "pages": null,
1037 "articleNumber": null,
1038 "chapter": null,
1039 "edition": null,
1040 "series": null,
1041 "location": null,
1042 "institution": null,
1043 "language": null,
1044 "doi": null,
1045 "pmid": null,
1046 "isbn": null,
1047 "url": "https://normativ.kontur.ru/document?moduleId=1&documentId=503195",
1048 "archiveUrl": null,
1049 "archiveDate": null,
1050 "accessedAt": null,
1051 "sourceType": "unknown",
1052 "quality": "high",
1053 "discoverySource": "existing_article_reference",
1054 "access": "open",
1055 "supportStatus": "inspected",
1056 "apaText": null
1057 },
1058 {
1059 "id": "us-21-usc-813-analogue-act",
1060 "type": "webpage",
1061 "template": null,
1062 "title": "21 U.S.C. § 813 — Treatment of controlled substance analogues (Federal Analogue Act)",
1063 "authors": [],
1064 "year": null,
1065 "date": null,
1066 "containerTitle": null,
1067 "siteName": null,
1068 "publisher": "Cornell Law School, Legal Information Institute (U.S. Code)",
1069 "volume": null,
1070 "issue": null,
1071 "pages": null,
1072 "articleNumber": null,
1073 "chapter": null,
1074 "edition": null,
1075 "series": null,
1076 "location": null,
1077 "institution": null,
1078 "language": null,
1079 "doi": null,
1080 "pmid": null,
1081 "isbn": null,
1082 "url": "https://www.law.cornell.edu/uscode/text/21/813",
1083 "archiveUrl": null,
1084 "archiveDate": null,
1085 "accessedAt": null,
1086 "sourceType": "unknown",
1087 "quality": "high",
1088 "discoverySource": "live_web_research",
1089 "access": "open",
1090 "supportStatus": "inspected",
1091 "apaText": null
1092 },
1093 {
1094 "id": "ris-bka-gv-at-neue-psychoaktive-substanzen-verordnung-npsv-annex-ii-no-11-npsg-4-1",
1095 "type": "webpage",
1096 "template": "cite_web",
1097 "title": "Neue-Psychoaktive-Substanzen-Verordnung (NPSV), consolidated official text, version 27 August 2026",
1098 "authors": [],
1099 "siteName": "ris.bka.gv.at",
1100 "publisher": "ris.bka.gv.at",
1101 "url": "https://www.ris.bka.gv.at/GeltendeFassung/Bundesnormen/20007642/NPSV%2c%20Fassung%20vom%2027.08.2026.pdf",
1102 "sourceType": "unknown",
1103 "quality": "fallback",
1104 "access": "unknown",
1105 "supportStatus": "inspected"
1106 },
1107 {
1108 "id": "ris-bka-gv-at-neue-psychoaktive-substanzen-verordnung-npsv-annex-ii-no-11-npsg-4-1-37a749",
1109 "type": "webpage",
1110 "template": "cite_web",
1111 "title": "Neue-Psychoaktive-Substanzen-Verordnung, Anlage II (BGBl. II Nr. 106/2024)",
1112 "authors": [],
1113 "siteName": "ris.bka.gv.at",
1114 "publisher": "ris.bka.gv.at",
1115 "url": "https://www.ris.bka.gv.at/Dokumente/Bundesnormen/NOR40261441/II_106_2024_Anlage_II.pdf",
1116 "sourceType": "unknown",
1117 "quality": "fallback",
1118 "access": "unknown",
1119 "supportStatus": "inspected"
1120 },
1121 {
1122 "id": "ris-bka-gv-at-neue-psychoaktive-substanzen-verordnung-npsv-annex-ii-no-11-npsg-4-1-66706f",
1123 "type": "webpage",
1124 "template": "cite_web",
1125 "title": "Neue-Psychoaktive-Substanzen-Gesetz (NPSG), consolidated official text, version 27 August 2026",
1126 "authors": [],
1127 "siteName": "ris.bka.gv.at",
1128 "publisher": "ris.bka.gv.at",
1129 "url": "https://www.ris.bka.gv.at/GeltendeFassung/Bundesnormen/20007605/NPSG%2c%20Fassung%20vom%2027.08.2026.pdf",
1130 "sourceType": "unknown",
1131 "quality": "fallback",
1132 "access": "unknown",
1133 "supportStatus": "inspected"
1134 }
1135 ],
1136 "publicRevision": "5d7ad1baf6a23fbb1f70155b941261cb875c874b231c0b3ba141627addd6e8e8",
1137 "expert_reviewed": true
1138}

The public prose is new writing

Verbatim source text stays in internal excerpt files, like research notes. Published article prose is drafted under instructions not to copy source wording. The citation and editorial workflows can identify support problems or wording that needs correction. Facts are not copyrightable, and dose.wiki uses its own wording, schema, and article structure for the expression. dose.wiki content should be considered an original work interpreting its underlying sources, even when those sources are public domain or openly licensed, and should not be presented as quotes from them. dose.wiki attributes and links back to those sources wherever possible; if you quote from them directly, it is your responsibility to abide by their licenses.

The reusable parts are CC0

These parts are dedicated to the public domain under CC0: dose.wiki-authored writing, structured data, schema work, generated molecule assets, and feedback-form submissions whose contributors accept CC0 terms. Anyone can share, adapt, or build on them, commercially or not, with no attribution required. Legacy trip reports, TripSit data, ProtestKit data, and media with separate rights keep their own terms. The license page lists those boundaries.

Questions or corrections?

For a mistake in a specific article, use the report-an-issue form at the bottom of that article. For anything broader, send a message through the feedback form or email contact@dose.wiki.

How the site itself is built

This page covers article production. For the codebase, architecture, data layer, and public-site systems, read How dose.wiki is built.