driftcheck repo: confirms whether your working picture of the repository is current: git state against origin, open pull requests, database migration status, and test results with real flake-versus-regression triage. A failure gets re-run in isolation before it's classified as real, not assumed either way. driftcheck docs: verifies a reference document (CLAUDE.md, AGENTS.md, or similar) still accurately describes the code it names, checking each reference against the actual repository instead of trusting the document. driftcheck spec: a continuity mechanism for long-running, AI-assisted work: scaffolds a versioned project spec, and spec close checkpoints it forward with a handoff document for the next session, patching only what changed so nothing you hand-edit gets silently thrown away. That shift, from speed to finishing right, isn't just something I believe, it's the actual design discipline behind driftcheck. A few concrete examples of what that looked like in practice:
Zero LLM dependency in the tool itself; no API call anywhere, including the parts that generate content. A tool whose whole job is catching unverified claims shouldn't be making any of its own. Real defects were found by testing against production codebases, not by trusting that the logic looked correct. One: a test-output parser that silently dropped "every test in the suite failed" as a case, because the regex assumed a "passed" count would always be present. Another: a file-matching pattern that only recognized .test.ts, inherited from a version of the tool that had only ever run against one TypeScript codebase.
MIT licensed, effectively zero dependencies All feedback is welcome, especially "this assumption breaks on my stack"; that's the fastest way I'll find the edges of this thing. If it's useful to you and you feel like tossing something my way, there's a donation section in the README, never expected, always appreciated. Best way to reach me is Reddit DMs.