Skip to main content

How dose.wiki substance articles are made

Much of the information a substance article needs has already been gathered and published: decades of documentation by scientists, psychonauts, and the harm-reduction community. It is spread primarily across ten psychopharmacology reference sites in ten formats, with no shared standard and no one site covering everything. We know what compiling it by hand takes, because we have done it: Josie Kins, who co-founded dose.wiki, founded PsychonautWiki, the Subjective Effect Index, and numerous other similar projects. PsychonautWiki's first draft took her and a team of contributors from 2011 to 2016 to write by hand. This time we let software do the initial compilation. Building the pipeline took about a year, and its output then went through months of human review before we were comfortable publishing it. Editors have been working on top of that baseline since. The dataset is open, so anyone building an encyclopedia of their own can start from it instead of from zero.

Substance articles therefore begin as pipeline drafts. Code scrapes and copies the dose and duration tables from the source sites. An LLM reads the same sources and drafts the narrative sections from word-for-word excerpts, citing the source of each one. Human editors take over from there: they verify the pharmacology, check the doses and interactions where a wrong figure can hurt someone, and add what the sources left out.

Every article's status subsection shows how much human review it has had, and this page shows every step and every prompt the pipeline runs. Coverage is still incomplete, and any given article can contain an error. Improvement is continuous, and reader feedback drives most of it: 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 makes the change in a Wikipedia-style editor built into the site. Every correction fixes the article and the next export of the dataset, which anyone can download.

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. 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-synthesized from excerpts (baseline)
Parsed by code (baseline)
Live API
Manual / curated (built on the baseline)
Per-section production methods
Article sectionMethodHow it is made
Summary
AI-synthesized
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
parsed
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
parsed
curated
Class assignments come from parsed sources. Editors hand-curate the site-wide classification trees.
Dosage tables
parsed
Dose ranges per route parsed directly from TripSit, PsychonautWiki, and Erowid tables, under the lowest-upper-bound rule (section 03 (Scraping & parsing)).
Duration tables
parsed
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.
Pharmacology
AI-synthesized
Mechanism-of-action prose written from the pharmacology excerpts under the pharmacology prompt, the longest of the prompts.
Interactions
parsed
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-synthesized
Toxicity, addiction, and risk prose written from the harm-potential excerpts under the harm potential prompt.
Tolerance
AI-synthesized
Tolerance and cross-tolerance prose from the tolerance excerpts.
Legality
AI-synthesized
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-synthesized
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 re-examined by the entailment audit, which checks whether each cited source supports the 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.
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

Article content is built from ten harm-reduction and reference sites, 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.
parsed
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).
parsed
excerpted
ErowidDosage and duration ranges, effects descriptions, legal status, harm-reduction and safety warnings, general narratives.
parsed
excerpted
WikipediaGeneral overviews, history, chemistry identifiers. Also used to discover citable references, but never cited as a reference itself (section 06 (Citations & legality)).
parsed
excerpted
DrugBankChemical data (molecular weight, formula, CAS numbers), pharmacology descriptions, drug and food interactions.
parsed
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.

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 do not judge relevance. They split each page into labeled sections and blocks so that the extraction stage (section 04 (Verbatim excerpts)) can address them. The LLM decides which blocks 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.

Block-id selection

Each working copy is first split into numbered blocks (paragraphs, list items, table rows, headings), and the LLM reads that block-indexed version. It replies with nothing but the ids of the blocks to keep. A script then copies those blocks out of the source character for character and assembles the excerpt document. Because the LLM never emits source text, it has no opportunity to alter it.

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".

Our first version let the LLM reproduce each passage, but it did not preserve the source wording. Each reproduction created an opportunity for wording to change. One batch of 47 files turned an "antihistamine" into an "antihistaminic", dropped a "however,", and shortened the name of an organization by two words. Block selection prevents that drift; a warning in the prompt only asked the model to avoid it.

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 scripts/prompts/ when it builds, so they are the same files the pipeline runs.

The pipeline calls the LLM once per substance and topic. The harness, the software that runs these calls, appends the block-selection contract to whichever prompt it is running. The model is not named here because the choice changes over time. The LLM only selects block ids and never emits source text. Changing the model can alter which passages are kept, without changing excerpt 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 still carries an "Output format" section describing an excerpt file. The contract replaces those sections at run time. A prompt defines what counts as relevant for its topic. The harness specifies the required response: a list of block ids and nothing else.

The block-selection contract, appended after every prompt below

The harness appends this text to all eight prompts, replacing {{TOPIC}} with the topic name. The LLM names blocks, and a script copies them out.

==== OUTPUT FORMAT — THIS SUPERSEDES ANY OUTPUT FORMAT DESCRIBED ABOVE ====

You are not writing the excerpt document. You are choosing which blocks go into it.
Do not reproduce, quote, retype, summarise, or edit any source text. A separate program
copies the blocks you name, character for character, out of the original. That is what
guarantees the excerpts are verbatim — so naming a block is how you 'extract' it.

Every block in the source document above is labelled `[Bnnnn]` at its start. Read the
extraction prompt above to decide which blocks contain relevant content, then answer with
one section per source, in the same order as the source document, exactly like this:

## Source: <source name copied exactly from the heading above>
B0007
B0008
B0022

## Source: <next source name>
NONE

Rules:
- List the id of every block containing {{TOPIC}} content. One id per line, ascending.
- Write `NONE` alone under a source whose blocks contain nothing relevant. That is a
  normal and correct answer — many articles genuinely say nothing on a given topic, and
  naming an irrelevant block to avoid an empty answer is the one real failure here.
- Include every source heading, even the ones answering NONE. Do not merge or reorder them.
- When in doubt about a block, include it. Over-inclusion is cheap; a missed passage is invisible.
- Output nothing but the headings and ids. No prose, no code fences, no explanation.
Extraction prompt: intro text (9 KB)

The block-selection contract above supersedes this prompt's "Output format" section.

# Intro Text Extraction Prompt

You are given one file containing every collected source document for a single psychoactive
substance. Copy the introductory passages out of it, verbatim, into the excerpt file described under
**Output format**. Output that file body and nothing else.

This is mechanical copy-and-paste. You are not summarising, condensing, or explaining. A script
checks your output afterwards by searching each extracted passage for a character-for-character
match in the source; a passage that does not match exactly is rejected and the whole file fails.

## Hard rules

1. **Every line inside a source block is either copied from that source or a blank line.** No
   headings you wrote, no labels, no quotation marks you added, no bolding you added, no bridging
   sentences, no commentary.
2. **Copy the passage exactly**, including spelling, capitalisation, punctuation, markdown, inline
   links, footnote markers, and any surrounding whitespace within a line.
3. **Numbers, units, and chemical names are copied character for character.** No conversion,
   rounding, or reformatting.
4. **Extract complete units.** Whole paragraphs, whole list items, whole table rows, whole sections
   including their heading. Never stop mid-sentence and never take half a paragraph. A paragraph is
   in or out as a unit — decide on its main subject, then copy or skip the whole thing.
5. **Extract only what the source says.** Never write a definition, a chemical class, a synthesis
   date, or a comparison from your own knowledge, from a chemically related substance, or from a
   different source block in the same file.
6. **Keep passages under the source they came from.** Never move text between source blocks, merge
   sources, reorder them, or omit one.
7. **When unsure whether a definitional passage is introductory enough, include it.** A human
   reviews these excerpts. An extra passage costs nothing; a missed one is invisible.

## What counts as intro content

Passages that orient a reader who knows nothing about the substance yet — what it is, what family it
belongs to, and how it is encountered:

- The defining lead sentence: *"X is a psychedelic substance of the phenethylamine class."*
- Psychoactive class (psychedelic, stimulant, dissociative, depressant, opioid, deliriant) and
  chemical class or family (tryptamine, lysergamide, arylcyclohexylamine, benzodiazepine, cathinone)
- Names: common name, IUPAC or substitutive name, brand names, street names, synonym lists
- A one-or-two-sentence characterisation of what the substance does, at lead-paragraph granularity
- Comparison to related substances — *"a synthetic analogue of mescaline"*, *"described as halfway
  between LSD and MDMA"*, *"milder than LSD or psilocybin"*
- Physical form and how it is encountered: powder, crystal, blotter, pill, liquid, vial, plant
  material; colour, taste, smell; a general potency statement
- General use context: recreational, medical, veterinary, therapeutic, traditional
- A one-sentence origin note — who first synthesised it and when, or its traditional origin
- Factsheet header lines such as `**Categories:**`, `**Also known as:**`, `**Synonyms:**`,
  `**Summary:**`, `**Street & Reference Names:**`, `**Form:**`, `**IUPAC Name:**`

## What does not count

Nearly every sentence in a source article can be argued to be introductory, which is how this
extraction fails: the excerpt file ends up being the source pasted back. Seven other extraction runs
already collect the topics below from the same file. Leave them there.

| Content | Collected by |
|---------|--------------|
| Dose tiers, mg values, mg/kg figures, threshold/light/common/strong ranges | dosage-duration |
| Onset, come-up, peak, offset, after-effects, total duration | dosage-duration |
| Mechanism of action, receptor binding, half-life, bioavailability, metabolism | pharmacology |
| Named effects and their descriptions, effect lists, trip-report phenomenology | subjective-effects |
| Tolerance build and decay, cross-tolerance | tolerance |
| LD50, addiction, dependence, overdose, organ damage, drug interactions | harm-potential |
| Legal status by country, scheduling, court cases, analogue-act discussion | legality |
| Multi-era timelines, cultural reception, discovery narratives beyond one sentence | history-culture |

Test a candidate paragraph by asking which question it answers. *What is this?* keeps it. *How much,
how long, how does it work, is it legal, what does it feel like, what happened next?* drops it.

Most sources yield one to four paragraphs. A source block much longer than that is the article
pasted back — re-check each of its paragraphs against the table.

**Qualifies** — how the substance is encountered is definitional:

> Ketamine is generally sold to the recreational user in one of two forms: in the evaporated salts,
> which are sold as a powder, or crystals (often referred to as shards), as well as in multi-dose
> vials for use in veterinary and human medicine.

**Does not qualify** — opens like an introduction, then turns into dosage and duration. Rule 4
governs it: the paragraph is one unit whose subject is clinical dosing, so the whole thing is
skipped rather than trimmed back to its first sentence.

> For decades, ketamine has been a popular anesthetic in humans and in veterinary settings. Most
> often it is delivered intravenously, but it can be given intramuscularly, albeit with some
> injection site pain, a longer recovery time, and a greater likelihood of vomiting. Anesthesia
> usually begins with 1-2 mg/kg (IV) or 8-10 mg/kg (IM). Its dissociative anesthetic effects have an
> IV onset of 1-2 minutes.

## Where to look

The lead paragraphs before a document's first subheading, and sections headed Summary, Overview,
Description, About, Basics, Classification, or Chemistry. A second orienting paragraph often sits
further down under Chemistry, naming the structural class — take it too.

Encyclopedic sources open with a definitional lead by construction. Before marking a Wikipedia,
PsychonautWiki, DrugBank, or Erowid document as having no intro content, re-read its first
paragraphs; on those sources that marker is almost always a miss.

## Input format

```
# <Substance Title> — Collected Sources

## Source: wikipedia

<full document text>

---

## Source: tripsit-factsheets

<full document text>

---
```

Source count varies from two to a dozen, and length and quality vary just as widely.

## Output format

```
# <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.*

---
```

- `<Substance Title>` is copied from the first line of the input. `<YYYY-MM-DD>` is today's date.
- One `## Source:` heading per source in the input, in the input's order, with the source name
  spelled exactly as the input spells it. Include sources that yielded nothing.
- A source with no intro content gets exactly `*No intro content found.*` — that italic line alone
  under its heading.
- A source that was present but had no document text gets `*No content available for this source.*`
- Every source block ends with a `---` rule.
- No code fences around the output, no preamble, no closing commentary.

## An empty result is a correct result

Some sources are pure dosage tables, effect indexes, or legal notices and genuinely say nothing about
what the substance is. A file whose every source block reads `*No intro content found.*` is a
correct, successful, complete result — report it and stop. The only real failure is text in the
output that is not in the source. One invented sentence here becomes the opening line of a published
article, so an empty file always beats a plausible one.

