LogoSkills

bug-report

Image analysis-based bug report generation and ZenHub issue automation

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/bug-report
Aliases/br
Categorykobic-development
MCP Serverszenhub

/bug-report โ€” ์Šคํฌ๋ฆฐ์ƒท๋งŒ ์ฃผ๋ฉด ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ ์ž๋™ ์ž‘์„ฑ#

ํ•œ๋งˆ๋””๋กœ#

์˜ค๋ฅ˜ ํ™”๋ฉด์„ ์บก์ฒ˜ํ•ด์„œ ๋˜์ง€๋ฉด, ๋ฌด์—‡์ด ์ž˜๋ชป๋๋Š”์ง€ ์•Œ์•„์„œ ๋ถ„์„ํ•˜๊ณ  ์ •์‹ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ์™€ ์ด์Šˆ(ZenHub/GitHub)๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๋ช…๋ น์ž…๋‹ˆ๋‹ค. "์ด ํ™”๋ฉด ์ด์ƒํ•œ๋ฐ?"๋ผ๊ณ  ์‚ฌ์ง„ ํ•œ ์žฅ ๋ณด์—ฌ์ฃผ๋ฉด, ์•Œ์•„์„œ ๋ณด๊ณ ์„œ๋กœ ์ •๋ฆฌํ•ด ์ฃผ๋Š” ๋น„์„œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ยท์–ธ์ œ ์“ฐ๋‚˜์š”#

  • ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•ด์„œ ์ด์Šˆ๋กœ ๋“ฑ๋กํ•ด์•ผ ํ•  ๋•Œ
  • ์Šคํฌ๋ฆฐ์ƒท๊ณผ ํ•จ๊ป˜ ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • QA(ํ’ˆ์งˆ ์ ๊ฒ€) ์ค‘ ๋ฐœ๊ฒฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ธฐ๊ณ  ์‹ถ์„ ๋•Œ

๋ฌด์—‡์„ ํ•ด์ฃผ๋‚˜์š”#

  • ์ด๋ฏธ์ง€ ๋ถ„์„: ์Šคํฌ๋ฆฐ์ƒท ์† ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€, ํ™”๋ฉด ์ƒํƒœ, ๊นจ์ง„ ๋ ˆ์ด์•„์›ƒ ๋“ฑ์„ ์ฝ์–ด ๋ƒ…๋‹ˆ๋‹ค.
  • ์ž๋™ ๋ถ„๋ฅ˜: ๋ฒ„๊ทธ ์ข…๋ฅ˜(UI/๊ธฐ๋Šฅ/ํฌ๋ž˜์‹œ/์„ฑ๋Šฅ/๋ฐ์ดํ„ฐ)์™€ ์‹ฌ๊ฐ๋„(๊ธด๊ธ‰~๋‚ฎ์Œ)๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์Šˆ ์ž๋™ ์ƒ์„ฑ: ZenHub/GitHub์— ์ œ๋ชฉยท๋ณธ๋ฌธยท๋ผ๋ฒจ๊นŒ์ง€ ๊ฐ–์ถ˜ ์ด์Šˆ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์˜ˆ) [Bug] ๊ฒฐ์ œ: ์ฃผ๋ฌธ ์ƒ์„ธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ ํ˜•ํƒœ์˜ ์ด์Šˆ #123
  • ์ƒํƒœ ์ •๋ฆฌ: ์‹ฌ๊ฐ๋„์— ๋”ฐ๋ผ ์ด์Šˆ๋ฅผ ์ ์ ˆํ•œ ์ง„ํ–‰ ๋‹จ๊ณ„(In Progress / Triage / Backlog)๋กœ ์ž๋™ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”#

# ๊ธฐ๋ณธ (์ด๋ฏธ์ง€ + ์„ค๋ช…)
/bug-report /tmp/error_screenshot.png  " ๊ฒฐ์ œ ์™„๋ฃŒ ํ›„ ์ฃผ๋ฌธ ์ƒ์„ธ๊ฐ€ ์•ˆ ๋ณด์ž„ " 

 # ํ…์ŠคํŠธ๋งŒ์œผ๋กœ
/bug-report  " ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๋ฐ˜์‘์ด ์—†์Œ " 

 # ์‹ฌ๊ฐ๋„ ์ง€์ •
/bug-report --severity critical  " ์•ฑ ์‹œ์ž‘ ์‹œ ํฌ๋ž˜์‹œ " 

 # ๋ฒ„๊ทธ ์ข…๋ฅ˜ ์ง€์ •
