Surviving Premium Limits & Leveling Up with Custom Instructions
If you’re the kind of dev who treats Copilot’s agent mode like your own private coding butler (and not just a fancier autocomplete), you’ve probably bumped into some premium request limits. I sure did—hard enough to get shut down after just four days of bouncing between 4–5 active projects with Claude models. Whoops.
But instead of a doom spiral, I figured: let’s share what’s actually working, and help someone else avoid my mistakes (and my, uh, "Baby Billy on water skis" level of desperation to get back to coding 🦆⛷️).
TL;DR I'm at a full stop for the moment thanks to this giant red 0 on the page, so I decided to take some time to put together some of the things that's really worked well for me when using Copilot. Here's hoping someone else can avoid some of the mistakes I made early on.
🛠️ My Real-World Copilot Agent Workflow
1. Repository-Specific Instructions 📒
The real MVP for me? The .github/copilot-instructions.md
file.
- Copilot automatically reads this if it exists in your repo.
- Whatever you put here is context for every chat interaction in that repo - it travels across users and IDEs.
- Start small! Define the basics and add specific instructions only as Copilot demonstrates where it gets confused or off track.
- Example: Tell Copilot to summarize its goal & action plan every so often, or ask it to verify a step before continuing.
## Purpose
- Summarize your current goal before making changes.
- For every code edit, output a short plan first.
## Persona
- Assume the user is new to the codebase.
## Technologies
- This repo was recently upgraded to Java 21 from version 17.
- ALWAYS write new code using the latest standards and best practices
🔗 Learn more about repo-specific Copilot instructions here
2. Keep Chats Contained 🗂️
Don’t just let a chat run forever. The context window is limited—so start a new Copilot Agent chat for each new topic, user story, or bug.
- Pro tip: Close all unrelated files in VS Code to reduce distractions for Copilot. 🧹
- History button (the little clock 🕰️) can help you pick up a previous session if needed.
- Watch your limits Premium requests pile up quickly, so encourage Copilot to prompt the user before ending the request prematurely.
3. Limit the Blast Radius 💥
Try not to tackle everything at once.
- Use Ask Mode (the GPT models 🧠) to brainstorm ideas, flesh out requirements, and get Copilot’s suggestions.
- For each implementation, switch to Agent mode and work one story at a time.
- Encourage Copilot to implement incrementally—have it plan, then check, then execute. 🦾
# Story: Add User Login
**Goal:** Implement secure user authentication.
**Acceptance Criteria:**
- Login with email & password
- JWT token issued on success
- Error shown on failure
4. Iterative Prompt Engineering 🧬
Change instructions slowly and only when you’re sure you understand how Copilot is misbehaving.
- I can’t count the number of times I thought I had a clever instruction, only to watch Copilot go rogue and turn my codebase into spaghetti 🤖🍝.
- Want ideas? Search GitHub for
copilot-instructions.md
and see what others are doing.
5. Encourage Copilot to Self-Check 🦉
If Copilot starts acting weird (editing the wrong files, doing something unexpected), hit pause ⏸️ and ask it to explain its plan.
- If the answer makes sense, tell it to continue ▶️.
- If not, you’ve given it a chance to self-correct before things go totally off the rails 🚂.
6. Let Copilot Write Its Own Instructions ✍️🤖
Yes, really! Start an Ask chat, put your repo in context, and prompt Copilot:
“Write your own repo-specific instructions based on the structure and common pitfalls you see.”
📝 Bonus: What to Put In Your Instructions
- Project Description 🏷️: What does this repo do? SLO/SLA? Who benefits?
- Persona 🕵️: This is often overlooked, but SREs who have been here 10 years don't need the same level of explanation a brand new junior dev does. Make your project relevant.
- Tech Stack 🧩: Only include if the codebase is inconsistent and state specific target versions for a language.
- Code Style 🎨: Only call out consistent anti-patterns (let your linter do the rest).
- Include DO THIS/NOT THIS examples 📚: If Copilot always botches something, document it. Give “good vs. bad” code snippets.
🚩 What Not To Do
- Don’t just pile on instructions—too much context can backfire 🐘.
- Don’t treat Copilot like a junior dev and expect it to “just get it” - give it feedback, step by step 🧑🏫.
- Don’t be afraid to start over if a chat or instruction goes haywire. Sometimes it’s the best move 🔄.
I posted a couple of the best instructions I have so far.
Feel free to copy these and adapt however you need them. Be warned, these work best with Claude models and will cost a fortune but it's so fun to watch 🚂
Please excuse my static "I need a place to put these icons so I'll stop forgetting what I said yesterday" page, but it was there and easy, so that's where they went.
- Copilot Best Practices
- copilot-instructions.md
- implement-feature.prompt.md
- commit-changes.prompt.md
- timestamp-handling.prompt.md
Ready to help Copilot break out of agent jail?
Share your quirkiest hacks, wildest agent fails, or the most “I can’t believe that worked” workaround you’ve got. The weirder the better—bonus points for GIFs, rhymes, or actual Baby Billy water skis.
So drop your story below and let’s see if we can turn this zero-balance meltdown into a full-on Agent Mode glow-up! 🦑
Top comments (0)