Software development has always started with a conversation: What problem are we solving, why does it matter, and what does “finished” look like?
On GitHub, that conversation crystallizes in an issue. No matter what tools you’re using or who you’re working with, a well-designed issue still sets the agenda for pull requests (PR), reviews, tests, and deploys.
That principle hasn’t changed—but how we get from idea to issue to PR is changing fast, with Copilot helping to speed things up. By asking Copilot to draft an issueyou can quickly design a clear plan for moving forward. Then (and here’s the fun part) you can assign that issue directly to the new GitHub Copilot coding agent, which will asynchronously work to execute on the task at hand and give you a PR.
This is a new way of working. But the basic developer experience is simple, familiar and—dare I say—GitHubby.
In this blog, we’ll talk about:
- Why issues remain the backbone of work on GitHub—whether they’re written by you or drafted by Copilot.
- Best practices for building great issues when working with your team or Copilot.
- How a Copilot-oriented workflow helps you move faster, enforces consistency, and tees up the Copilot coding agent for hands‑off fixes.
Let’s jump in.
Why great issues and pull requests are critical
GitHub Issues and pull requests are some of the core building blocks on GitHub. Each issue describes a discrete piece of work, and offers helpful details, requirements, and more for whoever picks up that piece of work. PRs bundle the completed work for code reviews and merging.
Even in an AI‑accelerated workflow, these two artifacts are how present and future teams understand what happened and why.
Regardless of who (or what) authors them, well‑structured issues and pull requests deliver four key benefits:
- Shared context: One URL captures the problem statement, reproduction steps, and definition of done. Anyone joining next week—or next year—can catch up in minutes. And as we say at GitHub, if it doesn’t have a URL it didn’t happen.
- Async coordination: Whether teams are working across timezones, or simply looking to stay heads-down, meetings often add complexity and overhead. Issues free up time by letting developers work asynchronously, meeting only when it will add value.
- Audit and analytics: Labels, milestones, and templates feed dashboards, SLAs, and compliance reporting.
- Automation hooks: Actions workflows, project boards, and agentic tools rely on predictable metadata attached to every issue.
Miss the structure and every downstream step—human or AI—slows down. Need an example? Here’s an issue I’ve been looking at today (and no, I’m not going to name and shame anyone):
Issue #12609: Found broken link. Please fix!
…and that’s it! Just a title with no explanation in the body, no actual link, no context, no environment or version info, and no reproducible example or proposed fix.
As developers, we need well-crafted issues in order to dive into any project we get asked to do, and we need to write good issues to help teammates work effectively. AI is no exception: Large language models perform best when objectives, constraints, and success criteria are explicit. A vague prompt leads to vague output, whether it’s created by a human or a machine.
Here’s the thing: By allowing Copilot to assist with issue creation, you get to focus on clarity, not copy pasting, as Copilot locates the relevant references, builds out the initial issue structure, and even adds labels or project assignments.
The anatomy of a great GitHub Issue
Use this checklist when you create—or review—an issue (yes, Copilot writes these for you, but you’re still in charge):
- Action‑forward title: Lead with the noun and follow with the verb: “Login button – disable on Safari 17 beta” beats “Some login thing?”
- Problem or user story: Frame the pain: “As a shopper, I can’t click Buy on mobile Safari, so I abandon the cart and cry.”
- Expected vs. actual behavior: Two quick bullets: “Should render primary button” vs. “Button unclickable, no CSS pointer‑events.”
- Reproduction steps or visual evidence: GIFs, screenshots, or command-line specifics—whatever helps a teammate (or Copilot) quickly understand the problem.
- Acceptance criteria / definition of done: Straightforward pass/fail criteria, such as “all tests pass”, “Lighthouse score > 90”, “feature flag removed”.
- Scope and constraints: Guardrails to prevent yak‑shaving: perf budgets, browser list, no new dependencies.
- Metadata (labels, assignee, milestone, project): It’s the secret sauce that powers boards, filters, and Slack notifications.
Miss anything and async breaks down. Nail this format and Copilot—and your team—can move fast.
How to draft issues on GitHub faster with Copilot
Great issues share two traits: they’re fast to write and rich in context. GitHub Copilot’s Create Issue flow gives you both. Instead of hopping between fields or copy‑pasting snippets, you can open Copilot Chat and describe the problem in plain language:
"Create a bug report about a 500 error on the login form in octo-org/octo‑web."
Copilot drafts the title, body, and even suggests labels and an assignee—drawing on your repository’s preferred template so the issue lands in the right format every time.
Here’s the step-by-step guide:
- Open Copilot Chat’s immersive view at github.com/copilot.
- Describe what you need. Mention the repo (
org/repo
) or let Copilot infer it from where you last filed an issue. - Drop in a screenshot if a picture tells the story faster; Copilot will embed it in the draft and reference it in the description.
- Review the draft. Ask follow‑up prompts (“add repro steps,” “switch to the bug template”) or tweak the Markdown directly. Template switches keep your content—no rewriting required.
- Click Create when it looks good.
Tips for building great issues with GitHub Copilot
What you do | How Copilot helps | Why it matters |
Lead with context (expected vs. actual, repro steps) | Parses your wording into the right template sections. | Teammates (or Copilot) get clarity. |
Attach evidence (screens, logs) | “Image‑to‑issue” persists the file in the issue body. | Future debuggers see exactly what you saw. |
Tag next actions (“assign to Copilot”, “label frontend”) | Adds assignee, labels, milestones in one go. | Keeps boards tidy and workflows automated. |
Batch related bugs in one prompt | Generates multiple drafts you can individually approve. | Zero tab switching when you’re in triage mode. |
How to turn an issue into a draft PR with the coding agent in GitHub Copilot
Ok—now that you have a clear issue in hand thanks to Copilot, you can assign it to Copilot via the coding agent (yes, it shows up like any teammate) or ask:
"Assign this to Copilot."
When you hit CreateCopilot takes ownership and starts working on a fix—look for the 👀 reaction on the issue thread. Behind the scenes, here’s what happens:
- Copilot spins up a secure GitHub Actions workspace.
- It clones the repo, does a semantic code search (RAG‑style), and plots a fix plan.
- Commits roll into a draft PR you can watch in real time—no surprise force‑pushes.
- Your standard branch protections and CI gates still run, because we ♥️ you‑who‑likes‑passing‑tests.
Here’s why this is helpful:
- Parallelization: You review while Copilot writes, so dev cycles overlap nicely.
- Auditability: Every commit, diff, and comment is right there, so there’s no black‑box AI mystery.
- Guardrails: Same CODEOWNERS, same signing rules. Velocity without the cortisol.
Common questions, speedy answers
- “Won’t Copilot flood my repo with low‑quality issues?”
- It drafts, you refine and press Create. Same rate limits, same templates—just less typing.
- “Can it update existing issues?”
- Not yet. Today is net‑new only; Update Issue is on the roadmap.
- “Does it understand my custom templates?”
- Yes! Copilot infers from your repo, and you can switch templates mid‑draft without losing your prompt context.
- “Mobile support?”
- Desktop for now; mobile is on the horizon (because phones exist).
Now it’s your turn
Next time your brain yells “Ugh, filing this bug will take longer than fixing it,” open Copilot Chat and let the robot handle the form fields while you capture intent. The faster you translate thought to issue to PR, the sooner users get features—and the sooner you get back to the fun bits.
Now go forth, issue wisely, and may your PRs get greenlit.
Happy coding!
Want to learn more about GitHub Copilot?
Explore our Docs >
Written by