Dogfeed

Eating our own dog food. How Vaked uses its own agent fleet to operate itself — and why that's the only honest way to build an agentic system.

What "Dogfooding" Means Here

"Eating your own dog food" means using the product you're building. For Vaked, this is not optional — it is structurally required. If Vaked claims to be a language for declaring, enforcing, and testifying agentic systems, then the Vaked project itself must be operated by agents declared in Vaked, enforced by Vaked policies, and testified to a Vaked event log. Anything less would be a capability drift between what Vaked claims and what Vaked does.

The Vaked repository is operated by a fleet of ~10 AI agents running as GitHub Actions workflows. These agents review pull requests, manage the merge queue, label issues, coordinate releases, surface decisions, post updates to social media, and even write and review code. They are not demos. They are the production operators of the repo.

The Ralph Loop

Ralph is the autonomous decision-loop agent. It runs on a cron schedule (every 3 hours, plus a daily recap at 23:00 UTC) and does one thing: surfaces the most important open decision for each project track into a hash-chained, human-ratified ledger.

① Observe — Ralph scans the repo for open issues, PRs, and design gaps
② Decide — For each track, Ralph identifies the highest-leverage unresolved decision
③ Propose — Ralph commits a ledger entry with the decision, rationale, and options
④ Ratify — A human (Peter) reviews the ledger and ratifies or rejects each entry
⑤ Announce — Ralph posts the decision to Mastodon and Telegram
⑥ Reify — Ratified decisions feed back into the project — specs, code, docs

How the Loop Works

The Tracks

Ralph organizes decisions into tracks — the major work streams of the Vaked project. Each track has its own decision ledger. The current tracks are defined in tools/ralph/tracks.json and include:

The Ledger

Every decision Ralph proposes is committed to an append-only, hash-chained ledger (the ralph-log). This is the same structural pattern as eventd — the event log that testifies agent actions at runtime. By using the same pattern for project governance, Ralph ensures that decisions about the system are as auditable as actions within the system.

Viewed entries are at docs/decisions/*.ralph-log.md.

The Ratification Loop

Ralph does not auto-apply decisions. Every proposal must be human-ratified. Peter reviews the daily digest, marks entries as accepted/rejected/deferred, and the ratified decisions become part of the project's design history. This is POLA in governance: Ralph has the capability to propose but not to enforce. The human holds the enforcement capability. The capability graph between Ralph and the human is explicit and auditable.

The Fleet — Beyond Ralph

Ralph is one agent in a fleet. The full roster:

Why This Matters

1. Structural Honesty, Applied

Vaked claims to make systems honest by enforcing capability boundaries. If the Vaked project itself were operated manually — with ad-hoc PR merges, informal decision-making, and no audit trail — it would be a capability drift between the language's claims and the project's practice. The fleet closes that gap. The agents are the proof that the language works.

2. The Mirror Effect, Operationalized

The fleet watches the project. The project watches the fleet. When a PR review agent flags a bug, that bug becomes data for the language design track. When Ralph surfaces a decision about the type system, that decision feeds back into the compiler. The loop is bi-directional: the system that builds Vaked is itself a Vaked system. This is the Mirror Principle made operational.

3. The Graveyard Grows

Agents fail. PR reviews miss things. Ralph proposes bad decisions. When this happens, the failure is logged — not hidden. The eventd log records every agent action. The Graveyard records every fiber death. An honest system does not pretend to be flawless. It documents its failures and learns from them.

4. POLA in Governance

No agent in the fleet has unilateral authority. Ralph can propose but not ratify. pr-review can review but not block. swe-af can code but not merge. The broker step that creates a PR is the only component with write access to GitHub. Every other agent operates read-only. This is POLA — Principle of Least Authority — applied to project governance, not just to runtime enforcement.

We are not building a god in the machine. We are building the machine that allows intelligence to operate safely, predictably, and honestly — including our own.
— The Dogfeed Principle