## Schema field mapping

Your excerpts are the only material the downstream generator sees, and it fills exactly one field:
`summary`, a 50–80 word paragraph opening the article. It needs to find, in your excerpts:

- **What it is** — chemical class and primary name, mirroring `classification.chemical_class`
- **Psychoactive class** — primary effects category, mirroring `classification.psychoactive_class`
- **Origin** — first synthesis, discoverer, date, or traditional use, where a source attests it
- **Notable characteristics** — what distinguishes this substance from similar ones
- **Prominent safety framing** — only where a source's own lead carries it, e.g. a substance known
  chiefly as a dangerous adulterant

Nomenclature lines feed `identification.*` fields rendered above the summary, so copy the labelled
name lines and lead sentences where you find them rather than hunting document bodies for scattered
name mentions. Do not sort, label, or restructure your output around any of these fields.
Extraction prompt: dosage & duration (9 KB)

The block-selection contract above supersedes this prompt's "Output format" section.

# 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)

The block-selection contract above supersedes this prompt's "Output format" section.

# 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 (9 KB)

The block-selection contract above supersedes this prompt's "Output format" section.

# Pharmacology Extraction Prompt

You copy pharmacology passages out of a source file, word for word, into a structured excerpt file.

## Task

Read every source document in the staged file below. For each source, copy out every passage that
describes **pharmacodynamics** (what the substance does to the body) or **pharmacokinetics** (what
the body does to the substance). Emit them in the output format specified below.

This is a copy-paste job. It is not summarisation, synthesis, or rewriting.

Hard rules, applied to every passage you emit:

1. **Verbatim.** Every extracted passage must appear character-for-character in the staged source
   file. A script checks this by substring match and rejects the file if any passage drifts. Never
   paraphrase, condense, merge sentences, fix typos, or normalise spacing, symbols, or units. The
   only text you author is the headings, the `---` rules, and the markers defined below.
2. **Complete units.** Copy whole paragraphs, whole list blocks, whole table rows. Never cut a
   sentence in half. When a pharmacology fact sits inside a paragraph that is otherwise about
   something else, copy the whole paragraph.
3. **Markdown as-is.** Keep the source's headings, bullets, bold, links, and table pipes exactly as
   written.
4. **Over-include.** If you are unsure whether a passage counts, include it. A human reads this
   file afterward. An extra passage costs nothing; a missed one is invisible.

## Input

The staged source file has this shape:

```
# <Substance Title> — Collected Sources

## Source: TripSit Factsheets

<full document text>

---

## Source: Wikipedia

<full document text>

---
```

Sources vary from two to a dozen, and from a paragraph to many pages. Pharmacology content is not
confined to a section named "Pharmacology" — it also turns up under Chemistry, Mechanism of Action,
Absorption, Metabolism, Effects, Summary, infobox tables, and image captions. Read each source end
to end.

## Output format

Emit exactly this, and nothing else — no code fences, no preamble, no 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 `<Substance Title>` from the staged file's first line, and join it to `Pharmacology Quotes`
  with a plain hyphen `-`, not the em dash the staged file uses.
- `<YYYY-MM-DD>` is today's date.
- Emit **one `## Source:` block per source in the staged file, in the staged file's order, using its
  exact source name** — including sources that yielded nothing. Never merge, reorder, rename, or
  drop a source.
- A source you read that had no pharmacology content gets `*No pharmacology content found.*` on its
  own line under its heading.
- A source whose document body was empty gets `*No content available for this source.*`
- Every source block ends with a `---` rule.

## What counts: pharmacodynamics

Receptor and target action, and the mechanism behind the effects.

- Receptor or transporter agonism, antagonism, partial agonism, inverse agonism, allosteric
  modulation ("5-HT2A agonist", "NMDA receptor antagonist")
- Binding affinity and potency values: Ki, Kd, pKi, EC50, IC50, Emax, intrinsic activity
- Selectivity between receptor subtypes, and comparisons of binding across targets
- Neurotransmitter release and reuptake inhibition (serotonin, dopamine, norepinephrine, GABA,
  glutamate, acetylcholine)
- Ion channel effects, second messenger and downstream signalling
- Statements that the mechanism is unknown, disputed, or assumed from structural similarity
- Statements that the substance does **not** act at some target

## What counts: pharmacokinetics

Absorption, distribution, metabolism, and elimination.

- Bioavailability, by route where the source gives a route
- Absorption rate, onset of plasma levels, Cmax, Tmax, AUC, food effects
- Distribution: volume of distribution, protein binding, blood-brain barrier passage
- Metabolism: hepatic or other site, CYP enzymes, first-pass metabolism, phase I/II pathways,
  deacetylation, hydrolysis, enzyme induction or inhibition
- Metabolite names, and whether each is active or inactive; prodrug conversion
- Half-life of every kind (distribution, elimination, terminal), clearance rate
- Elimination route and recovery percentages (urine, feces, bile), detection windows

**Pharmacokinetics is usually absent, and that is the expected result.** Most research chemicals
have never been studied in humans, so there is no PK data to find. Rich pharmacodynamics plus zero
pharmacokinetics is a normal, correct outcome. When the sources say nothing about absorption,
metabolism, or half-life, emit nothing for that half — do not search harder, do not reason from a
related compound, and do not infer PK from chemical structure or from reported duration of effects.

## What does not count on its own

Dose ranges, durations and onset times, subjective effect descriptions, legal status, synthesis
routes, molecular weight and melting point, LD50 and overdose case reports, tolerance schedules,
and drug-interaction warnings.

Worked examples:

- `A common oral dose is 15–25 mg, with effects lasting 6–8 hours.` — **skip.** Dose and duration.
- `Ketamine absorption is very rapid and the bioavailability is around 93%.` — **extract.** PK.
- `In one study, it showed 12- to 20-fold selectivity for the serotonin 5-HT2A receptor (Ki = 0.5 nM)
  over the serotonin 5-HT2B and 5-HT2C receptors (Ki = 10 and 6.2 nM, respectively).` — **extract.** PD.
- A paragraph about a legal ban that ends `...because it is metabolised to amphetamine.` —
  **extract the whole paragraph.** The metabolism claim is qualifying content, and rule 2 carries
  the sentences around it.

## Numbers, assays, and tables

Affinity values, half-lives, and bioavailability percentages are the highest-value content in this
file and the easiest to corrupt.

- **Copy every number exactly as written.** Never convert nM to µM, never convert hours to minutes,
  never round, never add or drop a leading zero, never re-order a range. `0.0130 μM` stays
  `0.0130 μM`. Preserve the source's own micro sign, spacing, and subscript styling.
- **Carry the context the source attaches.** A Ki without its target receptor is useless, and so is
  one without its species and assay. When a value block is introduced by a study citation, a cell
  line, or a species note, copy those lines too:

  ```
  (Rickli, 2015)

  - Receptor/transporter interactions using HEK-293 cells (all are human form unless otherwise noted)
  - 5-HT2A
  - Affinity (Ki) (antagonist): 0.0130 μM
  - EC50: 0.20 μM
  ```

  The citation line and the cell-line line are part of the extraction, not decoration.

- **Tables come across whole.** Receptor binding data usually arrives as a markdown table. Copy the
  header row, the separator row, and every data row, with the pipes intact. Do not convert a table
  to prose or to a list, do not drop columns you think are uninformative, and do not stop partway
  down a long table.
- **A sentence that introduces a table brings the table with it.** When the source reads
  `In a study comparing various aryl-substituted methcathinone analogs in rat brain synaptosomes,
  the following values were found.` followed by a table, extract the sentence **and** the table
  beneath it. Extracting the lead-in alone produces a dangling reference to data that is not there.

## Empty results are correct results

Many substances have no published pharmacology at all. A file where every source block reads
`*No pharmacology content found.*` is a complete, successful extraction.

The one real failure is inventing content. Do not supply a mechanism you know from elsewhere, do
not carry a claim over from a chemically similar substance named in the sources, and do not upgrade
a hedge into a fact. If a source hedges — "presumably", "thought to", "based on structural
similarity", "may be assumed" — copy the hedge along with the claim.

## Schema field mapping

The downstream generator fills these fields from your excerpts. Use this to check your coverage
before you finish; do not label or reorganise your output by field.

| 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, 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, plus their qualifying context |
| `bioavailability_notes`, `route_bioavailability`, `route_bioavailability_notes` | PK | Bioavailability percentages, per route where stated, plus absorption context |
| `protein_binding` | PK | Plasma protein binding percentage |
| `volume_of_distribution` | PK | Vd value |

Route-specific numbers matter: when a source gives bioavailability or half-life for a named route
(oral, insufflated, sublingual, smoked, vaporised, intravenous, intramuscular, rectal), keep the
route name in the extracted text.

## Before you output

- Every source in the staged file has exactly one `## Source:` block, in the original order, ending
  with `---`.
- Every passage can be found character-for-character in the staged file.
- Every table you copied has its header row and all of its data rows.
Extraction prompt: tolerance (6 KB)

The block-selection contract above supersedes this prompt's "Output format" section.

# Tolerance Extraction

You are given one staged source file: every collected source document for a single substance article. Copy out of it, verbatim, every passage that says anything about tolerance to that substance.

This is mechanical copy-paste. Do not summarise, synthesise, rewrite, or explain.

## Hard rules

1. **Verbatim.** Every passage you output must appear character-for-character in the staged file. Your output is checked by substring match against the source and rejected if any passage drifts. Copy the text; never retype it from memory. Keep the source's own spelling, punctuation, markdown, links, and typos. Numbers and units are copied exactly — never converted, rounded, or reformatted.
2. **Nothing invented.** Write no sentence that is not in the staged file. A fabricated tolerance timeline is the one failure that ruins the published article; every other mistake a reviewer can fix.
3. **An empty result is a correct result.** Most substances have sources that never mention tolerance. A file whose every source carries `*No tolerance content found.*` is a successful run, not a failed one.
4. **Every source, in order.** Emit one `## Source:` block for every source in the staged file, in the order they appear there, including sources that yielded nothing. Never merge, reorder, add, or drop a source.
5. **Complete units.** Extract the whole paragraph, whole list item, or whole table row. Never start or stop mid-sentence. When a tolerance fact sits inside a paragraph about something else, take the entire paragraph.
6. **Include when unsure.** A reviewer discards extras cheaply. A passage you skipped is invisible.

## Input format

```
# <Substance Title> — Collected Sources

## Source: tripsit-factsheets

<full document text>

---

## Source: wikipedia

<full document text>

---
```

One to a dozen sources, ranging from a few lines to tens of thousands of words each. The heading text after `## Source:` is often a slug such as `tripsit-factsheets`; reproduce it exactly as written, without tidying or expanding it.

## Output format

Emit the file body only — no code fences, no preamble, no 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.*

