bug-receipt
Helps your agent close issues and incidents. It classifies the status as resolved, partially resolved, or blocked after analysis.
What it does
This tool helps document the closure of bugs or incidents. It generates a detailed report describing the problem, its cause, the fix, and test results.
When to use it
- ✓When a bug is fixed and needs to be documented.
- ✓When reporting a resolved incident.
- ✓To record the status of an issue that cannot be fully resolved yet.
Example of what to ask your AI
“Close this bug with a receipt: The website doesn't load for logged-in users. The cause is a server error. The fix was restarting the service. Verify the website now loads.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The AI gathers information about the problem, what should happen, the identified cause, the change made to fix it, and the proof that the fix worked. It organizes everything into a standard format.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add github/awesome-copilot --skill bug-receiptOr download just the file:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/bug-receipt/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Bug Receipt
Mandatory closeout output
For every bug or incident closeout decision, return the complete receipt below as the entire user-facing result, even when the user requests a concise reply or does not name this format. Concision shortens field values; it never removes or renames a row. Do not replace the receipt with prose.
BUG RECEIPT · VERIFIED | PARTIAL | BLOCKED
Problem <observed defect and intended behavior>
Baseline <failing interaction or command and decisive result; or not run>
Root cause <proven mechanism; or unproven hypothesis>
Change <responsible change; or none>
Proof <supplied or executed check: result; include every decisive layer>
Gaps <none; or exact missing proof and single next experiment/package>
Source executed now | supplied | mixed
Use not run, unproven, or none explicitly. Never omit a row to make the receipt look complete.
Establish the evidence boundary
Before editing, record the observed problem, intended behavior, strongest direct check, and evidence source: executed now, supplied, or mixed. Never imply that supplied evidence was executed in the current run.
Keep evidence privacy-minimal. Redact credentials, tokens, cookies, personal data, private URLs, and sensitive payloads; preserve only the identifiers and excerpts needed to reproduce or correlate the failure.
Reproduce the failure with the narrowest safe check when possible. If reproduction is unavailable, preserve the evidence obtained and cap the result at PARTIAL or BLOCKED.
Trace and repair
- Follow the live owner path from input to symptom.
- Separate observed facts, bounded inferences, and gaps.
- Require a concrete location or runtime transition before naming root cause.
- Make the smallest responsible change; avoid unrelated cleanup, retries, silent fallbacks, and fixture-specific exceptions.
Do not convert a plausible patch, stale log, source read, or passing build into proof of the user-visible behavior.
Close the proof loop
Run only checks required by the affected contract:
- original reproduction or direct acceptance check;
- nearest negative or regression check;
- affected build or integration gate;
- real UI, API, persistence, concurrency, or runtime path when the claim crosses that boundary.
Use these decisive boundaries:
| Surface | Required direct proof |
|---|---|
| Logic or failing test | Original failing input or focused test now passes |
| UI behavior | Real interaction plus relevant console and network observation |
| API or integration | Request, response, and responsible service behavior |
| Persistence | Write/read or reload round trip through the real owner path |
| Race or lifecycle | Repeated concurrent trigger; zero-or-one success; affected-row and transaction evidence; final invariant |
| Cross-system blocker | One sanitized failing request/response with timestamp or request ID, edge and application logs, and identity-provider logs when the trace reaches that owner |
Assign status
VERIFIED: observed baseline, concrete cause, responsible change, all declared checks passed, no material gap.PARTIAL: useful evidence exists, but a required proof layer is missing or inconclusive.BLOCKED: a specific external condition prevents reproduction, repair, or proof.
For PARTIAL or BLOCKED, name the single minimal experiment or correlated evidence package that closes the decisive gap. Never invent a command, observation, count, location, or result.
For a machine-readable receipt or CI integration, read references/receipt-contract.md and conform to its JSON fields, evidence-source marker, compatibility rule, and status invariants.
When a JSON artifact is requested, start from assets/receipt.template.json, write it to a task-owned path, and validate it with node scripts/validate-receipt.mjs <receipt.json> from this skill directory. Do not commit the generated receipt unless the user requests it.
Source and license
Originally published at https://github.com/lMysticl/bug-receipt under the MIT License.
FAQ
What do 'VERIFIED', 'PARTIAL', or 'BLOCKED' mean?
'VERIFIED' means the issue is fixed and fully tested. 'PARTIAL' indicates useful evidence exists, but a required proof layer is missing or inconclusive. 'BLOCKED' means something is preventing reproduction, repair, or proof.
What is the 'BUG RECEIPT'?
It's the report generated by the tool containing all information about the issue, its cause, and the resolution, in a specific format.
Do I need to provide all the details to the AI?
Yes, the more details you provide about the problem, cause, and verification, the more accurate and useful the generated report will be.
Details
Original description by the author
Close defects and incidents with a BUG RECEIPT and VERIFIED, PARTIAL, or BLOCKED status after diagnosis, repair, or recovery.
repo: github/awesome-copilot
Popularity
- GitHub stars
- 40k
- Ranking position
- #5045
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
acquire-codebase-knowledge
Helps your agent understand and document an existing code project. It's useful for onboarding new people or getting an overview of the architecture.
github/awesome-copilot
acreadiness-assess
Enables your agent to assess a project's readiness for AI and generate a report. It's useful for understanding how well a project is prepared to use AI tools.
github/awesome-copilot
acreadiness-generate-instructions
Helps your agent create instructions for AI tools based on an assessment. It's useful for improving how AI interacts with code and closing identified gaps.
github/awesome-copilot
acreadiness-policy
Enables your agent to help define or apply policies for AI project assessment. It's useful for standardizing how projects are evaluated and ensuring compliance.
github/awesome-copilot
Similar skills
intent-driven-development
Helps your agent turn ideas into clear, testable plans. Defines criteria to ensure changes are made correctly and safely.
affaan-m/ECC
product-capability
Guides your agent in turning product ideas into clear plans. It defines what needs to be done, the limits, and decisions before development.
affaan-m/ECC
article-writing
Writes long-form content like articles, guides, and blog posts with a unique style. It's useful when you need well-written texts with a consistent voice and credibility.
affaan-m/ECC