Rauf is a "ralph" runner — it iterates over a highly structured backlog, giving each work item its own fresh agent context, then verifies and commits the result. The backlog is almost always authored by the coding agent itself, via skills that ship with rauf.
Rauf gives every work item its own fresh agent context — one item, a focused prompt, the backlog
as read-only context. That fresh-context-per-iteration discipline is the ralph
pattern, and it’s what keeps long autonomous runs from drifting. Rauf is CLI-first (driven by you
or by an agent) and optimized for Claude Code, which it spawns by default — but the loop runner is
deliberately separated from the agent it spawns, so rauf isn’t wired to a single harness.
Key Concepts
Agent-authored backlog
The backlog is a structured JSON queue of work items — priorities, acceptance criteria,
dependencies. You rarely hand-write it: the shipped author-backlog and review-backlog skills
let the agent generate and QA well-scoped items from a feature description.
Fresh context per iteration
Each item runs in a brand-new agent session. No state carries between items; the runner — not the
agent — verifies and commits the work, keeping history clean and runs recoverable.
Isolated per-feature backlogs
Run a repo-wide queue at <project>/.rauf/, or point --backlog <dir> at a separate directory
per feature. Each gets a fully independent loop and state that never collide.
Optional web dashboard
The CLI is the primary surface. An optional local web UI — newer and less battle-tested — lets you
view and manage loops in the browser, reading the same on-disk state the CLI does.
How It Works
You (or, more often, the agent) define work items in a backlog — a structured JSON task queue
The loop runner picks the next item, spawns a fresh agent session, and monitors the result
Each iteration reads acceptance criteria, implements changes, runs verification, and signals done
The runner verifies and commits the work, then continues until the backlog is empty or a limit is reached
Works with feature-forge
Rauf is tightly integrated with — but not dependent on —
feature-forge, an agent-agnostic spec-and-backlog
pipeline. feature-forge generates a backlog per feature and hands it to a conforming loop runner;
rauf is the default and reference implementation. The two work as a pair, but rauf runs perfectly well
on a hand-rolled or skill-authored backlog without it.