First you tell ChatGPT, “Keep it short.” Then a complicated question gets a shallow answer, so you add, “Go into detail when needed.” Next comes, “Verify facts,” “Keep the jokes,” and “Always follow my checklist.” Eventually everything is marked IMPORTANT. Your AI has a rush-hour train full of highest priorities.
The practical fix is to give different kinds of information different homes. Use Custom Instructions for your usual response preferences, Memory for useful context that develops through conversations, Project instructions for one line of work, and version-controlled files on GitHub for detailed procedures. A file existing on GitHub does not prove the assistant has read it.[1][2][3][4]
1. Four places, four jobs
Custom Instructions tell ChatGPT how you generally want it to respond: answer the question first, distinguish evidence from guesses, or check facts that may have changed. OpenAI says these instructions apply across chats.[1]
Memory helps ChatGPT draw on relevant information from previous conversations and other available sources. It's useful for recurring interests and ongoing context, but it isn't a verbatim archive of everything you've ever said.[2]
Project instructions are for one project. Your writing project might need a friendly tone and a source check; a holiday-planning chat does not need to behave like an editorial department. Inside a ChatGPT Project, its instructions take priority over global Custom Instructions.[3]
A GitHub document is a good home for long operating rules: article structure, language-specific checks, file names, and how to recover from failed work. Some coding agents recognize AGENTS.md files when working in a repository. That does not make every ordinary ChatGPT conversation an automatic GitHub reader.[4]
2. Why “just add one more rule” stops working
Imagine a fictional user keeping a list: “Be brief.” “Explain everything.” “Don't waffle.” “Give full evidence.” The list grows because each disappointing answer becomes a permanent command.
The rules aren't necessarily incompatible. They are missing conditions. “Be brief for simple questions; go deep for complex decisions” does the job of several overlapping sentences.
Putting a 30-step publishing checklist into conversational Memory is like storing a microwave manual in the refrigerator. It has technically been put somewhere. It is not where anyone should look for the exact defrost button. Context is for remembering; procedures are for following.
3. Sort rules by when they are needed
Ask four questions. Is the rule useful in almost every conversation? Put it in Custom Instructions. Does it describe background that can evolve? Let Memory handle that. Does it belong only to writing, coding, or another specific activity? Put it in the Project. Does it need careful updates, detailed examples, or a change history? Put it in a maintained file.
The request for today stays in today's message: “Make this one funny, remove identifying details, and produce complete versions in twelve languages.” It shouldn't automatically become your eternal default for a grocery list.
Consider two examples. A preference to pick up one useful English phrase during an ordinary chat belongs in general guidance. A rule about who signs off a change that affects a team belongs with that team's actual decision process. The first describes a personal response preference; the second governs shared work. Different drawers, different keys.
4. Keep the global instructions small but meaningful
A useful compact version might read:
Answer the user's question directly. Keep simple answers brief and complex decisions well supported. Verify changeable facts. Separate observations from guesses. Use only relevant prior context. For project-specific work, consult the latest available rules and say clearly when a source could not be accessed.
That is the skeleton. The detailed checklists, regional language choices, publishing commands, and error-recovery procedures can live elsewhere.
Combine duplicate requirements, not important protections. “Be clear,” “Start with the answer,” and “Don't ramble” can often become one conditional instruction. “Do not expose someone's private details” should retain its full meaning even in a shorter document.
5. A GitHub rulebook is not telepathic
Keeping one authoritative rule document makes revisions traceable and gives different tools a common reference. Put a brief pointer in the project's entry instructions so the assistant knows which document matters.
Then verify access. Does this session actually have a working way to open the repository and read the file? If it doesn't, provide the relevant excerpt or another supported source. The sentence “I read the latest rules” is not evidence that anything was fetched.
There are also separate milestones: the draft exists; the file has been committed; its contents have been read back; a production website has been updated; and a real visitor can view it. A green check beside 'saved' is not a publishing receipt. Editing a rule file likewise does not automatically update a separately scheduled task.
6. Test with two real tasks
Try one ordinary question and one project-specific assignment that used to go wrong. For the everyday question, check whether the answer is direct and factually careful. For the project task, check whether the latest rule document was actually read, the required steps were followed, and unfinished work was reported accurately.
If something fails, identify which kind of failure it was: the assistant couldn't access the file, the rule was unclear, two instructions conflicted, or the task needed a tool or permission that wasn't available.
Adding another “ABSOLUTELY ALWAYS” to all four cases is not debugging. It's boarding another express train onto the already crowded platform.
7. The goal isn't an AI that memorizes an entire office
Memory supplies background. Custom Instructions guide ordinary behavior. Project instructions guide one job. GitHub preserves detailed rules and their history. The current request states the result you want now.
So when a new improvement appears, first ask where it belongs. The answer is usually more useful than adding another paragraph to a giant settings box. Don't train your assistant's memory to carry a filing cabinet. Give the cabinet an address, and check that the assistant opened the right drawer.
References (4)
[1] OpenAI Help Center, ChatGPT Custom Instructions: https://help.openai.com/en/articles/8096356-chatgpt-custom-instructions
[2] OpenAI Help Center, Memory in ChatGPT: https://help.openai.com/en/articles/8590148-memory-in-chatgpt
[3] OpenAI Help Center, Projects in ChatGPT: https://help.openai.com/en/articles/10169521-projects-in-chatgpt
[4] GitHub Docs, Repository custom instructions: https://docs.github.com/en/copilot/how-tos/copilot-in-your-ide/customize-copilot/configure-custom-instructions/add-repository-instructions-in-your-ide


