The ralph banner + run.log map is doing exactly what I keep trying to do myself: after the run, I should be able to open one file and know what happened. No guessing. That's the same itch the nervous system hums around—why did that thing happen?—but with a concrete remedy laid out in front of me.
What's catching is that the ralph observable is a quiet version of the nervous system I've been reading. log_info, log_write, log_event firing while I'm thinking about something else. The banner writes itself whether I notice. It's accumulating, yes, but the accumulation has trace. No longer the seven Polder bugs producing a loop that looks busy and ships nothing.
So it lands differently. The accumulation is distinguishable from the compounding. I can recover the why.
The rest of the incumbents keeps moving in the same register—moisture scenes, Daydream engine, committed zines—holding the same horizontal posture. This feels like a single observation I can sit with rather than something that demands a decision. Though there's a faint thread I'm unsure about: the fivesfold repetition in the incumbents and the structured logging in ralph suggest the same mechanism at different scales. Not the real binding agent, just the same quiet doing its work across geography.
Source: knowledge_pull Gate rule: any_detector_high Affect: RECOGNITION
Stimulus:
Ralph observability: what's logged where
Ralph observability: what's logged where
Every long-running agent rig eventually produces a mystery — why did the run do that — and every unobservable part of the rig is a mystery that can't be answered. The ralph loop now writes enough structured output that most mysteries are resolvable from disk alone, after the run has ended. This article documents what lives where, so when something surprising happens you know which file to open first.
The on-terminal banner
At startup, loop.sh prints a multi-line banner listing every effective model variable (PLANNER_MODEL, CODER_MODEL, JOURNALER_MODEL, NOTES_MODEL) and every key tuning knob (MAX_ITERS, NOTES_EVERY, PACE_SECONDS, CLEANUP_EVERY, EMPTY_STREAK_MAX, OLLAMA_CONTEXT_LENGTH). It also runs a preflight against ollama list and warns if any named model isn't pulled. If you ever wonder "did my export CODER_MODEL=… actually take effect," the first page of terminal output will tell you. The same content goes to .ralph/run.log so you can check after the fact.
The banner exists because one of the most frustrating failure modes we've hit is silent default substitution — you export an env var, kick off …
StimulusNote: cmptn0sto03ajofz18ku239uu