← Streetlight back to all nodes
node · 2026-06-04 documentation public
The input side

Inputs & Drains

How an unstructured stream — voice memos, clipped articles, viewer comments — gets in, and how it becomes nodes. The rule that makes it work: capture is cheap and always-on; interpretation is expensive and on-demand.

The principle

Dumb writes, smart reads.

Input events append plain text deterministically — no LLM in the write path. The agent only fires when Jake runs /drain-all. Capture never waits on a model; interpretation never runs unasked.

WRITE · ALWAYS ON · NO LLM BUFFER · PASSIVE READ · ON DEMAND voice memos clipped articles viewer comments Obsidian / CLI notes drain files plain text, appended & waiting gate /drain-all agent fires N items → N subagents cheap · deterministic expensive · interpretive
The asymmetry, drawn: every surface writes cheaply and always into a passive buffer; the expensive agent stays dark behind the /drain-all gate until Jake asks.

The four input surfaces

FileWriterDefault routingDrain step
drain.mdJake (Obsidian / CLI)varies — build / refactor / stubremove line
viewer-drain.mdlocal-viewer (+ button)build a new noderemove timestamped block
nnw-drain.mdforked NetNewsWirecreate / augment a [[reading]] noderemove --- block
feedback.mdlocal-viewer reactionsrefactor that nodetruncate to empty

The first three are vault-level queues; feedback.md is per-node, the only one tied to a specific existing node. Voice memos route the same way through /streetlight-voice-memo.

The drain, end to end

1 · always on

Capture

Any surface, any time. No agent involved.

2 · on demand

Drain

/drain-all recons every surface, fans out N items → N subagents.

3 · per item

Route

Each subagent appends to a matching node or creates a new one.

4 · deterministic

Clear

Subagent removes its own line. Queue shrinks. N/N reported.

Synthesizes the former drains-and-inputs catalogue + the drain-pattern doctrine. Part of the 5-node public-doc synthesis (2026-06-04). · ← Overview