Verified against GitHub Copilot coding agent · 2026-07-05
Write an issue tight enough to hand to the Copilot coding agent unattended
An issue template for the @copilot coding agent that bounds file scope, defines a testable done-state, and tells it exactly how to handle a blocker instead of guessing silently.
The prompt
Ready to copy — highlighted parts are example details you can swap.
Assign this issue to @copilot (the GitHub Copilot coding agent). It will work in its own sandboxed environment, push commits to a draft pull request, and respond to review comments — write this issue as a brief for an agent that cannot ask a clarifying question mid-task, only before it starts or afterward in PR comments. TASK Add a CSV export button to the /reports/[id] page that downloads the current filtered view, reusing the existing exportToCsv() helper. FILES LIKELY IN SCOPE app/reports/[id]/page.tsx, components/reports/ExportButton.tsx (new), lib/export/csv.ts DONE WHEN 1. Button appears only when the report has at least one row. 2. Clicking it downloads a CSV matching the visible filtered rows. 3. Existing report page tests still pass; a new test covers the zero-rows case. RULES FOR THE AGENT - Do not touch any file outside the scope above unless the done-state above is provably unreachable without it — if so, explain why in the PR description rather than doing it silently. - Run the existing test suite and lint before opening the PR. Paste the exact command output in the PR description, not just a claim that it passed. - If any part of this issue is ambiguous, state the ambiguity and the interpretation you chose in the PR description rather than picking silently. - Open the PR as a draft. Do not mark it ready for review until every item under DONE WHEN is satisfied. If the existing exportToCsv() helper cannot handle the filtered-view shape, stop, open the draft PR with a comment explaining exactly what is missing, and do not invent a new export implementation.
Customize the highlighted detailsoptional — the prompt above already works
Why this works
The coding agent runs unattended in a background, GitHub Actions-backed sandbox and only surfaces back to a human through the draft PR and its own comments — a mid-task clarifying question is not part of its loop the way it is in an interactive Copilot Chat session, so any ambiguity left in the issue gets resolved by the agent's own judgment rather than caught before it costs anything. Naming files likely in scope caps the search space the agent explores before it starts writing code, which matters because an autonomous agent with a vague brief and full repo access expands its own scope the same way any agentic coding tool does once it notices something else that looks fixable nearby. Requiring literal command output in the PR description, not a claim that tests passed, closes the failure mode where the agent's own account of its work is the only verification available — a reviewer should be checking pasted output, not trusting a summary written by the same agent that wrote the code. Marking the PR draft-only until every done-state item is met turns the checklist into a release gate the agent checks itself against, rather than a description of intent it can satisfy loosely and still mark ready.
What you get back
PR description (excerpt): Implements CSV export on the filtered report view per the issue. Ambiguity encountered: the issue did not specify a filename format — used report-{{id}}-{{date}}.csv, matching the existing convention in lib/export/csv.ts's other call site. Test output: 42 passed, 0 failed (added export-zero-rows.test.ts). Ready for review.
Verified against
GitHub Copilot coding agent GA release, 2026-05 · 2026-07-05
Changelog
- 2026-07-05 — Initial publish, verified against the GitHub Copilot coding agent GA release.
Need this built into your business?
If a prompt isn't enough — custom software, built and maintained for you — that's Scult's day job.
EXPLORE CUSTOM SOFTWARE

