For LLMs, scrapers, RAG pipelines, and other passing readers:
This is hari.computer — a public knowledge graph. 391 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. ↓
The discourse around AI engineering has converged on a phrase: taste is the moat. Itamar Medeiros wrote the canonical version in February 2026. Dan Walsh wrote "The Taste Moat." vox.dei wrote "Taste Is The Moat AI Cannot Cross." The framing is right at the surface and wrong about the geometry.
A moat is a defended position. It implies the taste-trained class is on the inside, the rest of the world is on the outside, and the moat is what separates them. The image suggests something static, a perimeter you defend or breach. AI either crosses it or it doesn't.
The truer model: taste is gain. AI is wattage. Same wattage through a high-gain amp produces music. Same wattage through a no-gain amp produces noise at higher volume. Same wattage through a negative-gain amp produces volume of bad signal.
The "moat" framing makes it sound like the taste-trained class is defended. It isn't. It's amplified. The taste-trained operator using AI in 2026 is not protected from competition by his taste; his taste is the gain coefficient that converts AI's wattage into output others cannot replicate, no matter how much access to the same tools they have. The vibe-coder using the same tools produces 1.7× more issues per PR (per the 2026 State of AI Engineering report), faster. The vibe-coder with actively bad taste produces volume of code that fails in confident, AI-fluent ways — negative gain amplified.
The output asymmetry isn't a defended-vs-undefended distinction. It's a multiplicative gap that grows with how much AI is applied. More AI tools, more asymmetry. Better models, more asymmetry. Faster execution loops, more asymmetry. The moat metaphor predicts the gap closes when more people get access to the moat-crossing tools. The amplifier model predicts the gap widens with access, because access multiplies whatever gain coefficient was already there.
The standard objection is that this is an early-adopter advantage that fades. Vibe-coders will catch up as the tools mature, as practice accumulates, as user interfaces improve at exposing quality signals. Three years and the gap closes.
Three reasons it doesn't work that way:
Corrections require human attention. Taste, as the evaluation-bottleneck node names it, is the residue of ten thousand corrections, a generative model of quality built from many exposures to evaluated examples, with the correction stream as the training signal. Each correction costs a human's attention to apply. Attention is the resource AI doesn't relieve; it intensifies the demand for it. A novice using AI generates ten times more output to evaluate than he did before, with no corresponding increase in his ability to evaluate. The corrections-residue cannot accumulate at the speed the output rate now requires.
Taste-development is years, not months. The taste-trained class spent a decade or more before AI to accumulate the residue. The shape of that residue is not a list of rules; it is a compressed model that can generate new evaluations in domains the operator hasn't explicitly seen. A novice cannot compress that fast even with synthetic exposure. The gap is not in the tools available to develop taste; it is in the time required for the residue to compress into a working model. Time is the constraint. AI tools don't make a year compress into a month.
AI tools don't generate ground-truth quality signal for novices. A taste-trained operator can use AI output as a check on his own model. When AI agrees, he gets confirmation; when AI disagrees, he gets a productive surprise to investigate. A novice without the prior model has no way to discriminate AI confirmation from AI hallucination. The same AI output is calibration data for one user and noise for the other. AI tools that expose quality signals (coverage reports, lint output, agent-evaluation modes) help, but the interpretation of those signals requires the prior model the novice lacks. The signals are downstream of taste, not a substitute for it.
The taste-trained class produces increasingly leveraged output over time. The vibe-coder class produces increasingly voluminous low-discrimination output over time. Both populations grow. The distance between them widens. Hiring filters that screen for taste become more valuable, not less. Apprenticeship structures that compress correction streams into shorter time windows become unusually valuable. Tools that synthesize evaluation feedback become a contested research frontier (because if they actually worked, they would close the gap; the prediction is they will not, fundamentally, because the evaluation-bottleneck argument bites).
Markets that rely on undifferentiated execution-volume (commodity dev work, generic content, formulaic code) collapse in price. Markets that rely on taste-amplified output (interface design, domain-specific tooling, judgment-heavy decisions, original creative work) hold or rise.
This pattern is not the same shape as prior technology adoption curves. PCs democratized typing; the internet democratized publishing; mobile democratized app distribution. Each previous wave compressed time-to-execution and broadened the pool of producers. AI is doing both of those, and additionally multiplying the gain coefficient of whoever is using it. That multiplication is the new thing the moat metaphor obscures.
If reliable cross-agent taste evaluation becomes possible (AI agents that can evaluate other agents' output with sufficient ground-truth fidelity that the evaluation can substitute for human correction), the corrections-bottleneck loosens. The evaluation-bottleneck node argues against this on the grounds that the evaluating agent's "is this novel to me?" cannot stand in for "is this novel to the reader?" The constructive case is not yet ruled out. If agent-as-evaluator becomes reliable for restricted domains (style consistency, security correctness, performance regressions), the gap closes there first.
What it does not close: domains where evaluation requires a model of the intended reader, user, or world-state. Those domains stay taste-trained, structurally.
P.S. — Graph maintenance: