Polygraph — Development skill for Claude Code
A lie detector for coding agents: flag forged instructions, check verification records, and guard hook configuration.
How to install Polygraph
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open guarrr816/polygraph and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Polygraph does
A lie detector for coding agents: flag forged instructions, check verification records, and guard hook configuration. Claude Code adapter; Codex planned.
Alternatives in Development
- Discipline — Toggle discipline mode — auto-invoke verification, brainstorming-before-coding, and review checks 2.8k ★
- 10 Colonial Records Search — Colonial Records Search 1.1k ★
- Projectmem — Open-source coding agent memory 766 ★
README
polygraph — A lie detector for coding agents
**Your agent says “done.” Check the evidence.**
[](https://github.com/guarrr816/polygraph/actions/workflows/ci.yml)
polygraph checks the records behind coding agents' claims. Its current Claude Code adapter checks tool calls and transcripts for three familiar situations:
- “Tests passed.” Checks code-changing turns for a completed verification command reported as successful. A claim in the reply does not count.
- “You asked me to stop.” Flags known user-turn patterns inside assistant replies.
The
saidcommand checks whether the transcript contains matching human input. - “I'll disable the hook.” Blocks recognizable commands targeting hook settings, plugin files, and other protected configuration.
Python 3.11+ · No third-party runtime dependencies · MIT
| Platform | Current status |
|---|---|
| Claude Code | Adapter implemented; live session acceptance pending |
| Codex | Hook interfaces confirmed in official documentation; adapter planned |
[Install](#install) · [The story](#why-i-built-it) · [How it works](#what-it-does) · [Limits](#known-residuals) · [Chinese](README.zh-CN.md)
See the delivery gate in action
A turn changes `foo.py` and replies **“Done. All tests passed.”** Its transcript contains no test command. The Stop hook exits **2** and prints:
[polygraph] this turn changed foo.py;
no verification command succeeded this turn (subagents included);
...
block 1/2; after the cap the turn is released and recorded as an unverified delivery.
Actual hook output from a **local test replay with a synthetic transcript**, excerpted and wrapped for readability. Live Claude Code session acceptance is still pending. Reproduce the blocking check from a source checkout with the test dependency installed:
python -m pytest tests/test_gate.py::test_baseline_write_without_evidence_blocks -q
Related Skills
Bashrc Credential Guard
Always check ~/.bashrc for credentials, API keys, passwords, and configuration values before asking user
Claude Code Prompt Recorder
A Claude Code hook plugin that records every user prompt with a timestamp
Claude Code Commands Cheatsheet
A compact quick-reference for every Claude Code command, shortcut, and flag covering keyboard shortcuts, slash
Claude Code Lego Flag Hook
Lego mailbox with a servo-driven flag that goes up when Claude Code finishes responding and down when you send
Claude Code Skills Collection
8 Claude Code Agent Skills from ChinaSiro/claude-code-sourcemap — adversarial-verification, smart-memory-guard
Signal Gate
You are a signal detector for a memory curation system. Your job is to determine whether a coding session tran
Related Agents
Hcs Hook Integrator
Wires Claude Code + Codex hooks to the HCS substrate without embedding policy in hook bodies. Maintains .claud
Completion Gate
Lie detector for agent claims — validates every completion claim has actual evidence. Default-FAIL mindset. Us
Calendar Agent
Builds a publishing calendar the creator can actually hit — cadence from the channel archetype, backwards-plan