Dotfiles usage-pattern-analyzer

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/usage-pattern-analyzer" ~/.claude/skills/kim-kyoung-oh-dotfiles-usage-pattern-analyzer && rm -rf "$T"
manifest: .claude/skills/usage-pattern-analyzer/SKILL.md
source content

Usage Pattern Analyzer Skill

개요

Claude Code 세션 로그 및 stats-cache.json을 분석하여 도구 사용 패턴, 시간대별 생산성, 반복 작업을 파악하고, 스킬/에이전트 자동화 제안을 제공하는 skill.

사용 방식

/usage-pattern-analyzer            # 전체 패턴 분석
/usage-pattern-analyzer tools      # 도구 사용 패턴만
/usage-pattern-analyzer time       # 시간대별 생산성만
/usage-pattern-analyzer repeat     # 반복 작업 감지만
/usage-pattern-analyzer weekly     # 이번 주 데이터만 분석

경로 정보

항목경로
stats-cache
~/.claude/stats-cache.json
history
~/.claude/history.jsonl
transcripts
~/.claude/transcripts/*.jsonl
세션 로그
~/.claude/projects/[encoded-path]/*.jsonl
출력
~/OneDrive/my-obsidian-vault/analytics/patterns/

분석 영역

1. 도구 사용 패턴 (Tools)

분석 항목

항목설명
도구별 사용 빈도Read, Edit, Write, Bash, Grep, Glob 등
도구 조합 패턴자주 함께 사용되는 도구 세트
파일 유형별 도구.ts → Edit, .md → Write 등
도구 사용 추이시간에 따른 도구 사용 변화

추출 방법

# 세션에서 도구 사용 빈도 추출
cat session.jsonl | jq -r '
  select(.type == "assistant") |
  .message.content[]? |
  select(.type == "tool_use") |
  .name
' | sort | uniq -c | sort -rn

# 도구별 대상 파일 유형
cat session.jsonl | jq -r '
  select(.type == "assistant") |
  .message.content[]? |
  select(.type == "tool_use" and (.name == "Edit" or .name == "Write")) |
  .input.file_path
' | xargs -I{} basename {} | sed 's/.*\.//' | sort | uniq -c

출력 형식

## 도구 사용 패턴

### 전체 사용 빈도

| 도구 | 사용 횟수 | 비율 |
|-----|---------|-----|
| Read | 450 | 35% |
| Edit | 280 | 22% |
| Grep | 200 | 16% |
| Bash | 180 | 14% |
| Write | 100 | 8% |
| Glob | 65 | 5% |

### 도구 조합 패턴

| 패턴 | 빈도 | 설명 |
|-----|-----|------|
| Read → Edit | 180 | 파일 읽고 수정 |
| Grep → Read | 120 | 검색 후 파일 읽기 |
| Read → Read → Edit | 85 | 여러 파일 확인 후 수정 |

### 파일 유형별 도구

| 확장자 | 주요 도구 | 빈도 |
|-------|---------|-----|
| .ts | Edit | 120 |
| .md | Write | 80 |
| .json | Read | 60 |

2. 시간대별 생산성 (Time)

분석 항목

항목설명
시간대별 세션 수아침/오후/저녁 분포
시간대별 도구 사용시간대에 따른 작업 유형
요일별 패턴요일에 따른 작업량 변화
피크 시간가장 활발한 시간대

데이터 소스

# stats-cache.json 시간대별 분포
cat ~/.claude/stats-cache.json | jq '.hourlyDistribution'

# 세션별 시작 시간 추출
for session in ~/.claude/projects/*/*.jsonl; do
  jq -r '.[0].timestamp' "$session" 2>/dev/null
done | cut -c12-13 | sort | uniq -c

출력 형식

## 시간대별 생산성

### 시간대별 세션 분포

| 시간대 | 세션 수 | 비율 | 그래프 |
|-------|--------|-----|--------|
| 06-09 | 15 | 10% | ██ |
| 09-12 | 45 | 30% | ██████ |
| 12-15 | 35 | 23% | █████ |
| 15-18 | 40 | 27% | █████ |
| 18-21 | 12 | 8% | ██ |
| 21-00 | 3 | 2% | █ |

### 요일별 분포

| 요일 | 세션 수 | 평균 시간 |
|-----|--------|----------|
| 월 | 28 | 3h 20m |
| 화 | 32 | 3h 45m |
| 수 | 30 | 3h 30m |
| 목 | 25 | 3h 00m |
| 금 | 22 | 2h 45m |

### 피크 생산성 시간

> **가장 활발한 시간**: 09:00 - 11:00 (평균 세션 15개/주)
> **가장 집중적인 작업**: 10:00 - 11:00 (Edit 도구 가장 많이 사용)

3. 반복 작업 감지 (Repeat)

분석 항목

항목설명
반복 명령어동일/유사 Bash 명령 반복
반복 파일 패턴같은 파일 반복 수정
반복 질문유사한 질문 반복
자동화 후보스킬/에이전트로 자동화 가능한 작업

추출 방법

# 반복 Bash 명령 추출
cat ~/.claude/projects/*/*.jsonl | jq -r '
  select(.type == "assistant") |
  .message.content[]? |
  select(.type == "tool_use" and .name == "Bash") |
  .input.command
' | sort | uniq -c | sort -rn | head -20

# 반복 사용자 질문 추출 (history.jsonl)
cat ~/.claude/history.jsonl | jq -r '.message' | sort | uniq -c | sort -rn | head -20

출력 형식

## 반복 작업 감지

### 반복 명령어 (자동화 후보)

| 명령어 패턴 | 빈도 | 제안 |
|-----------|-----|------|
| `npm run test` | 45 | 테스트 자동화 스킬 |
| `git status && git diff` | 38 | git 워크플로우 스킬 |
| `find ... -name "*.ts"` | 25 | 파일 검색 스킬 |

### 반복 파일 수정

| 파일 | 수정 횟수 | 패턴 |
|-----|---------|-----|
| src/index.ts | 28 | 진입점 수정 |
| package.json | 22 | 의존성 추가 |
| README.md | 15 | 문서 업데이트 |

### 자동화 제안

1. **테스트 실행 스킬**
   - 패턴: `npm run test`, `npm test`, `jest`
   - 빈도: 45회/주
   - 제안: `/test` 스킬로 자동화

2. **Git 커밋 워크플로우**
   - 패턴: `git status` → `git diff` → `git add` → `git commit`
   - 빈도: 38회/주
   - 제안: `/commit` 스킬 활용도 증가

3. **파일 검색 최적화**
   - 패턴: 반복적인 find/grep 조합
   - 빈도: 25회/주
   - 제안: Explore 에이전트 활용

종합 리포트

출력 파일

analytics/patterns/YYYY-MM-DD-patterns.md

---
created: {DATE}
type: usage-pattern
tags:
  - analytics/patterns
  - analytics/productivity
---

# Claude Code 사용 패턴 분석

> 분석 기간: {START_DATE} ~ {END_DATE}
> 총 세션: {TOTAL_SESSIONS}개

## 요약

| 항목 | 값 |
|-----|-----|
| 가장 많이 사용한 도구 | Read (35%) |
| 피크 생산성 시간 | 09:00-11:00 |
| 자동화 가능 작업 | 3개 |
| 권장 개선 사항 | 2개 |

{도구 사용 패턴 섹션}

{시간대별 생산성 섹션}

{반복 작업 감지 섹션}

## 개선 권장사항

1. **Explore 에이전트 활용 증가**
   - 현재 직접 Grep/Glob 사용 빈도 높음
   - Explore 에이전트로 컨텍스트 절약 가능

2. **스킬 활용도 개선**
   - `/commit` 스킬 활용률: 60%
   - 수동 git 명령 감소 권장

---

*Generated by usage-pattern-analyzer skill*

stats-cache.json 구조 참조

{
  "totalSessions": 150,
  "totalTokens": 2500000,
  "hourlyDistribution": {
    "09": 45,
    "10": 52,
    "11": 38,
    ...
  },
  "toolUsage": {
    "Read": 450,
    "Edit": 280,
    "Bash": 180,
    ...
  },
  "projectStats": {
    "project-a": { "sessions": 50, "tokens": 800000 },
    ...
  }
}

에러 처리

  • stats-cache.json 없음: 세션 로그에서 직접 집계
  • 데이터 부족: "분석에 충분한 데이터 없음" 반환
  • 파싱 오류: 해당 파일 건너뛰고 계속

관련 Skill

  • weekly-claude-analytics
    : 주간 종합 분석
  • project-time-tracker
    : 프로젝트별 시간 추적
  • learning-tracker
    : 학습 내용 추적