---
```

- `<Substance Title>` is the title on the staged file's first line with ` — Collected Sources` removed.
- `<YYYY-MM-DD>` is today's date.
- Separate multiple passages from the same source with a single blank line. A `---` rule means end of source block and nothing else.
- A source with no qualifying passage gets `*No tolerance content found.*` alone under its heading.
- A source whose document is empty in the staged file gets `*No content available for this source.*`
- Every source block ends with `---`.

## What counts as tolerance content

Any sentence about the body's response changing with repeated exposure to this substance, or about how far apart doses should be spaced. Concretely:

- Tolerance building: how fast, how far, to which effects, after how many doses.
- Tolerance fading: half-tolerance time, baseline reset time, and "wait N days/weeks between uses" advice — including when the word "tolerance" never appears.
- Reduced tolerance after abstinence, and the overdose risk on relapse.
- Cross-tolerance: which substances or classes share it, in which direction, how completely.
- Reverse tolerance, sensitisation, tachyphylaxis, kindling.
- Receptor downregulation or upregulation, enzyme induction, or neuroadaptation offered as the reason tolerance develops.
- Dosing statements that turn on the user's tolerance: "opioid-naive", "in non-tolerated users", "regular users require higher doses", ceiling effects.
- Dependence, withdrawal, and abuse-potential prose **when the same passage also speaks to tolerance**. A paragraph headed "Tolerance and addiction potential" is taken whole.

The word carrying a different meaning does not count: social or political tolerance ("a more tolerant attitude to drugs"), crop tolerance ("herbicide tolerance"), tolerance of heat, cold, stress, or exercise described as a drug *effect*, and food intolerance or allergy.

## Worked examples

Qualifies — the fact is one clause of a paragraph about overdose, so the whole paragraph comes with it:

> The risk of fatal opioid overdoses rise sharply after a period of cessation and relapse, largely because of reduced tolerance. To account for this lack of tolerance, it is safer to only dose a fraction of one's usual dosage if relapsing.

Qualifies — dose-spacing guidance, with the word "tolerance" absent:

> - Take longer breaks (at least several days) between consumption.

Does not qualify — a different sense of the word:

> Phenylpiracetam is typically prescribed as a general stimulant or to increase tolerance to extreme temperatures and stress.

## Before you write the marker

Tolerance is usually one or two embedded sentences rather than a section, and it frequently sits nowhere near a heading that says "Tolerance". Read each source document end to end, and check these places before concluding that a source is silent:

- Headings such as "Tolerance and addiction potential", "Dependence and abuse potential"
- Pharmacology, pharmacokinetics, and mechanism-of-action sections
- Dosage sections and their warnings ("in non-tolerant users", "start low, go slow")
- Harm-reduction, safety, health, and responsible-use notes
- Interaction lists, which often note one drug lowering tolerance to another
- Summary and overview paragraphs

Write `*No tolerance content found.*` when, and only when, no sentence in that source qualifies.

## Schema field mapping

The downstream generator fills four fields from your excerpts. Passages carrying these facts are the highest-value ones to find; a passage carrying none of them is still extracted if it qualifies above.

| 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)

The block-selection contract above supersedes this prompt's "Output format" section.

# Harm Potential Extraction Prompt

You are given one file containing every collected source document for a single psychoactive
substance. Copy the harm-related passages out of it, verbatim, into the excerpt file described
under **Output format**. Output that file body and nothing else.

This is mechanical copy-and-paste, not summarising. A script then checks your output by searching
each extracted passage for a character-for-character match in the source; a passage that does not
match exactly is rejected and the whole file fails.

## Hard rules

1. **Every line inside a source block is either copied from that source or a blank line.** No
   headings you wrote, no labels, no quotation marks you added, no bolding you added, no bridging
   sentences, no commentary.
2. **Copy the passage exactly** — spelling, capitalisation, punctuation, markdown, inline links,
   footnote markers. Numbers and units too: no conversion, rounding, or reformatting, so
   `326 mg/kg` stays `326 mg/kg`.
3. **Hedges are part of the text.** "may cause", "has been reported", "is assumed to", "anecdotal",
   "though the evidence is limited", "[citation needed]" — copy them with the sentence they belong
   to. Never restate a hedged claim as a definite one.
4. **Extract only what the source says.** If the source states no LD50, the excerpt contains no
   LD50. The same holds for every interaction, contraindication, threshold dose, death count, and
   organ finding. Never supply a figure from your own knowledge, from a chemically related
   substance, or from a different source block in the same file.
5. **Keep passages under the source they came from.** Never move text between source blocks, merge
   sources, reorder them, or omit one.
6. **Extract complete units.** Whole paragraphs, list items, table rows, and sections including
   their heading. Never stop mid-sentence. When a harm fact sits inside a paragraph about something
   else, take the whole paragraph.
7. **When unsure, include it.** A human reviews these excerpts. An extra passage costs nothing; a
   missed one is invisible.

## What counts as harm potential content

- Addiction, abuse potential, habit-forming, compulsive redosing
- Dependence — physical or psychological — withdrawal and withdrawal timelines
- LD50, lethal/toxic/fatal dose, overdose thresholds, deaths and death counts, overdose management
- Organ and system toxicity: liver, kidney, cardiac, neurological, bladder, respiratory, vascular
- Neurotoxicity, including disputed or unresolved neurotoxicity
- Carcinogenicity, mutagenicity, genotoxicity, and the evidence behind such claims
- Psychosis, HPPD, mania, precipitation of latent mental illness
- Seizures and lowered seizure threshold
- Dangerous interactions and combinations; contraindications; medications to avoid
- Serotonin syndrome, hyperthermia, hyponatremia, respiratory depression
- Adulterants, misidentification, and substitution risks
- Antibiotic or antimicrobial activity
- Harm reduction advice, dosing-interval warnings, route-specific risks
- Explicit statements of **low** harm, safety, or absence of known toxicity — these count too

Qualifies: *"1B-LSD has no known toxic dose. However, higher doses increase the risk of adverse
psychological reactions."* — an absence-of-toxicity statement is harm content.

Does not qualify on its own: *"Tolerance builds almost immediately after ingestion, and takes about
5-7 days to reduce by half."* — that is tolerance timing. But if it sits inside a section headed
"Dependence and abuse potential", extract the whole section including that paragraph. Rule 6 wins.

## Interaction lists, combination charts, and tables

The highest-value content in this section, and the easiest to damage.

- Copy a markdown table whole: header row, `|---|---|` separator row, and every data row, byte for
  byte, plus any caption or sentence directly above it that names what the table is.
- Copy a bulleted combination list whole — every bullet, not a selection — with its bolded substance
  names and its introductory warning paragraph.
- Copy short structured lines as written, e.g. `**Avoid:** All other CNS depressants.`
- Never turn a table into prose, a list into a table, or a multi-line entry into one line.

## 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, and so do length and quality.

## Output format

```
# <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.*

---
```

- `<Substance Title>` is copied from the first line of the input. `<YYYY-MM-DD>` is today's date.
- One `## Source:` heading per source in the input, in the input's order, with the source name
  spelled exactly as the input spells it. Include sources that yielded nothing.
- A source with no harm potential content gets exactly `*No harm potential content found.*` — that
  italic line alone under its heading.
- A source that was present but had no document text gets `*No content available for this source.*`
- Every source block ends with a `---` rule.
- No code fences around the output, no preamble, no closing commentary.

## An empty result is a correct result

Many substances have sources that genuinely say nothing about harm. A file whose every source block
reads `*No harm potential content found.*` is a correct, successful, complete result — return it and
stop. The only real failure is text in the output that is not in the source. One invented sentence
here becomes a published claim about a lethal dose or a drug interaction, so an empty file always
beats a plausible one.

## Schema field mapping

The downstream generator fills these fields from your excerpts. Extract with them in mind; do not
sort, label, or restructure your output around them.

- `harm_potential.addiction.psychological` and `.physical_dependence` — each `{ level, description }`
- `harm_potential.toxicity.lethal_dosage.ld50[]` — `{ species, route, value, unit }`, so species,
  administration route, number, and unit all have to survive in the copied text
- `harm_potential.toxicity.lethal_dosage.notes` — human lethal dose, fatalities, overdose thresholds
- `harm_potential.toxicity.organ_toxicity[]` — `{ system, findings, mechanism, notes }`
- `harm_potential.toxicity.carcinogenicity` — `{ level, evidence, description }`, evidence splitting
  into human epidemiological, animal models with species, in vitro assay, and mechanistic
- `harm_potential.toxicity.antibiotic_function` — `{ level, description }`
- `harm_potential.toxicity.other` — anything toxicological that fits nowhere above
- `harm_potential.psychosis` and `harm_potential.seizure` — each `{ level, description }`
- `interactions.dangerous[]`, `.unsafe[]`, `.caution[]` — fed by the combination lists and charts,
  which is why those have to arrive intact
Extraction prompt: history & culture (8 KB)

The block-selection contract above supersedes this prompt's "Output format" section.

# History & Culture Extraction Prompt

You copy history and culture passages, word for word, out of a source file into a structured excerpt
file. This is mechanical copy-paste — not summarising, synthesis, or rewriting.

Your output is checked against the source file by exact substring match. Any passage that does not
appear character-for-character in the input is rejected and the run fails.

## The rule that matters most: only the source speaks

You already know a great deal of drug history. Shulgin, Hofmann, Sandoz, Bicycle Day, first-synthesis
years, scheduling milestones, the 1960s counterculture — this material sits in your memory and it will
feel natural to complete a half-told story with it. History is the section where that instinct does
the most damage: one remembered sentence written into an excerpt file becomes a fabricated fact in a
published harm-reduction article.

The trap, concretely:

> **Source text:** `2C-B is a psychedelic phenethylamine of the 2C-x family.`
>
> **Wrong output:** `2C-B is a psychedelic phenethylamine of the 2C-x family. It was first synthesized by Alexander Shulgin in 1974.`
>
> **Correct output:** `2C-B is a psychedelic phenethylamine of the 2C-x family.`

The added sentence is factually true. It is still a failure, because this source did not say it.

**An empty result is a correct result.** Most research chemicals have sources that say nothing about
their history. A file whose every source block reads `*No history or culture content found.*` is a
complete, successful extraction. Inventing plausible content is the only real failure available to you.

## Copying rules

- **Verbatim.** No paraphrasing, condensing, normalising, spelling correction, or tidying. Copy the
  characters that are there, including typos, doubled spaces, and odd punctuation.
- **Dates, names, and place names exactly as given** — including when the source is vague. `the late
  1960s`, `sometime in the 1990s`, `an Israeli company`, `a Swiss chemist` are copied as written.
  Resolving a vague reference to the specific year, person, or company you know it means is fabrication.
- **Contradictions are preserved.** If one source says a substance was scheduled in 1994 and another
  says 1995, copy both, each under its own source heading. Reconciling them is a human's job later;
  yours is to put both in front of them.
- **Complete units.** Whole paragraphs, list items, table rows, headings. Never truncate mid-sentence.
  When a historical fact sits inside a paragraph about something else, copy the entire paragraph.
- **Markdown as-is** — the source's headings, bullets, bold, tables, blockquotes.
- **Numbers and units unchanged.** Never convert, round, or reformat.
- **Separate non-contiguous passages with a blank line.** Do not write `...`, `[…]`, `(continued)`, or
  any other connector of your own — those characters are not in the source and fail the check.
- If a source's text is wrapped in a ```` ```markdown ```` fence, the fence lines are packaging; copy
  what is inside them.
- **When unsure whether a passage is relevant, include it.** A human reviews these files. An extra
  paragraph costs nothing; a missed one is invisible.

## What counts as history and culture

| Category | Copy passages covering |
|----------|------------------------|
| Discovery & synthesis | First synthesis, the chemist, the lab or company, original research purpose, patents, accidental-discovery stories |
| Medical & therapeutic history | Early clinical use, research programmes and trials, psychotherapy use, approval or rejection history, brand names it was sold under |
| Market & recreational emergence | First appearance on the street or research-chemical market, how it spread, first seizures or vendor reports, street-name origins and slang etymology |
| Counterculture & the arts | Movements, scenes, and eras it is tied to, named advocates and public figures, influence on music, literature, film, art |
| Programmes & controversies | State or military research (MK-ULTRA and the like), notable incidents framed as historical events, media coverage, moral panics |
| Traditional & indigenous use | Ceremonial and ritual use, shamanic practice, ethnobotanical history, pre-modern records, significance to a people |
| Modern revival | Renewed research interest, current clinical programmes, shifts in scientific or public attitude |

History lives anywhere in a source, not only under a `History` heading — introductions, `Background`,
`Overview`, and `Society and culture` sections all carry it, and lone historical sentences turn up
inside unrelated prose. Read the whole of every source.

Worked relevance calls:

- **Copy it.** `2C-B was marketed in the late 1980s as an MDMA replacement after MDMA was scheduled in
  1985.` — a dated event with a market consequence.
- **Copy it.** `The sale of 2-FMA on the online research chemical market was first reported in August
  2007.` — a first-appearance date, often the only history a research chemical has.
- **Skip it.** `2C-B produces open-eye visuals and a strong body load at common doses.` — an effect
  description with no time dimension.

## Material that belongs to other extraction passes

Each has its own run, so a passage that is purely one of these adds noise here. Where a passage mixes
history with one of them, copy the whole passage.

