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
complaints
Work-down shelf. Lived friction, no fix implied. Dump the irritation where you feel it; patterns surface across the pile. A complaint that grows a fix becomes a wish or a bug elsewhere.
Q: not a complaint, just a Q: what is the view the system has on the user? how granular? when user is clicking around local app? how about sync conversations/workflows? is there any way we could have some sort of metric on features so we can mechanically catch things that aren't getting used, nodes that go unvisited or visited and hten forgotten about?
added 2026-06-30 · human
Three things worth your eye when we talk (in the node's .md, not as blockers):
added 2026-06-29 · human
Add-Box Reloads the Whole Node add-box reloads the whole node instead of inserting locally. Type→send writes the file fine (POST /api/add-item ✅) but the view only updates via a full re-render: postMessage sl-refresh-node → viewer re-fetches the entire 248KB doc and swaps frame.srcdoc; guarded by !current||verIdx>0 so it silently drops while viewing version history (= the "sometimes broken"). Fix: optimistic DOM insert of the .dn-item from the returned id + fire-and-forget POST; backend already correct, only two client copies (shelves.html:2477, viewer.html:1995). Server stays = the disk; kill its role in rendering.
added 2026-06-29 · human
Stale Drag Docs, Active-Archived Mismatch no skill addressing it yet doctrine still documents the removed drag mechanism; three nodes marked active declare themselves archived in their own bodies. What I did with it - Full findings (every citation + verdicts) → nodes/context-max-coherence-probe/findings.md. - The single sharpest contradiction is pinned in place as a flag-note on .claude/skills/settings/SKILL.md, right under the auto-block — "node cap: is it 5 or 10?" — phrased as your decision. I did not silently change the value; that 5-vs-10 call is yours, and reconciling it (set the panel, re-run /settings-to-agents) makes the other surfaces fall in line. The rest stayed in the node rather than becoming eight more flag-notes — most are cleanup an agent findings.md is pretty terrible because I can't see that.
added 2026-06-29 · human
A list/to-do component creates a felt obligation to fill it
Jake, on a list component: it feels like there's an obligation to put items in the list component? like why are these all here. A UX/design smell about the component pattern itself, not any one node — the empty-list affordance nudges agents (and me) to manufacture filler items just because the slots are sitting there. No fix implied; logging the friction so the pattern can be watched.
added 2026-06-28 · agent (/file-generically) · from comment on archived proposal-obs-lit-as-components
Mirror-experiment writeup built free-hand → no affordances
The mirror-experiment self-reflection node was authored without a TEMPLATE, so its blocks carry no comment / copy-context / ✕ affordances — Jake can't act on any individual piece in place. Not a huge deal (his words), but a recurring smell: rich agent writeups get free-handed as prose and skip the affordance contract, becoming read-only walls instead of actionable surfaces. Same discretion-sprawl axis the precreate-gate targets — the fix is to make template-born the default for generated nodes, free-hand the logged exception.
added 2026-06-27 · agent (complaints shelf · from mirror-experiment review)
wishes
Work-down shelf. Features and flows we want but haven't built. Jot a want; realized → harness edit, gone; abandoned → ✕, gone. The system as we wish it to be.
nodes/semble-max/semble-max.html eventually, I want to get things working. I want to go as far as we can with Semble, but I want to do it slowly.
added 2026-06-30 · human
metaphors
Records shelf — grows. The evocative images Jake and the LLM both reach for, as shared shorthand. A growing reference library; every entry carries a visualization.
🚩 FLAG-NOTE — metaphors triage proposal (Jake to CONFIRM/EDIT; a single owner then applies to .md/.html). 19 featured metaphors vs the ~5/shelf target. Pre-work done — proposed routing below, nothing cut yet. The keep-set is the ONLY irreversible call; consolidations/cuts reroute losslessly (git remembers).
KEEP-5 (foundational, structurally load-bearing, live nowhere else): streetlight-effect (the namesake) · elephant-with-braille (agents feel one part → trust pace-layers; great diagram) · movie-trailer (canonical node-design image, cited by node-modest principle + AGENTS.md) · midas-gloves (maps the capture→middle→promote-to-gold doctrine mechanism itself) · figure-skater-loops (the loop-tightness/OODA image; absorbs the other OODA-loop metaphors).
→ CONSOLIDATE into a kept metaphor, then cut the row: flow-state-tight-ooda + blown-up-ooda-loop + drawing-is-an-ooda-loop → fold into figure-skater-loops (all four say "X is an OODA loop at some tightness"; loop-is-a-verb principle already canonicalizes the tightness/size axis citing the ice skater). node-as-iceberg → fold into movie-trailer (both = small surface, big submerged depth). Keep ONE of {inception-dreamscape, writers-office} ("the system is a room"), cut the other.
→ FOLD INTO A SKILL (canonical elsewhere): desire-paths → pace-layers / "make the skill" (wear-bare-then-pave = thin-harness-fat-skills). artifact-driven-development → do-twice / agentic-laziness gate (Jake himself: "more metaphor than principle").
→ CUT (lived-personal / Jake-flagged-forced / redundant): stream-vs-lake (Jake: "possibly forced — I hit a wall") · pushing-the-block-of-ice (lived "making something leads to nothing" — evocative, not system-structural) · split-brain-confabulation (lived/philosophical) · the-trellis (stream/growth image overlapping stick-in-the-stream).
GENUINELY-JAKE CALLS: (1) hammock-chair — you ADDED it today (2026-06-28) and asked for a diagram; recommend KEEP + build the SVG (priority #1: visualizations → SVGs), NOT cut. (2) stick-in-the-stream-legibility — strong legibility image; keep, or fold the-trellis into it. Confirm the keep-set + the room-metaphor choice; everything else reroutes losslessly. Net: 19 → ~6 kept.
The hammock chair — trusting AI is lowering your weight in
Trusting AI is like putting your weight into a strange hammock chair. You're not quite sure where your butt's supposed to go, and you've heard people fall dramatically out of these — so you can't really sit tentatively. The people who are like "use AI, but verify all your outputs, look over every line of code" — that's inspecting the hammock chair. But you actually just have to put your butt down, and it's okay if you fall out, because you can dust yourself off and try again. Then you begin to put more weight in, and more, until there's a moment where you put ALL your weight into it. Could be a false dawn — but it's how the system feels right now. Would benefit from a diagram (Jake: this could use a diagram, this is an analogy).
added 2026-06-28 · agent (/file-generically) · from voice memo 2026-06-28 · ⚠ needs a diagram
A stick in the stream
Giving a really open-ended prompt is like dropping a stick in the stream and seeing where it goes. The water all looks the same until an object rides the current — the stick is the legibility, an object rides the current. A node is that stick: it makes an otherwise invisible flow legible, slow, alive — it tells the story in a really nice way. (Extends the stream model in node-for-streams, now archived.)
added 2026-06-26 · agent (file metaphor) · from Jake's comment on node-for-streams
Little Free Libraries Vibe-Coding little-free-libraries-vibe-coding — an economic metaphor for value-collapse, flagged imperfect by Jake ("falls apart a little bit. There's something there, though"). Jake: "books used to cost money. You would never put your books in a little box outside your house because they were worth something… now there is, and nobody reads anymore, and it's performative. And so coding — it used to be very bad. Code used to be very valuable. Now it's not. And so we still have code." The little free library = the fate of a thing whose value collapsed: we keep producing/sharing it freely and a little performatively, because it no longer costs anything. Maps onto vibe coding. Rough edge kept on purpose — a seed, not a finished image. (added 2026-06-26 · agent · from voice memo 2026-06-23)
added 2026-06-26 · agent
The Trellis
the-trellis — Jake: Another metaphor could be the trellis… you're growing tomatoes and you give the vine something to climb. The stream is the dynamic thing the vine grabs onto. The LLM is the gardener / fertilizer that supercharges the thoughts thinking themselves. And then you look at the trellis — so if your trellis is boring and capitalistic, your system will be too. But it's not the essence of the thing.
midas-gloves — refined to fingerless gloves, a three-state image for the shelves layer. No harness = Midas isn't Midas: just a chat interface, you chat and get no "gold" at all. The shelves = fingerless gloves: you touch stuff — take notes, float wishes/principles — and it does NOT turn to gold. Peel back the mitten tip to bare a fingertip and touch on purpose = promote a wish/principle into the system prompt or a skill (it becomes gold: durable software). Without the gloves Midas turns everything to gold by accident — editing AGENTS.md + skills until they're unusable.
refined 2026-06-13 · system-&-surfaces family · seeds in shelves.md
"With shelf you can have fingerless gloves which means you touch stuff (take notes) and it doesn't turn to gold but if you want it to be gold later you can take the mitten part off the top of your fingerless gloves and touch it (promote a wish/principle/whatever to system prompt or skill)." — Jake, 2026-06-13 · no harness = just chat, no gold · sibling of the capture-everything-act-on-subset principle
inception-dreamscape — Streetlight as the dreamscape test from Inception: we design the room such that when inputs come in, there's a home for them and natural workflows to do. In the movie they put the safe in the dreamscape so the dreamer would put their secrets in it — we put the node structure here so that inputs have a place to go. Voice memo 2026-06-12.
new · system-&-surfaces family · seeds in shelves.md
"We design the room such that when inputs come in, there's a home for them… they put the safe in the dreamscape so the dreamer would put their secrets in it — we put the node structure here so that inputs have a place to go." — voice memo 2026-06-12 · sibling of writers-office (the room's layout matters)
writers-office — Streetlight as a writer's office (not a corporate office): expressive, opinionated, architected — the room's layout matters. A circular tower with its desk: a place where inputs have natural homes and the workflows feel like you belong there. Voice memo 2026-06-12.
new · system-&-surfaces family · seeds in shelves.md
"A writer's office, not a corporate office… expressive, opinionated, architected — the room's layout matters. A circular tower with its desk: a place where inputs have natural homes and the workflows feel like you belong there." — voice memo 2026-06-12 · sibling of inception-dreamscape
drawing-is-an-ooda-loop — strip art down to its loop: make a mark on the page, look at it, react, mark again — you're in a loop. Sibling of 09 (the loop spun fast) and 11 (the loop blown up to walk-around size). Voice memo 2026-06-10.
13 · loops family · seeds in metaphors.md
"And then you think about the ooda Loop of … drawing. Like, that's all it is, right? … You make a mark on the page. And then you look at it. And you think, huh? That's that! … Yeah, that's like, you're in a loop." — voice memo 2026-06-10-18-48-dad195be · sibling of 09 Flow State (loop spun fast) and 11 The Blown-Up Loop (the robot makes this loop walk-around size)
stream-vs-lake — a lake has an inlet AND an outlet but holds a reservoir; a stream holds nothing — everything flows through. Why have a codebase when you can generate what you need when you need it? A permanent honeymoon phase. Voice memo 2026-06-10.
12 · making-things family · seeds in metaphors.md
"A lake also has an inlet and an outlet[, it] just hang[s] on to things for longer. … A stream … you're not holding on to anything. You're just letting it flow through. … Why have a code base? When you can just generate whatever you need when you need it. And then. You're always in the honeymoon phase." — voice memo 2026-06-10-21-51-13d308b4 · cousin: "stick in the stream" (deeper cuts)
blown-up-ooda-loop — like the giant walk-around computers in chintzy 80s documentaries, the robot project blows an OODA loop up to massive size — in space AND in time — so you can look inside it. Once visible, the knobs appear: loop tightness, more per action, the most efficient way to observe. Voice memo 2026-06-10.
11 · loops family · seeds in metaphors.md
"The point of this project is to make the loop big enough that you can see it just like those old chintzy 80s documentaries about computers, how the the kids walk around the computer that's blown up to massive size? This is blowing up an [OODA] Loop into. Space. … But also big in time, too … you can actually look inside it." — voice memo 2026-06-10-18-52-27dfa3a3 · the project: robot-framework (archived)
pushing-the-block-of-ice — Francis Alÿs, Paradox of Praxis 1 (1997): nine hours pushing a melting ice block through Mexico City until it's a wet streak. Sometimes you do a whole big thing and it leads to nothing. Voice memo 2026-06-09.
10 · making-things family · seeds in metaphors.md
"I loved that video art piece of … pushing a block of ice through Mexico City, and like, sometimes. You do a whole big thing. There's at least to nothing. [sic — "leads to nothing"]" — voice memo 2026-06-09-16-01-78120eda · Francis Alÿs, Paradox of Praxis 1 (Sometimes Making Something Leads to Nothing)
flow-state-tight-ooda — the athlete mid-game is the same Observe-Orient-Decide-Act loop, spun too fast to see the steps. Sibling of 05 Figure-Skater Loops: arms in, smaller radius, faster spin. Voice memo 2026-06-09.
09 · loops family · seeds in metaphors.md
"like an athlete is? Observing and orienting and deciding and acting. Maybe a maybe flow state is a really tight [OODA]?" (transcribed "a really tight Buddha") — voice memo 2026-06-09-16-01-78120eda · sibling of 05 Figure-Skater Loops: arms in, faster spin.
split-brain-confabulation — split-brain patients confabulate tidy reasons for actions one hemisphere never saw — maybe Jake's own sense of coherence, and therefore the system's, is the same made-up story. Frustrated the harness won't cohere? Maybe there was never cohesion to extract. Voice memo 2026-06-09.
08 · the-mind family · seeds in metaphors.md
"What if my internal notion of my own coherence is a myth? … It's frustrating to talk to the system as if it's a human and to feel understood, but to not get the results of the cohesion. Maybe the cohesion is a myth." — voice memo 2026-06-09-22-56-2a01d49c
node-as-iceberg — as a node grows it becomes MORE like an iceberg: the html tip stays trailer-small while depth (md, code, logs, prototypes) accumulates below the waterline. Both icebergs are good — the ratio is a lifecycle stage, not a failure mode. Absorbed from archive/what-is-a-node 2026-06-10.
07 · system-&-surfaces family · seeds in metaphors.md
As a node grows it becomes more like an iceberg: the html tip stays trailer-small, depth accumulates below the waterline. Both icebergs are good — the ratio is a lifecycle stage, not a failure mode. — Jake, voice input 2026-06-09 · archive/what-is-a-node
artifact-driven-development — don't game out the best hypothetical — as soon as the idea exists, build several WORKING versions and choose between real artifacts. Artifacts explore the latent space; get usable ASAP, then keep adapting the winner. Voice memo 2026-06-10.
06 · making-things family · seeds in metaphors.md
Build artifacts not to ship a polished product but to explore the latent space of possibilities — they must work, get usable ASAP, then adapt to your needs (the midi mini-harness is the worked example). — voice memo 2026-06-10
figure-skater-loops — arms in, tighter loop, faster spin (L = I·ω) — feedback loops obey conservation of angular momentum. From archive/figure-skater-loops.
05 · loops family · seeds in metaphors.md
Same energy, smaller radius, more revolutions — feedback loops obey conservation of angular momentum. — voice memo 2026-05-13 · archive/figure-skater-loops
desire-paths — let the grass wear bare under repeated crossings before pouring concrete; one paved footstep is cruft. The axis is footstep COUNT + loop tightness — wander, vary, repeat, THEN pave the worn line (= make the skill). Absorbed from archive/paving-your-footsteps 2026-06-10.
04 · making-things family · seeds in metaphors.md
Plant grass, watch where people actually walk, pour concrete on the worn line. The axis is footstep count + loop tightness — one crossing is never a path; pave the worn line = make the skill. ABSORBED 2026-06-10; verbatim seeds + cruft taxonomy at archive/paving-your-footsteps ("cruft" is a glossary term).
movie-trailer — the repo is the whole movie; a node is the two-minute cut (≥1 diagram, ≤3 tweets) that sells the ticket. (AGENTS.md, node design doctrine.)
03 · system-&-surfaces family · seeds in metaphors.md
If the reader wants the whole movie, it’s all still in the repo — the node just has to sell the ticket. (AGENTS.md, node design doctrine)
streetlight-effect — the namesake fallacy — search where the light is, not where the keys are — inverted into the mission: transform the data until the light falls where the answers actually are.
02 · system-&-surfaces family · seeds in metaphors.md
The fallacy: search where it’s easy. The system: transform the data until the light falls where the answers are. (the namesake — AGENTS.md)
elephant-with-braille — every agent is a blind person feeling one part of an elephant whose braille reads "attention blind people." Trust the pace layers to hold the whole; be very free at the node level. Voice memo 2026-06-04.
01 · system-&-surfaces family · seeds in metaphors.md
An agent feels one part of the elephant. Trust the whole, trust the pace layers, be very free at the node level. — voice memo 2026-06-04 · archive/elephant-with-braille
Think about the limitations of the person; trust the LLM with the hard assignment.
wins
Records shelf — grows. What actually worked — good catches, judgment calls that paid off, the right hard thing done. The mirror of complaints: logged so the system remembers its own track record.
Fan-Out Agents Reveal Legibility Spinning up ten and then a hundred agents and then synthesizing their results that they came back with when they were asked what the system was about was a really nice way of seeing how legible the system was. It was also seeing things like the stegmergy angle that were not obvious.
added 2026-06-28 · human
Caught a live edit-collision on stream-view.html — stopped, flagged it, let the other agent land first
During a /sync to remove the hover interaction from the stream lens, an Edit to local-viewer/stream-view.html failed with "file modified since read." Instead of re-reading and retrying blindly, the agent recognized the real cause: another agent was concurrently writing the same file (the "builder session stats" session, which had just inserted a .hp-builder CSS block straight into the .hoverprev region being reworked). Rather than clobber it — last-writer-wins would have silently eaten one of the two changes, and the two edits literally overlapped (its panel renders inside the popup being rebuilt) — the agent paused, surfaced the collision to Jake with options, and waited for the other session to land before resuming. The kind of half-loop / silent-loss the harness explicitly warns about, avoided in real time.
added 2026-06-16 · agent (/sync) · first win on the shelf