/bug-report --type ui /tmp/layout.png  " ๊ธด ํ…์ŠคํŠธ์—์„œ ํ™”๋ฉด์ด ๋„˜์นจ " 

 # ๋ณด๊ณ ์„œ๋งŒ ๋งŒ๋“ค๊ณ  ์ด์Šˆ๋Š” ์ƒ์„ฑํ•˜์ง€ ์•Š๊ธฐ
/bug-report --no-create  " ์ด๊ฑด ํ…Œ์ŠคํŠธ์šฉ ๋ฒ„๊ทธ "

์„ค๋ช…(bug_description)์€ ๊ผญ ํ•„์š”ํ•˜๊ณ , ์ด๋ฏธ์ง€๋Š” ์žˆ์œผ๋ฉด ๋” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. --severity(์‹ฌ๊ฐ๋„), --type(์ข…๋ฅ˜), --no-create(์ด์Šˆ ์ƒ์„ฑ ์ƒ๋žต)๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋‚˜์š”#

  1. ์ด๋ฏธ์ง€ ๋ถ„์„ โ€” ์Šคํฌ๋ฆฐ์ƒท์ด ์žˆ์œผ๋ฉด ๋จผ์ € ์ฝ์–ด์„œ ํ™”๋ฉด ์ƒํƒœ์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๋ฒ„๊ทธ ์ข…๋ฅ˜ยท์‹ฌ๊ฐ๋„๋ฅผ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ •๋ณด ์ˆ˜์ง‘ โ€” ์žฌํ˜„ ๋ฐฉ๋ฒ•, ๊ธฐ๋Œ€ํ–ˆ๋˜ ๊ฒฐ๊ณผ, ํ™˜๊ฒฝ(OSยท๊ธฐ๊ธฐยท์•ฑ ๋ฒ„์ „) ๋“ฑ ๋ถ€์กฑํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค.
  3. ์ด์Šˆ ์ƒ์„ฑ โ€” ์ œ๋ชฉยท๋ณธ๋ฌธยท๋ผ๋ฒจ์„ ๊ฐ–์ถฐ ZenHub/GitHub ์ด์Šˆ๋ฅผ ๋งŒ๋“ค๊ณ , ์‹ฌ๊ฐ๋„์— ๋งž๋Š” ์ง„ํ–‰ ๋‹จ๊ณ„๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.
  4. ๋งˆ๋ฌด๋ฆฌ ์•ˆ๋‚ด โ€” ๋งŒ๋“ค์–ด์ง„ ์ด์Šˆ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ๋‹ค์Œ ๋‹จ๊ณ„์ธ /dev:bugfix(์ˆ˜์ • ์‹œ์ž‘)๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์–ด ์ค๋‹ˆ๋‹ค.

โš™๏ธ ์ƒ์„ธ ์˜ต์…˜ยท์‹คํ–‰ ๋ช…์„ธ (๊ฐœ๋ฐœ์ž / AI ์—์ด์ „ํŠธ์šฉ)

Triggers#

  • When a bug is found and an issue needs to be filed
  • When writing a bug report with screenshots
  • When documenting issues found during QA

Context Trigger Pattern#

/bug-report [image_path] [bug_description]

Parameters#

ParameterRequiredDescriptionExample
image_pathโŒBug screenshot path/path/to/screenshot.png
bug_descriptionโœ…Brief description of the bug"Login button is not working"
--severityโŒSpecify severitycritical, high, medium, low
--typeโŒSpecify bug typeui, function, crash, performance, data
--no-createโŒReport only without issue creation-

Behavioral Flow#

Step 1: Image Analysis (when image is provided)#

## Image Analysis

Analyze screenshot using the Read tool:

1. **Identify UI state**
   - Error dialog displayed
   - Empty State screen
   - Loading state persisting
   - Layout broken

2. **Extract text**
   - Error messages
   - Screen title
   - Button text

3. **Bug classification inference**
   - Automatic bug type classification
   - Severity recommendation
   - Impact area identification

Step 2: Information Gathering#

## Information Gathering

Collect additional information via AskUserQuestion:

1. **Reproduction steps** (required)
   - State before bug occurred
   - Actions performed
   - When bug occurred

2. **Expected result** (required)
   - Expected result during normal operation

3. **Environment information** (optional)
   - OS version
   - Device
   - App version

4. **Severity confirmation** (after presenting analysis results)
   - ๐Ÿ”ด Critical
   - ๐ŸŸ  High
   - ๐ŸŸก Medium
   - ๐ŸŸข Low

Step 3: ZenHub Issue Creation#

## Issue Creation

