All posts

The receipt, not the answer

An answer is a claim about the world. A provenance record is a claim about where that answer came from. They are not the same thing, and most systems that put a model between you and your own documents quietly conflate them. The model says something fluent, you read it, and you have no way to check whether it read the source or made it up.

We built Watcher around the opposite default. Nothing enters the wiki without a chain entry, and nothing leaves it without citing the chain. Every paragraph the daemon compiles carries an inline citation that resolves to the exact source chunk it was built from. The citation is not a footnote you hope is accurate. It is a hash that either matches the source or does not.

This changes what a wrong answer looks like. When you trust the output, a wrong answer looks exactly like a right one until something breaks downstream. With provenance, a claim that cannot point to its source stands out, because a missing citation is itself a signal you can search for.

The hash chain is what makes this hold over time. Each operation appends a signed record. A page compiled today references the facts it drew from, and those facts reference the chunks they came from. The sequence is sealed, so a later edit cannot rewrite the past without breaking the hashes. Pack a slice of the wiki, hand it to someone, and they can verify it on a clean machine with no daemon running.

The point is not that the model is always right. The point is that you no longer have to take its word for it. Confident is easy. Provable is the job.