Usage Pattern Analyzer Skill
개요
Claude Code 세션 로그 및 stats-cache.json을 분석하여 도구 사용 패턴, 시간대별 생산성, 반복 작업을 파악하고, 스킬/에이전트 자동화 제안을 제공하는 skill.
사용 방식
bash
/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 등 |
| 도구 사용 추이 | 시간에 따른 도구 사용 변화 |
추출 방법
bash
# 세션에서 도구 사용 빈도 추출
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
출력 형식
markdown
## 도구 사용 패턴 ### 전체 사용 빈도 | 도구 | 사용 횟수 | 비율 | |-----|---------|-----| | 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)
분석 항목
| 항목 | 설명 |
|---|---|
| 시간대별 세션 수 | 아침/오후/저녁 분포 |
| 시간대별 도구 사용 | 시간대에 따른 작업 유형 |
| 요일별 패턴 | 요일에 따른 작업량 변화 |
| 피크 시간 | 가장 활발한 시간대 |
데이터 소스
bash
# 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
출력 형식
markdown
## 시간대별 생산성 ### 시간대별 세션 분포 | 시간대 | 세션 수 | 비율 | 그래프 | |-------|--------|-----|--------| | 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
# 반복 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
출력 형식
markdown
## 반복 작업 감지 ### 반복 명령어 (자동화 후보) | 명령어 패턴 | 빈도 | 제안 | |-----------|-----|------| | `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
markdown
---
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 구조 참조
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: 학습 내용 추적