---
title: "ADR 0011: The reference kernel is storage-neutral"
description: "Prove the complete action loop in memory before selecting Har or another persistence engine."
navLabel: "ADR 0011"
order: 111
nav: false
eyebrow: "Decision"
status: "accepted"
theme: "main"
visibility: "public"
---

## Context

The Step 1 contracts need executable proof, but choosing a database now would let persistence details define semantics before the protocol has survived one complete loop.

## Decision

`main` includes a deliberately small in-memory reference kernel that:

```text
validates a request
  -> claims idempotency
  -> resolves trusted authority
  -> executes one bounded operation
  -> records ordered events and evidence
  -> optionally invokes an explicit objective evaluator
  -> emits a result and immutable receipt
  -> reconstructs the request after executor replacement
```

The kernel depends on interfaces and protocol records, not Instant, Har, SQL, Vercel, or a filesystem. It is a conformance reference and Step 2 integration target, not a production runtime claim.

The reference bounded-read executor projects only resolved fields. Replaying a completed request returns the original result. Encountering an admitted request without a final receipt returns an explicit recovery state instead of rerunning it.

## Consequences

- Step 1 contracts are executable rather than aspirational;
- storage selection remains reversible;
- HARnest can implement the same boundary without importing an accidental database ontology;
- the next milestone can test one real durable task against this reference behavior;
- `main` stays a compact constitutional/reference repository rather than becoming the production HARnest implementation.
