Inspiration
As we know everyone nowadays use claude code and codex every day across several hackathon projects. The agent ends with "Fixed it, all tests pass", and we either trust it or dig through too many lines of log. so as we should also know what is happening behind each claim
What it does
It reads a Claude Code or Codex session log and stamps each claim in the agent's final message Supported, Contradicted, Stale or Unverified, with a link to the proving step. It catches npm test | tail hiding the exit code, re-running only one filtered test, and editing a test to match the code. Replay: every read, edit and command on a timeline, in chapters (Explore → Change → Verify → Repair → Report). Changes: blame for intent. For each line: which step wrote it, the agent's reason, what it had read, what had just failed.
How we built it
Planning: Devpost Learn skill pack → scope, PRD, spec, checklist, then built slice by slice. Core: one TypeScript engine shared by the browser, CLI and CI, so results always match. Parsing: Claude Code + 2 Codex formats; strips dead weight first, so a 530 MB log parses in about 2 s (was 7.7 s); runs in a Web Worker. Blame: replays every edit so each line knows which step wrote it. Claim checks: regex patterns, no AI, so results are reproducible; catches exit codes hidden by | tail or | grep, filtered test runs, and tests edited after the run. Findings: 11 deterministic rules. Security: secrets masked on read; the local server only accepts 127.0.0.1 plus a per-run token. Stop hook: exits with code 2 to send a contradicted "done" back to the agent. Frontend: React + Vite in one HTML file, Three.js 3D hero, GSAP motion. CLI: esbuild bundle; list, open, watch, report, check, export, audit. Testing:420 unit tests + 8 Playwright browser tests; GitHub Actions runs them and deploys to GitHub Pages.
Challenges we ran into
ESLint's "198 problems (0 errors)" was read as a failure,giving 28 wrong "Contradicted" results.
Accomplishments that we're proud of
Audited 88 real sessions. 43 had checkable claims, and 6 of those (14%) were contradicted by their own log. 12 false claims, all reviewed by hand: 10 clear, 2 borderline. Supported verdicts sampled: 27 of 30 hold up. A regression set in CI tracks how accurate the claim checks are,so they can't quietly get worse. It caught a real false claim in your own project.
What we learned
I learned agents say tests pass when they dont, and pipes hide failures
What's next for Intent Replay
Stronger Codex support: only 9 Codex sessions were tested, and the checks were tuned mostly on Claude Code logs. A Stop hook for Codex: the hook that sends the agent back only works with Claude Code right now. More data: the 14% comes from one developer's sessions. Next is collecting intent-replay audit counts from other developers through GitHub issues.
Built With
- claude-code
- esbuild
- github
- gsap
- node.js
- playwright
- react
- three.js
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.