bug-report
Skill12 starsChanged 7 months agoMITView on GitHub
Investigate a defect and write an evidence-backed maintainer report. USE WHEN asked to file a bug, report an issue, investigate and report, or write a defect up for devs. DO NOT USE WHEN only a fix or direct debugging is wanted — use the normal debugging workflow.
We split this skill into the rules it gives an agent
18 rules. 0 are common, 17 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 29 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 32
If applicable instructions genuinely conflict, ask one focused question.
- Distinctive: line 45
A positive control is mandatory, not optional: Before concluding anything from an absence, prove the thing you're measuring *can be …
- Distinctive: line 71
Your own tooling is a suspect: When a measurement looks strange — especially a constant count, or a value that changes every sample for no …
- Distinctive: line 99
Do not fix, kill, or restart anything in this step.
- Distinctive: line 117
Check whether local edits or stale editable installs are shadowing the version you think you're testing.
- Distinctive: line 131
If the control doesn't fire, the result is INCONCLUSIVE.
- Distinctive: line 146
If your proposed fix contradicts something the code deliberately does, you have found a different bug than you think.
- Distinctive: line 158
When safe and within scope, apply the proposed fix in an isolated worktree or test environment at the pinned version, re-run the …
- Very specific: line 164
Use ${SKILL_DIR}/templates/report-template.md for structure.
- Distinctive: line 165
Write to the established report path/directory.
- Distinctive: line 170
If you could not verify the fix, say so explicitly and mark it unverified.
- Distinctive: line 171
Never imply verification you don't have.
- Distinctive: line 172
Every table and quoted block must be real captured output, not reconstructed from memory.
- Distinctive: line 187
Success criteria: every factual claim traces to captured evidence, and the "Not investigated" section is populated honestly.
- Distinctive: line 198
Use the established filing destination first, including a separate support tracker when context directs that route.
- Distinctive: line 218
Human checkpoint: Never open a pull request unprompted.
- Distinctive: line 226
If the user declines, the file remains the deliverable.
- Distinctive: line 228
Keep defect ownership, filing destination, and local report path distinct.
“Common” is measured: kept by at least 6 in 10 of the 29 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bug Report
Turn a defect into a report a maintainer can act on without a follow-up
conversation: evidence they can re-run, a root cause named with file:line
when established, verification status, and an honest account of what you did
not check. Unknown causes and unverified fixes are useful when labelled honestly.
Success artifact: a single .md file whose every factual claim traces to
output you actually captured. Filing it anywhere follows the user's intent and
applicable routing guidance (step 6); the local file alone is a complete outcome.
Inputs
$ARGUMENTS — the defect, the repo, or both. If neither is clear, ask what's
broken and which repo owns it before proceeding.
Also resolve the report location and filing destination from the request, applicable user preferences/memories, workspace/environment guidance, and agent context. Honor established overrides before choosing defaults; distinguish the repo containing the defect from the destination receiving the report. Do not require the user to repeat a location or filing instruction already established. If applicable instructions genuinely conflict, ask one focused question.
The discipline that makes these reports worth reading
The steps below are scaffolding. This section is the actual content. Apply judgment — these are failure modes to steer around, not boxes to tick.
Evidence is perishable — capture before you touch. Stuck processes, orphaned windows, open file descriptors, a tmp file mid-write: fixing or even poking at these destroys the evidence. Snapshot first, diagnose second, fix third.
A positive control is mandatory, not optional. Before concluding anything from an absence, prove the thing you're measuring can be present. A pass condition satisfied by absence is a false positive, not a pass.
Real example: a test asserted "no orphan process alive after SIGKILL" and printed PASS. No orphan had ever been created — the process under test never spawned. The harness even printed
cannot test the reap pathtwo lines earlier and reported PASS anyway. If the control didn't fire, the result is INCONCLUSIVE. Say so.
Change exactly one variable. Bundle in, bundle out. Patch applied, patch reverted. Everything else held constant, including the harness.
Verify fixes by running them, never by reading them. Reproduce → patch → re-run → confirm the symptom is gone. "The code now looks correct" is not evidence.
Read the code's own comments before proposing a fix. Maintainers often already rejected the obvious fix for a reason they wrote down.
Real example: a hook built raw dicts where typed models were declared. The obvious fix — use the typed models — was already rejected upstream in a docstring, because those models serialize an extra key the API rejects. The real bug was a warning filter that never matched. Proposing the obvious fix would have broken the wire format and burned the maintainer's time.
Your own tooling is a suspect. When a measurement looks strange — especially a constant count, or a value that changes every sample for no reason — check whether the instrument is producing it.
Real traps, both of which produced wrong findings before being caught: a process query whose filter string matched the query process itself (constant count of 1, new PID every sample, reads exactly like a respawn loop); and a binary not on
PATHreturning empty output that reads identically to "no matches found."
When you're wrong, separate what falls from what stands. A correction that retracts everything is as useless as one that retracts nothing. Name the invalidated claim, name what independently survives, and say why.
"Not investigated" is a required section. Analogous code paths you didn't test, hypotheses you couldn't confirm, platforms you couldn't reach. Label guesses as guesses — a hypothesis presented as a finding is worse than silence.
1. Capture live state
Snapshot relevant perishable state before touching anything: process, window, file/socket state, logs, and timestamps as needed. For deterministic failures, capture the minimal command, inputs, versions, and output instead of a broad machine inventory. Note the current time so ages can be computed later.
Rules:
- Do not fix, kill, or restart anything in this step.
- Preserve relevant raw evidence verbatim in private storage, outside public repositories and upload/artifact paths. Summarize and redact for the report.
- With no capture-location preference, use a task-owned private directory and verify it is untracked and excluded from uploads. Do not commit raw captures or infer privacy solely from a hidden/ignored directory name.
Artifacts: private raw captures — the source for traceable excerpts in step 5.
Success criteria: enough state captured that the defect could be described even if it vanished in the next minute.
2. Identify the target repo and pin the version
Resolve which repo owns the defect and the exact commit under test. Note the environment: OS, runtime versions, relevant package versions.
Rules:
- Check whether local edits or stale editable installs are shadowing the version you think you're testing. Confirm the working tree is clean before attributing behavior to upstream code.
Artifacts: repo, commit, environment — the report's metadata block.
Success criteria: you can state exactly what code produced the behavior.
3. Reproduce with a positive control
Build the smallest reproduction that triggers the defect, with a control proving the mechanism under test actually engaged.
Rules:
- If the control doesn't fire, the result is INCONCLUSIVE. Never a pass.
- Isolate to one variable. Re-run enough times to distinguish signal from flake — a decisive claim resting on a single trial is thin.
Artifacts: reproduction — commands and observed output.
Success criteria: the defect reproduces and the control fired, or the report records INCONCLUSIVE with the failed control, blocker, and missing observation.
4. Find root cause, then check it against the maintainer's intent
Trace to the specific mechanism and cite file:line. Read surrounding comments,
docstrings, and commit messages before forming a fix.
Rules:
- If your proposed fix contradicts something the code deliberately does, you have found a different bug than you think. Re-diagnose.
- Distinguish "works as designed, design is wrong" from "does not work as designed." They need different fixes and different framing.
Artifacts: root_cause, proposed_fix.
Success criteria: the mechanism is named precisely enough to find, or root cause is NOT DETERMINED with hypotheses clearly separated from findings.
5. Verify the fix, then write the report
When safe and within scope, apply the proposed fix in an isolated worktree or test environment at the pinned version, re-run the reproduction, and capture before/after evidence. Do not patch a live installation merely to complete a report. If verification is unavailable or unsafe, write an UNVERIFIED proposal with the blocker and the check needed; if no fix is known, say so.
Use ${SKILL_DIR}/templates/report-template.md for structure.
Write to the established report path/directory. With no preference, choose a
workspace-appropriate local report file, say where it is, and avoid overwriting
an existing report. Keep raw captures separate from this shareable artifact.
Rules:
- If you could not verify the fix, say so explicitly and mark it unverified. Never imply verification you don't have.
- Every table and quoted block must be real captured output, not reconstructed from memory. Redacted excerpts remain traceable to the private original.
- Redact credentials, tokens, private endpoints, sensitive user/machine data,
and unrelated PII before writing the shareable report or uploading evidence.
Mark omissions clearly, e.g.
<redacted: token>or<redacted: local path>; never include the sensitive value in a redaction note. Preserve details needed to reproduce without identifying the reporting machine. Public GitHub aliases and attribution already inherent in issue filing need not be removed. - Label root cause NOT DETERMINED, reproduction INCONCLUSIVE, and fix UNVERIFIED wherever applicable, including the summary. Never invent evidence to satisfy a heading. Record any authorized live mitigation and restoration separately.
- Include the method traps you hit — they save the next person the same hours.
Artifacts: report_path — the finished .md.
Success criteria: every factual claim traces to captured evidence, and the "Not investigated" section is populated honestly.
6. Decide where it goes
This is where the skill stops by default. The .md file is the deliverable.
Suggest confirming the destination and title before remote filing when intent
is unclear. This is guidance, not a mandatory extra approval round: a clear
request to file, or applicable standing user/environment/agent instructions,
can already settle that decision. Honor a decline or a report-only request.
Use the established filing destination first, including a separate support tracker when context directs that route. Do not redirect merely because a different repo accepts issues. With no routing override, use the defect's repo as the candidate destination; Issues being enabled alone is not filing intent.
For a GitHub destination, check what the destination actually accepts:
gh repo view <owner>/<repo> --json hasIssuesEnabled,isArchived,isFork,viewerPermissionThen apply exactly one branch:
| Repo state | Action |
| Destination accepts issues and is not archived | Follow established filing intent and that destination's intake/duplicate rules; report the URL if filed. Suggest confirmation if intent remains unclear. |
| Destination cannot accept issues | Check applicable guidance for an alternate support route. If none is established, retain the file and explain the available options; do not invent a routing policy. |
| An alternate tracker is established | Use its available, authorized intake workflow; do not assume GitHub commands apply. |
gh or the required intake capability is unavailable, or destination unresolved | Retain the file and explain the limitation; do not guess or claim submission. |
Human checkpoint: Never open a pull request unprompted. "Issues are off and PRs are possible" is a question for the user, never a decision you make for them. An affirmative answer to a different question does not authorize a PR.
Rules:
- Silence is not new authorization, but does not erase existing filing intent or applicable standing instructions. Ask only about a genuinely unsettled decision, not for ritual repetition of permission already supplied.
- If the user declines, the file remains the deliverable. That is a complete, successful outcome — not a failure.
- Keep defect ownership, filing destination, and local report path distinct. Reference the affected repo/version in the report even when filed elsewhere.
- Review redactions before remote submission. Do not attach private captures.
Artifacts: issue_url (only if filed).
Success criteria: the report exists in the appropriate local location, and any submission follows established intent and destination-specific guidance.
7. Hand off
Tell the user where the file is, what the headline finding is, whether the fix was verified, and what remains unchecked. If a gate stopped you, say which one and what would unblock it.
Success criteria: the user knows the outcome and any decision still waiting on them.
Other versions31 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 31
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- pipecat-ai/gradient-bang★ 420same name
- pixel-cellar/Claude-Code-Game-Studios★ 324same name
- oasm-platform/open-asm★ 267same name
- striderZA/OpenCodeGameStudios★ 93same name
- tranhieutt/software_development_department★ 71same name
- cenconq25/claude-code-app-studio★ 40same name
- CoralGame/Claude-Code-Game-Studios★ 19same name
- composio-community/support-skills★ 18same name
- dawn840705/codex-code-studios★ 17same name
21 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use setup-engine, team-audio and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CoralGameSkillsetup-engine
Configure the project's game engine and version. Pins the engine in CLAUDE.md, detects knowledge gaps, and populates engine reference docs via WebSearch when the version is beyond the LLM's training data.
Also in 13 projects that use this
CoralGameSkillteam-audio
Orchestrate audio team: audio-director + sound-designer + technical-artist + gameplay-programmer for full audio pipeline from direction to implementation.
Also in 13 projects that use this
lilangMaxSkillasset-spec
Generate per-asset visual specifications and AI generation prompts from GDDs, level docs, or character profiles. Produces structured spec files and updates the master asset manifest. Run after art bible and GDD/level design are approved, before production begins.
Also in 10 projects that use this
lilangMaxSkillcreate-control-manifest
After architecture is complete, produces a flat actionable rules sheet for programmers — what you must do, what you must never do, per system and per layer. Extracted from all Accepted ADRs, technical preferences, and engine reference docs. More immediately actionable than ADRs (which explain why).
Also in 10 projects that use this
- +4 more from CoralGame
- +4 more from lilangMax
In this repository32 other files it gives its agents.
- amplifier-philosophySkill
- module-developmentSkill
- python-standardsSkill
- adapt-skillSkill
- bet-sizerSkill
- code-reviewSkill
- council-hereSkill
- councilifySkill
- councilSkill
- cranky-old-samSkill
- create-demo-videoSkill
- crusty-old-engineerSkill
- engineering-patternsSkill
- image-visionSkill
- intent-keeperSkill
- mass-changeSkill
- monitorSkill
- outcome-cartographerSkill
- outcomistSkill
- personafySkill
- positioning-criticSkill
- product-council-hereSkill
- product-councilSkill
- restless-old-brianSkill
- retrospectiveSkill
- second-opinionSkill
- session-debugSkill
- skillifySkill
- skills-assistSkill
- tester-breakerSkill
- user-advocateSkill
- verification-disciplineSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

