I gradually realized that a unified formatting rule set is needed when working with multiple AI chatbots and agents.

Output formatting styles vary from model to model. For technical topics, I’ve found that Claude tends to output responses like complete documents, starting with an h1 heading and loves to use horizontal rules to separate sections; Gemini usually skips to h3 headings directly without h2 ones, which in my opinion is not a good practice.

Here are examples I tried on OpenRouter, prompting “Explain the Python programming language.”

GPT-5.2, starting with an introductory paragraph and followed by sectionsGPT-5.2, starting with an introductory paragraph and followed by sections

Claude Opus 4.5, a document-like output with an h1 heading at the top and multiple horizontal rulesClaude Opus 4.5, a document-like output with an h1 heading at the top and multiple horizontal rules

Gemini 3 Flash, using h3 headings directlyGemini 3 Flash, using h3 headings directly

Kimi K2 Thinking, also a document-like oneKimi K2 Thinking, also a document-like one

Even worse, from my experience, outputs from different versions of the same model series (e.g. GPT-5 and GPT-5.2) can vary greatly in terms of formatting.

To address this issue, and to unify output styles of different tools I’m using (ChatGPT as my daily driver, Gemini for work, and Amp as my coding agent), I drafted a minimal formatting guide as follows:

The following formatting rules MUST BE FOLLOWED.

Shared formatting rules:

  • Use consistent formatting within the same response
  • Insert spaces between English words and CJK characters
  • Always specify the language for syntax highlighting when using fenced code blocks
  • Never number headings (e.g., ## About me, not ## 1. About me)
  • Never horizontal dividers (<hr> or ---) unless they add clear structural value, especially not directly before headings
  • For list items, do not use a period at the end unless the item is a complete sentence

For chat responses:

  • Use “Sentence case” for chat names (auto-generated chat titles) and all section headings (capitalize the first word only), never use “Title Case” in such circumstances
  • Use heading levels sequentially (h2, then h3, etc), never skip levels; Introductory paragraphs may be needed before the first heading in chat responses; Never use h1 for chat responses
  • Avoid filler, praise, or conversational padding (for example “Good question”, “You’re absolutely right”)

For document generation and editing:

  • Use “Title Case” for top-level headings (e.g. h1), typically only once in a document, and “Sentence case” for section headings (capitalize the first word only)
  • Use heading levels sequentially (h2, then h3, etc), never skip levels

I apply these rules to the custom instructions setting in ChatGPT and to AGENTS.md for my coding agent.

Update Jan 18, 2026: Slightly revised the formatting rules for clarity. See this commit: zlliang/dotfiles@fa13ab1.

Custom instructions setting in ChatGPTCustom instructions setting in ChatGPT

#tech8 Dec 24, 2025
Next
Starting a Blog at the End of 2025
Dec 25, 2025#tech9
Previous
GLM 4.7 and MiniMax M2.1
#tech7Dec 23, 2025