4 Comments
User's avatar
AI in Investment by JD's avatar

Your nightly agent checks notes against notes. I run a similar workflow that reads the actual files and codes and git diffs, compares them to what is documented in the memory files, and flags the divergences for me.

I guess the review only works because the code isn't another opinion in the store; it's the truth.

Where it stops is the part I can't work out: it only reaches knowledge with a checkable reference. Have you found any way that may catch drift in the notes with no artifact behind them?

Eugeniu Ghelbur's avatar

Not reliably. Without an external artifact, drift detection becomes consistency checking, not verification.

The best proxy I’ve found is scanning linked notes for contradictions and stale assumptions. It catches mismatches, but it can’t tell you which note is true. That still needs a human or a new source.

Robert Richardson's avatar

This is great! I've been building a different system, one based on a database and automated taxonomy management rather than Obsidian, but I can definitely attest to the importance of having a system to tackle stale data. This can be particularly tricky if you arrived at the current decision after a long chat about the prior decision, because the system may interpret them not as one replacing the other but as both existing at once (though maybe this isn't an issue in the Obsidian approach--my setup can automatically synthesize from chat transcript to compressed "memory" element. At any rate, people are kidding themselves when they just toss Obsidian into the mix and call it a brain.

Eugeniu Ghelbur's avatar

Robert, the coexistence failure is exactly it, and Obsidian doesn't fix it for free. Plain files will happily hold both positions forever.

What fixed it here was making it structural. The new decision note carries a supersedes: edge to the old one, the old one flips to status: superseded, and a lint pass flags cycles where two notes claim to supersede each other.

The chat transcript is the worst input for this, since one long conversation holds the position I abandoned and the one I landed on with equal weight. So the write step has to pick which is current. A summarizer won't.