history-insight
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseHistory Insight
History Insight
Claude Code 세션 히스토리를 분석하고 인사이트를 추출합니다.
分析Claude Code会话历史并提取洞察。
Data Location
数据位置
~/.claude/projects/<encoded-cwd>/*.jsonlPath Encoding: →
/Users/foo/project-Users-foo-project상세 파일 포맷:${baseDir}/references/session-file-format.md
~/.claude/projects/<encoded-cwd>/*.jsonl路径编码: →
/Users/foo/project-Users-foo-project详细文件格式:${baseDir}/references/session-file-format.md
Execution Algorithm
执行算法
Step 1: Ask Scope [MANDATORY]
步骤1:确认范围 [必填]
스코프 결정:
-
명시된 경우 (AskUserQuestion 생략 가능):
- "현재 프로젝트만" / "이 프로젝트" →
current_project - "모든 세션" / "전체" →
all_sessions
- "현재 프로젝트만" / "이 프로젝트" →
-
명시되지 않은 경우 - AskUserQuestion 호출:
question: "세션 검색 범위를 선택하세요" options: - "현재 프로젝트만" → ~/.claude/projects/<encoded-cwd>/*.jsonl - "모든 Claude Code 세션" → ~/.claude/projects/**/*.jsonl
确定范围:
-
若已明确指定(可跳过AskUserQuestion):
- "仅当前项目" / "此项目" →
current_project - "所有会话" / "全部" →
all_sessions
- "仅当前项目" / "此项目" →
-
若未明确指定 - 调用AskUserQuestion:
question: "请选择会话搜索范围" options: - "仅当前项目" → ~/.claude/projects/<encoded-cwd>/*.jsonl - "所有Claude Code会话" → ~/.claude/projects/**/*.jsonl
Step 2: Find Session Files
步骤2:查找会话文件
bash
undefinedbash
undefinedCurrent project only
仅当前项目
find ~/.claude/projects/<encoded-cwd> -name "*.jsonl" -type f
find ~/.claude/projects/<encoded-cwd> -name "*.jsonl" -type f
All sessions (모든 프로젝트)
所有会话(全部项目)
find ~/.claude/projects -name "*.jsonl" -type f
**날짜 필터링**: 파일의 mtime(수정시간) 확인 후 필터. OS별 `stat` 옵션 다름:
- macOS: `stat -f "%Sm" -t "%Y-%m-%d" <file>`
- Linux: `stat -c "%y" <file>`
---find ~/.claude/projects -name "*.jsonl" -type f
**日期过滤:** 检查文件的mtime(修改时间)后进行过滤。不同OS的`stat`选项不同:
- macOS: `stat -f "%Sm" -t "%Y-%m-%d" <file>`
- Linux: `stat -c "%y" <file>`
---Step 3: Process Sessions
步骤3:处理会话
Decision Tree
决策树
Session files found?
├─ No → Error: "No sessions found"
└─ Yes → How many files?
├─ 1-3 files → Direct Read + parse
└─ 4+ files → Batch Extract Pipeline找到会话文件?
├─ 否 → 错误:"未找到会话"
└─ 是 → 文件数量有多少?
├─ 1-3个文件 → 直接读取并解析
└─ 4个及以上文件 → 批量提取流程1-3 Files
1-3个文件
직접 Read로 JSONL 파싱. 파일이 크면(≥5000 tokens) 사용:
extract-session.shbash
${baseDir}/scripts/extract-session.sh <session.jsonl>直接读取并解析JSONL。若文件过大(≥5000 tokens),请使用:
extract-session.shbash
${baseDir}/scripts/extract-session.sh <session.jsonl>4+ Files: Batch Extract Pipeline
4个及以上文件:批量提取流程
- 캐시 디렉토리 생성 ()
/tmp/cc-cache/<analysis-name>/ - 세션 목록 저장 ()
sessions.txt - jq로 메시지 일괄 추출 ()
user_messages.txt - 정리 및 필터링 ()
clean_messages.txt - Task(opus)로 종합 분석
- 创建缓存目录 ()
/tmp/cc-cache/<analysis-name>/ - 保存会话列表 ()
sessions.txt - 使用jq批量提取消息 ()
user_messages.txt - 整理及过滤 ()
clean_messages.txt - 使用Task(opus)进行综合分析
파일이 너무 클 때: 병렬 배치 분석
文件过大时:并行批量分析
clean_messages.txt-
파일 분할:bash
split -l 2000 clean_messages.txt /tmp/cc-cache/<name>/batch_ -
병렬 Task(opus) 호출:
Task(subagent_type="general-purpose", model="opus", run_in_background=true) prompt: "batch_XX 파일을 읽고 주제/패턴 요약해줘" -
결과 병합: Task(opus)로 종합
当过大导致读取失败时:
clean_messages.txt-
文件分割:bash
split -l 2000 clean_messages.txt /tmp/cc-cache/<name>/batch_ -
并行调用Task(opus):
Task(subagent_type="general-purpose", model="opus", run_in_background=true) prompt: "读取batch_XX文件并总结主题/模式" -
结果合并:使用Task(opus)进行综合
Step 4: Report Results
步骤4:报告结果
markdown
undefinedmarkdown
undefinedSession Capture Complete
会话捕获完成
- Sessions: N files processed
- Messages: X total, Y after filter
- 会话: 已处理N个文件
- 消息: 总计X条,过滤后Y条
Extracted Insights
提取的洞察
[분석 결과]
---[分析结果]
---Error Handling
错误处理
| Scenario | Response |
|---|---|
| No session files found | "No session files found for this project." |
| File too large | Auto-preprocess with extract-session.sh |
| jq not installed | "Error: jq is required. Install with: brew install jq" |
| Task failed | "Warning: Could not process [file]. Skipping." |
| 0 relevant sessions | "No sessions matched your criteria." |
| 场景 | 响应 |
|---|---|
| 未找到会话文件 | "未找到此项目的会话文件。" |
| 文件过大 | 使用extract-session.sh自动预处理 |
| 未安装jq | "错误:需要jq。请通过以下命令安装:brew install jq" |
| Task执行失败 | "警告:无法处理[文件]。将跳过该文件。" |
| 0个相关会话 | "没有会话符合您的条件。" |
Security Notes
安全注意事项
- 출력에 전체 경로 노출 금지 (prefix 사용)
~
- 禁止在输出中暴露完整路径(使用前缀)
~
Related Resources
相关资源
- - JSONL 압축 (thinking, tool_use 제거)
${baseDir}/scripts/extract-session.sh - - JSONL 구조 및 파싱
${baseDir}/references/session-file-format.md
- - JSONL压缩(移除thinking、tool_use内容)
${baseDir}/scripts/extract-session.sh - - JSONL结构及解析
${baseDir}/references/session-file-format.md