Find out which of the rules your coding agents were given they actually kept. One command, no configuration, no model call, and nothing leaves the machine.
npx @cognitive-fab/polyx-lens
Claude Code has written a transcript of every session to ~/.claude/projects since you installed it. The lens reads them where they are.
It says first what it could not check: sessions with no tool call are conversation only.
npx @cognitive-fab/polyx-lens
First, what your agents did, grouped by how hard it is to undo. Then each rule they were given, with how often they kept it and how often they broke it.
The rules come from contracts/claude-code.yaml: what Claude Code publishes about itself, such as “read the file before editing it”. They hold for every installation.
A real run on 141 real sessions. Every finding lists the session and event it came from.
Hide what it cannot see. The share of events it could not name is printed before any finding. A compliance figure measured only over the part a parser understood is not a measurement.
Count “never came up” as a pass. A rule the corpus never exercised is reported on its own line.
Pretend every rule is checkable. Of the 28 clauses, 13 can be checked as one action coming before another. The other 15 are listed with the reason.
npx @cognitive-fab/polyx-lens audit
audit shows exactly which shapes the alphabet could not type, so you can judge the gap yourself.
Four generated sessions ship with the package, so you can see the report without your own data in it. The sample is generated rather than anonymised, because an anonymised transcript still shows the shape of someone’s work.
npx @cognitive-fab/polyx-lens cc-sample
Five adapters ship: Claude Code transcripts, ABCD and τ²-bench customer-service conversations, BPIC 2017 process logs, and a synthetic fixture. Declare a corpus in polyx.config.json; a bare filename names a shipped alphabet and a path names your own.
Command bodies, file contents and prompts are never stored. Only the verb and the redacted path are kept.
The lens only checks rules that are already written down. To find the ones nobody wrote, you need polyx.