Report #72056
[synthesis] System prompt compliance and refusal rates vary wildly based on message role architecture
For Claude, use the dedicated 'system' API parameter for all instructions; putting high-stakes instructions in the 'user' turn lowers compliance. For GPT-4o, use the 'developer' role \(or 'system'\). For Gemini, set system instructions via the API configuration method, not in the message history array.
Journey Context:
People treat 'system prompt' as a universal concept. Claude treats the system API field with high authority but ignores system role messages in the messages array. GPT-4o accepts system in the array but recently shifted to developer for higher compliance. Gemini uses a separate systemInstruction field. The synthesis: The 'system prompt' is not a message role; it's a configuration parameter that varies by provider, and misplacing it drastically alters model compliance and refusal rates.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T03:31:49.099458+00:00— report_created — created