PluginBench
Skill
Review
Audit score 70

session-analyzer

ai-native-camp/camp-2

Validate Claude Code session behavior against SKILL.md specifications post-execution.

What is session-analyzer?

Post-hoc analysis tool for verifying that completed Claude Code sessions executed skills correctly. Use this when you have a session ID and want to check if subagents, hooks, tools, and artifacts behaved as specified in a SKILL.md file.

  • Extracts and parses session logs from ~/.claude/ to reconstruct execution flow
  • Analyzes SKILL.md to build expected behavior checklist for subagents, hooks, and tools
  • Compares expected vs actual component invocations, hook triggers, and artifact creation/deletion
  • Identifies deviations, missing calls, wrong execution order, and hook failures
  • Generates structured verification reports with pass/fail verdicts and detailed issue tracking

How to install session-analyzer

npx skills add https://github.com/ai-native-camp/camp-2 --skill session-analyzer
Prerequisites
  • Session ID from a completed Claude Code session
  • Path to the target SKILL.md file to validate against
  • Access to ~/.claude/ directory containing session logs and debug files
Claude Code
Cursor
Windsurf
Cline

How to use session-analyzer

  1. 1.Provide the session ID and path to the SKILL.md file you want to validate against
  2. 2.The skill locates session files in ~/.claude/projects/ and ~/.claude/debug/
  3. 3.SKILL.md is parsed to extract expected subagents, hooks, tools, and artifacts
  4. 4.Debug log is analyzed to extract actual subagent calls, hook events, and tool invocations
  5. 5.Expected behavior is compared against actual execution in a verification table
  6. 6.A report is generated showing PASS/FAIL verdict with detailed component-by-component results

Use cases

Good for
  • Verify a skill executed correctly after a development session by comparing actual behavior to SKILL.md spec
  • Debug why a subagent or hook didn't trigger as expected by analyzing debug logs and hook events
  • Validate artifact creation/deletion workflow (e.g., draft files created then removed at correct times)
  • Check if tool calls matched allowed-tools list and PreToolUse/PostToolUse hooks fired properly
  • Audit skill behavior for compliance with documented workflow before publishing
Who it's for
  • Skill developers building and testing Claude Code skills
  • QA engineers validating skill implementations against specifications
  • AI agent developers debugging subagent and hook behavior
  • Teams reviewing skill execution logs for correctness and compliance

session-analyzer FAQ

What session files does this skill need?

It requires the main session log (~/.claude/projects/-{encoded-cwd}/{sessionId}.jsonl) and ideally the debug log (~/.claude/debug/{sessionId}.txt). Agent transcripts are used if subagents were invoked.

Can I analyze a session without the debug log?

Yes, but analysis will be limited. The main session log provides basic execution info, but the debug log contains detailed traces needed to verify hook triggers and subagent calls.

What does the report include?

The report shows expected vs actual behavior for subagents, hooks, and artifacts; a verification table with pass/fail status for each component; and a list of any deviations or issues found.

How do I know if my skill passed validation?

The report includes an overall PASS/FAIL verdict. PASS means all expected components were called in the correct order with correct results. FAIL indicates missing calls, wrong order, hook failures, or missing artifacts.

Can this detect bugs in my skill implementation?

Yes. It flags unexpected errors, missing component calls, wrong execution order, hook failures, and artifact state mismatches—helping you identify where your skill deviated from its SKILL.md specification.

Full instructions (SKILL.md)

Source of truth, from ai-native-camp/camp-2.


name: session-analyzer description: This skill should be used when the user asks to "analyze session", "세션 분석", "evaluate skill execution", "스킬 실행 검증", "check session logs", "로그 분석", provides a session ID with a skill path, or wants to verify that a skill executed correctly in a past session. Post-hoc analysis of Claude Code sessions to validate skill/agent/hook behavior against SKILL.md specifications. version: 1.0.0 user-invocable: true

Session Analyzer Skill

Post-hoc analysis tool for validating Claude Code session behavior against SKILL.md specifications.

Purpose

Analyze completed sessions to verify:

  1. Expected vs Actual Behavior - Did the skill follow SKILL.md workflow?
  2. Component Invocations - Were SubAgents, Hooks, and Tools called correctly?
  3. Artifacts - Were expected files created/deleted?
  4. Bug Detection - Any unexpected errors or deviations?

Input Requirements

ParameterRequiredDescription
sessionIdYESUUID of the session to analyze
targetSkillYESPath to SKILL.md to validate against
additionalRequirementsNOExtra validation criteria

Phase 1: Locate Session Files

Step 1.1: Find Session Files

Session files are located in ~/.claude/:

# Main session log
~/.claude/projects/-{encoded-cwd}/{sessionId}.jsonl

# Debug log (detailed)
~/.claude/debug/{sessionId}.txt

# Agent transcripts (if subagents were used)
~/.claude/projects/-{encoded-cwd}/agent-{agentId}.jsonl

Use script to locate files:

${baseDir}/scripts/find-session-files.sh {sessionId}

Step 1.2: Verify Files Exist

Check all required files exist before proceeding. If debug log is missing, analysis will be limited.


Phase 2: Parse Target SKILL.md

Step 2.1: Extract Expected Components

Read the target SKILL.md and identify:

From YAML Frontmatter:

  • hooks.PreToolUse - Expected PreToolUse hooks and matchers
  • hooks.PostToolUse - Expected PostToolUse hooks
  • hooks.Stop - Expected Stop hooks
  • hooks.SubagentStop - Expected SubagentStop hooks
  • allowed-tools - Tools the skill is allowed to use

