session-inspector

安装量: 62
排名: #11996

安装

npx skills add https://github.com/dagster-io/erk --skill session-inspector
Session Inspector
Overview
Session Inspector provides comprehensive tools for inspecting Claude Code session logs stored
in
~/.claude/projects/
. The skill enables:
Discovering and listing sessions for any project/worktree
Preprocessing sessions to readable XML format
Analyzing context window consumption
Extracting plans from sessions
Creating plan PRs from session content
Debugging agent subprocess execution
Understanding the two-stage extraction pipeline
When to Use
Invoke this skill when users:
Ask what sessions exist for a project or worktree
Want to find a specific session by ID or content
Need to analyze context window consumption
Ask about tool call patterns or frequencies
Need to debug agent subprocess failures
Want to extract plans from sessions
Ask about session history or previous conversations
Need to understand session preprocessing or extraction
Quick Reference: CLI Commands
All commands invoked via
erk exec
:
Command
Purpose
list-sessions
List sessions with metadata for current worktree
preprocess-session
Convert JSONL to compressed XML
extract-latest-plan
Extract most recent plan from session
create-pr-from-session
Create plan PR from session plan
extract-session-from-issue
Extract session content from GitHub issue
Slash Commands
Command
Purpose
/erk:sessions-list
Display formatted session list table
/local:analyze-context
Analyze context window usage across sessions
Core Capabilities
1. List Sessions
erk
exec
list-sessions
[
--limit N
]
[
--min-size BYTES
]
Options:
--limit
Maximum sessions to return (default: 10)
--min-size
Minimum file size in bytes to filter tiny sessions (default: 0)
Output includes:
Branch context (current_branch, trunk_branch, is_on_trunk)
Current session ID from SESSION_CONTEXT env var
Sessions array with: session_id, mtime_display, mtime_relative, size_bytes, summary, is_current
Project directory path and filtered count
2. Preprocess Session to XML
erk
exec
preprocess-session
<
log-path
>
[
OPTIONS
]
Options:
--session-id
Filter entries to specific session ID
--include-agents/--no-include-agents
Include agent logs (default: True)
--no-filtering
Disable filtering optimizations
--stdout
Output to stdout instead of temp file Optimizations applied: Empty/warmup session filtering Documentation deduplication (hash markers) Tool parameter truncation (>200 chars) Tool result pruning (first 30 lines, preserves errors) Log discovery operation filtering 3. Extract Plan from Session erk exec extract-latest-plan [ --session-id SESSION_ID ] Extracts most recent plan from session. Uses session-scoped lookup via slug field, falls back to mtime-based lookup if no session-specific plan found. 4. Create Plan PR from Session erk exec create-pr-from-session [ --session-id SESSION_ID ] Extracts plan and creates plan PR with session content. Returns JSON with issue_number and issue_url. 5. Render Session for GitHub erk exec render-session-content --session-file < path

[ --session-label LABEL ] [ --extraction-hints HINTS ] Renders session XML as GitHub comment blocks with automatic chunking for large content. 6. Extract Session from GitHub Issue erk exec extract-session-from-issue < issue-number

[ --output PATH ] [ --session-id ID ] Extracts and combines chunked session content from GitHub issue comments. Directory Structure ~/.claude/projects/ ├── -Users-foo-code-myapp/ ← Encoded project path │ ├── abc123-def456.jsonl ← Main session log │ ├── xyz789-ghi012.jsonl ← Another session │ ├── agent-17cfd3f4.jsonl ← Agent subprocess log │ └── agent-2a3b4c5d.jsonl ← Another agent log Path encoding: Prepend - , replace / and . with - Example: /Users/foo/code/myapp → -Users-foo-code-myapp Session ID Session IDs are passed explicitly to CLI commands via --session-id options. The typical flow: Hook receives session context via stdin JSON from Claude Code Hook outputs 📌 session: reminder to conversation Agent extracts session ID from reminder text Agent passes session ID as explicit CLI parameter Example: erk exec list-sessions --session-id abc123-def456 Two-Stage Extraction Pipeline The extraction system uses a two-stage pipeline: Stage 1: Mechanical Reduction (Deterministic) Drop file-history-snapshot entries Strip usage metadata Remove empty text blocks Compact whitespace (3+ newlines → 1) Deduplicate assistant messages with tool_use Output: Compressed XML Stage 2: Haiku Distillation (Optional, Semantic) Remove noise (log discovery, warmup content) Deduplicate semantically similar blocks Prune verbose outputs Preserves errors, stack traces, warnings Output: Semantically refined XML Session Selection Logic The auto_select_sessions() function uses intelligent rules: On trunk: Use current session only Current session trivial (<1KB) + substantial sessions exist: Auto-select substantial Current session substantial (>=1KB): Use it alone No substantial sessions: Return current even if trivial Scratch Storage Session-scoped files stored in .erk/scratch/sessions// : from erk_shared . scratch import get_scratch_dir , write_scratch_file scratch_dir = get_scratch_dir ( session_id ) file_path = write_scratch_file ( content , session_id = session_id , suffix = ".xml" ) Common Tasks Find What Happened in a Session List sessions: erk exec list-sessions Find by summary or time Preprocess: erk exec preprocess-session --stdout | head -500 Debug Context Blowout Run /local:analyze-context Check token breakdown by category Look for duplicate reads or large tool results Extract Plan for Implementation erk exec extract-latest-plan --session-id < id

Create Issue from Session Plan erk exec create-pr-from-session --session-id < id

Find Agent Subprocess Logs

Compute project dir using Claude Code's path encoding (replace / and . with -)

PROJECT_DIR

" $HOME /.claude/projects/ $( pwd | sed 's|/|-|g; s|.|-|g' ) " ls -lt " $PROJECT_DIR " /agent-*.jsonl | head -10 Check for Errors in Agent cat agent- < id

.jsonl | jq 'select(.message.is_error == true)' Resources references/ tools.md - Complete CLI commands and jq analysis recipes format.md - JSONL format specification and entry types extraction.md - erk_shared extraction module API reference Load references when users need detailed command syntax, format documentation, or programmatic access to extraction capabilities. Code Dependencies This skill documents capabilities that primarily live in: CLI commands: packages/erk-cli/src/erk_cli/commands/ Shared library: packages/erk-shared/src/erk_shared/extraction/ GitHub metadata: packages/erk-shared/src/erk_shared/github/metadata.py Scratch storage: packages/erk-shared/src/erk_shared/scratch/

返回排行榜