lazyriver
Goal-seek loop — probe, judge sufficiency, steer, journal; emits a plan or answer
Skill by Wave-Engineering
Chalk Labs
Need help deploying lazyriver?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/wave-engineering-lazyriver
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/lazyriver
What's inside
- Skill name
lazyriver- Description
- Goal-seek loop — probe, judge sufficiency, steer, journal; emits a plan or answer
- License
- MIT
- Instructions
- 347 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (5)
- SKILL.md
- bundle.mjs
- lazyriver-workflow.bundled.js
- lazyriver-workflow.js
- river.js
SKILL.md (first lines)
<!-- introduction-gate: If introduction.md exists in this skill's directory AND
the marker file /tmp/.skill-intro-lazyriver does NOT exist, read introduction.md,
present its contents to the user, then create the marker: touch /tmp/.skill-intro-lazyriver
Do NOT delete introduction.md — it lives in a protected directory.
Do this BEFORE executing any skill logic below. -->
# LazyRiver — Goal-Seek Loop
Run a **goal** — not a plan — to **sufficiency**. `/lazyriver` is the goal-seek half of
the executor model: give it an insight to reach, a hypothesis to test, or a design to
converge on, and it runs a `probe → journal → judge → steer` loop until the goal is met,
then emits either a **plan** (hand to `/devspec`) or a **direct answer** (hand to the user).
**See Also:** `docs/executor-model-devspec.md` (Plan #822 — the two-mode executor: this
skill is the goal-seek activity, distinct from the plan-execution activity that
`/wavemachine` / `/nextwave` run).
> **This is NOT a variant of `/wavemachine` or `/nextwave`.** Those execute a *known DAG to
> completeness* (plan-execution). `/lazyriver` seeks a *goal to sufficiency* (goal-seek).
> Different termination condition, different parallelizability, different agency profile.
> Conflating the two is the exact conceptual error Plan #822 fixes — see
> **Epistemic vs Artifact Dependency** below.
---
## Invocation
```
/lazyriver <goal statement>
```
Optional:
```
/lazyriver <goal statement> --resume <journal-path>
```
`<goal statement>` is a goal, not a task list. It terminates on a **judgment** ("are we
there?"), not a checklist:
| Goal type | Example |
|-----------|---------|
| Understand | `/lazyriver "understand why merges stall on the kahuna branch"` |
| Test a hypothesis | `/lazyriver "is the 1.18× pool advantage real or measurement noise?"` |
| Converge a design | `/lazyriver "get to an executor model we trust"` |
| Root-cause | `/lazyriver "find the root cause of the reseed fidelity loss"` |
`--resume <journal-path>` reopens a prior session's **findings journal** (see below) and
continues the loop from the accumulated state — the loop never starts cold if a journal
exists. This is what makes a cord-fire (escalation) recoverable rather than terminal.
---
## Core Loop
Each **leg** of the loop is one recorded, resumable unit. A leg runs four steps in order:
```
Loop (each leg):
1. Probe — run the current leg: research, experiment, implement-a-spike, or analyze.
The probe is chosen by Step 4 of the *previous* leg (or the goal, on leg 1).
2. Journal — append this leg's findings to the durable per-session journal.
3. Judge — sufficiency gate: "are we there yet?"
SUFFICIENT → emit output (plan | answer) → TERMINATE
DIMINISHING/CAP → escalation cord fires → ESCALATE to user
NOT YET → continue to Step 4
4. Steer — formulate the next probe *from what this leg just taught*:
"given what we now know, what is the single most informative next probe?"
→ set it as leg N+1's Probe → goto 1
```
The order is load-bearing: **journal before judge** (so the sufficiency call is made
against a durable record, and a cord-fire never loses the leg it just ran), and **judge
before steer** (so you never formulate a next probe for a goal that is already met).
This is a `ralph-wiggum` loop *unrolled*: a raw `while not done: try()` retry is agency ≈ 0.
Unrolling upgrades it three ways — **+ agency** (Step 4 judges the result and steers the
next probe), **+ memory** (Step 2's journal accumulates; the loop gets smarter each leg),
and **+ durability** (each leg is a recorded, resumable unit). LazyRiver = ralph-wiggum
**with a brain and a notebook.** Without the sufficiency gate and the escalation cord it
would just be an *expensive infinite loop* — the characteristic ralph failure mode.
---
## Execution Modes — in-session vs. background Workflow
The `probe → journal → judge → steer` loop above runs two ways; the *logic is
identical*, only *where it runs* differs:
- **In-session (synchronous).** The main agent runs the loop directly in its own
context — the original mode. Best for a short goal-seek you want to watch, or
when you are already the agent doing the probing.
- **Background Workflow (detached, #844).** The loop runs as a **background
Workflow** — `skills/lazyriver/lazyriver-workflow.bundled.js` — so the
operator's session stays interactive while the goal-seek floats. Same
architecture the wave engine uses (`per-wave-workflow.js`); it completes the
executor model's symmetry — both plan-execution *and* goal-seek run as
background Workflows sharing the substrate, keeping their distinct logic.
**Launching the background Workflow** — invoke the Workflow tool with
`scriptPath: skills/lazyriver/lazyriver-workflow.bundled.js` and `args` (a JSON
object):
| arg | meaning |
|-----|---------|
| `goal` | the goal statement (required) |
| `journalPath` | durable markdown path the leg agents append to and `resume` reopens (**required** — the Workflow script has no filesystem, so the launcher supplies the path; all journal I/O + timestamps happen inside the leg agents, which have Bash/Write) |
| `maxLegs` | leg-count cap (default 10) |
| `resume` | `true` to rehydrate from an existing `journalPath` — the loop never starts cold if a journal exists. Resume is a "keep probing" signal: the diminishing cord counter **resets** (fresh legs, not an instant re-fire); raise `maxLegs` to resume past a leg-cap |
**The verdict** the Workflow returns — the driver *surfaces* it; it is **never a
silent background stall**:
- `{ outcome: 'sufficient', output: { kind: 'plan' | 'answer', content }, journalPath, legs }`
— the goal is met; hand `output` to `/devspec` (plan) or the user (answer), per the Output Contract.
- `{ outcome: 'escalated', reason, journalPath, legs }` — the **escalation cord**
fired (`cord:diminishing` = 2 consecutive zero-finding legs, or `cord:leg-cap`).
The driver surfaces the journal + the sufficiency question to the operator,
exactly like a wave HOLD. The journal is intact and `resume`-able (CT-04).From Wave-Engineering/claudecode-workflow, MIT.
More from Wave-Engineering/claudecode-workflow
- 0.584score
multithread
Wave-Engineering
Parallelize a discussion over independent items — lay out all threads at once each with a take, batch-answer, drop sorted ones, iterate until dry.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
assesswaves
Wave-Engineering
Quick assessment of whether a piece of work is suitable for wave-pattern execution (parallel or serial).
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
disc
Wave-Engineering
Discord integration — /disc routes to disc-server MCP tools, plus discord-watcher CLI subcommands for forward/directmsg/doorbell.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
dod
Wave-Engineering
Project Definition of Done verification against the Deliverables Manifest — verify every deliverable, run tests, check VRTM, produce pass/fail report
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
grunt
Wave-Engineering
Stand up a scoped-operations "grunt" — a dedicated aoe agent that clears a bounded service backlog so the main session's context stays clean for…
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
engage
Wave-Engineering
Read CLAUDE.md, confirm development rules of engagement, and load current plan
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
ibm
Wave-Engineering
Verify Issue → Branch → PR/MR workflow compliance via MCP tool
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
edit
Wave-Engineering
Open a file or URL in a GUI editor (modification intent, async)
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
jfail
Wave-Engineering
Fetch and analyze a failed CI job (GitLab) or workflow run (GitHub)
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
autochain
Wave-Engineering
Plan a dependency-ordered chain of issues, then execute it autonomously on approval
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
name
Wave-Engineering
Report or pick the agent's session identity (Dev-Name, Dev-Avatar, Dev-Team)
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
ccfold
Wave-Engineering
Merge upstream CLAUDE.md template changes into the current project's CLAUDE.md, preserving project-specific content like Dev-Team and custom sections.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 85
- Last commit (this folder)
- Jul 6, 2026 (3 months ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Wave-Engineering
- 0.584score
grunt
Wave-Engineering
Stand up a scoped-operations "grunt" — a dedicated aoe agent that clears a bounded service backlog so the main session's context stays clean for…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
multithread
Wave-Engineering
Parallelize a discussion over independent items — lay out all threads at once each with a take, batch-answer, drop sorted ones, iterate until dry.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
assesswaves
Wave-Engineering
Quick assessment of whether a piece of work is suitable for wave-pattern execution (parallel or serial).
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
disc
Wave-Engineering
Discord integration — /disc routes to disc-server MCP tools, plus discord-watcher CLI subcommands for forward/directmsg/doorbell.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
dod
Wave-Engineering
Project Definition of Done verification against the Deliverables Manifest — verify every deliverable, run tests, check VRTM, produce pass/fail report
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
autochain
Wave-Engineering
Plan a dependency-ordered chain of issues, then execute it autonomously on approval
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get lazyriver running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
lazyriver skill. Agent Mart. https://agentmart.dev/skills/wave-engineering-lazyriver (last updated 2026-10-24)