Claude Code Plugins

Community-maintained marketplace

Feedback

pop-bug-reporter

@jrc1883/popkit-claude
0
0

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

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name bug-reporter
description Capture bug context, generate reports, and optionally create GitHub issues or share patterns

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:

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:

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

--issue - Create GitHub issue:

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

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

# 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

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

view

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

clear

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
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