dhaga.blog
General

Where did you get that?

An AI that tells you things about your friends is worthless unless you can check where it got them. Why every fact Dhaga derives carries a receipt, and why deleting the note takes the fact with it.

Here is a thing that will happen to you if you use an AI tool for long enough.

It will tell you something about a person you know — that they've moved, that they're looking to hire, that they mentioned wanting an introduction — and you will believe it, and act on it, and only afterwards wonder where it came from. Sometimes it came from something you actually wrote down. Sometimes it came from the model filling a gap in a sentence, because a plausible sentence is what it was built to produce.

You cannot tell the difference by reading it. That's the whole problem. Both kinds of sentence arrive in the same confident voice, in the same font.

The stakes are different when it's people

I'd forgive this in most software. If an AI summarises a PDF slightly wrong, I lose a few minutes. If it invents a line of code, the compiler catches it.

But Dhaga's entire job is to remember things about people — and when the subject is a person you know, being confidently wrong is not a small failure. You act on it. You email someone congratulating them on a job they didn't get. You skip someone because the tool told you they'd already said no. You walk into a room carrying a fact about somebody that they never told you, and that isn't true, and now you're the person who got it wrong about them.

There's a subtler version too, and it's the one I actually worried about. If you can't check anything, you stop trusting everything. You start second-guessing the true facts along with the invented ones, and at that point the tool has quietly become worse than a notebook — because at least you know what a notebook doesn't know.

"The model said so" is not a source.

So every derived fact keeps a receipt

The rule sits in the very first section of our engineering rulebook, above the feature list, because it's a constraint on everything we build rather than a feature we ship:

Every AI-derived fact keeps a receipt.

Concretely: when Dhaga reads one of your notes and pulls out something worth remembering — a role, a company, a preference, a thing someone's working on — the fact it stores records which note it came from. Not a confidence score, not a vague "extracted by AI" badge. The specific note. The one you wrote.

On a person's page, that shows up under the fact as a small line: from note, 12 Aug 2026. Tap it and Dhaga highlights the note it came from — and everything else that note produced — right there on the page. Not a citation you have to trust. The actual source, one tap away, in your own words.

And if a fact has no receipt, that means you typed it yourself. Facts you enter by hand deliberately carry no note reference, which is a small design decision with a nice property: no note deletion can ever take away something you wrote by hand.

The other half: deleting the note takes the fact with it

A receipt that only points one way isn't worth much. If you can delete the source and the conclusion stays, you've built a system that launders hearsay — a fact whose only remaining justification is that some model once thought so.

So deletion runs the other direction too. Delete a note, and in the same transaction Dhaga removes what that note produced: the facts it derived, the relationships it drew, its embeddings, the photo of the card you scanned, the questions still waiting in your inbox about it, and any tags that only that note vouched for. Tags something else also vouched for stay, because something else still vouches for them.

The test that guards this is called, plainly, deleting a note tombstones everything it derived. It's the kind of behaviour that no user will ever compliment you on, and every user would be right to leave over.

This matters most in the case nobody enjoys thinking about: you write something uncharitable about someone after a bad meeting, Dhaga extracts three facts from it, and later you'd rather not have any of that. Deleting the note has to be enough. If you have to go hunting for the conclusions it spawned, deletion is theatre.

The lines between people, too

Relationships — the "worked with", the "introduced by", the lines in your graph — carry the same note reference in the data, and always have. Deleting a note has always removed the relationships it drew, the same as the facts.

For a long time that was invisible. The reference was in the database and governed deletion, but nothing on screen would tell you which note made Dhaga think two people knew each other, which is the only question that matters when an edge looks wrong. That is now shown: click an edge on the canvas, or look at the relationship rows on someone's page, and there is a From a note control that takes you to the sentence it came from.

The part I care about more is what it says when there is no note. An edge you drew by hand, or one that arrived with an imported address book, says Not from a note — plainly, in the same place. It would be easy to leave that blank and let it pass for a receipt. A provenance marker that only ever appears when the answer is flattering isn't provenance, it's decoration.

There's a second, separate marker for facts that came from a web lookup rather than from your own notes — those are badged unverified until you confirm them, because a fact from the open internet has a different kind of provenance than a sentence you wrote after dinner. Same instinct, different axis: never let two kinds of knowing look identical.

What I actually want

I want you to be able to ask Dhaga a question about your network, get an answer, and check it in one tap — not because you're suspicious, but because being able to check is what makes the answer worth having.

Everything in the product that sounds like intelligence is really just your own notes, rearranged. The receipt is how you can tell.

Share

Discussion

On this page