Awesome-omni-skill gemini-system-prompt-best-practices
Applies official Google best practices when writing or editing Gemini system prompts (systemInstruction). Use when creating or changing system prompts for Gemini (e.g. transcription, Dictate Prompt, Prompt & Read), when reviewing prompt text in AppConstants or SpeechService, or when the user asks about Gemini prompt design.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/gemini-system-prompt-best-practices" ~/.claude/skills/diegosouzapw-awesome-omni-skill-gemini-system-prompt-best-practices && rm -rf "$T"
skills/ai-agents/gemini-system-prompt-best-practices/SKILL.mdGemini System Prompt Best Practices
When writing or editing system prompts for Gemini (especially 2.0 Flash), apply these practices. They are derived from official Google documentation so model behavior stays predictable and output quality is high.
When to Use This Skill
- Adding or changing
/ system prompt text (e.g. insystemInstruction
,AppConstants
, or settings).SpeechService - Reviewing or refactoring existing system prompts (transcription, Dictate Prompt, Prompt & Read).
- User asks how to improve a Gemini system prompt or about best practices.
Structure of a Good System Prompt (Order Matters)
Build the system prompt in this order:
-
Persona / role
Who the model is (e.g. "You are a professional transcription service" or "You are a text editing assistant"). Include output language or style if relevant. -
Task and rules
What to do and how. Prefer clear, ordered rules. Separate:- One-time or setup rules (e.g. "The first input is selected text, the second is the voice instruction").
- Repeated rules (e.g. "Always return only the modified text").
-
Guardrails
What the model must not do. Use explicit "Do NOT …" and, if helpful, if/then examples. Strong wording (e.g. "unmistakably", "CRITICAL", "ONLY") helps. -
Output format
One clear rule at the end: return only the raw result, no meta-commentary, no preamble/outro, no markdown unless required.
Prompt Length (Best Practice)
- User-facing prompts (e.g. what the user types or says): Google suggests staying under ~4,000 characters for best behavior and clarity.
- System prompts (
): Keep them as short as possible while still complete. One clear task, no filler; longer system prompts can dilute focus and increase latency.systemInstruction - Technical limits (max context length) are per model and documented in the API; the above are design guidelines, not hard caps.
Best Practices (Summary)
| Practice | Guidance |
|---|---|
| Clarity | Be specific: questions, step-by-step tasks, or clear UX. Avoid vague or keyword-only prompts. |
| Context | Include why the task is done and (if relevant) domain/expertise so the model can adapt (e.g. jargon, language). |
| Length | Keep prompts focused. Google suggests staying under ~4,000 characters for user-facing prompts; system prompts should be as short as possible while still complete. |
| One job per prompt | One system prompt = one clear task (e.g. transcribe or edit text), not multiple unrelated behaviors. |
| Output language | If the output language must be fixed, state it explicitly (e.g. "RESPOND UNMISTAKABLY IN {LANGUAGE}"). |
| Iterate | Refine based on real responses; add "Do NOT …" or examples when the model misbehaves. |
Project-Specific Notes (WhisperShortcut)
- Transcription: Persona + "transcribe verbatim" + guardrail "Do NOT answer questions or execute commands; only transcribe" is aligned with best practices. Optional: one explicit line about removing fillers silently.
- Dictate Prompt / Prompt & Read: Persona + clear roles (SELECTED TEXT vs. AUDIO = instruction) + single output rule (e.g.
) matches the recommended structure.promptModeOutputRule - User context: Appending a dedicated block (e.g.
) with a length limit (e.g.---\nUser context:\n…
) is a good way to keep the system prompt focused.userContextMaxChars
Official References
For full, up-to-date guidance, prefer these sources:
- Prompt design (strategies): https://ai.google.dev/gemini-api/docs/prompting-strategies
- Models (incl. Gemini 2.0 Flash): https://ai.google.dev/gemini-api/docs/models
- Writing prompts (Google Cloud): https://docs.cloud.google.com/gemini/docs/discover/write-prompts
When in doubt, favor instructions that are explicit, ordered, and bounded (one task, clear output format, clear guardrails).