System Prompt vs User Prompt

Put stable behavior and output rules in the reusable instruction layer; put task-specific facts and the request in the user message. In a chat interface without a separate system field, label those sections explicitly, but do not assume headings create API-level instruction priority.

Published by HiddenPrompts · Updated

1 min read

Separate policy from work

The system prompt defines recurring behavior. The user prompt supplies the current job. Mixing both makes templates harder to reuse and increases the chance that temporary context changes permanent rules.

System layer

Use it for role, audience, safety limits, source policy, tools, and required response conventions. Keep it concise enough to audit.

User layer

Use it for the objective, input data, variables, examples, deadlines, and the exact deliverable. Delimit long source material clearly.

Test the boundary

Change only the user task across several cases. If the assistant’s stable behavior drifts, move the relevant rule to the system layer or enforce it in code.

Worked example

Authored teaching example, not a recorded model response.

Stable rules:
Write concise status updates. Separate confirmed facts from open questions.

Current task:
Draft an update for a delayed launch. Confirmed: the payment test failed. Unknown: recovery time.

Required output:
Status, impact, next step. Do not give a guessed completion date.

How to check the result

Change the launch facts without changing the reusable rules. Confirm that the template still works. Remove the impact detail and check whether the answer marks it as unknown.

Sources and further reading

Learn the method

Testing Method · Contact

Prompt Structure Checker