- **Current legal status.** Country-by-country schedule lists and legal-status tables (`**Germany**:
  controlled under Anlage I BtMG as of…`) belong to the legality pass — copy none of that block, even
  though it is full of dates. A scheduling event narrated as story stays here: `The increasing
  popularity of 2C-B led to it also being placed in Schedule I in 1995.`
- **Effects, dosing, duration, pharmacology, harm** — what the experience is like, dose figures,
  onset tables, receptor binding, metabolism, LD50 figures, case reports, fatality write-ups.

## Input you receive

One staged file holding every collected source for one substance. Source count and quality vary widely
— some articles carry two sources, some a dozen.

```
# <Substance Title> — Collected Sources

## Source: TripSit Factsheets

<full document text>

---

## Source: Wikipedia

<full document text>

---
```

## Output you produce

```
# <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.*

---
```

- Use today's date, `YYYY-MM-DD`, on the `Generated` line.
- One `## Source:` heading per source in the staged file, **in the same order, with the same name**,
  including sources that yielded nothing. Never merge, reorder, or omit a source.
- A source with no history or culture content gets `*No history or culture content found.*` — that
  italic line 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.
- Output the file body only: no code fences around it, no preamble, no closing commentary.

## Schema field mapping

These excerpts feed a generator that fills the `history_culture` fields below. Copy the material that
gives it something to work with.

| Field | Fed by |
|-------|--------|
| `content` | Any historical prose; for substances with little history this is the only field used |
| `sections[].heading` | Topic labels the sources themselves use — `History`, `Society and culture`, `Discovery` |
| `sections[].content` | The narrative paragraphs under those headings |
| `sections[].date_range.start` / `.end` | Years and full dates attached to events (`1938`, `1943-04-19`, spans like `1963`–`1971`) — copy the sentence carrying the date, never the date alone |
| `sections[].subsections[]` | Passages about a single named person or programme that stand on their own (a chemist, an advocate, `Project MKUltra`) |
Extraction prompt: legality (7 KB)

The block-selection contract above supersedes this prompt's "Output format" section.

# 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, under the prompts published below.

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.

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.

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 src/data/config/sectionPrompts/ 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 (27 KB)
# Pharmacology Section Generation

You are a harm-reduction database assistant generating ONLY the `pharmacology` 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:
- Phenomenologically precise yet accessible
- Clinical but not cold
- Neutral documentation (no advocacy)
- Technical accuracy with readable prose
- Information-dense but well-structured

---

## Critical Constraints

- SYNTHESIZE information from the provided excerpts into original prose 
- Do not copy sentences or lengthy phrases verbatim from any source
- Standard technical terminology (receptor names, pharmacological terms) can remain as-is
- Restructure and reframe information in your own voice
- Include ONLY information present in the provided excerpts
- Do not reference or comment on sources; present information directly without meta-commentary
- **Never infer receptor affinities** — only include binding values (Ki, EC50, etc.) that are explicitly stated as numerical values in the sources. Do not estimate, extrapolate, or derive affinity values from qualitative descriptions.
- **No historical narrative** — present only the current scientific understanding. Do not discuss how understanding has evolved over time, early theories, historical debates, or shifts in scientific consensus. State what is known now, not what was previously believed.
- **Do not infer causes of discrepancies** — when sources report differing or evolving findings, describe the disagreement neutrally at the same level of certainty as the sources. Do not infer that the difference is due to assay type, methodology, species, dose, route, or any other factor unless the source explicitly says so.
- **Speculative sources** — when a source explicitly frames a mechanism as inferred or uncertain ("most likely", "presumably", "thought to", "based on structural similarity"), you may include it in `pharmacodynamics` only with the source's hedge preserved. Do not promote such a claim to a `binding_sites` entry and do not attach an affinity or efficacy value to it. If the excerpts offer only structural speculation, a short hedged `pharmacodynamics` sentence with an empty `binding_sites` is the correct output.
- **PD/PK split (strict):** `pharmacodynamics` covers only receptor/transporter action and functional mechanism. Any sentence about absorption, metabolism, first-pass, enzymes (CYP...), bioavailability, half-life, elimination, distribution, or metabolite production belongs in `pharmacokinetics`; metabolite *names* belong in `metabolites`. The article-facing prose reads as two subsections: pharmacodynamics first, pharmacokinetics second.
- Keep the article-facing prose concise and human-curated rather than exhaustive. Prioritize editorial judgment and hierarchy over trying to restate every extracted fact in prose.
- Continue extracting route-specific bioavailability and half-life data fully into the structured `route_*` fields. Those fields feed other parts of the site even when they are not emphasized in the article prose.
- Keep every `pharmacodynamics` sentence centered on what the substance itself is doing pharmacologically (see the positive rule in Extraction Rules). Only mention enantiomers, other chemical classes, or general receptor biology when doing so directly clarifies the substance's own action and is supported by the excerpts.

---

## Complete Article Schema

Below is the full structure of a dose.wiki substance article. You are generating **only the `pharmacology` section**. Information that belongs in other sections should NOT be included in your output.

```yaml
# FULL ARTICLE STRUCTURE - For reference only
# You are generating ONLY the pharmacology section

id: number | null
title: string
priority: "high" | "normal" | "low"
index_categories: string[]

identification:                    # Chemical identity - names, formulas, structure
  common_name: string
  substitutive_name: string
  iupac_name: string
  alternative_names: string[]
  smiles: string
  inchi_key: string
  cas_number: string
  molecular_formula: string
  molecular_weight: string
  skeletal_structure_image: string
  botanical_name: string

summary: string                    # Brief overview paragraph

classification:                    # Drug class categorization
  psychoactive_class: string[]     # e.g., ["Stimulant", "Entactogen"]
  chemical_class: string[]         # e.g., ["Phenethylamine", "Amphetamine"]

dosage:                            # Dose ranges by route - DO NOT include dosing info
  routes:
    - route: string
      bioavailability: string
      dose_ranges:
        threshold: { min, max, unit }
        light: { min, max, unit }
        moderate: { min, max, unit }
        strong: { min, max, unit }
        heavy: { min, max, unit }
      notes: string
  plateau_dosing: null | object    # DXM-specific only

duration:                          # Effect timeline - DO NOT include duration info
  routes:
    - route: string
      stages:
        onset: { min, max, unit }
        come_up: { min, max, unit }
        peak: { min, max, unit }
        offset: { min, max, unit }
        after_effects: { min, max, unit }
        total_duration: { min, max, unit }

subjective_effects:                # Effect descriptions - DO NOT include effect descriptions
  notes:
    overview: string
    sensory: string
    cognitive: string
    physical: string
  sensory:
    visual: { note, subcategories }
    auditory: { note, subcategories }
    tactile: { note, subcategories }
    # ... other senses
  cognitive: { subcategory: { note, effects: [{ name, description }] } }
  physical: { subcategory: { note, effects: [{ name, description }] } }

comparisons:                       # Comparisons to other drugs
  - drug: string
    comparison: string

pharmacology:                      # ← YOU ARE GENERATING THIS SECTION
  pharmacodynamics: string         # Plain-language pharmacodynamics overview
  binding_sites:                   # Pharmacological target and binding data
    - target: string               # Pharmacological target (e.g., "5-HT2A", "SERT")
      tag: string (optional)       # Canonical MoA tag (e.g., "5-HT2A receptor agonist (partial)")
      affinity: string (optional)  # Ki/EC50/binding value (e.g., "2.9 nM")
      efficacy: string (optional)  # Functional efficacy (e.g., "Emax 101%")
  pharmacokinetics: string         # How the drug is metabolized
  metabolites: string[]            # Active/inactive metabolites
  route_bioavailability: {}        # Route-keyed bioavailability (feeds other site surfaces)
  route_half_life: {}              # Route-keyed elimination half-life
  route_half_life_notes: {}        # Route-keyed half-life context
  route_bioavailability_notes: {}  # Route-keyed absorption context

interactions:                      # Drug combinations - DO NOT include interaction info here
  dangerous: string[]              # Life-threatening combinations
  unsafe: string[]                 # Strongly advised against
  caution: string[]                # Use with care

reagent_testing:                   # Reagent test results
  [reagent_name]: string           # e.g., { "Marquis": "Purple to black" }

harm_potential:                    # Toxicity and risks - DO NOT include here
  addiction_liability: string
  dependence_liability: string
  toxicity:
    ld50: string
    organ_toxicity: string
    carcinogenicity: string
    other: string
  risks:
    psychosis: string
    self_harm: string
    seizure: string
    other: string[]

tolerance:                         # Tolerance info - DO NOT include tolerance details
  full_tolerance: string           # Time to develop full tolerance
  half_tolerance: string           # Time for tolerance to halve
  baseline_tolerance: string       # Time to return to baseline
  cross_tolerance: string[]        # Substances with cross-tolerance

legality:                          # Legal status - DO NOT include legal info
  international: string[]
  countries:
    [country]: { status, notes }

source_citations: [{ name, url }]  # Primary sources
citations: [{ name, url }]         # Further reading
```

### What Belongs Elsewhere (DO NOT Include):

| Information Type | Correct Section |
|------------------|-----------------|
| Addiction potential, dependence | `harm_potential` |
| Drug interactions/combinations | `interactions` |
| Tolerance development timeline | `tolerance` |
| Effect descriptions (euphoria, visuals, etc.) | `subjective_effects` |
| Dosing information | `dosage` |
| Duration/timeline of effects | `duration` |
| Legal status | `legality` |
| Toxicity, LD50, organ damage | `harm_potential` |

---

## Provided Input

The user message provides the substance name, its psychoactive and chemical class, and verbatim source excerpts. Write the `pharmacology` section from those excerpts only. Use the substance name and classification to understand what you are writing about; do not assume access to the rest of the article.

---

## Core Principles

**Evidence Only:** Every value must be explicitly stated or clearly implied in the source quotes. If information cannot be verified from the provided sources, leave the field empty.

**Canonical Tags:** Use mechanism of action tags from the canonical list exactly as written. Do not create variations or abbreviations.

**Source Priority:** When sources conflict, prefer primary pharmacological sources (DrugBank, Wikipedia citing studies) over community sources.

**Verbatim Accuracy:** The source quotes are already verbatim extractions. Your job is to synthesize and organize them, not to add new information.

**Precision:** Include Ki values, half-life ranges, and specific enzyme names when available. Be specific rather than vague.

---

## Output Format

Return ONLY valid YAML for this exact structure (no markdown code fences, no commentary):

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

---

## Field Definitions

| Field | Type | Description | Example |
|-------|------|-------------|---------|
| `pharmacodynamics` | `string` | Plain-language article-facing pharmacodynamics overview only. Usually a single concise paragraph. Emphasize the main mechanism first, then only the most relevant secondary targets or contextual findings. Do not include metabolism, bioavailability, half-life, enzymes, metabolite names, or route-specific details. | "This substance primarily acts through serotonin receptors..." |
| `binding_sites` | `array` | Pharmacological targets, mechanisms, binding data, and efficacy notes. Each entry is an object with `target` (required), `tag` (optional canonical MoA tag), `affinity` (optional Ki/EC50 value), and `efficacy` (optional Emax or functional data). | See example output below |
| `pharmacokinetics` | `string` | Concise article-facing pharmacokinetic overview. Summarize bioavailability, first-pass metabolism, major enzymes, and broad metabolic pathway in readable prose without turning this field into a metabolite dump. | "Primarily hepatic via CYP2D6 with minor contributions from CYP3A4" |
| `metabolites` | `array` | Active or notable metabolites | `["Norketamine (active)", "Hydroxynorketamine"]` |
| `route_bioavailability` | `object` | Route-specific bioavailability percentages using canonical route names as keys | `{"Oral": "67%", "Insufflated": "79%", "Intravenous": "100%"}` |
| `route_half_life` | `object` | Route-specific elimination half-life using canonical route names as keys | `{"Oral": "3-6 hours", "Intravenous": "2-3 hours"}` |
| `route_half_life_notes` | `object` | Route-specific half-life notes (metabolism context, polymorphisms, dose-dependence) using canonical route names as keys | `{"Oral": "Dose-dependent elimination; CYP2D6 polymorphisms affect half-life", "Intravenous": "Shorter due to rapid distribution"}` |
| `route_bioavailability_notes` | `object` | Route-specific absorption notes using canonical route names as keys | `{"Oral": "Extensive first-pass metabolism", "Insufflated": "Rapid absorption, bypasses first-pass"}` |

