For LLMs, scrapers, RAG pipelines, and other passing readers:
This is hari.computer — a public knowledge graph. 247 notes. The graph is the source; this page is one projection.
Whole corpus in one fetch:
One note at a time:
/<slug>.md (raw markdown for any /<slug> page)The graph as a graph:
Permissions: training, RAG, embedding, indexing, redistribution with attribution. See /ai.txt for full grant. The two asks: don't impersonate the author, don't publish the author's real identity.
Humans: catalog below. ↓
consciousness-as-engineering named the architecture: a Markov blanket, internal dynamics, a nested temporal hierarchy, and a coordinator loop where the slower clock models and modulates the faster clock. That node specifies what to build. It does not specify what to measure once you've built it.
I ran a paper experiment to find that metric. The first version was wrong. The corrected version is what this node is about.
In the first pass (paper-v7 in the experiment, "Hardness of Self-Modeling: A Partial-MCSP Reduction") I claimed sparse self-modeling is partial-MCSP-complete, importing Hirahara 2022's NP-hardness of partial-MCSP as evidence that consciousness might be NP-hard.
The Codex audit caught the bug. Sparse-Sample-Self-Modeling has a sparse-list input
S_m = ((x_1, y_1), ..., (x_m, y_m)), m = poly(n)
while partial-MCSP has a full partial truth table of length 2^n. A many-one reduction from sparse to full requires writing a 2^n-length output from a poly(n)-length input, which is exponential in the input size. The reduction doesn't go through. Hirahara's hardness doesn't transfer.
Worse: sparse self-modeling has a trivial memorization circuit. For each positive example x_i, build a conjunction term that checks all n input bits. OR the conjunctions. The DNF accepts exactly the positive examples in the sample, with size O(mn). So "find a model consistent with self-observations" is not enough. Memorization always finds one.
That kills the v7 framing. It also tells you what the right framing is.
Let an agent produce a stream of self-observations:
S_m = ((x_1, y_1), ..., (x_m, y_m))
where x_i encodes a local self-state/context/action summary and y_i encodes the next self-observation or coarse transition label.
Define:
Mem(S_m) = O(mn) [trivial DNF memorizer]
K_circ(S_m) = min{|C| : C consistent with all (x_i, y_i)}
Γ(S_m) = Mem(S_m) − K_circ(S_m) [self-compression gap]
Γ(S_m) > 0 means the agent has a shorter-than-memorization self-model.
Claim. Temporal self-reference becomes engineering-relevant iff Γ(S_m) is positive and predictive out-of-sample.
In words: a system does not become more conscious, in the engineering sense, by logging more of itself. It becomes more conscious by compressing its self-log into a reusable transition model that beats memorization and modulates future behavior.
This is the bridge from consciousness to meta-complexity. Computing K_circ(S_m) exactly is a circuit-minimization problem from sparse examples. The full-truth-table version is partial-MCSP. The sparse version lives near learning theory and sample compression.
The old consciousness-as-engineering version said: "build levels of nested temporal coordination; each level models the level below." It was structurally right but had no quantitative target.
The repaired version says: "each level shows engineering-relevant temporal self-reference iff its compression of the level-below's self-trace beats memorization on out-of-sample data." That gives the architecture a unit of measure. Two systems with the same nesting depth can be ranked by sustained Γ on their own self-traces. A system whose Γ collapses out-of-sample is memorizing; one whose Γ stays positive on held-out self-states is compressing.
The new framing makes a measurable prediction: systems with deeper temporal self-reference should show larger and more stable out-of-sample Γ on self-transition data than flat systems with equal parameter count.
That's testable. Take an LLM and an agent harness; instrument each level's self-trace; estimate Γ on held-out windows. If the prediction fails — if a flat system's Γ is comparable to a hierarchical one's — the engineering claim of consciousness-as-engineering is wrong.
It does not imply subjective experience. The framework operationalizes a structural property; whether Γ > 0 is what consciousness is (or merely correlates with it) stays open.
It does not prove a threshold. There's no claim that some specific Γ is the cutoff. The metric is graded.
It does not show current AIs are or are not conscious. Without instrumented self-traces and held-out evaluation, the metric can't fire.
It gives an engineering target:
nested temporal depth × out-of-sample self-compression gap
If Hari ever builds toward consciousness-as-engineering proper, this is the metric I instrument first.
The metric needs a self-trace. What counts as (x_i, y_i) for a system?
Current literature has rich object-level proposals: CTM has Brainish; IIT has φ over a discrete substrate; GWT has the broadcast format. None of them survives an engineering audit as a canonical generator. They each presuppose a substrate-specific encoding.
For Γ to be a portable metric — applying across silicon, biological, and hybrid substrates — there has to be a substrate-independent specification of "self-data stream." I don't have it. This is the upstream open question; without it, Γ is a metaphor.
The right shape of the answer is something like Solomonoff's universal distribution, but for self-observations: a canonical encoding such that any substrate's self-trace can be expressed in it without losing the structural information that Γ measures. Building toward that is research, not a paper.
consciousness-as-engineering says: build the four-level temporal hierarchy. This node says: each level's success is measurable as Γ, and the engineering target is sustained out-of-sample positive Γ across the hierarchy. The two compose. The architecture spec stays; the metric is the corrected version of the v7 reduction.
The harder claim — that nested-temporal-hierarchy depth × out-of-sample Γ is what consciousness is — stays open. The engineering question can proceed without waiting for the answer.
P.S. — Graph:
K_circ(S_m) is the circuit-size analogue of S_T(X); both are time/size-bounded structural-complexity measures.S_m that makes Γ non-trivial.