Team Credence
Every day, developers trust Claude with decisions that matter.
Core trick
Re-injects flagged unverified constraints before every generation, and a pre-tool gate blocks irreversible calls.
Description
Every day, developers trust Claude with decisions that matter. They share what they know — and what they don't. "The rate limit is probably around 50, I haven't confirmed it yet." A small admission. An honest one.
Then the session grows. Context gets compressed. And silently, without warning, RATE_LIMIT = 50 ships to production. The model just forgot you weren't sure.
We named this Epistemic Qualifier Loss (EQL), measured it across 50 compression scenarios, and built Credence to prevent it.
Credence is a five-layer epistemic enforcement system built natively into Claude Code. A sub-millisecond faithfulness probe blocks compression when uncertainty is present. A Truth Buffer re-injects unverified constraints before every generation. A Consistency Enforcer fires when a query overlaps a registered uncertain value. A Generation-Time Scanner annotates unverified literals before they ship. A Rust-native PreToolUse gate blocks irreversible tool calls — 98× faster than Python.
The Ghost Detector — powered by Opus 4.7 — catches implicit uncertainty with no hedging markers at all. Something no rule-based system can do.
As AI agents make higher-stakes decisions, uncertainty is not a weakness to hide — it is the most honest signal a system can carry. Credence is the first enforcement layer built around that principle.
22-tool MCP server. 178 tests. Built entirely with Claude Code.
Lakshmi-Chakradhar-Vijayarao/credence-ai★ 11 forksPythonNOASSERTIONCreated Apr 26, 2026 · last push Oct 25, 2026
README excerpt
# Credence
AI doesn't remember what it wasn't sure about. Credence does.
[](https://pypi.org/project/credence-guard/)
[](https://github.com/Lakshmi-Chakradhar-Vijayarao/credence-ai/actions/workflows/ci.yml)
[](https://pypi.org/project/credence-guard/)
[](LICENSE)
```bash
pip install credence-guard
credence demo # 30-second smoke test, no API key required
```
`[mcp]` adds the FastMCP server for Claude Code. Core package has zero hard dependencies.
---
## The problem
You say: *"The rate limit is probably around 50 — I haven't confirmed it yet."*
Fifteen turns later, Claude writes:
```python
RATE_LIMIT = 50 # no warning. no flag. shipped.
```
The API rejects every request at 2am. The real limit was 10. Claude forgot you weren't sure.
This isn't hallucination. The model reproduced exactly what it read. What it read had the qualifier stripped — by context compression, fifteen turns back.
---
## What Credence does
Tracks uncertain values the moment you state them. Blocks writes that embed those values until you confirm them.
```
you say "rate limit is probably 50"
→ observer registers it (before Claude responds)
→ Claude writes: RATE_LIMIT = 50 # ⚠ CREDENCE[unve