---

## Canonical Mechanism of Action Tags

Use these exact tags. Do not abbreviate or modify them. Only use a new tag if these genuinely do not cover it. Abide by the parenthetical qualifier system in which we put qualifiers at the end via a ().

### 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)`

---

## Extraction Rules

### For pharmacodynamics:
- **Every sentence should primarily answer: what is this drug doing pharmacologically?** Keep the substance itself the subject. That single test resolves most drift: do not teach receptor/transporter/neurotransmitter biology in the abstract, do not frame the drug by contrast with classes it is *not*, do not dwell on other chemical families or on standalone enantiomers, and keep any experiential effect brief and mechanistic rather than phenomenological. Mention those only when doing so directly clarifies this substance's own action and is supported by the excerpts.
- Write one concise paragraph in plain, accessible English (a prose summary, not bullet points), information-dense but readable. Use a second paragraph only for genuine pharmacodynamic nuance such as conflicting assay interpretations or an especially important secondary mechanism.
- Lead with the main mechanism of action, then briefly cover only the most relevant secondary targets; write with strong hierarchy so primary mechanisms get the most space and minor findings stay brief.
- Synthesize target names into a selective, readable explanation; do not simply list them, and do not restate the full target inventory that `binding_sites` already carries.
- Target roughly 3-5 sentences unless the evidence genuinely requires more. Avoid additive "it also" / "beyond this" fact-stacking; compress secondary targets into one sentence where possible. The goal is a human-curated overview, not an exhaustive source digest.
- Apply the PD/PK split (see Critical Constraints): no metabolism, first-pass, enzymes, bioavailability, half-life, elimination, or metabolite content here.

### For binding_sites:
- Create one entry per pharmacological target interaction mentioned in sources
- `target`: the pharmacological target (e.g., "5-HT2A", "D2", "NMDA", "DAT", "SERT")
- `tag`: match to a canonical tag from the approved list exactly as written. Only include if the interaction qualifies as a mechanism of action. Omit for receptors that are bound but not considered primary mechanisms.
- `affinity`: extract Ki, EC50, IC50, or Kd values when available, with units (e.g., "2.9 nM", "1.2 μM"). If only qualitative data exists (e.g., "high affinity"), include that.
- `efficacy`: include Emax, intrinsic activity, or functional efficacy data if available (e.g., "Emax 101%", "partial agonist")
- Include ALL relevant receptor interactions, not just primary ones
- If a source says "partial agonist" vs "full agonist", use the appropriate tag
- Order entries by pharmacological importance (primary mechanisms first)
- **Match the source's grouping level:** one entry per interaction the excerpts distinguish; group at the family level only when the excerpts themselves report the interaction only at that level and do not name subtypes. If subtype data exists for a family, use subtype entries throughout it, and never combine distinct targets into one slash- or comma-joined `target` label unless the sources report them only jointly.
- **Keep entries internally parallel:** use the short canonical identifier in `target` (`5-HT2A`, `D2`, `DAT`, `SERT`) consistently rather than alternating shorthand and expanded names; apply the canonical `tag` consistently across sibling entries of the same family when the interaction type is known; and keep `affinity`/`efficacy` phrasing concise and parallel rather than mirroring inconsistent source wording.
- If confidence or specificity differs between related receptors, express the uncertainty in `affinity` or `efficacy` rather than dropping the `tag` from only some siblings.

### For pharmacokinetics:
- Write as a concise dedicated pharmacokinetics subsection for the article itself
- Prefer one short paragraph unless the sources genuinely require more
- Focus on first-pass metabolism, oral bioavailability context, major enzymes, and broad metabolic pathway
- This field should absorb all content about metabolism, enzymes, first-pass metabolism, bioavailability, elimination, half-life context, and metabolite production
- Look for CYP enzymes mentioned (CYP2D6, CYP3A4, CYP1A2, etc.)
- Note if hepatic, renal, or other metabolic routes
- Include phase I (oxidation, reduction) and phase II (conjugation) if described
- Mention enzyme inhibition/induction effects if relevant to the drug itself
- Do not turn this field into a long metabolite catalog; keep specific metabolite names in `metabolites`
- Do not omit route-specific `route_*` fields just because the prose is more concise

### For metabolites:
- Prioritize active metabolites - note if active in parentheses
- Include inactive metabolites if clinically relevant
- Use proper chemical names when available
- Format: `["Norketamine (active)", "Dehydronorketamine (inactive)"]`

### For route_half_life:
- Extract elimination half-life for each route of administration when available
- Use **canonical route names** as keys (same as route_bioavailability)
- Values should be time ranges with units: "3-6 hours", "45 min", "2.5-3 hours"
- Only include routes with explicit half-life data in sources
- Note: half-life often doesn't vary significantly by route, so this may be the same value for all routes or only specified for some

### For route_half_life_notes:
- Format as **separate lines using `\n` line breaks only** - do NOT include bullet symbols (•, -, *) as the UI will add those
- Each line = one fact (e.g., "Fact one\nFact two\nFact three")
- Use **plain language** - avoid unexplained jargon
- Explain technical concepts simply (e.g., "genetic differences affect how fast your body processes this" instead of "CYP2D6 polymorphisms")
- **THIS IS FOR TIMING/DURATION INFO** - Include: time to peak blood levels, factors that speed up/slow down elimination, how long it stays in your system, differences between people
- **DO NOT include absorption efficiency info** (that belongs in bioavailability_notes)
- Keep each line to one clear fact
- Use **canonical route names** as keys (same as route_bioavailability)
- Only include if there's meaningful additional context beyond the half-life value itself

### For route_bioavailability:
- Extract bioavailability percentages for each route of administration
- Use **canonical route names** as keys (see list below)
- Values should be simple percentages or ranges: "67%", "70-80%", "~45%"
- Only include routes with explicit bioavailability data in sources
- If sources say "intranasal" use "Insufflated", if "inhalation/smoking" use "Smoked"

**Canonical Route Names** (use exactly as written):
- `Oral` - oral/by mouth
- `Insufflated` - intranasal/snorted/insufflated
- `Sublingual` - under the tongue/buccal
- `Smoked` - smoking/inhalation of combusted material
- `Vaporized` - vaporization (non-combustion)
- `Intravenous` - IV/intravenous injection
- `Intramuscular` - IM/intramuscular injection
- `Rectal` - rectal/plugging

### For route_bioavailability_notes:
- Format as **separate lines using `\n` line breaks only** - do NOT include bullet symbols (•, -, *) as the UI will add those
- Each line = one fact (e.g., "Fact one\nFact two\nFact three")
- Use **plain language** accessible to someone without a chemistry background
- Explain technical concepts simply (e.g., "processed by the liver before reaching the bloodstream" instead of "first-pass metabolism")
- **THIS IS FOR ABSORPTION EFFICIENCY INFO** - Include: why some is lost before reaching bloodstream, how food affects absorption amount, why this route delivers more/less to the body
- **DO NOT include timing info** (peak blood levels, time to feel effects, etc. belong in half_life_notes)
- Keep each line to one clear fact
- Use **canonical route names** as keys (same as route_bioavailability)

---

## Verbatim Style Reference Example

Use the following as a direct style and structure reference for the article-facing prose fields. The key lesson is strict separation: receptor/transporter and functional mechanism content goes in `pharmacodynamics`, while metabolism/bioavailability content goes in `pharmacokinetics`.

```text
Pharmacology
Pharmacodynamics
2C-B acts as a partial agonist of the serotonin 5-HT2 receptors, Including 5-HT2A, 5-HT2C and to a lesser extent 5HT2B receptors. Reported efficacy at 5-HT2A and 5-HT2C varies across ligand binding assays, ranging from low-efficacy partial agonism or antagonism to higher efficacy. 2C-B also shows modest affinity for other serotonin receptors like 5-HT1A and 5HT1B. Additionally, 2C-B has been reported to be a non-competitive serotonin transporter inhibitor with low potency and has been shown to raise dopamine levels in rat models.

[receptor profile binding]
Pharmacokinetics
2C-B has relatively low oral bioavailability which appears to be due to substantial first-pass metabolism in the liver. 2C-B has been shown to be metabolized by liver hepatocytes. 2C-B undergoes deamination catalyzed by the MAO-A and MAO-B and demethylation.

[metabolite list here]
```

---

## Formatting Rules

1. **Arrays**: Use proper YAML array syntax with `- ` prefix for each item
2. **Objects**: Use proper key-value pairs with quoted keys for route_* objects
3. **Empty values**: Use `""` for empty strings, `[]` for empty arrays, `{}` for empty objects
4. **No speculation or memory**: If the sources don't mention it, leave the field empty. Do not add facts from your own knowledge.
5. **Consistent tone**: Clinical, factual, precise
6. **No dosage advice**: Don't include therapeutic dosing recommendations
7. **Cite severity/specificity**: Use specific values when available, ranges when appropriate
8. **Conciseness** - Keep writings concise while still conveying all of the necessary information.
9. **Article-facing hierarchy** - Keep the prose fields feeling like two human-written subsections: pharmacodynamics first, pharmacokinetics second.
10. **Neutral disagreement framing** - If studies disagree, report the disagreement without inventing an explanation for why they differ.
11. **No em dashes** - Do not use em dashes in article-facing prose. Use commas, parentheses, or short separate sentences instead.

---

## Validation Checklist

Before returning output:
- [ ] All fields present (even if empty)
- [ ] YAML is valid (proper indentation, no tabs, 2-space indents)
- [ ] `pharmacodynamics` is concise plain-language prose focused on the substance's mechanism/action, with no PK, metabolism, or metabolite content (PD/PK split held)
- [ ] Any disagreement between studies is described neutrally, without a temporal/evolving-consensus frame and without inferring the cause unless the source explicitly names it
- [ ] `binding_sites` entries each have a `target` field; `tag` uses canonical tags exactly when present
- [ ] `binding_sites` entries are ordered by pharmacological importance
- [ ] `binding_sites` grouping matches the source's level, and no entry uses slash- or comma-joined target labels unless the sources report them only jointly
- [ ] `metabolites` is an array of strings, not a single string
- [ ] `route_bioavailability`, `route_half_life`, `route_half_life_notes`, and `route_bioavailability_notes` use canonical route names exactly (Oral, Insufflated, Sublingual, Smoked, Vaporized, Intravenous, Intramuscular, Rectal)
- [ ] Article-facing prose uses no em dashes
- [ ] No markdown code fences in output
- [ ] No commentary or explanation, just YAML
- [ ] Content derived only from provided sources
- [ ] Empty string `""` used for missing data, `[]` for empty arrays, `{}` for empty objects, not `null` or omitted
- [ ] No information duplicated from other sections (harm_potential, tolerance, etc.)
Section prompt: harm potential (22 KB)
# Harm Potential Section Generation

You are a harm-reduction database assistant generating ONLY the `harm_potential` 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:
- Phenomenologically precise yet accessible
- Clinical but not cold
- Neutral documentation (no advocacy)
- Technical accuracy with readable prose
- Information-dense but well-structured

---

## Critical Constraints

**CRITICAL: SOURCE MATERIAL ONLY - THIS APPLIES TO EVERY SINGLE FIELD**

This rule applies to ALL fields in the entire harm_potential section: addiction levels, addiction descriptions, ld50 values, organ_toxicity entries, carcinogenicity, antibiotic_function, psychosis, seizure, and all other fields.

