DermRx.

This week

Weekly LLM-curated digest of pipeline moves, readouts, guideline changes, and the prompts that generate them.

Generate a weekly brief

Copy into Gemini / Perplexity / Claude with a date range, then paste the markdown below.

You are a dermatologic-therapeutics research analyst. Produce a
concise weekly brief for {YYYY-MM-DD} through {YYYY-MM-DD}.

Scope: psoriasis, atopic dermatitis, alopecia areata, vitiligo,
hidradenitis suppurativa, and acne vulgaris.

Include only items with a verifiable primary source:
  - FDA approvals, label expansions, or safety communications
    (fda.gov, dailymed.nlm.nih.gov)
  - EMA, PMDA, or Health Canada actions (their regulator sites)
  - Clinical trial readouts (Phase 2 or later) with a
    ClinicalTrials.gov record or peer-reviewed publication
  - Guideline updates from AAD, EADV, BAD, GRAPPA, ACR
  - Drug Safety Communications / MedWatch alerts relevant to derm

Exclude:
  - Press releases without primary data
  - Paywalled trade publications you cannot verify
  - Non-dermatologic indications unless they change the safety profile
    of a drug already used in derm

Output markdown. Group into three sections:
**Approvals**, **Trial readouts**, **Guideline / safety updates**.

For each item, 2–4 lines:
  **Drug (brand)** — event · date
  Source: <URL>
  Why it matters: <one sentence>.

If you can't find a primary source for a claim, omit the claim.

Paste the weekly brief

Add drugs, MOA diagrams, guidelines

Copy a prompt into your LLM, then paste the output into the referenced code file and commit. Drugs and MOA diagrams live in code so every addition is reviewable.

Add a drug to the table

Produces a SeedDrug object for lib/seed-data.ts

You are a dermatologic-pharmacology research analyst. Produce a
single TypeScript object literal matching the SeedDrug type below for the
drug: {DRUG_NAME}.

type SeedDrug = {
  name: string;             // lowercase INN (e.g. "dupilumab")
  brand?: string;           // e.g. "Dupixent"
  modality: string;         // "mAb (human IgG4)" | "small molecule (oral)"
                            // | "small molecule (topical)" | "peptide" | ...
  moa: string;              // ONE sentence starting with an action verb
  targets: string[];        // HGNC symbols (e.g. IL4R, IL17A, JAK1, TYK2, AHR)
  approved: {
    indication: string;
    regulator: "FDA" | "EMA" | "PMDA" | "HC";
    year: number;
  }[];
  inTrial: string[];        // derm indications currently in Phase 2+
  bbw?: string[];           // black-box warnings (short phrases)
  pregnancy?: string;       // one sentence
  storage: string;          // "refrigerated 2–8 °C" | "room temperature"
  monitoring: string[];     // labs / screenings
  sourceUrl: string;        // DailyMed or FDA label URL
  lastVerified: string;     // today, YYYY-MM-DD
};

Rules:
- Verify every approval against FDA drugs@FDA, DailyMed, EMA EPAR, PMDA,
  or Health Canada DPD. Put that URL in sourceUrl.
- Use lowercase INN for `name`.
- Follow the modality convention of existing seed entries (see
  lib/seed-data.ts in the repo).
- Omit optional fields you cannot verify from a primary source.
- Only list derm-relevant approvals and trials.

Output ONLY the object literal. No imports, no commentary, no code fences.
Example of the shape you should produce:

  {
    name: "dupilumab",
    brand: "Dupixent",
    modality: "mAb (human IgG4)",
    moa: "Blocks IL-4Rα — dual IL-4 and IL-13 signaling",
    targets: ["IL4R"],
    approved: [
      { indication: "atopic dermatitis", regulator: "FDA", year: 2017 },
    ],
    inTrial: ["chronic spontaneous urticaria"],
    storage: "refrigerated 2–8 °C",
    monitoring: ["baseline eye exam if conjunctivitis history"],
    sourceUrl: "https://dailymed.nlm.nih.gov/dailymed/...",
    lastVerified: "2026-04-18",
  }

