Skip to content

docs: Hermes × Ralph executor — C+D integration design sketch - #2

Open
johnkattenhorn wants to merge 1 commit into
mainfrom
docs/hermes-ralph-executor-design
Open

docs: Hermes × Ralph executor — C+D integration design sketch#2
johnkattenhorn wants to merge 1 commit into
mainfrom
docs/hermes-ralph-executor-design

Conversation

@johnkattenhorn

Copy link
Copy Markdown
Owner

A design sketch (not yet implemented) for combining Hermes's Kanban DAG orchestrator with bmalph's Ralph execution loop — the "best of both worlds" discussed in our evaluation.

Core idea: Hermes is the control plane (durable DAG, dynamic dependency-aware scheduling, fleet observability); a Ralph loop running the Claude Code driver is the execution engine; "done" is defined by a captured gate.

  • C — Hermes dispatches Ralph: per claimed card, run a single-story Ralph loop in the card's worktree from an ephemeral one-item @fix_plan. Ralph holds no board state → no second source of truth to sync (avoids the "emit events to a board" sticking-plaster).
  • D — Honest-gate contract: kanban_complete is only accepted with gate evidence (exit_code === 0) — fixes confident over-claiming, independent of model.
  • E — Parallelism for free: Hermes's dynamic per-story DAG scheduling replaces the static epic --swarm.

Includes contracts/interfaces, a phased plan, cost note (Opus + 1M context at flat cost via Claude Code/Max), and open questions. Builds on the LIVE_OUTPUT streaming + worker-tree reaping in #1.

🤖 Generated with Claude Code

Design sketch for using bmalph's Ralph loop as the execution engine behind
Hermes's Kanban DAG orchestrator (the "best of both worlds"):

- C: Hermes dispatches a single-story Ralph loop per claimed card; Ralph is a
  stateless per-card executor (ephemeral one-item @fix_plan), so there is no
  second board to keep in sync.
- D: "done" means a captured machine-checked gate (exit 0) in kanban_complete,
  not a prose assertion — fixes confident over-claiming, model-independently.
- E: Hermes's dynamic per-story DAG scheduling replaces the static epic swarm.

Builds on the LIVE_OUTPUT streaming + worker-tree reaping from #1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant