Someone asks in chat why the churn model splits 70/30 — wasn't it the other way round? You scroll back through four months of threads, find three conversations that nearly say it, and give up.
That's the problem provLedger solves. It's a Claude Code plugin that keeps a decision ledger for your project: every change records why it was made —
your words, the email or meeting that settled it, the agent's own reading,
kept apart and never blended.
Two things make it different from a notes file:
- It surfaces rejected paths. Before anyone edits something, a hook shows not just why things are the way they are, but what was tried and dropped. The half of history a diff never shows.
- It's honest about gaps. Every answer cites the record id it rests on. When nothing was recorded, it says so — instead of making things up. (I learned this the hard way: an earlier version had a bug that silently dropped writes. A memory tool that forgets is worse than no memory tool — it teaches the agent false confidence. Fixed in 0.4.8.)
claude plugin marketplace add yizhao95/prov_ledger claude plugin install provledger@provledger Honest numbers: 199 unique cloners in 14 days, 26 stars, zero new stars in
the window. Stars are a souvenir metric for CLI tools — the real signal is
that clones spike on release days, i.e. existing users updating.
Two-minute walkthrough: https://yizhao95.github.io/prov_ledger/walkthrough.html
Repo (MIT): https://github.com/yizhao95/prov_ledger
What's your worst "the agent did it again" story? I collect them now —
professionally.

![Why Object.keys(user) Returns string[], Not (keyof User)[]: TypeScript Means It](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2q4w48b9bzs43tynyhsf.png)

