hillclimb

Optimizes one measured metric toward a target through an unattended keep-or-revert loop.

1|Updated Sep 10, 2026
One-click install
npx skills add https://github.com/blauwtje/exo --skill hillclimb-blauwtje
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hillclimb
Source: https://github.com/blauwtje/exo/tree/main/skills/hillclimb
Command: npx skills add https://github.com/blauwtje/exo --skill hillclimb-blauwtje

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Improving a metric like latency, bundle size, or memory often degrades into unmeasured guesses, lucky one-off samples, and stacked changes nobody can attribute. This Skill enforces a disciplined optimization loop where every change is measured by a frozen harness, kept only when it beats the spread, and reverted otherwise. ## Core Features & Use Cases - Frozen measurement harness: Builds and commits a benchmark that reports the median of at least five runs with spread, proven to separate two known-different workloads before any optimization begins. - Keep-or-revert attempt loop: Dispatches each hypothesis as one isolated change in its own git worktree, measures it, and keeps it only when the median moves past the spread with regression checks green. - Auditable decision log: Records every baseline, attempt, pivot, and stop as tab-separated rows with evidence pointers, then has a fresh delegate on a different model audit the log against transcripts and commits. - Use Case: You need p95 API latency down to 60% of baseline. Invoke the skill with the metric, target, and attempt floor; it benchmarks, tries hypotheses one at a time, reverts losers, and reports the verified final number. ## Quick Start Run /exo:hillclimb with your metric and direction, a target paired with an attempt floor, and optionally a harness command and budget, for example asking to reduce p95 latency to at most 60% of baseline over at least 10 attempts.

Frequently Asked Questions about hillclimb

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize a performance metric with an automated keep-or-revert loop?▼

Invoke the skill with the metric, its direction, and a stop predicate pairing a target with an attempt floor. It freezes a benchmark harness, measures a baseline, then builds one hypothesis per attempt in its own worktree, keeping only changes whose median beats the spread with checks green.

What is a hillclimbing approach to performance optimization?▼

Hillclimbing iteratively makes one measured change at a time, keeping improvements and reverting regressions until a target is reached. This skill formalizes it with a frozen harness, median-of-five measurements, per-attempt commits, and a decision log recording every verdict.

When should I not use a metric optimization loop?▼

Do not use it for a single already-decided change, which a normal implementation step handles, or for a failure with an unproven cause, which debugging must diagnose first. It also does not choose what to improve; candidate ranking happens beforehand.

Why does the benchmark harness need to be frozen before optimizing?▼

Freezing prevents the run from editing its own yardstick, so every attempt is measured against the same standard. The harness must separate two known-different workloads beyond its spread before use, and any harness flaw ends the run with a fresh baseline next time.

How are optimization attempts kept or reverted?▼

Each attempt is one change built in its own git worktree and measured one at a time to avoid machine contention. It is kept only when the median moves past the spread in the right direction with regression checks green; everything else is fully reverted and logged.

What happens when optimization hits a plateau?▼

Three consecutive rejects count as a plateau, not a stop. The run logs a pivot row and changes category, combines near-misses, or rereads the hot path, stopping only when the target predicate holds or the named budget is spent.