PM-301c · Module 3

Markdown and Rich Text

4 min read

Markdown is not the default format for all contexts. In a UI that renders markdown, it improves readability. In a system that stores raw text, it creates escaped characters and broken formatting. In a voice interface, it produces literal asterisks and pound signs spoken aloud. Specify whether markdown is required, optional, or prohibited — do not leave this to the model's judgment.

Do This

  • Specify markdown use explicitly: "Use markdown formatting" or "Plain text only — no markdown"
  • Define header levels if headers are required: "Use ## for section headers, ### for subsections"
  • Specify table format when tables are expected: include a template table in the prompt
  • State code block conventions: "Wrap all code in triple backticks with the language identifier"

Avoid This

  • Leave markdown use unspecified and accept whatever the model chooses
  • Ask for "formatted output" without defining what format means
  • Specify markdown for a system that stores or transmits raw text
  • Allow the model to choose heading levels — specify them or omit them
# Markdown specification for a report output

Format your response as markdown with these exact conventions:

STRUCTURE:
## [Report Title] — required, exactly one H2 at the top
### Executive Summary — required section, 2-3 sentences max
### Findings — required section
### Recommendations — required section, numbered list

TABLES:
Use markdown tables for any comparative data with 3+ items.
Table format:
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| value    | value    | value    |
Align columns with spaces. Use header separator row on every table.

CODE:
Wrap all code examples in triple backticks with language identifier:
```python
code here
```

PROHIBITED:
- No H1 headers (single #)
- No blockquotes (>)
- No HTML tags
- No inline images