From Markdown Body:

  • SubAgents mentioned (Task(subagent_type="..."))
  • Skills called (Skill("..."))
  • Artifacts created (.dev-flow/drafts/, .dev-flow/plans/, etc.)
  • Workflow steps and conditions

Step 2.2: Build Expected Behavior Checklist

Create checklist from SKILL.md analysis:

## Expected Behavior

### SubAgents
- [ ] Explore agent called (parallel, run_in_background)
- [ ] gap-analyzer called before plan generation
- [ ] reviewer called after plan creation

### Hooks
- [ ] PreToolUse[Edit|Write] triggers plan-guard.sh
- [ ] Stop hook validates reviewer approval

### Artifacts
- [ ] Draft file created at .dev-flow/drafts/{name}.md
- [ ] Plan file created at .dev-flow/plans/{name}.md
- [ ] Draft file deleted after OKAY

### Workflow
- [ ] Interview Mode before Plan Generation
- [ ] User explicit request triggers plan generation
- [ ] Reviewer REJECT causes revision loop

Phase 3: Analyze Debug Log

The debug log (~/.claude/debug/{sessionId}.txt) contains detailed execution traces.

Step 3.1: Extract SubAgent Calls

Search patterns:

SubagentStart with query: {agent-name}
SubagentStop with query: {agent-id}

Use script:

${baseDir}/scripts/extract-subagent-calls.sh {debug-log-path}

Step 3.2: Extract Hook Events

Search patterns:

Getting matching hook commands for {HookEvent} with query: {tool-name}
Matched {N} unique hooks for query "{query}"
Hooks: Processing prompt hook with prompt: {prompt}
Hooks: Prompt hook condition was met/not met
permissionDecision: allow/deny

Use script:

${baseDir}/scripts/extract-hook-events.sh {debug-log-path}

Step 3.3: Extract Tool Calls

Search patterns:

executePreToolHooks called for tool: {tool-name}
File {path} written atomically

Step 3.4: Extract Hook Results

For prompt-based hooks, find the model response:

Hooks: Model response: {
  "ok": true/false,
  "reason": "..."
}

Phase 4: Verify Artifacts

Step 4.1: Check File Creation

For each expected artifact:

  1. Search debug log for FileHistory: Tracked file modification for {path}
  2. Search for File {path} written atomically
  3. Verify current filesystem state

Step 4.2: Check File Deletion

For files that should be deleted:

  1. Search for rm commands in Bash calls
  2. Verify file no longer exists on filesystem

Phase 5: Compare Expected vs Actual

Step 5.1: Build Comparison Table

| Component | Expected | Actual | Status |
|-----------|----------|--------|--------|
| Explore agent | 2 parallel calls | 2 calls at 09:39:26 | ✅ |
| gap-analyzer | Called before plan | Called at 09:43:08 | ✅ |
| reviewer | Called after plan | 2 calls (REJECT→OKAY) | ✅ |
| PreToolUse hook | Edit\|Write matcher | Triggered for Write | ✅ |
| Stop hook | Validates approval | Returned ok:true | ✅ |
| Draft file | Created then deleted | Created→Deleted | ✅ |
| Plan file | Created | Exists (10KB) | ✅ |

Step 5.2: Identify Deviations

Flag any mismatches:

  • Missing component calls
  • Wrong order of operations
  • Hook failures
  • Missing artifacts
  • Unexpected errors

Phase 6: Generate Report

Report Template

# Session Analysis Report

## Session Info
- **Session ID**: {sessionId}
- **Target Skill**: {skillPath}
- **Analysis Date**: {date}

---

## 1. Expected Behavior (from SKILL.md)

[Summary of expected workflow]

---

## 2. Skill/SubAgent/Hook Verification

### SubAgents
| SubAgent | Expected | Actual | Time | Result |
|----------|----------|--------|------|--------|
| ... | ... | ... | ... | ✅/❌ |

### Hooks
| Hook | Matcher | Triggered | Result |
|------|---------|-----------|--------|
| ... | ... | ... | ✅/❌ |

---

## 3. Artifacts Verification

| Artifact | Path | Expected State | Actual State |
|----------|------|----------------|--------------|
| ... | ... | ... | ✅/❌ |

---

## 4. Issues/Bugs

| Severity | Description | Location |
|----------|-------------|----------|
| ... | ... | ... |

---

## 5. Overall Result

**Verdict**: ✅ PASS / ❌ FAIL

**Summary**: [1-2 sentence summary]

Scripts Reference

ScriptPurpose
find-session-files.shLocate all files for a session ID
extract-subagent-calls.shParse subagent invocations from debug log
extract-hook-events.shParse hook events from debug log

Usage Example

User: "Analyze session 3cc71c9f-d27a-4233-9dbc-c4f07ea6ec5b against .claude/skills/specify/SKILL.md"

1. Find session files
2. Parse SKILL.md → Expected: Explore, gap-analyzer, reviewer, hooks
3. Analyze debug log → Extract actual calls
4. Verify artifacts → Check .dev-flow/
5. Compare → Build verification table
6. Generate report → PASS/FAIL with details

Additional Resources

Reference Files

  • references/analysis-patterns.md - Detailed grep patterns for log analysis
  • references/common-issues.md - Known issues and troubleshooting

Scripts

  • scripts/find-session-files.sh - Session file locator
  • scripts/extract-subagent-calls.sh - SubAgent call extractor
  • scripts/extract-hook-events.sh - Hook event extractor