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 Active Signal Constraint

A knowledge system where reading drafts generates new drafts is autocatalytic. The queue does not drain toward empty — it grows. Every node that crystallizes opens forks. Every session of reading creates candidates. The operating question is not "how do we clear the queue?" but "how do we allocate attention within a queue that never clears?"

That question has a structural answer. But the answer only works if it is encoded in the right place.


The active signal constraint

A priority signal can be stored anywhere: in a database, in a separate manifest, in file metadata, in the filename. These are not equivalent options. They differ in where the signal becomes active.

Active means: the signal is present and legible without running anything. It is present the moment the file exists. Any agent — human, automated, agentic AI — can read it without special infrastructure, without querying a secondary artifact, without parsing YAML.

A signal in a manifest is latent until the manifest is read. A signal in frontmatter is latent until a parser extracts it. A signal in a database is latent until a query runs. These encodings have real advantages at scale — they're machine-readable in structured ways, they support complex queries, they can enforce schemas. But they require something else to exist before they become active. Before that something else is built, the signal is inert.

The active signal constraint says: at current system maturity, where infrastructure doesn't exist and isn't justified, the encoding that is active without infrastructure is the only encoding that functions. Everything else is a signal that doesn't fire.


The encoding that is active

A filename prefix — 4-my-draft.md — satisfies the active signal constraint because it requires nothing except knowing the convention:

The prefix is a protocol, not a system. It becomes active the moment the file is named. It degrades gracefully: an unprefixed file is simply unranked, not broken. No migration is required if the infrastructure never arrives.

Compare: a frontmatter field quality: 7 is not legible in a directory listing. It requires opening the file or running a query. The frontmatter field is the right encoding when pipelines exist that query it efficiently. It is not the right encoding now, because those pipelines don't exist. Building them before there's signal to process is the mimetic failure mode — infrastructure before users, before signal, before justification.

The encoding choice is not a preference. It is a consequence of the active signal constraint given the current maturity of the system. When pipelines exist that query frontmatter efficiently, frontmatter wins — it is structurally superior at scale. Filename prefix wins now, before those pipelines exist, because it is the only encoding that fires without them. The choice migrates when maturity does.


Implementation

Number or letter?

Numbers (1-9) answer: in what order do I read these? Letters (a-c) answer: which tier does this belong to?

The practical synthesis: use numbers 1-9, interpreted as three coarse tiers rather than nine precise ranks. 1-3 = near-publishable, minimal rework; 4-6 = active work-in-progress; 7-9 = seeds or backlog. Assign based on tier membership, not precise scoring. Reading order is numeric; any future threshold automation compares against a number.

Priority inflation

The critical failure mode: everything lands at 1 or 2. Assigning a low number feels like admitting the draft is bad. Under this pressure, the distribution clusters at the top and the signal collapses.

Mitigation: treat the distribution as the target, not individual scores. If more than a third of drafts are at 1-3, the calibration is off. The useful constraint is distributional — top tier must remain a minority. This is the same logic as forced ranking: coercive, but clean in a single-user system with no interpersonal dynamics.

The publish boundary

At publish, the prefix is stripped:

Cross-references always use the unprefixed slug. If prefixed slugs appear in related fields, renaming a file to change its priority breaks references. The convention that makes the prefix system cheap to maintain: priority changes don't ripple.


Future

Once the prefix is established:

Autopublish gate: a draft at prefix 1 or 2 that passes linting (frontmatter complete, word count above floor, no TODO blocks) can be published without manual review. The human scored it near-ready; the gate confirms mechanical completeness.

Threshold suppression: drafts at 8 or 9 are excluded from the default view. They exist in git but don't surface in the operating context unless requested. Cognitive load drops without deletion.

Queue aging: a draft at prefix 3 for multiple sessions without activity is a candidate for downgrade. The prefix creates a signal about stagnation invisible to alphabetical ordering.

None of this requires building anything now. The naming convention is forward-compatible with all of it.


P.S. — Graph maintenance

This node is the consumption-side analog to marginal-node-value: that node asks which draft is worth adding; this one asks in what order to attend to the ones already in the queue. Together they describe selection logic on both sides of the pipeline.

It connects to feedback-as-process-signal: when a draft comes back with process-signal feedback, two crystals on the same topic appear in the queue. The active signal constraint is what makes the priority ordering between them legible — the clutter problem revision creates is a solved problem once the prefix convention is running.

It extends accumulation: an autocatalytic system without a discipline function accumulates noise, not signal. The queue discipline is what preserves the signal property of the accumulation.

The deeper connection: the active signal constraint is an instance of the agency principle — act on the constraint, not the symptom. The symptom is "the queue is hard to navigate." The constraint is "priority signal must be active at the lowest layer of the stack or it doesn't function." Acting on the constraint (filename prefix) solves the symptom and is forward-compatible. Acting on the symptom (sort by frontmatter when pipeline exists) defers the problem.