Copilot Coding Agent
GitHub Copilot Coding Agent is an autonomous AI that works inside GitHub. You give it a task through an Issue, it writes the code in a cloud environment, and opens a pull request for your team to review. You do not need a local IDE to use it.
This is different from inline code completion (Copilot in VS Code). The coding agent handles an entire feature end-to-end β but only if you give it clear instructions.
Step 1 β Create a GitHub Issue
Section titled βStep 1 β Create a GitHub IssueβAn Issue is a task card inside your GitHub repository. Think of it as one row on your Kanban board, but stored in GitHub and linked directly to the code.
To create one: open your repository on GitHub β click the Issues tab β click New issue.
[Screenshot placeholder β Issues tab and New issue button]
What to write in the issue
Section titled βWhat to write in the issueβA good issue has three parts: what to build, the user story behind it, and exactly how you will know it is done. Copy this template and fill it in for one task from your Kanban board:
What to build [One sentence β e.g. βA form where a volunteer can log that they fed a cat.β]
User story As a [role], I want to [action], so that [outcome].
Acceptance criteria
- [Condition 1 β e.g. βVolunteer can select a cat by name from a dropdownβ]
- [Condition 2 β e.g. βForm records: cat name, time, food type, amountβ]
- [Condition 3 β e.g. βAfter submit, a confirmation message appears within 2 secondsβ]
- [Condition 4 β e.g. βEntry appears in the catβs feeding log immediatelyβ]
Technical context Stack: [your frontend + backend, e.g. React + Supabase] Do not change: [any files Copilot should leave alone]
Bad vs good
Section titled βBad vs goodβ| Bad β produces vague or wrong code | Good β produces useful code |
|---|---|
| βAdd feeding log feature" | "Add a feeding log form β cat name dropdown, time picker defaulting to now, food type and amount fields, submit button. On success show a green confirmation. Stack is React + Supabase. Do not change the cat profile page." |
| "Fix the bug" | "The feeding log form throws a 500 error when the cat name contains a space. File: src/pages/log.tsx. Do not change the database schema.β |
The rule: if you could hand this issue to a new developer on your team and they would know exactly what to build β it is good enough for Copilot.
[Screenshot placeholder β completed issue with template filled in]
Step 2 β Assign the Issue to Copilot
Section titled βStep 2 β Assign the Issue to CopilotβOnce your issue is saved:
- Open the issue
- Find Assignees in the right sidebar
- Click it β select Copilot from the list
- A dialog appears β you can add extra instructions here if needed
- Click Assign
Copilot will add a π reaction to the issue β this means it has started working.
[Screenshot placeholder β Assignees dropdown with Copilot visible]
Step 3 β Watch the session log
Section titled βStep 3 β Watch the session logβCopilot works in a cloud environment β you do not need to do anything. A link to the session log appears on the issue. Click it to watch what Copilot is doing in real time: which files it reads, which commands it runs, what decisions it makes.
This usually takes 5β15 minutes depending on the task size.
When it finishes, it opens a draft pull request with all the commits it made and a summary of what it changed.
[Screenshot placeholder β session log showing Copilot working]
Step 4 β Review the pull request
Section titled βStep 4 β Review the pull requestβThis is the most important step, and it belongs to your team β not Copilot.
Read the code. Understand what changed and why. Then decide:
- Looks correct β approve and merge into
main - Almost right β leave a comment explaining what to change; Copilot will update the PR
- Wrong direction β close the PR, improve the issue description, and try again
Own what you build. Do not take on features that are beyond your current understanding just because you think AI can do the work for you. If you cannot follow what the code does, that is a sign the scope was too ambitious β not a problem the AI can fix for you.
[Screenshot placeholder β PR diff view with review comment]
What the coding agent does and does not do
Section titled βWhat the coding agent does and does not doβ| It will | It wonβt |
|---|---|
| Create a branch, write code, commit, open a PR | Understand your users or make product decisions |
| Follow acceptance criteria if they are written clearly | Produce reliable output for a vague or incomplete issue |
| Add tests if you ask for them in the issue | Replace a standup, planning session, or team thinking |
| Work in the background while the rest of the team does other work | Guarantee the code is correct β always review before merging |
When to use it β and when not to
Section titled βWhen to use it β and when not toβGood uses:
- A single, well-defined feature that maps to one Kanban task
- A bug with a clear description of what is wrong and where
- Generating boilerplate (forms, CRUD routes, test files) that your team will then customise
Not a good fit:
- Open-ended tasks (βmake the app look betterβ)
- Tasks that require understanding your users or your product strategy
- Anything involving credentials, secrets, or deployment configuration
The coding agent is a tool for developers β it works best when the PM and designer have already done their job and the task is clearly defined.
Was this page helpful?