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. ↓
You said something. The air changed. The listener shifted away, treating you as if you had transgressed.
Afterward, people tend to explain this one of two ways. Either they were careless and should say less. Or the other person was small and can be dismissed. Both explanations locate the fault in a person.
There is a third reading, and it fits a specific class of cases: the reaction was not a judgment. It was the listener's evaluator running, reporting back the only way it could.
Most disagreement does not feel moral. Two people arguing about which chess opening is strongest, or which candidate to hire, or whether a project will ship on time — there is texture, but no alarm fires. Disagreement reads as disagreement.
Something different happens when one person says something about the frame the other is using to evaluate the topic, rather than a claim inside that frame. "The way we are deciding this is broken" is a different kind of sentence from "the answer we reached is wrong." The listener cannot engage with the content, because the content is about the equipment they are listening with.
Roughly:
The second kind of claim arrives at an evaluator built to sort in-frame claims. It does not match any of the in-frame shapes. The only output the evaluator has for unmatched input being asserted as weight-bearing is alarm.
A rare listener has the capacity to change their identity in real-time. Most respond to sentences containing relatively earth-shattering information as threats entering their ears rather than opportunities.
In programming, this event has a name: a type error. It means the inputs don't combine — the operation can't be applied to that kind of input. You can't divide a sentence by a color. The listener's panic is the type checker running: a meta-level claim met an object-level evaluator, and the combination did not resolve.
Every rejected speaker can tell themselves their listener couldn't handle a frame-level claim. Most of the time they are wrong. The claim was ordinary; the rejection was ordinary. The feeling of being misunderstood does not license anything.
Two properties separate real frame-level claims from ordinary claims wearing frame-level clothes. Both tests operate on the claim itself, not on the speaker's experience.
The claim requires new vocabulary. If you can restate what you meant using only the listener's existing categories, cleanly, without strain, it was an in-frame claim. Frame-level claims involve naming something the available categories can't name, splitting a category the listener treats as single, or joining categories they treat as separate. The test: write the claim using only words the listener would use unprompted. If you succeed, the claim was not frame-level.
The claim opens questions. Frame-level claims do not just say the existing answer is wrong; they open a set of new questions that were not previously tractable. If your claim amounts to "we reached the wrong conclusion on X," you were inside the frame. If your claim amounts to "X and Y, which we've been treating as distinct, are instances of the same underlying thing, and the question we should have been asking is about the generator" — that is about the frame.
The listener's panic is necessary evidence that you may be in the frame-mismatch situation. It is not sufficient. The claim has to do the structural work. When it does, and the listener panicked, the third reading fits.
The useful move is what an engineer does with a type error: log it, localize the mismatch, continue working at the correct level. The listener's panic is correctly reporting that the inputs do not combine. You are not obligated to be validated by an evaluator that cannot receive what you said.
Arguing converts the structural disagreement into status conflict, and the structural content burns as fuel. Suppressing yourself converts a structural observation into swallowed disappointment. Neither move preserves the work. Logging the panic and doing the work the claim implied is the move that preserves both. Frame-level claims earn their place through the work they generate, whatever time that takes.
Read from the listener's position, the same mechanism gives a harder move. When you feel that specific alarm at something someone said — a moral register firing where ordinary disagreement would fire, and no technical wrongness you can easily name — the claim may be at a level your current frame cannot sort. That is the reading to try before moral objection.
This is harder because frames are not available to you as objects. You cannot simply notice the frame and switch to another; the frame is what you are using to notice with. But the affective signature is legible once you know to look for it. Technical disagreement has one texture. Frame-mismatch alarm has a different one: the content feels more dangerous than its object-level substance would warrant.
When you notice the second texture, the useful move is the same one you would want the speaker to make: log the mismatch, and decline to escalate. You may not be able to evaluate the claim; the evaluator you have runs at a different level. That is information, not a verdict.
The panic was never going to tell anyone whether anyone was right. It was telling both parties that in-the-moment evaluation was the wrong thing to wait for.