Markdown Output
Delivery method
Determine where the content is going before formatting or posting it:
- GitHub: use
gh for issues, PRs, reviews, and comments.
- GitLab: use
glab for issues, MRs, discussions, pipelines, and comments. Use the gitlab-mr-review skill when comments must remain pending.
- Local file: use the file tools and give the user the path.
- Manual paste: copy to the clipboard only when the user needs to paste the content themselves.
For clipboard delivery, use a quoted heredoc so Markdown is not expanded by the shell:
# macOS
cat << 'EOF' | pbcopy
content here
EOF
# Linux
cat << 'EOF' | xclip -selection clipboard
content here
EOF
Do not post, submit, or publish review content when the user asked only for a draft.
Code blocks
Always specify a language hint such as ts, tsx, ruby, sql, json, or bash.
JSON blocks must contain valid JSON with quoted keys and string values:
{"my_policy": "enabled", "count": 42}
Collapsible sections
GitHub and GitLab require blank lines around content inside <details> blocks:
<details>
<summary>Click to expand</summary>
Content inside the collapsible section.
</details>
Tables
Leave a blank line before and after a table:
Some text above.
| Column A | Column B |
|----------|----------|
| Value 1 | Value 2 |
Some text below.
Alerts
GitHub supports alert callouts using blockquote syntax:
> [!NOTE]
> Useful information that users should know.
Do not assume platform-specific alert rendering on GitLab. Use a normal blockquote or bold label when portability matters.