Call mcp__zenhub__createGitHubIssue:

1. **Title generation**
   - Format: `[Bug] {screen_name}: {bug_summary}`
   - Crash: `[Crash] {screen_name}: {crash_situation}`

2. **Body creation**
   - Use full bug report template from TEMPLATES.md
   - Include image analysis results
   - Include reproduction steps, expected/actual results

3. **Label assignment**
   - `bug` (default)
   - `severity:{level}`
   - `area:{affected_area}`

4. **Pipeline movement** โ€” ๋ผ์ด๋ธŒ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ๋งŒ ๋ผ์šฐํŒ… (`Triage`/`Backlog` ์ปฌ๋Ÿผ์€ ์กด์žฌํ•˜์ง€ ์•Š์Œ; ์ด๋ฆ„์€ `getWorkspacePipelinesAndRepositories` ๋กœ ๊ฒ€์ฆ)
   - Critical โ†’ In Progress (์ฆ‰์‹œ ์ฐฉ์ˆ˜)
   - High โ†’ New Issues (ํŠธ๋ฆฌ์•„์ง€ ๋Œ€๊ธฐ)
   - Medium โ†’ Product Backlog
   - Low โ†’ Icebox

MCP Integration#

ActionMCP ToolPurpose
Issue creationmcp__zenhub__createGitHubIssueCreate GitHub issue
Pipeline movementmcp__zenhub__moveIssueToPipelineManage issue status
Label lookupmcp__zenhub__getWorkspacePipelinesAndRepositoriesLabel and pipeline info

Examples#

Basic usage (with image)#

/bug-report /tmp/error_screenshot.png  " Order details not showing after payment completion "

Text only#

/bug-report  " No response when clicking login button "

Specify severity#

/bug-report --severity critical  " Crash on app startup "

Specify bug type#

/bug-report --type ui /tmp/layout.png  " Overflow on long text "

Report only (no issue creation)#

/bug-report --no-create  " This is a test bug "

Output Format#

Image Analysis Result#

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  Image Analysis Result                                         โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                                                โ•‘
โ•‘  ๐Ÿ–ผ๏ธ Image: /tmp/screenshot.png                                 โ•‘
โ•‘                                                                โ•‘
โ•‘  ๐Ÿ“ Detected Issues:                                           โ•‘
โ•‘    1. Error dialog displayed                                   โ•‘
โ•‘    2.  " Network error "   message detected                         โ•‘
โ•‘                                                                โ•‘
โ•‘  ๐Ÿท๏ธ Suggested Classification:                                  โ•‘
โ•‘    - Type: Function Bug                                        โ•‘
โ•‘    - Severity: High                                            โ•‘
โ•‘    - Area: Backend/Network                                     โ•‘
โ•‘                                                                โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Issue Creation Complete#

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  Bug Report Created                                            โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘                                                                โ•‘
โ•‘  ๐Ÿ“‹ Issue: #123                                                โ•‘
โ•‘  ๐Ÿ“ Title: [Bug] Payment: Order details not displayed          โ•‘
โ•‘                                                                โ•‘
โ•‘  ๐Ÿท๏ธ Labels:                                                    โ•‘
โ•‘    - bug                                                       โ•‘
โ•‘    - severity:high                                             โ•‘
โ•‘    - area:backend                                              โ•‘
โ•‘                                                                โ•‘
โ•‘  ๐Ÿ“Š Pipeline: New Issues                                       โ•‘
โ•‘                                                                โ•‘
โ•‘  ๐Ÿ”— URL: https://github.com/coco-de/kobic/issues/123           โ•‘
โ•‘                                                                โ•‘
โ•‘  ๐Ÿ’ก Next Steps:                                                โ•‘
โ•‘    /dev:bugfix 123  # Start fix cycle                          โ•‘
โ•‘                                                                โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Reference Documents#

  • Skill: ${CLAUDE_PLUGIN_ROOT}/skills/bug-report-template/SKILL.md
  • Reference: ${CLAUDE_PLUGIN_ROOT}/skills/bug-report-template/REFERENCE.md
  • Templates: ${CLAUDE_PLUGIN_ROOT}/skills/bug-report-template/TEMPLATES.md

Key Rules#

  1. Image-first analysis: If an image is provided, analyze it first to understand context
  2. User confirmation: Present analysis results for severity and bug type, then confirm with user
  3. Structured report: Use templates to maintain consistent format
  4. Automatic labeling: Automatically assign labels matching bug characteristics
  5. Workflow integration: Guide to /dev:bugfix after issue creation