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