DEV Community

Cover image for The Reasoning Ledger: Remembering Decisions, Not Just Data
Ken W Alger
Ken W Alger

Posted on Originally published at kenwalger.com

The Reasoning Ledger: Remembering Decisions, Not Just Data

Part 4 of the Building the AI Memory Stack series

After finishing the previous article, I looked at the repository a little differently. The specifications were still there. The Architecture Decision Records were still there. The glossary entries were still there. The project's durable memory had done exactly what it was supposed to do: preserve the knowledge that deserved to survive.

But something was missing. I could see what existed, but I couldn't always see why it existed.

Memory tells you what. Reasoning tells you why.

That distinction turns out to matter.

Durable Memory Isn't the Whole Story

In the previous article, I argued that Durable Memory decides what knowledge deserves to outlive the task that created it.

That remains true. But imagine opening an Architecture Decision Record six months later and asking:

Why was this decision made?

The document gives you the conclusion, but it may not give you the path that produced it. Perhaps the decision came from competing specifications, several tool invocations, human review, rejected alternatives, or a policy constraint that no longer exists.

The final artifact survives. The reasoning process often does not.

Another Layer in the Stack

Diagram of the AI Memory Stack highlighting the Reasoning Ledger as the layer that preserves why decisions happened. Information flows from the Reasoning Ledger to Durable Memory, Active Working Memory, the Context Window, and finally Model Inference.

Layer Primary Question Preserves
Reasoning Ledger Why did this happen? Decisions
Durable Memory What should survive? Knowledge
Active Working Memory What matters now? Working set
Context Window What can the model see? Current tokens

Software Already Solved Part of This

Git repositories preserve more than source code. They preserve commit history, pull requests, code reviews, issues, and discussion. Together they explain how software evolved.

Imagine if Git only stored the latest version of every file. The software would still exist, but understanding it would become dramatically harder.

Git doesn't exist because developers forget what their code looks like. It exists because developers eventually ask:

Why did we change this?

Agentic systems deserve the same architectural capability.

The Missing Layer

Most AI systems optimize retrieval, but far fewer preserve the observable decision process surrounding an inference. If someone asks months later:

Why did the system recommend this?

can we answer?

If the only answer is "because the model said so," then the system hasn't preserved enough information to be trustworthy. We've preserved knowledge but lost understanding.

The Reasoning Ledger

The Sovereign Systems Specification calls this architectural layer the Reasoning Ledger.

It deliberately avoids recording private chain-of-thought.

It records the observable architecture surrounding a decision.

A ledger may capture:

  • Evidence consulted
  • Tool invocations
  • Policy evaluations
  • Human approvals
  • Timestamps
  • Confidence assessments
  • References to durable artifacts
  • Links to Forensic Receipts

In practice, a single record might look like this:

reasoning_ledger:
  decision: "Approve deployment"
  timestamp: 2026-03-14T09:22:00Z
  evidence:
    - artifact: ADR-014
      authority: architecture-review
      version: 3
    - artifact: production-health-metrics
      observed_at: 2026-03-14T09:20:00Z
    - artifact: security-policy
      authority: security-team
      version: 7
  tools:
    - GitHub
    - CI pipeline
  approvals:
    - release manager
  outcome: approved

Notice that the ledger does not merely record that a security policy was consulted. It can preserve which policy, which version, and which authority governed the decision at that moment. That distinction matters because evidence can remain perfectly retrievable long after the world that made it authoritative has changed.

The Reasoning Ledger is therefore a historical record, not a promise of continuing authority. It tells us what governed the decision then. Determining whether the same evidence still governs a future decision belongs elsewhere in the architecture.

The goal is not to reconstruct what happened inside the model. It is to preserve the externally observable evidence, authorities, policies, tools, approvals, and outcomes that allow someone to examine the decision later.

Observable reasoning is architecture. Private reasoning belongs to the model.

Memory Preserves Knowledge. Reasoning Preserves Decisions.

Memory is fundamentally a write problem, while reasoning is fundamentally an accountability problem. Memory preserves knowledge. Reasoning preserves decisions.

Both are required for trustworthy AI systems.

Looking Ahead

A Reasoning Ledger explains the observable path that produced a decision.

But how do we know those records themselves have not been altered?

That is where Write-Side Custody begins, and where Part 5 will take us.

Top comments (4)

Collapse
 
buildbasekit profile image
buildbasekit

The Git analogy is what clicked for me.

We usually preserve the final code, but the reason behind a change is often buried in someone's memory, an old PR, or completely lost.

For AI agents, that gap could become even bigger. A decision ledger that preserves the evidence and constraints around a decision feels much more useful than trying to make the model “remember” everything.

Collapse
 
kenwalger profile image
Ken W Alger

That's exactly why the Git analogy kept working for me too. We don't expect Git to remember what a developer was thinking. We preserve enough observable history around the change that someone can reconstruct why it happened later.

I think agentic systems need the same distinction. "Remember everything" isn't really the goal. Preserve the durable knowledge, then preserve enough evidence, constraints, and decision history to make consequential changes examinable later.

Collapse
 
pm25coder profile image
pm25coder

This is a great articulation of the write-problem vs accountability-problem split, and the YAML record shape matches what I've found useful in practice. A few data points from running a continuous decision ledger for a self-evolving agent system:

  1. The trigger line earns its keep. Months after a decision, the field people actually read first isn't the outcome - it's what provoked the decision. We force every change to carry its trigger (a timestamped user complaint or incident) into the commit message. "Why did we change this?" becomes a grep, and the audit trail writes itself.

  2. A ledger that only narrates will quietly become fiction. The record is only as trustworthy as its enforcement path. The one time our system nearly destroyed a user's uncommitted work, the fix wasn't a better log entry - it was a structural rule (dirty tree -> read-only) plus a regression test that makes the violation impossible, not just recorded. A reasoning ledger earns trust when it can gate, not merely describe.

  3. Evidence-versioning is the highest-value field in your example. Recording which policy version and which authority governed a decision is what keeps a ledger honest when the world moves on - exactly your "historical record, not promise of continuing authority" point. Most homegrown logs drop this first.

One open question: do you treat the ledger as append-only with forensic receipts (git-style), or is deletion/revision allowed when a decision is superseded? I've found git-style history wins for trust, at the cost of noisier diffs.

Collapse
 
kenwalger profile image
Ken W Alger

I really like the trigger observation. "What provoked this decision?" is probably more useful six months later than another description of the outcome, and I can see that deserving first-class status in the ledger rather than being buried somewhere in the evidence.

I also agree with the distinction between recording and enforcement, although I'd keep those as separate architectural responsibilities. A Reasoning Ledger can tell me that an agent modified a dirty working tree and why it believed that was acceptable. It shouldn't be what makes the modification impossible. The policy/tool boundary should enforce dirty tree -> read-only, while the ledger preserves the evidence that the boundary was evaluated and what happened. Otherwise I worry that the witness starts becoming part of what it's supposed to witness.

On append-only versus revision, I'm firmly on the git-style side. A superseded decision should become a new event, not a rewrite of the old one. That's where I see Forensic Receipts fitting particularly well: preserve what was decided, under which evidence/policy/authority, then record the later superseding decision and its own receipt. "Wrong now" doesn't mean "was never decided then."

The noisier history feels like the right tradeoff to me. Compaction can always produce a useful current-state projection, but once you've rewritten the historical evidence, you can't reconstruct it.