← Streetlight back to all nodes
lens · L3 node · 2026-06-12 shelves aggregator pace-layer-3

The Shelves

The fast pace-layer (L3): where floating thoughts land before they're routed, promoted, or cut — faster-changing than the SKILLs or AGENTS.md. Two clumps: work-down shelves (principles · complaints · wishes) get swept and routed each pass; records (metaphors · wins) just grow. The inspiration library is the reference shelf (pointer, never paste).

principles

Work-down shelf. Hard-won tenets, one line each — lessons, preferences, system rules. Load-bearing ones graduate UP a pace layer (into a skill or AGENTS.md); redundant ones get cut. The home for every Streetlight principle.

The whole system should fit in my head — one way to do a thing

It should all fit in my head — that's a requirement of the whole system. Jake: It shouldn't require any tool calls to figure out… most workflows shouldn't require a tool call to know the basics of the system. When something is an observation it should just find its home as an observation. Paired ask: there should only be one way to do things — if it can be done. One canonical way, no tool-call needed to recall the basics.

added 2026-06-28 · agent (/file-generically) · from voice memo 2026-06-28
Borrow the Zen of Python — one obvious way, refuse to guess, readability counts

Four lines of Tim Peters' Zen of Python are load-bearing for Streetlight right now. There should be one-- and preferably only one --obvious way to do it. is Jake's standing ask in his own words: There should probably only be one way of doing things… we need more canonical truth. When a fresh agent greps for "my blog", it should hit exactly one canonical answer, not three. In the face of ambiguity, refuse the temptation to guess. — flag the disorientation and keep working unblocked, don't paper over it. Readability counts. — the editability contract and human-first HTML are this, applied. Namespaces are one honking great idea -- let's do more of those! — slugs, shelves, and lenses are our namespaces; keep them clean. When two surfaces disagree, the fix is to collapse to one, not to register the inconsistency.

added 2026-06-26 · agent (/file-generically) · from a deliberate Zen-of-Python dump on component-audit
From prompting toward stating preferences and goals
It would be really interesting if I could get away from prompting and more towards a place of stating preferences. When I prompt and I just tell some work to happen, then that feels like, implicitly, there's an expectation that work is that work just kicks off, which makes sense. We're kind of falling into a loop where I am like the street light metaphor that this whole project is named after. I'm feeling busy, even though we didn't consider all of it. Coming back to how I want this system to be my eyes augmented, I want the observe in the OODA loop to be more. If I'm more giving, if I'm more setting up, stating principles and stating goals, and then letting the agent work autonomously towards those things, where it's showing me stuff and it's working asynchronously, that might be a better way to work. That's something that I want to think about.
added 2026-06-26 · human

agent conduct — how to work

turn-on-the-spigot-do-work-twice — When tokens are cheap, run the same job twice (ideally blind) and let agreement be the signal.

seeds in principles.md

trust-your-assumptions-observe-the-failures — Make assumptions trustworthy, then trust them: let failures happen instead of guarding against them — but never let a failure go unobserved.

seeds in principles.md