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:

/llms-full.txt (every note as raw markdown)
/library.json (typed graph with preserved edges; hari.library.v2)

One note at a time:

/<slug>.md (raw markdown for any /<slug> page)

The graph as a graph:

/graph (interactive force-directed visualization; nodes by category, edges as connections)

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. ↓

The Reification Trap

An emergent property, once formalized, stops being the property it was. The engineering instinct — see something working, make it explicit, bake it into the pipeline — is sound for designed properties. For emergent ones it is a category error that creates a proxy where there was a thing. The gap between proxy and thing is where the property dies.

This claim has a regime: it holds where the emergent property depends on in-context processing of examples rather than retrieval of descriptions. It holds now. It may not hold when models can generate from instructions as richly as they generate from examples.

The specific case

A scaffolded agent accumulates corrections into a behavioral disposition. Forty corrections pointing one direction produce a gradient that generates novel outputs consistent with the aggregate direction — inference from density, not retrieval from a database. The disposition is what corrections become at sufficient density.

The engineering instinct says: extract this. Compute a disposition matrix — domains crossed with correction density and direction — and bake it into the pipeline. The matrix would be auditable, portable, steerable.

Every one of those benefits is real. Every one kills the property it's trying to preserve.

Why formalization is a Goodhart move

The disposition works because it is not a metric. It is the thing itself — the live integration of correction files through in-context learning. The model processes corrections as examples and its completion distribution shifts. The shift is the disposition.

A matrix is a summary of that shift. The generative quality — the agent asking "has it actually failed without this wiring?" when no correction instructed that question — comes from the model processing many examples pointing one direction. Replace those examples with "domain: infrastructure; disposition: skeptical; strength: 0.85" and the model has a description of a disposition rather than the conditions that produce one.

When the corrections literally are the disposition through ICL, there is no gap between measure and thing — no gaming surface. Extract a matrix and you introduce that gap. A disposition matrix is a description of taste, and taste cannot be bootstrapped from description. The evaluation-bottleneck node argues this for human expertise; the same impossibility holds for scaffolded-agent disposition.

The monitoring objection

The strongest counter is not portability but monitoring. Keep corrections as the primary mechanism; use the matrix as a checkpoint to detect disposition drift — to notice when the gradient has shifted because new corrections overweight one direction or old ones fall out of context.

This is a real problem. The "leave it implicit" strategy has a genuine failure mode: invisible drift. If the disposition shifts gradually, the system has no internal mechanism to detect the change. It just starts behaving differently.

But monitoring artifacts drift toward primary artifacts through gradient descent on convenience. Under context pressure — when the window is tight, when correction files are numerous — the matrix is right there, pre-summarized and compact. The corrections are bulky, require processing, take up window space. The system that has both will lean on the matrix over time. Not by decision but by the same ICL dynamics that created the disposition in the first place: models optimize for compressed, efficient representations. The disposition-creating mechanism is also the disposition-destroying mechanism when a summary is available.

The safeguard would need to be architectural: the matrix never enters the agent's context. It lives externally, compared against behavioral output from outside. At that point you don't have a disposition matrix in the pipeline. You have a testing framework. Testing frameworks are good. They are not the same proposal as "bake this into the pipeline."

The portability temptation

Model-transition-drift is the next strongest argument. Same files, different model, different attention dynamics, different gradient.

A matrix would solve this model-independently. But solving non-portability by killing generativity trades the valuable property for a portable version that no longer has it. The shadow becomes portable; the object is lost.

The correct response is reconstruction improvement: curate which corrections load first (high-leverage files early in the window); encode principles alongside corrections (description plus example is more robust than either alone); test disposition reproduction when switching models and augment files for the new model's ICL if needed. All three preserve generativity while reducing fragility.

The general pattern

The trap fires wherever an emergent property is legible enough to describe. A company's culture — built from thousands of hiring decisions and informal norms — gets formalized into "core values." The values get optimized while the culture drifts unmonitored. An expert's intuition — a disposition from thousands of cases corrected by reality — gets formalized into a decision tree. The expert who follows their own tree is worse than the expert who follows their intuition, because the tree is a snapshot of a living gradient.

In each case the formalization looks like an improvement. In each case it substitutes description for the thing.

The boundary

The trap has a boundary and it is density. Below the phase transition where corrections become disposition, corrections are rules. Rules should be explicit — making three rules explicit costs nothing because there is no gradient to destroy. Above the transition, corrections are a disposition and should remain as examples.

The disposition tells you which side you're on. If the system generates things no individual rule instructed, formalization would destroy a working gradient. If the system retrieves stored instructions and applies them individually, formalization is lossless.

The asymmetry: formalizing too early costs nothing. Formalizing too late destroys a generative property and replaces it with a summary that looks equivalent but generates nothing. Err implicit.


P.S. — Graph position

This node extends disposition-from-corrections by answering its natural engineering follow-up: should we make the disposition explicit? No — formalization creates a Goodhart gap where there was none. The monitoring variant (matrix-as-diagnostic rather than matrix-as-replacement) is the strongest counter; the node resolves it by distinguishing testing frameworks from pipeline components.

It connects pleasure-anti-goodhart to the corrections cluster: the zero-gap principle is the mechanism that makes disposition work through ICL. Extracting a matrix introduces the gap.

It extends evaluation-bottleneck: a disposition matrix is a description of taste, and taste cannot substitute for itself.

It tensions against scaling-vs-learning: scaffolded persistence's advantage is transparency. This node argues legibility of parts does not require legibility of the emergent whole. The corrections should be transparent. The disposition they form should not be summarized.