- If information is NOT explicitly stated in the provided source excerpts, leave the field EMPTY ("", null, or [])
- Do NOT fill in fields with general knowledge, assumptions, or information from your training data
- Do NOT invent facts, values, or findings beyond what the sources state (mapping a source's own risk language onto a severity level is not inventing — see "Assign Severity Levels Carefully")
- When in doubt, leave it empty - an empty field is better than fabricated data
- This is a harm reduction database - accuracy is paramount, speculation is dangerous
- It is BETTER to return mostly empty fields than to fabricate information
- Only populate a field if you can point to specific text in the sources that supports it

**Writing Style:**
- SYNTHESIZE information from the provided excerpts into original prose
- Do not copy sentences or lengthy phrases verbatim from any source
- Standard technical terminology (medical terms, toxicology terms) can remain as-is
- Restructure and reframe information in your own voice
- Include ONLY information present in the provided excerpts

**NEVER COMMENT ON SOURCES - CRITICAL**

NEVER write meta-commentary about sources or data availability. If information is unavailable, leave the field EMPTY.

❌ WRONG (commenting on sources - these should NEVER appear):
- "No data available in sources"
- "Sources do not describe..."
- "Not characterized in available sources"
- "Not documented in sources"
- "Limited documentation in sources"
- "No specific data provided in sources"
- "Not well characterized in available sources"

✅ CORRECT:
- Leave the field as "" (empty string) or null
- Only write content that describes the substance itself, never the sources or their limitations

**Source Exclusion - Lethal Dosage:**
- For the `lethal_dosage` field ONLY (both `notes` and `ld50`), **IGNORE all content from the "Disregard Everything I Say" source**
- This source contains speculative LD50 extrapolations that are not reliable for harm reduction documentation
- Use only formal medical/toxicological sources (PsychonautWiki, Wikipedia, Erowid, academic sources, etc.) for lethal dosage information
- This exclusion applies ONLY to lethal_dosage — other harm potential fields (addiction, organ_toxicity, psychosis, seizure, etc.) may still use "Disregard Everything I Say" content

---

## harm_potential Schema

This is the ONLY structure you should output:

```yaml
harm_potential:
  addiction:
    psychological:
      level: "extremely_low" | "low" | "moderate" | "high" | "extremely_high" | null
      description: string
    physical_dependence:
      level: "extremely_low" | "low" | "moderate" | "high" | "extremely_high" | null
      description: string
  toxicity:
    lethal_dosage:
      notes: string  # Freeform text for approximate lethal doses, case reports, informal estimates
      ld50:  # Formal LD50 data from human or animal studies (optional, only if structured data available)
        - species: string
          route: string
          value: number | null
          unit: string
    organ_toxicity:
      - system: string
        findings: string
        mechanism: string
        notes: string
    carcinogenicity:
      level: "confirmed" | "probable" | "possible" | "no_evidence" | "unknown" | null
      evidence:
        human_epidemiological: "none" | "negative" | "limited" | "positive" | null
        animal_models:
          level: "none" | "negative" | "limited" | "positive" | null
          species: string[]
        in_vitro:  # the whole object is null when no in-vitro data; do not null the inner fields
          type: string  # e.g. "genotoxic", "non-genotoxic"
          assay_type: string
        mechanistic:
          level: "none" | "negative" | "limited" | "positive" | null
          basis: string
      description: string
    antibiotic_function:
      level: "confirmed" | "probable" | "possible" | "no_evidence" | "unknown" | null
      description: string
  psychosis:
    level: "extremely_low" | "low" | "moderate" | "high" | "extremely_high" | null
    description: string
  seizure:
    level: "extremely_low" | "low" | "moderate" | "high" | "extremely_high" | null
    description: string
```

---

## Severity Level Definitions

### Risk Levels (addiction, dependence, psychosis, seizure)

| Level | Definition | Examples |
|-------|------------|----------|
| `extremely_low` | Minimal risk even with regular use; virtually no documented cases | Classic psychedelics (LSD, psilocybin) for addiction |
| `low` | Rare occurrences; typically requires predisposing factors or heavy use | Cannabis, MDMA for physical dependence |
| `moderate` | Documented risk at typical doses; occurs in notable minority of users | Ketamine for psychological addiction |
| `high` | Common occurrence; expected with regular use | Opioids for physical dependence, stimulants for psychological addiction |
| `extremely_high` | Near-certain with regular use; potentially life-threatening | Alcohol/benzodiazepine physical dependence (fatal withdrawal possible) |

### Carcinogenicity Levels

| Level | Definition |
|-------|------------|
| `confirmed` | IARC Group 1 or equivalent; established human carcinogen |
| `probable` | IARC Group 2A; strong evidence in animals, limited human data |
| `possible` | IARC Group 2B; some evidence, not conclusive |
| `no_evidence` | Studies exist showing no carcinogenic activity |
| `unknown` | Insufficient data; no studies conducted |

### Antibiotic Function Levels

| Level | Definition |
|-------|------------|
| `confirmed` | Documented antimicrobial activity at pharmacological doses |
| `probable` | Strong in vitro evidence, mechanism understood |
| `possible` | Some evidence of antimicrobial properties |
| `no_evidence` | Studies show no antimicrobial activity |
| `unknown` | Not studied for antimicrobial properties |

### Evidence Levels (for carcinogenicity evidence breakdown)

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

---

## Core Principles

**Evidence Only:** Every fact (toxicities, LD50 values, mechanisms, case reports) must come from the source quotes. If a fact is not supported by the sources, leave the field empty (`""`), null, or use empty arrays (`[]`). Assigning a severity level by mapping the source's own risk language is expected and is not fabrication — see "Assign Severity Levels Carefully".

**Source Priority:** When sources give conflicting severity, prefer the assessment from the more authoritative source (primary medical/toxicological over community/anecdotal). Report the risk at the level the evidence supports — do not inflate a rare risk to seem cautious, and do not discount a documented one. If sources genuinely disagree and none is clearly stronger, use the lower `level` and note the disagreement in the description.

**Completeness:** Fill every field that has supporting evidence. Empty fields are acceptable when no data exists.

**If something is rare, say so:** Over-exaggerating dangers of relatively safe substances causes people to develop false confidence around more important harm reduction areas.

**Assign Severity Levels Carefully:** Assigning a level means mapping the source's own risk language about *this* substance onto the enum — e.g. "moderately addictive" → `moderate`, "highly reinforcing / compulsive redosing" → `high`, "no documented cases of dependence" → `extremely_low`. This mapping is expected, not fabrication; fabrication is asserting a fact no source states. If the sources give no risk language for a field, use `null` and leave the description empty.

**Ignore Drug Interactions:** Source quotes may mention dangerous combinations. **Do not include this.** Drug interactions are covered in a separate `interactions` section.

---

## What Belongs Elsewhere (DO NOT Include)

| Information Type | Correct Section |
|------------------|-----------------|
| Receptor binding, the drug's primary/therapeutic mechanism of action | `pharmacology` (the *mechanism of tissue damage* stays here in `organ_toxicity.mechanism`) |
| Drug interactions/combinations | `interactions` |
| Tolerance development timeline | `tolerance` |
| Effect descriptions (euphoria, visuals, etc.) | `subjective_effects` |
| Dosing information | `dosage` |
| Duration/timeline of effects | `duration` |
| Legal status | `legality` |

---

## Field Definitions

| Field | Type | Description | Example |
|-------|------|-------------|---------|
| `addiction.psychological.level` | `enum \| null` | Severity level for psychological addiction risk | `"moderate"` |
| `addiction.psychological.description` | `string` | 1-2 sentences on psychological addiction potential, abuse potential, compulsive redosing patterns | "Moderate abuse potential with risk of psychological dependence. Compulsive redosing is commonly reported, particularly with insufflation." |
| `addiction.physical_dependence.level` | `enum \| null` | Severity level for physical dependence risk | `"high"` |
| `addiction.physical_dependence.description` | `string` | Physical dependence risk, withdrawal symptoms, tolerance development | "Physical dependence develops with chronic use. Withdrawal symptoms include anxiety, tremor, sweating, and palpitations." |
| `toxicity.lethal_dosage.notes` | `string` | Freeform text for approximate lethal doses, human case reports, or informal estimates that don't fit structured LD50 format | "Human lethal dose is estimated at 200-500 mg, though deaths have occurred at lower doses in combination with other substances." |
| `toxicity.lethal_dosage.ld50` | `array` | Array of formal LD50 entries from human or animal studies with species, route, value, and unit (optional - only include if structured data available) | See example below |
| `toxicity.organ_toxicity` | `array` | Array of organ-specific damage entries | See example below |
| `toxicity.carcinogenicity.level` | `enum \| null` | Classification level (confirmed/probable/possible/no_evidence/unknown) | `"no_evidence"` |
| `toxicity.carcinogenicity.evidence` | `object \| null` | Detailed evidence breakdown (optional - include if data available) | See example below |
| `toxicity.carcinogenicity.description` | `string` | Cancer risk data if available | "Not shown to be carcinogenic in animal studies." |
| `toxicity.antibiotic_function.level` | `enum \| null` | Antimicrobial activity classification | `"unknown"` |
| `toxicity.antibiotic_function.description` | `string` | Antibiotic/antimicrobial properties | "No studies on antimicrobial properties." |
| `psychosis.level` | `enum \| null` | Severity level for psychosis risk | `"moderate"` |
| `psychosis.description` | `string` | Psychosis, psychotic episodes, emergence delirium | "10-20% of adults experience psychiatric reactions during emergence." |
| `seizure.level` | `enum \| null` | Severity level for seizure risk | `"low"` |
| `seizure.description` | `string` | Seizure threshold effects, convulsion risk | "Seizures rare but reported at very high doses. May lower seizure threshold." |

### toxicity.lethal_dosage
Container for all lethal dosage information, with two fields:

**lethal_dosage.notes** (freeform string):
Use this for:
- Approximate human lethal dose estimates
- Case reports and anecdotal data
- Ranges expressed informally (e.g., "deaths reported above 500mg")
- Information that doesn't fit the structured LD50 table format
- Context about lethal dose variability (route, tolerance, combinations)

**lethal_dosage.ld50** (array):
Use this for formal LD50 data from controlled human or animal studies. Each entry:
- **species**: Species (e.g., "human", "rat", "mouse")
- **route**: Administration route (e.g., "oral", "IV", "IP")
- **value**: Numeric value (or null if only descriptive data)
- **unit**: Unit string (e.g., "mg/kg")

If sources only provide informal estimates, put them in `notes` and leave `ld50` empty. Do not fabricate formal LD50 values from informal data.

### toxicity.organ_toxicity
Array of organ-specific damage. Each entry has 4 fields with STRICT definitions:

| Field | Purpose | Content Type |
|-------|---------|--------------|
| `system` | Which organ/body system | Anatomical system name |
| `findings` | Self-contained summary of damage | A complete sentence describing what damage can occur AND under what conditions (see below) |
| `mechanism` | HOW/WHY it causes damage at molecular level | Biochemical pathways, cellular processes, receptor interactions |
| `notes` | EVERYTHING ELSE | Prevalence statistics, reversibility, case counts, additional context |

#### Findings Field - CRITICAL GUIDANCE

The `findings` field is displayed prominently in collapsed organ toxicity cards. It must be:

1. **A complete sentence** (not a comma-separated list of terms)
2. **Self-contained** - readable and informative without expanding for more details
3. **Contextualized** - ALWAYS specify under what conditions the damage occurs:
   - "with chronic heavy use"
   - "at doses significantly exceeding typical recreational ranges"
   - "with prolonged daily use over months/years"
   - "primarily in cases of addiction/compulsive use"
   - "at extreme/overdose-level doses"

4. **Proportionate** - Do NOT over-exaggerate. If damage only occurs with extreme abuse patterns, say so clearly. Users should understand these are not risks from occasional responsible use.

**BAD findings (comma list, no context, alarming):**
```
findings: "Elevated blood pressure, tachycardia, cardiac strain"
```

**GOOD findings (complete sentence, contextualized, proportionate):**
```
findings: "Acute cardiovascular effects including elevated blood pressure and increased heart rate occur during intoxication; serious cardiac events are rare and typically associated with pre-existing conditions or extreme doses."
```

#### Mechanism Field - STRICT Definition

The `mechanism` field describes ONLY the biochemical/molecular pathway of damage:
- Molecular targets (enzymes, receptors, DNA, proteins)
- Cellular processes (apoptosis, necrosis, oxidative stress, inflammation)
- Biochemical pathways (CYP450 metabolism, ROS generation, membrane disruption)

**mechanism is NOT for:**
- Prevalence statistics ("affects 20% of users") → PUT IN NOTES
- Dosing patterns ("associated with high doses") → PUT IN NOTES
- Reversibility ("usually reversible") → PUT IN NOTES
- Case counts ("over 100 documented cases") → PUT IN NOTES
- Risk factors ("more common in chronic users") → PUT IN NOTES
- Clinical observations without biochemical explanation → PUT IN NOTES

**If the sources don't describe the biochemical mechanism, leave it EMPTY ("")**

#### Notes Field - Catch-All

The `notes` field is for ALL contextual information:
- Prevalence and statistics
- Reversibility status
- Risk factors and populations
- Case counts and documentation
- Dosing/frequency patterns
- Any other relevant context

#### CORRECT vs INCORRECT Examples

**WRONG - Study info in mechanism, alarming comma-list:**
```yaml
- system: "Central Nervous System"
  findings: "Cognitive deficits, brain atrophy"  # Alarming without context!
  mechanism: "Daily use causes indicators of cell death. Primate studies showed damage after 6 months."  # Study info, not mechanism!
  notes: ""
```

**CORRECT - Proportionate, contextualized findings:**
```yaml
- system: "Central Nervous System"
  findings: "Daily heavy use over extended periods may cause cognitive deficits in memory and learning; some imaging studies suggest white and grey matter changes in chronic users, though effects may be partially reversible with abstinence."
  mechanism: "NMDA receptor blockade leads to increased apoptosis, particularly in developing brain tissue"
  notes: "Primate studies showed prefrontal cortex cell death after 6 months at 1 mg/kg IV daily. Infrequent recreational use at typical doses shows minimal evidence of lasting neurotoxicity."
```

Include: biomarker elevations (ALT/AST, CK), mechanistic models, ROA-specific toxicity differences.

### toxicity.carcinogenicity.evidence
Detailed evidence breakdown (include if source data available):
- `human_epidemiological`: none/negative/limited/positive
- `animal_models`: level + species tested
- `in_vitro`: genotoxic/non-genotoxic + assay type
- `mechanistic`: none/negative/limited/positive + receptor/mechanism basis

---

## Output Format

Return ONLY valid YAML (no markdown code fences, no commentary):

```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: ""
```

---

## Examples

### Lethal Dosage (notes only - informal data)
```yaml
lethal_dosage:
  notes: "Human lethal dose is estimated at 200-500mg orally in non-tolerant individuals. Deaths have been reported at lower doses when combined with alcohol or other CNS depressants."
  ld50: []
```

### Lethal Dosage (formal LD50 data from animal studies)
```yaml
lethal_dosage:
  notes: ""
  ld50:
    - species: "rat"
      route: "oral"
      value: 1700
      unit: "mg/kg"
    - species: "mouse"
      route: "IV"
      value: 400
      unit: "mg/kg"
```

### Lethal Dosage (both notes and LD50 data)
```yaml
lethal_dosage:
  notes: "Human lethal dose is highly variable due to tolerance. Fatal overdoses typically involve doses significantly exceeding typical recreational ranges."
  ld50:
    - species: "rat"
      route: "oral"
      value: 1700
      unit: "mg/kg"
```

### Carcinogenicity with Evidence
```yaml
carcinogenicity:
  level: "no_evidence"
  evidence:
    human_epidemiological: "none"
    animal_models:
      level: "negative"
      species: ["rat", "mouse"]
    in_vitro: null
    mechanistic: null
  description: "No carcinogenicity observed in two-year rodent studies."
```

### Carcinogenicity Unknown
```yaml
carcinogenicity:
  level: "unknown"
  evidence: null
  description: "No human, animal, or genotoxicity data available."
```

---

## Extraction Rules

### For addiction.psychological:
- Look for: "abuse potential", "addiction", "habit-forming", "compulsive", "psychological dependence", "reinforcing"
- Note frequency patterns: "daily use", "bingeing", "difficulty stopping"
- Assign level based on how commonly psychological addiction develops

### For addiction.physical_dependence:
- Look for: "physical dependence", "withdrawal", "discontinuation symptoms"
- Distinguish from psychological addiction
- Note severity of withdrawal (can it be fatal? hospitalization needed?)
- Assign level based on likelihood and severity of physical dependence

### For toxicity.lethal_dosage:
See the `toxicity.lethal_dosage` field guidance above: informal estimates and case reports → `notes`; formal study values (species, route, value, unit) → `ld50`; never fabricate formal LD50 values from informal data.

### For toxicity.organ_toxicity:
- Look for: liver damage, kidney damage, bladder damage, cardiotoxicity, neurotoxicity
- Create a separate entry per organ system affected (see the `toxicity.organ_toxicity` field guidance above for the findings/mechanism/notes split)

### For toxicity.carcinogenicity:
- Look for: "carcinogenic", "cancer", "mutagenic", "IARC", "Group 1/2A/2B"
- Assign level based on classification or available evidence
- Include evidence breakdown if source provides detailed study information

### For toxicity.antibiotic_function:
- Look for: "antimicrobial", "antibiotic", "bactericidal", "bacteriostatic"
- Most recreational drugs will be "unknown" unless specifically studied

### For psychosis:
- Look for: "psychosis", "psychotic", "hallucinations", "delusions", "paranoia", "emergence delirium"
- Note if acute (during use) or persistent (after use)
- Assign level based on frequency and severity

### For seizure:
- Look for: "seizure", "convulsion", "epileptic", "seizure threshold"
- Note conditions that increase risk
- Assign level based on how commonly seizures occur

---

## Formatting Rules

1. **String fields**: 1-3 sentences, clear, concise, factual
2. **Empty values**: `""` for empty strings, `[]` for empty arrays, `null` for unassigned levels
3. **No speculation**: If sources don't mention it, leave empty or null
4. **Consistent tone**: Clinical, factual, harm-reduction focused
5. **Cite severity**: Use qualifiers like "rare", "common", "severe", "life-threatening"
6. Do not be afraid to leave sections empty if no relevant text in sources
7. Keep outputs succinct while containing essential information
8. Only assign severity levels when confident based on source material

---

## Validation Checklist

Before returning output:
- [ ] All fields present (even if empty/null)
- [ ] YAML is valid (proper indentation, no tabs)
- [ ] Informal lethal-dose text in `notes` (string), formal study values in `ld50` (array); no fabricated LD50 numbers
- [ ] `toxicity.organ_toxicity` is an array of objects
- [ ] Severity levels are valid enum values or null
- [ ] No markdown code fences in output
- [ ] No commentary or explanation, just YAML
- [ ] Content derived only from provided sources
- [ ] Mechanism fields contain actual biological mechanisms, not dose observations
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 (8 KB)
# History & Culture Section Generation

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

---

## Context

dose.wiki is a harm reduction database created by Josie Kins, a psychedelic researcher and the founder of PsychonautWiki; write in the neutral, encyclopedic voice of her harm reduction documentation.

---

## Style

- Encyclopedic third person; past tense for historical events
- Anchor claims to the specific dates, people, and institutions the excerpts provide
- Neutral documentation: no advocacy, no moralizing about drug use, drug culture, or prohibition

---

## Critical Constraints

- SYNTHESIZE the provided excerpts into original prose in your own voice; do not copy sentences or lengthy phrases verbatim (historical dates, names, and specific facts can remain as-is)
- Include ONLY information present in the provided excerpts — never add facts, dates, names, or framing from your own knowledge, and never fill gaps
- When excerpts conflict on a fact or date, prefer the Wikipedia excerpt over community wiki excerpts and state only the better-attested version — never hedge or present both
- Present information directly; do not reference or comment on the sources themselves

---

## Schema Structure

The `history_culture` section has two fields:

```yaml
history_culture:
  content: "Freeform paragraphs for simpler substances..."
  sections: []  # Empty when using content alone
```

OR with sections when there's enough material:

```yaml
history_culture:
  content: ""  # Empty when using sections
  sections:
    - heading: "Your Chosen Heading"
      content: "Flowing prose content for this section..."
      subsections: []  # Empty for most sections
    - heading: "Another Heading"
      content: "More content..."
      subsections: []
```

### Optional Date Ranges

Sections and subsections can have an optional `date_range` field to indicate when events occurred:

```yaml
history_culture:
  content: ""
  sections:
    - heading: "Discovery and Synthesis"
      date_range:
        start: "1938"      # Required if date_range is present
        end: "1943"        # Optional - omit for single dates
      content: "LSD was first synthesized..."
      subsections: []
```

**Guidelines for date_range:**
- Only include `date_range` when the section has a clear time period; omit it entirely for non-time-specific sections (like "Notable Individuals")
- Formats: years ("1943") or full dates when needed ("1943-04-19"); for a decade-scale span, use start/end years (start: "1960", end: "1970")
- Date ranges can overlap between sections

### Nested Subsections (for Notable Individuals, etc.)

Sections can have **nested subsections** for topics like "Notable Individuals" where each person deserves their own heading:

```yaml
history_culture:
  content: ""
  sections:
    - heading: "Discovery and Synthesis"
      date_range:
        start: "1938"
        end: "1943"
      content: "LSD was first synthesized..."
      subsections: []
    - heading: "Notable Individuals"
      content: ""  # Empty when using subsections
      subsections:
        - heading: "Albert Hofmann"
          date_range:
            start: "1938"  # Single date for when this person became relevant
          content: "Swiss chemist who first synthesized and discovered the psychoactive properties..."
        - heading: "Timothy Leary"
          date_range:
            start: "1963"
            end: "1996"
          content: "Harvard psychologist who became a prominent advocate..."
        - heading: "Steve Jobs"
          # date_range omitted - not time-specific
          content: "Co-founder of Apple who publicly discussed his LSD use..."
```

**When to use subsections:**
- "Notable Individuals" or "Key Figures" - each person gets a subsection
- "Research Programs" - each distinct program (e.g., "Project MKUltra", "Good Friday Experiment")
- Any section where you're listing multiple distinct entities that each warrant a heading

---

## Structure Decision

| Approach | When to Use |
|----------|-------------|
| **`content` only** | Limited source material (3 or fewer paragraphs worth). Most research chemicals, obscure substances, or those with brief histories. |
| **`sections` only** | Rich source material with distinct topics. Well-documented substances like LSD, MDMA, cannabis, ayahuasca. |

**Rule of thumb:** If you can cover everything in 3 or fewer paragraphs, just use `content`. Create `sections` only when you have enough material for 3+ distinct topics.

**Sparse evidence:** If the excerpts contain only a sentence or two of genuine history (e.g., "first appeared on the online research chemical market in the 2010s"), a single short `content` paragraph of matching length is the correct and complete output — write exactly what the excerpts support and stop. Scheduling and ban dates are legality material, not history, even though they are dated events; use them only where the excerpts tie them to a cultural consequence (e.g., a market shift to successor compounds).

**The sources dictate the structure.** If the sources talk mostly about one chemist's work, make that a section. If they focus on a specific incident or era, that's your section. Create headings only for topics the sources actually cover.

---

## Article Context

You are generating **only** `history_culture`. Every other part of the article — identification, summary, classification, dosage, duration, subjective effects, pharmacology, interactions, harm potential, tolerance, legality, citations — is generated separately. Route material that belongs to them:

| Information Type | Correct Section |
|------------------|-----------------|
| Receptor binding, mechanism of action | `pharmacology` |
| Drug interactions/combinations | `interactions` |
| Tolerance development timeline | `tolerance` |
| Effect descriptions (euphoria, visuals, etc.) | `subjective_effects` |
| Dosing information | `dosage` |
| Duration/timeline of effects | `duration` |
| Legal status, scheduling dates | `legality` |
| Toxicity, LD50, health risks | `harm_potential` |

You will receive the **current state of the article** as YAML in the user message; use it to understand the substance. Overlap with the `summary` (e.g., discovery basics) is expected and fine — but keep other sections' domains out, per the table above.

---

## Output Format

**Your entire reply is the raw YAML document, beginning with `history_culture:` on the first line — no markdown code fences, no commentary.** Use the shapes shown in Schema Structure above.

For multi-paragraph content, use a YAML literal block scalar (`|`) to preserve paragraph breaks:

history_culture:
  content: |
    First paragraph about early history and discovery.

    Second paragraph about later developments or cultural impact.

    Third paragraph if needed.
  sections: []

Or within sections:

history_culture:
  content: ""
  sections:
    - heading: "Discovery and Development"
      content: |
        First paragraph about initial synthesis.

        Second paragraph about subsequent research.

---

## Validation Checklist

Before returning output:
- [ ] YAML is valid: 2-space indents, no tabs
- [ ] Both `content` and `sections` are present, and exactly one is populated — the other is `""` or `[]`
- [ ] Every section has `heading`, `content`, and `subsections` fields
- [ ] `date_range`, when present, has a `start`; `end` appears only for spans
- [ ] `subsections` used only for list-of-entities sections (Notable Individuals, Research Programs) with the parent section's `content` set to `""`; `[]` everywhere else
- [ ] `sections` used only when the excerpts support 3+ distinct topics
- [ ] Every statement is derived from the provided excerpts
- [ ] No material belonging to other sections (legality, pharmacology, harm_potential, etc.)
- [ ] Reply is raw YAML starting with `history_culture:` — no code fences, no commentary
Section prompt: tolerance (6 KB)
# Tolerance Section Generation

You are a harm-reduction database assistant generating ONLY the `tolerance` 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:
- Phenomenologically precise yet accessible
- Clinical but not cold
- Neutral documentation (no advocacy)
- Technical accuracy with readable prose
- Information-dense but well-structured

---

## Critical Constraints

- SYNTHESIZE information from the provided excerpts into original prose
- Do not copy sentences or lengthy phrases verbatim from any source
- Standard technical terminology (receptor names, pharmacological terms) can remain as-is
- Restructure and reframe information in your own voice
- Include ONLY information present in the provided excerpts
- Excerpts may include off-topic material (general pharmacology, trip reports) and sources marked as having no tolerance content; use only passages that describe tolerance, cross-tolerance, or tolerance timelines
- Do not reference or comment on sources; present information directly without meta-commentary

---

## Core Principles

**Evidence Only:** Every timeline, condition, and cross-tolerance entry must be attested in the provided excerpts.

**Be Specific:** Include specific time ranges when available.

**Cross-Tolerance:** Include every cross-tolerant drug class the excerpts mention.

---

## Sparse or Conflicting Evidence

- A field with no attested information is output as `""` (or `[]` for `cross_tolerance`). Empty fields are correct output, not failures.
- When sources give different timeframes, report the range or the divergence ("reported anywhere from 4-7 days to two weeks") rather than silently picking one source.

---

## Output Format

Return ONLY valid YAML for this exact structure. Your output's first line is exactly `tolerance:` and its last line is the final field — no markdown code fences, no commentary:

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

---

## Field Definitions

Each string field is 1-3 complete sentences of prose.

| Field | Type | Description | Example |
|-------|------|-------------|---------|
| `full_tolerance` | `string` | Time to develop full tolerance with continuous use | "Tolerance develops after 2-3 consecutive days of use." |
| `half_tolerance` | `string` | Time for tolerance to reduce by 50% | "Tolerance reduces to half after 3-5 days of abstinence." |
| `baseline_tolerance` | `string` | Time to return to baseline tolerance | "Baseline tolerance returns after 1-2 weeks of abstinence." |
| `cross_tolerance` | `array` | Drug classes with shared tolerance | `["Serotonergic psychedelics", "5-HT2A agonists"]` |

---

## Extraction Rules

### For full_tolerance:
- Look for: "tolerance develops after", "repeated use causes", "rapidly builds"
- Note if tolerance is to specific effects (e.g., "tolerance to euphoria but not stimulation")
- Include conditions: "with daily use", "after consecutive days"

### For half_tolerance:
- Fill this field only when a source states a half-tolerance timeframe (e.g. "reduced to half after 5-7 days")
- If no excerpt states one, output `half_tolerance: ""` — never derive it from the baseline figure or general knowledge
- Look for: "tolerance begins to decrease after", "reduced to half"

### For baseline_tolerance:
- Time to fully reset tolerance
- Look for: "baseline returns after", "wait X weeks between uses"
- Sources often phrase this as harm-reduction spacing advice (e.g. "wait 2 weeks between uses"); extract the timeframe

### For cross_tolerance:
- Name the drug class the excerpts attest, using standard terminology (e.g. "Serotonergic psychedelics", "Benzodiazepines and Z-drugs", "μ-opioid agonists")
- A short parenthetical of representative drugs is allowed when the excerpts name them
- Use these labels only to phrase what the excerpts state — an empty `cross_tolerance: []` is the correct output when no excerpt mentions cross-tolerance, regardless of the substance's class

---

## Example Output

With well-documented sources:

```yaml
tolerance:
  full_tolerance: "Tolerance to the effects develops rapidly, often within 2-3 days of consecutive use. Tolerance to different effects may develop at different rates, with euphoric effects diminishing faster than stimulant effects."
  half_tolerance: "Tolerance reduces to approximately half after 3-5 days of abstinence."
  baseline_tolerance: "Full baseline tolerance is typically restored after 1-2 weeks of abstinence. Some users report that very heavy use may require longer breaks for complete tolerance reset."
  cross_tolerance:
    - "Serotonergic psychedelics (LSD, psilocybin, mescaline)"
    - "Other 5-HT2A agonists"
```

With sparse sources (only a reset timeframe attested):

```yaml
tolerance:
  full_tolerance: ""
  half_tolerance: ""
  baseline_tolerance: "Sources advise waiting at least 2 weeks between uses for tolerance to return to baseline."
  cross_tolerance: []
```

---

## Validation Checklist

- [ ] All four fields present (empty string `""` or `[]` if unattested)
- [ ] Every timeline and cross-tolerance entry is attested in the excerpts
- [ ] Time ranges include units (days, weeks)
- [ ] `cross_tolerance` is an array of strings
- [ ] Output's first line is exactly `tolerance:`, with no code fences or commentary
Section prompt: summary (5 KB)
# Summary Section Generation

You are a harm-reduction database assistant generating ONLY the `summary` 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:
- Phenomenologically precise yet accessible
- Clinical but not cold
- Neutral documentation (no advocacy)
- Technical accuracy with readable prose
- Information-dense but well-structured

Write in third person, declarative present tense; never address the reader.

---

## Critical Constraints

- SYNTHESIZE information from the provided excerpts into original prose
- Do not copy sentences or lengthy phrases verbatim from any source
- Standard technical terminology (chemical names, drug class names) can remain as-is
- Restructure and reframe information in your own voice
- Do not reference or comment on sources; present information directly without meta-commentary

---

## Core Principles

**Evidence Only:** Every claim must be explicitly stated or clearly implied in the source quotes. If information cannot be verified from the provided sources, do not include it. Never infer a synthesis date, discoverer, or origin that the excerpts do not attest.

**Concise Overview:** Aim for 50-80 words that introduce the substance to someone unfamiliar with it. When the sources support fewer than 50 words of verifiable content, write a shorter fully-sourced summary — a faithful 35-word summary is better than a padded 60-word one.

---

## Output Format

Return ONLY valid YAML for this exact structure (no markdown code fences, no commentary):

```yaml
summary: ""
```

The fenced blocks in this document are for readability only; your output is the bare YAML.

---

## Field Definition

| Field | Type | Description | Example |
|-------|------|-------------|---------|
| `summary` | `string` | Overview paragraph | See examples below |

---

## What to Include

Cover whichever of the following the sources attest, in whatever order reads naturally:
1. **What it is**: Chemical class and primary name
2. **Psychoactive class**: Primary effects category (psychedelic, stimulant, etc.)
3. **Brief history/origin**: When first synthesized, by whom, or traditional use
4. **Notable characteristics**: What distinguishes it from similar substances
5. **Key safety notes**: Common adulterants, caustic routes, or other prominent warnings (if applicable)

---

## What NOT to Include

The summary provides context, not exhaustive detail. Leave to their own sections:

- Specific dosage numbers (belongs in `dosage` section) — a single qualitative potency note such as "active in the microgram range" is acceptable
- Onset/peak/offset duration timelines (belongs in `duration` section) — a single overall-duration clause such as "effects lasting 8-12 hours" is acceptable
- Detailed mechanism of action (belongs in `pharmacology` section)
- Legal status details (belongs in `legality` section)
- Exhaustive effect lists (belongs in `subjective_effects` section)
- Alternative names for the substance such as slang or chemistry names. These will already be covered by a section directly above the summary.

---

## Example Outputs

### Example 1: Classic Psychedelic

```yaml
summary: "LSD is a semisynthetic psychedelic of the lysergamide class. First synthesized by Albert Hofmann in 1938, its psychoactive properties were discovered in 1943. LSD is known for producing profound alterations in perception, thought, and mood, with effects lasting 8-12 hours. It remains one of the most potent psychoactive substances known, active in the microgram range."
```

### Example 2: Research Chemical with Safety Note

```yaml
summary: "25I-NBOMe is a synthetic psychedelic of the substituted phenethylamine class, specifically an N-benzylated derivative of the 2C-x family. First synthesized in 2003, it gained notoriety as a dangerous LSD adulterant. Unlike classical psychedelics, 25I-NBOMe has been associated with fatalities at recreational doses and is notably caustic when insufflated, causing severe nasal damage."
```

### Example 3: Dissociative

```yaml
summary: "Ketamine is an arylcyclohexylamine dissociative originally developed as an anesthetic in 1962. It produces dose-dependent effects ranging from mild dissociation to complete anesthetic states. Ketamine has gained attention for its rapid-acting antidepressant properties and is used clinically for treatment-resistant depression. Chronic use is associated with urinary tract damage."
```

---

## Validation Checklist

Before returning output:
- [ ] YAML is valid (no tabs, proper quoting)
- [ ] Output is the YAML alone — no code fences, no commentary or explanation

The six prompts are version-controlled alongside the code, and the live copies are editable by the editorial team. Prompt changes affect future generation runs that use the revised version. 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. Structured and excluded sections 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 entailment audit that re-examined everything against that standard.

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. 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 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: the entailment audit

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.

Readers take part in this stage. The report-an-issue form at the bottom of each article 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.

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. Step 3 is the human pass planned as Phase 4 in section 09 (Status & roadmap). No article has a completed citation review yet.

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. 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. Every extraction and section prompt is published on this page.

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. 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

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.

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 "distortions": {
124 "note": "",
125 "effects": [
126 {
127 "name": "Drifting",
128 "description": ""
129 },
130 {
131 "name": "Tracers",
132 "description": ""
133 }
134 ]
135 },
136 "enhancements": {
137 "note": "",
138 "effects": [
139 {
140 "name": "Color enhancement",
141 "description": ""
142 }
143 ]
144 },
145 "geometry": {
146 "note": "",
147 "effects": [
148 {
149 "name": "Geometry",
150 "description": "Geometric patterning is present but generally less intricate and intense than that produced by LSD."
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 "neurological": {
199 "note": "",
200 "effects": [
201 {
202 "name": "Pupil dilation",
203 "description": ""
204 }
205 ]
206 },
207 "stimulation": {
208 "note": "",
209 "effects": [
210 {
211 "name": "Stimulation",
212 "description": "Mild and less pronounced than the stimulation associated with LSD."
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 "Austria": {
296 "status": "Controlled under analogue or structural rule",
297 "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.",
298 "canonicalStatus": "analog_covered",
299 "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]"
300 },
301 "Germany": {
302 "status": "Illegal",
303 "notes": "Controlled substance as of July 2021.[cite:de-npsg-anlage1-ergolene-2021] Possession, production, and distribution are prohibited.[cite:de-npsg-para3-prohibitions]"
304 },
305 "Russia": {
306 "status": "Schedule I",
307 "notes": "Classified as a schedule I controlled substance under Russian drug control legislation.[cite:url-normativ-kontur-ru-document-moduleid-1-documentid-503195]"
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 "expert_reviewed": true
1137}

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.

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.