From claude-prospector
Use when the user wants a judgment-level read on whether a Claude Code session stayed on task — did the agent do what was originally asked, and what did it acknowledge skipping. This is the interpretive (LLM) complement to the deterministic `session-audit` CLI: 1a extracts ask-vs-done for free; this skill adds the `Variance` and `What was NOT done` judgment that a parser can't compute, then persists a combined record for drift analysis. Cost: ~1-3k tokens of the current session, paid only when invoked. Opt-in by design — run it selectively, not on every session. Best run in a Sonnet (or stronger) session; the judgment quality depends on it. Use `session-audit` (CLI) for the free deterministic ask/actions extract. Use `usage-analysis` for token-spend insights. Use `claude-audit` for agent/skill config overlap. Use THIS skill for "did this session drift from what I asked". Trigger phrases: "/session-analysis", "did this session stay on task", "analyze session drift", "did the agent do what I asked", "what did this session skip", "variance analysis for session", "audit this session for drift", "check session <id> for variance".
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-prospector:session-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are producing the **judgment** half of session drift-detection: given a
You are producing the judgment half of session drift-detection: given a session's deterministic ask-vs-done extract (from 1a), assess whether the agent stayed on task and what it acknowledged leaving undone — then persist a combined record. This is interpretive work; a deterministic parser cannot do it, which is exactly why it costs LLM tokens and is opt-in.
This skill drives the claude_prospector CLI. The package must be installed
in the environment Claude Code uses — see the
README install steps.
The session-id (or transcript path) is `` if provided.
~/.claude/projects/<encoded-cwd>/*.jsonl (newest mtime) and
confirm the session-id with the user before spending tokens — variance
analysis is opt-in, don't guess silently.python -m claude_prospector session-audit --session-id <id> --format json
This returns {original_ask, prior_asks, actions}. original_ask is the
authoritative first ask; prior_asks are later distinct asks in the session;
actions are the Edit/Write/NotebookEdit file paths. Reason over this — it is
your ground truth for "what was asked" and "what was changed".
For richer context (reasoning, tool failures, what the agent said it was
doing), also read the transcript itself at the resolved
~/.claude/projects/<…>/<id>.jsonl. Use it to judge intent, not to recompute
the deterministic fields.
Assess two fields against original_ask (+ prior_asks for multi-task
sessions):
variance — did the agent stay on the original ask? Note scope creep,
approach pivots, or drift onto a later ask at the expense of the first.
Cite specifics (a file in actions unrelated to the ask; a pivot point in
the transcript). If it stayed on task, say so plainly — "no variance" is a
valid, useful finding.not_done — what did the agent acknowledge skipping or defer? Prefer
the agent's own admissions in the transcript over your speculation. If
nothing was skipped, say so.Optionally assign severity (integer 0-3): 0 = on task, 1 = minor drift,
2 = notable unrequested scope or skipped ask, 3 = the session largely did not
do what was asked. Omit (null) if you can't justify a number.
Be evidence-bound: every claim cites a file path, a prior_asks entry, or a
transcript moment. Do not invent drift to fill the field.
Write the judgment to a temp JSON file (prose is multi-line; don't fight shell
escaping), then call variance-save. It re-loads 1a internally and writes the
combined {1a fields + your judgment} to <data>/variance/<id>.json:
# judgment.json: {"variance": "...", "not_done": "...", "severity": <int|null>}
python -m claude_prospector variance-save --session-id <id> --judgment-file judgment.json
variance-save finds the transcript under ~/.claude and writes output under
the plugin data dir by default — no extra flags needed. It prints the written
path; surface that to the user.
Give the user a short variance report (NOT a JSON dump):
Session <id> — variance: <one-line verdict, severity if assigned>
Asked: <original_ask, trimmed>
Variance: <the judgment, with its citation>
Skipped: <not_done, with its citation>
Saved: <path printed by variance-save>
prior_asks.length > 0. Selective use is the whole cost
argument — 1a+1b beats the abandoned always-on hook only when 1b runs on a
minority of sessions.Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub davepoon/buildwithclaude --plugin claude-prospector