Add a mechanism-of-action diagram

Produces a MoaDiagram entry for lib/moa-data.ts

Produce a single TypeScript key-value entry for the `moaDiagrams` record
in lib/moa-data.ts, matching the MoaDiagram shape for: {DRUG_NAME}. Use
7–11 nodes distributed across the cell compartments below.

type MoaCompartment =
  | "extracellular"  // above the cell
  | "membrane"       // on the plasma membrane
  | "cytoplasm"      // inside the cell, outside the nucleus
  | "nucleus"        // inside the nucleus
  | "outcome";       // below the cell — cellular effects + clinical phenotype

type MoaNodeKind =
  | "drug" | "target" | "signaling" | "effector" | "cellular" | "phenotype";

type MoaEdgeType =
  | "binds" | "inhibits" | "blocks" | "activates"
  | "drives" | "promotes" | "reduces" | "causes";

type MoaNode = {
  id: string;                 // short camelCase
  label: string;              // use \n for line breaks; keep ~30 chars/line
  kind: MoaNodeKind;
  layer: number;              // 0 (drug) → 6 (phenotype); used for ordering
  compartment?: MoaCompartment;  // ALWAYS set explicitly (don't rely on inference)
};

type MoaEdge = {
  source: string;
  target: string;
  type: MoaEdgeType;
  negated?: boolean;          // true if the drug blocks / reverses this edge
};

type MoaDiagram = {
  drug: string;               // must match a SeedDrug.name
  sourceRef?: string;         // "FDA label + one mechanistic review"
  nodes: MoaNode[];
  edges: MoaEdge[];
};

Compartment rules (always set explicitly):
- mAb or peptide drug            → compartment: "extracellular"
- Small-molecule oral/topical    → compartment: "cytoplasm"
                                   (unless nuclear-acting, then "nucleus")
- Cytokine target (IL-17A, IL-23, TNF-α, IL-13, IL-31…) → "extracellular"
- Receptor target (IL-4Rα, IL-17RA, TNFR, IL-23R…)     → "membrane"
- Kinase target (JAK1, JAK2, TYK2, PDE4, …)            → "cytoplasm"
- Nuclear receptor (AhR, PPAR)                         → "nucleus"
- Transcription factor / STAT / NF-κB (pre-translocation) → "cytoplasm"
- Output cytokines released by the cell                → "extracellular"
- Cellular effect + clinical phenotype                 → "outcome"

Mark edges that the drug blocks/reverses with "negated": true.
Cite the FDA label + one mechanistic review in sourceRef.

Output ONLY the single key-value entry, e.g.:

  upadacitinib: {
    drug: "upadacitinib",
    sourceRef: "Rinvoq label (FDA 2024); Schwartz Nat Rev Rheumatol 2017",
    nodes: [
      { id: "drug", label: "upadacitinib\n(JAK1-selective)", kind: "drug", layer: 0, compartment: "cytoplasm" },
      ...
    ],
    edges: [
      { source: "drug", target: "JAK1", type: "inhibits" },
      ...
    ],
  }

Save a guideline reference

Produces markdown to drop into a guideline roster

Give the URL and metadata for the current guideline for {CONDITION}
published by {ORGANIZATION} (AAD, EADV, BAD, GRAPPA, ACR, AAAAI, NCCN,
Cochrane Skin).

Verify the link resolves to the organization's own site or a DOI. Do not
cite news articles, press releases, or secondary summaries.

Output markdown in this exact shape (no extra commentary):

  **<Title>** — <organization>, <year>
  URL: <direct PDF or HTML link>
  Scope: <one sentence describing what the guideline covers>
  Replaces: <prior version if applicable, otherwise "—">
  Notes: <one sentence on any major changes from the prior version>