Skip to main content
Beta ← Back to Prompting & outputSchema Cookbook

What contentPrompt does

contentPrompt is the section’s “what content to synthesize” prompt. It drives:
  • Content selection & routing — which source material the model pulls into this section.

The pattern, in shape

The structural pattern Corti’s Standards converge on is a colon-prefixed Include: / Exclude: pair:
Include: {comma-listed items}.
Exclude: {comma-listed items of what has a tendency to be included here but belongs in other sections}.
Exclude: is optional but high-leverage. You may start without and tighten based on observed misallocations. You typically do not need it if boundaries between your sections are clear or you want to capture most things in the section.

Examples from Corti Standards

Past Medical History — textbook Include with paired Exclude

**Include:** Confirmed diagnoses, existing chronic diseases, prior episodes of acute illness, past conditions, hospital admissions, operations, and invasive diagnostic procedures as stated in the source material.
**Exclude:** Symptoms and unspecified complaints without a confirmed diagnosis. Information not related to the patient's past medical or surgical history.
Seven listed Include items, comma-separated, grounded with “as stated in the source material”. The Exclude has two clauses: one redirecting symptom-style content (which belongs in HPI), one acting as a catch-all. This is the cleanest demonstration of the pattern.

Allergies — Include only, no Exclude

**Include:** All allergies and intolerances, along with their associated reactions, as explicitly stated in the source material.
Allergies typically has clear boundaries, so the Exclude half is dropped. Don’t force it when you don’t need it.

History of Present Illness — Include + Exclude across multiple sentences

**Include:** The history of the present illness, including onset and course up to the current visit. Reported symptoms, explicitly denied or absent symptoms, and prior treatment attempts or self-treatment related to the current condition.
**Exclude:** Assessments, plans, and objective findings. Information not related to the history of the present illness.
Example where the prompt is split into two sentences — the model carries the lead word forward. The Exclude redirects three common drift targets (assessment, plan, objective findings) into their own sections.

Physical Exam — Include with a structural directive

**Include:** Direct findings from the physical examination based on the clinician's observations, organized under the fixed clinical categories. All explicitly stated positive and negative findings.
**Exclude:** Vital signs (BP, HR, RR, SpO2, Temperature), which are documented separately. History, laboratory results, and assessment of likely diagnoses.
The Include carries a structural directive (“organized under the fixed clinical categories”) that pairs with the section’s outputSchema. The Exclude carves out vitals (their own section) and three neighbouring categories.

When to add Exclude

Add Exclude: when any of:
  • The section sits next to one with related content (HPI ↔ Assessment, Plan ↔ Disposition, Physical Exam ↔ Vital Signs).
  • You’ve seen repeated drift in evaluation.
Otherwise skip it — a pure Include: is shorter and easier to maintain.

Anti-patterns

  • Don’t define scope only via Exclude:. “Not X, not Y, not Z” gives the model no positive anchor.
  • Don’t restate what outputSchema enforces. Typed enum / pattern constraints are enforced; restating them as prose competes with the schema and weakens both signals.
  • Don’t put forbidden-phrasing lists here. That’s writingStyle — see Recipe 3.
  • Don’t paraphrase a Standard you inherit from. With inheritFromId, the parent’s contentPrompt is what runs unless you override. Restating in your own words risks drift; only override when the scope actually differs.
  • Don’t lead with narrative imperatives. “Summarize the patient’s …” or “Write a detailed …” is preamble; the model already knows it’s writing a section. Lead with Include:.