Dotfiles issue-bug-report

에러 로그, 스택 트레이스, 시스템 장애 정보를 분석하여 구조화된 버그 리포트를 자동 생성.

install
source · Clone the upstream repo
git clone https://github.com/KIM-KYOUNG-OH/dotfiles
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/KIM-KYOUNG-OH/dotfiles "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/issue-bug-report" ~/.claude/skills/kim-kyoung-oh-dotfiles-issue-bug-report && rm -rf "$T"
manifest: .claude/skills/issue-bug-report/SKILL.md
source content

Bug Report Generator

에러 로그, 스택 트레이스, 시스템 장애 정보를 분석하여 구조화된 버그 리포트를 자동 생성하는 스킬입니다.

실행 절차

1. 정보 수집

다음 정보를 사용자에게 대화형으로 수집합니다:

  • 프로젝트명: 버그가 발생한 프로젝트 이름
  • 에러 로그: 전체 에러 로그 또는 스택 트레이스
  • 재현 단계: 버그를 재현하는 방법
  • 환경 정보: OS, 버전, 라이브러리 버전 등
  • 예상 동작: 정상적으로 동작해야 하는 방식
  • 실제 동작: 실제로 발생한 문제
  • 심각도: Critical / High / Medium / Low

2. 로그 분석

수집된 정보를 기반으로:

  1. 에러 타입 식별: 에러 메시지와 스택 트레이스에서 에러 타입 파악
  2. 발생 위치 특정: 코드상에서 에러가 발생한 정확한 위치 추적
  3. 호출 스택 분석: 함수 호출 경로를 추적하여 전체 흐름 파악
  4. 관련 코드 검토: 필요시 코드베이스 검색하여 관련 코드 확인

3. 근본 원인 분석

  • 직접 원인: 에러가 발생한 직접적인 이유
  • 근본 원인: 왜 그런 상황이 발생했는지 근본적인 원인
  • 영향 범위: 이 버그가 시스템의 다른 부분에 미치는 영향

4. 해결 방안 제시

  • 임시 해결책 (Workaround): 즉시 적용 가능한 우회 방법
  • 근본 해결책 (Fix): 근본 원인을 해결하는 방법
  • 예방 방안: 향후 유사한 문제를 방지하는 방법

5. 문서 생성 및 저장

분석 결과를 구조화된 마크다운 문서로 생성하고, Read 도구로

~/.claude/policies/obsidian-document-policy.md
를 읽어 vault 경로, 파일명 규칙, 태그 체계, frontmatter 구조를 확인한 후 Obsidian vault에 저장합니다.

버그 리포트 템플릿

# Bug Report: {버그 제목}

## 요약

{버그에 대한 간단한 설명}

## 환경 정보

- **OS**: {운영체제}
- **버전**: {애플리케이션 버전}
- **라이브러리/프레임워크**: {주요 의존성 버전}
- **발생 시각**: {YYYY-MM-DD HH:mm:ss}

## 재현 단계

1. {첫 번째 단계}
2. {두 번째 단계}
3. {세 번째 단계}

## 예상 동작

{정상적으로 동작해야 하는 방식}

## 실제 동작

{실제로 발생한 문제}

## 에러 로그

{전체 에러 로그 또는 스택 트레이스}


## 분석

### 에러 타입

{에러 타입 및 의미}

### 발생 위치

- **파일**: {파일명}:{줄번호}
- **함수/메서드**: {함수명}
- **클래스**: {클래스명}

### 호출 스택

{호출 스택 분석}


### 근본 원인

{근본 원인에 대한 상세 분석}

### 영향 범위

{이 버그가 시스템에 미치는 영향}

## 해결 방안

### 임시 해결책 (Workaround)

{즉시 적용 가능한 우회 방법}

### 근본 해결책 (Fix)

{근본 원인을 해결하는 방법}

**변경이 필요한 코드**:

```language
{수정 전 코드}

수정 후:

{수정 후 코드}

예방 방안

{향후 유사한 문제를 방지하는 방법}

추가 정보

관련 이슈

  • {관련 이슈 링크 또는 설명}

참고 자료

  • {참고할 만한 문서, 스택오버플로우 등}

다음 액션

  • {해야 할 작업 1}
  • {해야 할 작업 2}
  • {해야 할 작업 3}

## 문서 저장

버그 리포트 작성 완료 후, Read 도구로 `~/.claude/policies/obsidian-document-policy.md`를 읽어 저장 규칙을 확인하고 다음과 같이 저장합니다:

1. **프로젝트명 확인**: 사용자에게 프로젝트명 재확인
2. **Frontmatter 생성**:
   - `type`: `bug-report`
   - `severity`: 사용자가 제공한 심각도
   - `status`: `New`
   - **태그**: `doctype/bug-report`, `status/new`, `project/{프로젝트명}`, `topic/{관련기술}`
3. **파일명**: `bug-report-{YYYY-MM-DD_HH-mm}.md`
4. **저장 경로**: `~/OneDrive/my-obsidian-vault/002-PROJECTS/{프로젝트명}/`

자세한 저장 규칙은 `~/.claude/policies/obsidian-document-policy.md` 참조.

## 분석 시 주의사항

1. **객관적 사실 기반**: 추측보다는 로그와 코드에 기반한 분석
2. **명확한 근거 제시**: 각 분석 항목에 대해 근거를 명시
3. **재현 가능성**: 다른 사람도 동일한 방법으로 버그를 재현할 수 있도록 작성
4. **코드 레퍼런스**: 관련 코드는 파일명과 줄번호를 명시

## 제목 작성 규칙

- **형식**: "Bug Report: [버그의 핵심 문제를 명확히 설명]"
- **예시**:
  - "Bug Report: NullPointerException in UserService.login()"
  - "Bug Report: 결제 완료 후 주문 상태 업데이트 실패"

## 실행 예시

User: 버그 리포트 만들어줘 Assistant:

  1. [정보 수집] 프로젝트명, 에러 로그, 재현 단계 등 질문
  2. [로그 분석] 에러 타입, 발생 위치, 호출 스택 분석
  3. [근본 원인] 직접 원인, 근본 원인, 영향 범위 파악
  4. [해결 방안] 임시 해결책, 근본 해결책, 예방 방안 제시
  5. [문서 생성] Read
    ~/.claude/policies/obsidian-document-policy.md
    후 저장