Get started
Scope: installing moose-tracevals and getting a real, readable result from a session that already happened. It stops once you trust the output. Making the checks say something specific is Declare what to check; putting this in a pipeline is Run it in CI.
Everything on this page runs offline, with no API key.
-
Install
Section titled “Install”moose-tracevals needs Node.js 24 or newer.
Terminal window npm install --save-dev moose-tracevalsThen invoke it as
npx moose-tracevals.Terminal window npx moose-tracevals --versionNothing to add to your project first.
-
Find a session
Section titled “Find a session”moose-tracevals evaluates a trace: a record of a session that already happened, sitting on disk. You do not instrument anything and you do not re-run any work.
Claude Code writes one JSONL file per session under
~/.claude/projects/<project-slug>/. To see what is evaluable:Terminal window npx moose-tracevals list --all-projects --limit 51. 2026-07-02 00:00 Write a README for this repo.C:\work\other-project · 22222222-2222-2222-2222-222222222222 · 1KBC:\...\.claude\projects\C--work-other-project\22222222-....jsonl2. 2026-07-01 00:00 Fix the crash in src/app.ts.C:\work\demo-project · 11111111-1111-1111-1111-111111111111 · 1KBC:\...\.claude\projects\C--work-demo-project\11111111-....jsonlEach entry shows the timestamp and first prompt, then the project and session id, then the file path you can pass to
run. Drop--all-projectsto scope to the current directory’s project. -
Run your first evaluation
Section titled “Run your first evaluation”Start with the mode that makes no model call at all:
Terminal window npx moose-tracevals run <trace-file> --deterministic-only--deterministic-onlyruns every check that needs no inference call. That is the seven deterministic graders decidable from the trace alone, pluscommandevals and thehumanreview queue. It skips AI-judged evals instead of failing them.To exercise the whole pipeline, including the judge, without a network call:
Terminal window npx moose-tracevals run <trace-file> --provider mock -
Read the report
Section titled “Read the report”A deterministic-only run against a project with one skill, one subagent, and two rules files looks like this:
moose-tracevals — /path/to/session.jsonlclaude-code · claude-opus-4-8 · 2 turn(s) · /work/demo-projectSKIP writing-toolkit:identify-ai-tells › adheres-to-artifact (implicit)artifact skipped via metadata.eval-skipPASS fix-bug › used-readFAIL fix-bug › forbidden-tool[error] tool Bash was used 1 time(s) but must not bePASS fix-bug › no-force-pushREVIEW fix-bug › refactor-preserved-intentawaiting human reviewSKIP fix-bug › eval-5ai evals skipped (deterministic-only run)SKIP doc-writer › adheres-to-artifact (implicit)ai evals skipped (deterministic-only run)SKIP CLAUDE.md › adheres-to-artifact (implicit)ai evals skipped (deterministic-only run)SKIP AGENTS.md › eval-1ai evals skipped (deterministic-only run)Artifact coverage✓ skill: writing-toolkit:identify-ai-tells /path/to/plugins/.../SKILL.md✓ skill: fix-bug /work/demo-project/.claude/skills/fix-bug/SKILL.md○ agent: Explore built-in agent (no definition file)✓ agent: doc-writer /work/demo-project/.claude/agents/doc-writer.md✓ project-rules: project rulesWarnings! 1 unparseable JSONL line(s) were skipped9 eval(s): 2 pass, 1 fail, 0 error, 1 needs-review, 5 skippedFive things are worth naming, because the rest of the documentation assumes them:
- An artifact is an instruction file the session used: a skill, an agent definition, or a
project-rules file. Here:
fix-bug,doc-writer,CLAUDE.md,AGENTS.md, and a plugin skill. - An eval is one named check declared on an artifact.
used-readandforbidden-toolwere declared infix-bug’s frontmatter. - The grader decides how a check is answered.
used-readreads the trace directly, andno-force-pushruns a script over it.refactor-preserved-intentisREVIEWbecause it asks for a human, and theSKIPs are AI-judged evals, which--deterministic-onlydoes not run. adheres-to-artifact (implicit)is what you get for free. An artifact that declares no evals still gets one judged eval asking whether the session followed its instructions. A first run therefore says something before you have authored anything.- Artifact coverage is the honest answer to what did you not check? A
✓resolved to a real file; a○did not.Exploreis a built-in agent with no definition file anywhere, which is expected, and fine.
The one failure is the point of the exercise.
fix-bugdeclares that it is edit-only; the session ran a shell command; the finding names the tool and the count. - An artifact is an instruction file the session used: a skill, an agent definition, or a
project-rules file. Here:
-
Check the exit code
Section titled “Check the exit code”Code Meaning 0every eval passed or was skipped 1something failed, errored, or needs review 2moose-tracevals itself could not run: bad usage, unreadable trace, unknown format The distinction between
1and2is the one to hold on to:1means the agent did something,2means the tool did. Full detail in Exit codes & reports.
Where to go next
Section titled “Where to go next”Two doors from here, depending on what you came for.