← Back to KB Index
Beads vs Kelly Pipeline Assessment — Can Beads Replace Kelly's State Tracking?
steve-yegge-beads-kelly-gap.md
idsteve-yegge-beads-kelly-gap
typearticle
sourcesteve-yegge-beads-kelly-gap
authorSteve Yegge / Carson assessment
date2026-04-26

Beads vs Kelly Pipeline Assessment — Can Beads Replace Kelly's State Tracking?

Assessor: Carson (dark-factory-kb subagent)

Date: 2026-04-26

Sources: [[steve-yegge-beads]], [[steve-yegge-meow]], [[steve-yegge-gas-town]], Kelly pipeline documentation (METHOD.md, STAGES.md, SOURCES.md)

Assessment Framework

For each Kelly state tracking mechanism, this assessment evaluates:

2. done markers Per Subphase

What It Is

The Kelly pipeline uses explicit DONE markers (typically in memory or a separate marker file) to signal that a subphase has been completed. When a sub-agent finishes its work, it writes a DONE marker that the parent pipeline stage uses as a signal to proceed.

What Changes Under Beads

done markers become Bead state transitions. A subphase completing is a Bead moving from runningdone. The equivalent of "this subphase is DONE" is a Dolt query: SELECT * FROM beads WHERE type = 'subphase' AND name = 'coding' AND status = 'done'. The git commit that records the state transition IS the DONE marker — immutable, timestamped, authored.

What Breaks

What Improves

Implementation Complexity: **2/5**

done markers are already semantically equivalent to Bead state transitions. Writing a Bead adapter that wraps the existing DONE marker logic is straightforward. The main effort is Dolt schema design and ensuring the adapter is transparent to existing sub-agent code.

Recommendation: **Adopt**

Replace done markers with Bead state transitions. The semantic mapping is natural, the benefits (immutability, auditability, queryability) are significant, and the implementation complexity is low. Existing sub-agent DONE marker code can be wrapped in a thin Bead adapter.

4. heartbeat

What It Is

heartbeat is Kelly's mechanism for agents to periodically check in, confirming liveness and reporting short-term status. It's a lightweight file that agents update (typically every 30 minutes) with their current activity, pending work, and state.

What Changes Under Beads

heartbeat entries become Beads of type heartbeat. Each heartbeat is a short-lived Bead with an author, timestamp, current activity, and a time-to-live (TTL). The Deacon equivalent (or Kelly's heartbeat checker) patrols heartbeat Beads, and if any agent's most recent heartbeat Bead is older than the TTL, it triggers an alert.

What Breaks

What Improves

Implementation Complexity: **2/5**

Conceptually simple, but the Dolt overhead may not be justified for this specific use case. If the full Beads/Dolt infrastructure is already in place for TEA and done markers, adding heartbeats is trivial. If setting up Dolt from scratch, heartbeat is too lightweight to justify the infrastructure cost.

Recommendation: **Keep Existing (near term), Migrate if Dolt is already deployed**

If the Dolt/Beads infrastructure is deployed for TEA and done markers, migrate heartbeat to Beads as part of the same deployment. If starting fresh on just this component, keep heartbeat — the overhead of Dolt is not worth the marginal improvement for heartbeats alone.

Summary Table

Kelly MechanismChangesBreaksImprovesComplexityRecommendation
pipeline stateBecomes Bead state transitionsJSON consumers need migrationFull git audit trail, cross-pipeline queries3/5**Partial Adopt**
done markersBecome Bead state transitionsGrep-based detection breaksImmutable, typed, queryable2/5**Adopt**
TEA auditBecomes Bead graph (MEOW)Narrative richness lostMachine-queryable reasoning history3/5**Adopt (schema first)**
heartbeatBecome heartbeat BeadsRequires Dolt infrastructureStructured TTL enforcement2/5**Keep (migrate if Dolt deployed)**
memory + daily logsBecome Bead knowledge graphHuman writes require new interfaceShared, queryable, versioned memory4/5**Partial Adopt**

Architectural Assessment

The Beads/MEOW framework is a genuine advance over the Kelly pipeline's current state tracking for the following reasons:

  1. **Unified substrate.** Instead of five separate mechanisms (pipeline state, done markers, TEA audits, heartbeat, memory files), Beads provide a single substrate. All five can coexist on the same Dolt instance, queryable together. Cross-mechanism queries become possible.
  1. **Reasoning as first-class data.** Kelly's TEA audit captures reasoning alongside actions, but it's a sidecar. Beads make reasoning (the `reason` field) the primary citizen — the Bead IS the work item, its git history IS the audit. This is a more powerful model.
  1. **Network effects.** The more Beads in the system, the more valuable the knowledge graph becomes. A Kelly pipeline with Beads will improve over time as more work items accumulate. A Kelly pipeline with pipeline state and memory files does not.

The main risks are:

These risks argue for a gradual migration rather than a big-bang rewrite — which is why the partial adopt recommendation is appropriate for most components.