Skip to content

/evaluate-presets

Use when testing Ralph's hat collection presets, validating preset configurations, or auditing the preset library for bugs and UX issues.

From plugin
ralph-orchestrator
3.2k17 skills3 agents

Claude Code

$ npx -y skills add mikeyobrien/ralph-orchestrator --skill evaluate-presets --agent claude-code

SKILL.md

evaluate-presets.SKILL.md
name: evaluate-presets
description: "Evaluate and audit Ralph's built-in presets: run the evaluation scripts, check hat routing, review a preset's design. Use after changing a preset, hat routing, or the core prompt."
metadata:
  internal: true

Evaluate presets

Two jobs: run the evaluation scripts against the builtin presets, and audit a preset's design. For launching, monitoring, and measuring a single loop, or comparing two presets on one task, follow `skills/ralph-loop/references/headless-runs.md`.

Run the evaluation scripts

./tools/evaluate-preset.sh <preset> [claude|kiro]   # one preset (default backend: claude)
./tools/evaluate-all-presets.sh claude              # every preset in its PRESETS list
  • The presets evaluated, and each one's test task, expected iterations, and timeout, live in `tools/evaluate-all-presets.sh` (`PRESETS=`) and `tools/preset-test-tasks.yml`. Read them there rather than from this file.
  • Runs take minutes to hours, so start them as background jobs and wait for the exit notification.
  • Each run writes `.eval/logs/<preset>/<timestamp>/` (`output.log`, `session.jsonl`, `metrics.json`, `environment.json`, `merged-config.yml`). The suite writes `.eval/results/<suite-id>/SUMMARY.md` plus one JSON file per preset.
  • Exit codes: `0` means the completion promise was reached. `124` means it timed out. Anything else is a failure; read `output.log`.

**Done when** every preset in the run has an exit code and a `metrics.json`, and each failure or timeout has a cause written next to it.

Check hat routing

Each hat should run in its own iteration with fresh context: one hat, one published event, then stop.

| Pattern in `session.jsonl` / `output.log` | Meaning | |---|---| | iterations ≈ events published | Routing works | | iterations well below events | Several hats' work done in one iteration | | iterations well above events | Hats ending without publishing; `default_publishes` or recovery is firing | | 0 events | Events are not being read from the JSONL file |

grep -c "ITERATION" .eval/logs/<preset>/latest/output.log
grep -c "bus.publish" .eval/logs/<preset>/latest/session.jsonl
jq -r '.ts' .eval/logs/<preset>/latest/session.jsonl   # identical stamps = same-iteration publishes

When routing is broken, look first at the prompt text in `crates/ralph-core/src/hatless_ralph.rs`: the Event Publishing Guide and the EVENT WRITING section tell a hat to publish one event and stop. Then check that the active hat's instructions and the `## PENDING EVENTS` section reach the prompt.

Audit a preset's design

Apply every check in `skills/ralph-hats/references/design.md` to every hat in the preset. Built-in presets add two of their own:

  • **Tests assert protocol, not wording.** `crates/ralph-cli/src/presets.rs` checks events, triggers, paths, task keys, and commands, so a prompt rewrite doesn't break the tests.
  • **Both copies stay in sync.** Edit `presets/`, then run `./scripts/sync-embedded-files.sh`, which mirrors to `crates/ralph-cli/presets/` for `include_str!`.

**Done when** every hat has passed every check, or each miss is written down with its reason.

Fix what the evaluation finds

For each failure, create a code task (`/code-task-generator`, output to `.ralph/tasks/preset-fixes/`), implement it (`/code-assist`), then re-run `./tools/evaluate-preset.sh <preset>`.

Prerequisites

  • Cargo, to build Ralph.
  • `yq` (optional), to load test tasks from YAML.
Read more
@mikeyobrien
Ships withralph-orchestrator

A hat-based orchestration framework that keeps AI agents in a loop until the task is done. "Me fail English? That's unpossible!" - Ralph Wiggum

Stars on GitHub

Momentum

stars in total
3.2k
Star history of mikeyobrien/ralph-orchestrator on GitHub, a chart by star-history.com

Other skills on ralph-orchestrator.

code-assist
Auto-invoked

code-assist

Guides implementation of code tasks using test-driven development in an Explore, Plan, Code, Commit workflow. Acts as a Technical…

pdd
Auto-invoked

pdd

Transforms a rough idea into a detailed design document with implementation plan. Follows Prompt-Driven Development — iterative…

pr-demo
Auto-invoked

pr-demo

Use when creating animated demos (GIFs) for pull requests or documentation. Covers terminal recording with asciinema and…

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis2w393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca2w111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip2w109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about evaluate-presets.

Which coding agents can use evaluate-presets?
evaluate-presets installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.