Teams paste a list of constraints into a chat and watch the model quietly break one within a few turns. The rules are simple: keep the chapters in order, don’t rename anything, no new dependencies. A Redditor going by u/Ok_Negotiation_2587 has now seen that same drift on manuals, code, and style guides. The fix isn’t a better prompt. It’s a different author.
I’ve watched this happen with a style guide too. Three paragraphs of “never do this,” and by the second draft one of those rules was already gone. That’s not because the model is careless. It’s because pasted text doesn’t carry the same weight as a decision the model made on its own.
Quick start
You need two saved prompts and one working chat. The first prompt turns your rules into a document the model writes itself. The second prompt feeds that document back with a citation requirement attached. Use both, and the same rules that got ignored as pasted text get followed for the rest of the session.
The Key Idea
Pasted rules and model-written rules are the exact same words. The model just treats them differently depending on who “said” them first. Text you paste in arrives as user content. It gets weighed against everything else in the context, including whatever the model already thinks a good answer looks like. Text the model writes itself arrives as its own prior decision. Models stay strongly consistent with their own earlier turns, the same trait that makes a model defend buggy code it wrote three messages ago. The original poster’s method borrows that stubbornness for your rules instead of against you.
Old Way vs New Way
The old way: paste your constraints straight into the chat and hope they hold.
- Rules arrive as one message among many.
- The model weighs them against its own instincts.
- Drift shows up quietly, with no signal that anything broke.
The new way: have the model write the rules first, then cite them before every relevant output.
- Rules arrive as the model’s own prior decision.
- The model stays consistent with what it already committed to.
- A missing citation becomes your alarm the moment drift starts.
⚓ Try This Yourself
Step one: This happens before any real work starts, in a planning message. Paste this:
I am going to describe the rules for this project. Write them up as a formal instructions document in your own words, numbered, with a one line rationale for each rule. Ask me to confirm before finalizing. This document will be the reference for everything we do next.
Dictate your rules however you’d normally state them. Let the model draft the numbered document, check it, and confirm it back.
Step two: This happens as the first message in your actual working chat, right after you confirm the document. Paste this:
Here is the instructions document we agreed on. Treat every numbered rule as a decision already made, not a preference. Before any output that touches a rule, cite the rule number you are following.
That citation line does the real work. A rule the model has to name before acting is a rule it can’t drift past without you noticing.
Two Things to Watch
This trick has real limits, and the original poster is upfront about both. Neither one is a dealbreaker, but both will bite you if you forget them mid-project.
- It does not survive a context window overflow. Once the document falls out of view, the rules go with it, so feed it in again after every reset.
- It works on constraints, not on taste. “Never use a semicolon” launders perfectly. “Write like me” launders badly, since there’s no clean rule to cite.
One commenter, u/Fresh_Platform8931, called it borrowing the model’s own consistency against itself. The citation step, they said, is what makes it feel like forcing the model to read the rule out loud before it can break it. I think that’s the right way to put it. This isn’t a jailbreak or a clever trick. It’s just handing the model a decision it already made instead of a preference it can talk itself out of.
The original poster raised one open question: does this work the same in a system prompt as in a first user message? My guess is the citation requirement matters more than where the document sits, but nobody has tested it yet.
If rule drift is costing you rework in long chats, save both prompts as a note and try them on your next project! Two paragraphs is all it takes to set up, and you’ll know within a session whether the citations are actually holding. Then head over to the original Reddit thread and see what the community has tested since.
Frequently Asked Questions
Q: How do I catch the model drifting off the rules?
Require the model to cite the specific rule number before any output that touches those rules. As one commenter noted, “forcing it to read the rule out loud before it can break it” makes drift obvious, if there’s no citation, you’ve caught a violation. The citation mechanism is what makes this technique actually work.
Q: What happens if the conversation gets long and hits context limits?
The technique stops working once the rules document falls out of context. The solution: re-feed the instructions at the start of each new conversation or after a major reset. Treat it as a session-start ritual to keep consistency across long projects.
Q: Does this work for everything, style guides, tone, preferences?
Best for hard constraints (structure, dependencies, naming, ordering). It works on rules that are checkable, not soft preferences like “write in my voice.” For style and tone, you’ll likely need other techniques like providing examples or establishing a role.
Q: Why does it matter that the model writes the rules instead of me pasting them?
User-pasted rules compete with other context in the model’s reasoning, but rules the model writes become its own prior decision. Models naturally stay consistent with their own previous outputs far more strongly than with external user input, you’re borrowing that consistency.
Q: How do I set this up cleanly for a new project?
Have the model rewrite your constraints as a formal numbered document with one-line rationales, confirm before finalizing, then save it. In your working chat, lead with: “Here is our agreed instructions, treat every rule as already decided, not a preference. Cite the rule before any output that touches it.” That citation loop is what keeps it solid.
The model follows rules it wrote itself and treats the rules you paste as suggestions
by u/Ok_Negotiation_2587 in PromptEngineering