bug-capture

$npx mdskill add rohitg00/pro-workflow/bug-capture

Capture user-reported bugs as durable GitHub issues using project domain language.

  • Turns conversational bug reports into structured, refactor-proof GitHub issues.
  • Depends on GitHub CLI (gh) for issue creation and duplicate search.
  • Explores codebase vocabulary and glossary to write in project domain language.
  • Delivers a clean issue with expected vs actual behavior and reproduction steps.

SKILL.md

.github/skills/bug-captureView on GitHub ↗
---
name: bug-capture
description: Capture a user-reported defect as a durable GitHub issue written in the project's own domain language. Explores the codebase in parallel for context but never leaks file paths or line numbers into the issue. Use when the user reports a bug conversationally, runs a QA pass, or says "file an issue", "log this as a bug", "capture this".
---

# bug-capture

Turn a conversation into an issue that still reads correctly after a
major refactor.

## Flow

### 1. Listen, then clarify minimally

Let the user describe the problem in their own words. Ask at most two
short clarifying questions, drawn from:

- Expected behavior vs. actual behavior.
- Concrete reproduction steps if not already implied.
- Frequency: deterministic, intermittent, or one-off.

If the description already answers these, skip straight to filing. Over-
interviewing is a tax the reporter pays for your uncertainty.

### 2. Explore in parallel

While the user is answering, start a background exploration of the
relevant area. The goal is **not** to propose a fix. The goal is to
absorb the project's own vocabulary — the nouns and verbs the codebase
uses for this feature — so the issue reads like it was written by a
maintainer.

If the repo has a glossary file (common names: GLOSSARY.md,
UBIQUITOUS_LANGUAGE.md, docs/domain.md), read it first.

### 3. Check for duplicates before filing

Run `gh issue list --search "<key phrase>" --state all --limit 10`. If a
live or recently closed issue matches, surface it to the user and ask
whether to add a comment instead of opening a new issue. Do not silently
skip filing.

### 4. Decide: single issue or breakdown

Break down when the report contains two or more independent failure
modes that a different contributor could fix in parallel. Keep as one
when every symptom traces to a single wrong behavior.

For a breakdown, file in dependency order so each child issue can
reference a real parent number, and mark honest `Blocked by` links.
Avoid inventing dependencies to make the tree look tidier.

### 5. File with `gh issue create`

File without asking the user to review the draft. Send back the URLs.

#### Single-issue template

```
## What happened
<observed behavior, in domain terms>

## What I expected
<expected behavior>

## Reproduction
1. <step>
2. <step>
3. <step>

## Context
<anything that narrows where the bug lives, in domain terms — e.g.
"only affects the import path, not the export path">
```

#### Child-issue template

```
## Parent
#<parent-number>

## What is wrong
<one behavior, narrow slice>

## What I expected
<expected for this slice>

## Reproduction
1. <step>

## Blocked by
<#issue or "none — independent">

## Context
<notes that apply only to this slice>
```

### 6. Rules that apply to every issue body

- No file paths, line numbers, function names, or PR numbers. These go
  stale. Describe behavior, not code.
- Use the project's domain nouns, not generic tech terms. "The sync
  worker drops the patch" beats "`applyPatch()` throws".
- Reproduction steps are mandatory. If you cannot derive them, go back
  to the user once before filing.
- Thirty-second read target. Cut anything that does not help a
  maintainer decide whether to pick it up.

### 7. Keep going

After each issue, print the URL and ask whether there is a next one. Do
not batch multiple reports into one filing pass — each bug deserves its
own scoped issue.

More from rohitg00/pro-workflow

SkillDescription
agent-teamsCoordinate multiple Claude Code sessions as a team — lead + teammates with shared task lists, mailbox messaging, and file-lock claiming. Patterns for team sizing, task decomposition, and when to use teams vs sub-agents vs worktrees.
auto-setupAuto-configure quality gates, hooks, and settings for a new project. Detects project type and sets up appropriate tooling. Use when onboarding a new codebase.
batch-orchestrationDecompose large-scale changes into independent units and spawn parallel agents in isolated worktrees. Use for migrations, refactors, codemods, and any change touching 10+ files with the same pattern.
compact-guardSmart context compaction with state preservation. Saves critical files, task progress, and working state before compaction, restores after. Use before manual compact or when auto-compact triggers.
context-optimizerOptimize token usage and context management. Use when sessions feel slow, context is degraded, or you're running out of budget.
cost-trackerTrack session costs, set budget alerts, and optimize token spend. Use to check costs mid-session or set spending limits.
design-engineeringApply interface craft when building or reviewing UI - motion, easing, timing, springs, component feel, and visual foundations. Use when building a component, animation, transition, hover or press state, modal, drawer, toast, or when polishing an interface so it feels right. Says "make this feel better", "add an animation", "polish the UI", "review this component".
deslopRemove AI-generated code slop, unnecessary comments, and over-engineering from the current branch diff. Cleans up boilerplate, simplifies abstractions, strips defensive code, and in skill-file mode lints SKILL.md files for quality. Use when cleaning up code, simplifying, removing boilerplate, before committing, or when reviewing a skill before promoting it.
domain-modelingBuild the project's shared language and bounded contexts before writing code, so names stay consistent and the agent stops paraphrasing domain concepts. Produces a CONTEXT.md glossary and decision records. Use at the start of a project or feature, or when the codebase and the people describing it speak different languages.
file-watcherConfigure file watching hooks to auto-react to config changes, env file updates, and dependency modifications. Use to set up reactive workflows.