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

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

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

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

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