How to Write a Game Context File That Stops AI Agents From Forgetting Core Rules
Keep the context file short, durable, and testable. Store architecture boundaries, system ownership, invariants, naming conventions that matter, test commands, and current milestone; exclude transient conversation and implementation detail that the agent can read from code.

Keep the context file short, durable, and testable. Store architecture boundaries, system ownership, invariants, naming conventions that matter, test commands, and current milestone; exclude transient conversation and implementation detail that the agent can read from code.
Write rules the agent can act on
“Keep the code clean” is not useful. “Server owns currency; clients may request purchases but never set balances” is. Context files should contain constraints that affect decisions across multiple tasks.
Separate invariants from preferences
Invariants protect correctness or compatibility. Preferences describe style and may be overridden when justified. Labeling them differently prevents a stylistic rule from competing with a networking or save-data contract.
Add verification hooks
- Command to run tests.
- Canonical playtest scene/place.
- Expected save schema version.
- Performance or platform checks that matter.
- Pointers to deeper docs rather than copying them.
Prune the file regularly
A context file that grows into a second codebase becomes noise. Remove finished milestone details and superseded decisions; keep only facts the next agent must know before making changes.
Working template
GAME CONTEXT MILESTONE: [...] SYSTEM OWNERSHIP: [...] INVARIANTS: [...] PUBLIC INTERFACES: [...] PROTECTED BEHAVIORS: [...] TEST / PLAYTEST: [...] STYLE PREFERENCES: [...] DO NOT STORE: chat history, obsolete plans, copied source files.
Source and verification note
This guide was checked against Microsoft Research: Vibe coding and Microsoft Research: Good Vibrations? and Vibe Coding in Software Development: Multivocal Review and updated Sep 5, 2026. The research describes patterns and risks rather than guaranteeing outcomes for every project; validate the workflow in your own codebase.