Agent skill

bug-reporter

Capture bug context, generate reports, and optionally create GitHub issues or share patterns

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/bug-reporter-jrc1883-popkit-claude

SKILL.md

Bug Reporter

Capture and report bugs with automatic context gathering, local logging, GitHub issue creation, and pattern sharing.

When to Use

  • User reports a bug or issue with /popkit:bug
  • Agent encounters repeated errors or gets stuck
  • Need to document an issue for later investigation
  • Want to share a bug pattern with the collective

Input

User provides:

  • Bug description
  • Optional flags: --issue, --share, --verbose, --no-context
  • Or subcommands: list, view <id>, clear

Process

1. Parse Request

Determine the action:

  • Default: Report new bug
  • list: List logged bugs
  • view: View specific bug
  • clear: Clear logs

2. Capture Context (for new bug)

Gather automatic context using hooks/utils/bug_context.py:

python
from bug_context import BugContextCapture, format_bug_report, format_github_issue

capture = BugContextCapture()
ctx = capture.capture(
    description=user_description,
    recent_tools=recent_tool_calls,
    agent_state=current_agent_state
)

Context includes:

  • Recent tool calls (last 10)
  • Files touched
  • Error messages detected
  • Agent progress and current task
  • Project type (language, framework)
  • Git status (branch, uncommitted changes)
  • Stuck patterns (same file edited 3+ times, build failures)

3. Generate Report

Format the bug report:

Bug Report
==========
ID: bug-2024-12-04-abc123
Time: 2024-12-04T10:30:00Z

Description: Agent got stuck on OAuth flow

Context:
  Language: TypeScript
  Framework: Next.js
  Branch: feature/oauth
  Uncommitted: 3 files

Recent Actions:
  1. Edit src/auth/oauth.ts
  2. Bash: npm run build (failed)
  3. Edit src/auth/oauth.ts (same file, 2nd time)

Errors Detected:
  [TypeError] Cannot read property 'token' of undefined

Stuck Patterns:
  - Same file edited 3 times: oauth.ts
  - Build command failed

Suggested Actions:
  - Consider stepping back and reviewing the approach
  - Check for null/undefined values

4. Output Actions

Based on flags:

Default - Log locally:

python
file_path = capture.save(ctx)
print(f"Logged to: {file_path}")

--issue - Create GitHub issue:

python
issue_body = format_github_issue(ctx)
# Use gh issue create with formatted body

--share - Share to collective (Pro/Team):

python
# Anonymize pattern
# Upload to collective learning database

5. Confirm to User

Show:

  • Bug ID
  • Actions taken (logged, issue created, shared)
  • Link to issue if created

Subcommand Handlers

list

python
bugs = capture.list_bugs(limit=10)
# Format as table with ID, date, description

view

python
ctx = capture.get_bug(bug_id)
if ctx:
    print(format_bug_report(ctx, verbose=True))

clear

python
cleared = capture.clear_bugs(before=date, bug_id=id)
print(f"Cleared {cleared} bug reports")

Anonymization for Sharing

When --share is used, anonymize before uploading:

Original Anonymized
<project>/src/auth/oauth.ts auth module
handleTokenRefresh() token refresh handler
API keys, secrets [REDACTED]
Variable names Generic terms
python
def anonymize_pattern(ctx: BugContext) -> Dict:
    return {
        "trigger": abstract_error(ctx.errors[0] if ctx.errors else None),
        "context": {
            "language": ctx.project.language,
            "framework": ctx.project.framework,
            "error_type": ctx.errors[0].error_type if ctx.errors else None
        },
        "stuck_patterns": ctx.stuck_patterns,
        "suggested_actions": ctx.suggested_actions
    }

Example Flows

Report Bug (Default)

User: /popkit:bug "Agent can't find the right file"

[Capturing context...]
- Recent tools: 8 calls
- Files touched: 4
- Errors: 1 (ENOENT)
- Git: feature/search branch

Bug Report
==========
ID: bug-2024-12-04-def456
...

Logged to: .claude/bugs/bug-2024-12-04-def456.json

Create GitHub Issue

User: /popkit:bug "Tests failing after refactor" --issue

[Capturing context...]
[Creating GitHub issue...]

Bug Report Created
==================
ID: bug-2024-12-04-ghi789
GitHub Issue: #123
URL: https://github.com/user/repo/issues/123

Logged locally and issue created.

Share Pattern

User: /popkit:bug "OAuth token refresh failing" --share

[Capturing context...]
[Anonymizing pattern...]
[Uploading to collective...]

Bug Report
==========
ID: bug-2024-12-04-jkl012
Pattern shared: Yes (anonymized)
Collective ID: pattern-abc123

Thank you for contributing to the collective learning database!

Integration Points

Component Purpose
hooks/utils/bug_context.py Context capture and formatting
.claude/bugs/ Local bug storage
power-mode/insight_embedder.py Pattern sharing
gh issue create GitHub issue creation

Output Style

Use a clear, structured format:

  • Show bug ID prominently
  • List context in organized sections
  • Highlight errors and stuck patterns
  • Provide actionable suggestions
  • Confirm what actions were taken

Didn't find tool you were looking for?

Be as detailed as possible for better results