Skip to content
Back to skills

Harness Gepa

ASecurity

Inspect and audit GEPA genomes via the `@metaharness/darwin/gepa` library entry (darwin 0.8.0) — load/validate a genome (default is the shipped cand-6 promotion), render the system prompt a genome compiles to, or classify failure modes in a run transcript. The `gepaOptimize` loop itself is library-only (bring your own evaluator) and not surfaced here — use `harness-evolve` for sandbox-scored evolution. Degrades gracefully when @metaharness/darwin is absent.

  • 73,733 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 2, 2026
ai-agentsgobashnodedebugging

Works with

  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 27, 2026

npx -y skills add ruvnet/ruflo --skill harness-gepa --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Harness Gepa?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Harness Gepa
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ruvnet-harness-gepa/badge)](https://www.skillsdirectory.com/skills/ruvnet-harness-gepa)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: harness-gepa
description: "Inspect and audit GEPA genomes via the `@metaharness/darwin/gepa` library entry (darwin 0.8.0) — load/validate a genome (default is the shipped cand-6 promotion), render the system prompt a genome compiles to, or classify failure modes in a run transcript. The `gepaOptimize` loop itself is library-only (bring your own evaluator) and not surfaced here — use `harness-evolve` for sandbox-scored evolution. Degrades gracefully when @metaharness/darwin is absent."
argument-hint: "--op genome|validate|render|analyze [--path <genome.json>] [--transcript <t.json>] [--alert-on-invalid]"
allowed-tools: Bash
---

Surfaces the GEPA (genetic-evolution prompt-adaptation) *library* exports
from `@metaharness/darwin/gepa`. Unlike the other skills in this plugin
there is no CLI binary behind this — the script dynamic-imports the library
(local resolution first, versioned cache install as fallback) and calls the
subprocess-safe subset.

## When to use

- **Adopting an evolved policy**: `--op render` shows the actual system
  prompt a genome compiles to — read THAT, not the raw JSON, before
  wiring a genome into a harness.
- **Auditing a promotion**: `--op genome` loads + validates the shipped
  cand-6 genome (first holdout-confirmed cheap-tier promotion; provenance
  ships in the package) or any genome file you point at.
- **CI gate on genome edits**: `--op validate --alert-on-invalid` exits 1
  on structural errors.
- **Debugging a bad run**: `--op analyze --transcript run.json` classifies
  failure modes (GEPA's failure-class taxonomy) from a transcript array.

## What is deliberately NOT here

`gepaOptimize` — the optimization loop takes an in-process
`evaluate(candidate)` callback ("bring your own evaluator") that cannot
cross a subprocess boundary. Two supported paths instead:

1. **Library consumers**: `import { gepaOptimize, loadCand6Genome } from '@metaharness/darwin/gepa'`
2. **Sandbox-scored evolution**: `harness-evolve` (darwin CLI `evolve`),
   which pairs GEPA with its own sandbox evaluators.

## Algorithm

Implementation: [`scripts/gepa.mjs`](../../scripts/gepa.mjs).

1. `import('@metaharness/darwin/gepa')`; on MODULE_NOT_FOUND fall back to a
   one-time `npm install --prefix ~/.ruflo/darwin-cache-<pin>` and import
   the cached `dist/gepa/index.js` (versioned dir → pin bumps invalidate).
2. Dispatch `--op`:
   - `genome`  → `loadGenome(fs, path)` or `loadCand6Genome()` + `validateGenome`
   - `validate` → `validateGenome(rawJson)` (raw parse so broken files reach
     the validator instead of throwing in the loader)
   - `render`  → `buildSystemFromGenome(genome, ext?, glob?)`
   - `analyze` → `analyzeTranscript(entries)`
3. Emit one JSON object; exit 0 (or 1 under `--alert-on-invalid`, 2 on bad input).

## Examples

```bash
node scripts/gepa.mjs --op genome                          # cand-6 + validation
node scripts/gepa.mjs --op render | jq -r .system         # what does cand-6 SAY?
node scripts/gepa.mjs --op validate --path my-genome.json --alert-on-invalid
node scripts/gepa.mjs --op analyze --transcript run.json
```

## Exit codes

- `0` — op completed (or degraded — darwin not installable)
- `1` — `--alert-on-invalid` and validation found errors
- `2` — config error (unknown op, missing/broken input file)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.