Tips to Get the Most Out of GitHub Copilot Early on, I had a pattern: write a vague prompt, get a vague answer, feel frustrated, close Copilot, and go back to Google. It took a few weeks to realise the problem was almost never Copilot — it was how I was asking. These tips come from three months of daily use while building JSLipi. Some are habits that took a while to form. All of them made a real difference. Timeline note: These tips are drawn from using Copilot between November 2025 and January 2026. AI tools are evolving quickly — some of what required careful prompting then may be more automatic today. The habits still apply. Tip 1: Context is Everything The single biggest difference between a useful Copilot response and a useless one is context — how much you tell it about what you are working with. Before prompting, write a short comment block: Hand that to Copilot and you get something you can actually use. Say "write validation middleware" and you get a skeleton you will rewrite anyway. The trick is to write the comment as if you are briefing a new developer who joined the project five minutes ago. That is roughly the context Copilot needs. Tip 2: Know Which Mode Does What This one matters more than most developers realise. Copilot in VS Code has several distinct modes, and using the wrong one for a task is like reaching for a hammer when you need a scalpel. Inline autocomplete — shows up as you type. Best for: continuing code where you are already in the flow, filling in repetitive patterns (your third service method will complete almost automatically), quick type definitions. Inline chat (Ctrl+I on selected code) — opens a small prompt right in the editor. Best for: "refactor this function," "add error handling here," "convert this to async/await." Fast, focused, stays in context. Chat: Ask mode — the sidebar conversation view. Best for: questions ("why would this fail?"), explanations ("what does this middleware actually do?"), planning ("how should I structure this feature?"), reviews ("what are the problems with this code?"). Chat: Edit mode — like Ask, but Copilot shows you the changes as diffs to accept or reject. Best for: targeted rewrites of a specific file or function where you want to see exactly what changed before committing. Chat: Agent mode — Copilot takes a task and works through it autonomously across multiple files. It can create files, edit several at once, and run terminal commands in a loop until the task is complete. Best for: scaffolding a new feature from scratch, setting up a new module with routes, controller, service, and tests all at once. Worth checking before diving in manually — if it is a create-and-wire task, Agent will often get you 80% of the way there. Use Ask when you need to think with Copilot. Use Edit when you need surgical changes . Use Agent when you have a well-defined task that involves touching multiple files. Tip 3: Always Review — Every Single Time I know. You have heard this before. But it is worth saying plainly: Copilot generates plausible-looking code that is sometimes subtly wrong, and the wrongness is not always obvious. The categories to watch for: Pattern What to look for --------- ----------------- Outdated APIs Deprecated methods from older package versions Wrong error handling Returns where your codebase throws, or vice versa Missed edge cases Missing checks for empty arrays, null values, zero Security blind spots Missing input sanitisation in generated validators Style drift Uses different patterns than the rest of the file The check that catches the most issues: after getting a Copilot response, read it against the rest of the file it will live in. Does it feel like it belongs? If something feels off, it probably is. Tip 4: Let Copilot Write Your Tests This is one of the most underused features, and it is genuinely impressive. After generating or writing a function, paste it into Copilot Chat and ask: Copilot's test generation is fast and thorough. It thinks through scenarios you might not have considered immediately. You still review the tests and add any business-logic-specific cases it would not know about — but the boilerplate and the obvious cases are handled. Tip 5: Describe What You Need, Not How to Do It When you over-specify the implementation, you trap Copilot inside your current thinking and miss better approaches. Over-specified: Goal-oriented: The second prompt gives Copilot room to suggest the clean version ( ). The first forces it to follow your loop idea even if that is not the best approach. This matters most for anything involving data transformation, filtering, or sorting — exactly the tasks where JavaScript has clean built-in solutions that are easy to miss when you are knee-deep in a problem. Tip 6: Use Copilot to Read Code, Not Just Write It When you are dropped into an unfamiliar codebase, or you come back to your own code after three months, Copilot can shorten the ramp-up time significantly. Select a confusing functi…