Verdict Inspect — analyze chat exports for drift, hedging, refusals, and quality. Drop in a conversations.json from ChatGPT/Claude/Cursor, get a report.
Project description
Verdict Inspect
PyPI distribution: cognifity-verdict-inspect. Command:
verdict-inspect.
One-shot drift analysis on a chat export. Drop in a conversations.json from
ChatGPT, a Claude.ai export, a Cursor .jsonl, or any OpenAI-format
messages dump, and get back a rigorous drift / quality report.
Why this exists
Continuous LLM observability (the SDK + monitoring path) is the right answer for production agent traffic. But before a team commits to instrumenting their stack, they want to know: does Verdict actually find anything interesting in my data?
verdict-inspect answers that in 60 seconds against a file the user already
has on their laptop. Local-first; nothing leaves the machine.
Usage
# Auto-detect format
verdict-inspect analyze ~/Downloads/conversations.json
# Force a format
verdict-inspect analyze --format chatgpt ~/Downloads/conversations.json
# Specify report output
verdict-inspect analyze --report ./drift_report.md ~/Downloads/chatlog.jsonl
# JSON output for piping
verdict-inspect analyze --json ~/Downloads/conversations.json | jq .
Supported formats (v0)
- ChatGPT data export — the
conversations.jsonfrom Settings → Data Controls → Export - Claude.ai data export — the
conversations.jsonfrom Settings → Account → Export - Generic OpenAI messages JSONL — one JSON object per line, each with
messages: [{role, content}] - Agent-session JSONL — type-tagged local agent session logs
- Auto-detect — looks at file structure and picks a parser
Planned (v1): Cursor .cursor/chats/, Gemini Takeout, LangChain message
history files, Llama Index conversation logs.
What you get back
For any conversation longer than ~30 substantive turns:
- Semantic drift — embedding-distribution shifts across temporal windows
- Judge sample — PASS/FAIL by dimension on stride-sampled turns (requires
ANTHROPIC_API_KEY) - Structural metrics — response length, hedge density, refusal rate, apology rate per window
Semantic drift runs key-free. By default it tries the optional
sentence-transformers/all-MiniLM-L6-v2 embedder when installed, then falls
back to the built-in HashingEmbedder if the dependency/model is unavailable.
Install the heavier local embedder with
pip install -e "packages/verdict_eval[semantic]".
For shorter conversations: just structural metrics (the others need ~30 turns/window for meaningful statistics).
Privacy
Everything runs on your machine. No data is uploaded anywhere. The judge layer
makes API calls to Anthropic if you set ANTHROPIC_API_KEY, but you can run
without it to get drift + structural metrics only.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cognifity_verdict_inspect-0.1.0a1.tar.gz.
File metadata
- Download URL: cognifity_verdict_inspect-0.1.0a1.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8efe11dc26eb5c54892e3c786184af244ca6c6023210f691a48573638aac2960
|
|
| MD5 |
25a226695aa8a4adcd548433a1ec892d
|
|
| BLAKE2b-256 |
358670756703902463f7489aeee1b888d5278d6860742f7039014691ebd24d0d
|
Provenance
The following attestation bundles were made for cognifity_verdict_inspect-0.1.0a1.tar.gz:
Publisher:
publish.yml on cognifityai/verdict
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cognifity_verdict_inspect-0.1.0a1.tar.gz -
Subject digest:
8efe11dc26eb5c54892e3c786184af244ca6c6023210f691a48573638aac2960 - Sigstore transparency entry: 2300764059
- Sigstore integration time:
-
Permalink:
cognifityai/verdict@49846bce3549b6f2e1b90998c5c8a11d65bba42a -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/cognifityai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@49846bce3549b6f2e1b90998c5c8a11d65bba42a -
Trigger Event:
release
-
Statement type:
File details
Details for the file cognifity_verdict_inspect-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: cognifity_verdict_inspect-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f65586a78656997926de9044192b97ec16019ab259120f1484bbf02218b3b70e
|
|
| MD5 |
0497dfa3dcd13039a9559aa0509f7a18
|
|
| BLAKE2b-256 |
f8fccbed9ea425162f86a972b666234d9b3baf3059d45810229e44545fcb6a96
|
Provenance
The following attestation bundles were made for cognifity_verdict_inspect-0.1.0a1-py3-none-any.whl:
Publisher:
publish.yml on cognifityai/verdict
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cognifity_verdict_inspect-0.1.0a1-py3-none-any.whl -
Subject digest:
f65586a78656997926de9044192b97ec16019ab259120f1484bbf02218b3b70e - Sigstore transparency entry: 2300764067
- Sigstore integration time:
-
Permalink:
cognifityai/verdict@49846bce3549b6f2e1b90998c5c8a11d65bba42a -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/cognifityai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@49846bce3549b6f2e1b90998c5c8a11d65bba42a -
Trigger Event:
release
-
Statement type: