GitHub Copilot changed how I work. Here’s the workflow I’ve landed on after a lot of trial and error.
Table of contents
Open Table of contents
The short version
I treat Copilot as three tools in one:
- Inline completions for the boring, predictable code.
- Chat for “explain / refactor / write a test for this”.
- The agentic CLI for multi-step tasks: scaffolding, fixing failing tests, wiring up deploys.
A tiny example
Instead of writing boilerplate by hand, I describe intent and let Copilot draft it:
// Ask: "a debounce helper with a cancel method, typed"
export function debounce<T extends (...args: unknown[]) => void>(
fn: T,
wait = 200
) {
let t: ReturnType<typeof setTimeout>;
const debounced = (...args: Parameters<T>) => {
clearTimeout(t);
t = setTimeout(() => fn(...args), wait);
};
debounced.cancel = () => clearTimeout(t);
return debounced;
}
Then I review, tweak, and move on. The point isn’t to skip thinking — it’s to skip typing.
Watch it in action
Here’s a short walkthrough. (Replace the ID below with your own YouTube video.)
Takeaways
- Let Copilot handle the first draft; you own the review.
- Be specific in prompts — intent in, quality out.
- The agentic CLI shines on repetitive, multi-file chores.
More experiments coming soon.