hill-climb
Skill0 starsChanged 27 days agoMITView on GitHub
Turn a task into a score agreed with the owner, then have builder agents raise it round by round, scored by separate judges, until a bar is met. Use when the owner asks to hill-climb, to make something measurably better or faster, to make a loop, build or UI flow faster, or asks where the time goes.
5 other projects use a version of this.
Adopted by
Most recently taken up by
- salalaslam/skillstheir own version, first seen Nov 8, 2026
- niksavis/basiclytheir own version, first seen Nov 8, 2026
- Bil0000/Hill-Climbtheir own version, first seen Nov 8, 2026
- skillberry-ai/cap-evolvetheir own version, first seen Jun 16, 2026
- jpoindexter/ai-agent-skillstheir own version, first seen Jun 9, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- skillberry-ai/cap-evolve★ 69same name
- niksavis/basicly★ 2same name
- Bil0000/Hill-Climb★ 1same name
- jpoindexter/ai-agent-skills★ 1same name
- salalaslam/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository24 other files it gives its agents.
- codebase-designSkill
- improve-codebase-architectureSkill
- uv-pythonSkill
- bw-loginSkill
- project-iconSkill
- recover-mouse-inputSkill
- wizardSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- opcSkill
- opnSkill
- personal-skillsSkill
- reassign-pmSkill
- repo-lessonsSkill
- trialSkill
- unstuckSkill
- woSkill
- sampleSkill
- find-docsSkill
- liteparseSkill
- tco-searchSkill
- browse-xSkill
- frontend-designSkill
- playwrightSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 15 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Prefer a programmatic score: tests, an eval built from real past failures, a benchmark, latency, size or token count.
- Distinctive: line 20
Every judging pass also scores at least one known-good reference in the same pass: a competitor, the prior best, or a gold sample.
- Distinctive: line 34
Stop when one of these holds:
- Distinctive: line 35
every gating judge meets the bar in every category.
- Distinctive: line 39
Keep the passing version (commit or PR) before trying any higher bar.
- Distinctive: line 43
Every gating judge must still meet the bar after each cut.
- Very specific: line 48
Keep the current best and a short round log in STATUS.html, or in one evidence file it links.
- Very specific: line 49
Put lessons (a judge that lied, a trap in the scenario) in LESSONS.md through $repo-lessons.
- Very specific: line 50
Keep raw logs, judge outputs and CSVs in ~/.cache/fleet-scratch/<project>/<task>/.
- Distinctive: line 53
When the score is time (a loop, pipeline, build, agent run or UI flow), map the stages, cut the biggest, and prove each cut with before and …
- Distinctive: line 56
Write down one scenario: input, workload size, host, revision, flags.
- Distinctive: line 60
Use what exists first: log timestamps, CI step times, timing flags, tracing spans.
- Very specific: line 61
If you must add code, add one line per stage, TIMING <stage> <subject> <seconds> <outcome>, from a monotonic clock, plus one CSV row per …
- Distinctive: line 65
Run the scenario at least 5 times (3 when one run takes over 10 minutes).
- Distinctive: line 70
Keep one table, sorted by share, largest first, with a line under it for scenario, revision, date and noise floor.
- Distinctive: line 76
Start with the largest stages and the largest p90 tails.
- Distinctive: line 77
Do not cut recovery waits, cold loads or safety checks to shrink a number, and do not count background work the critical path does not wait …
- Distinctive: line 78
Never book a saving twice or promise the sum of upper bounds.
- Distinctive: line 81
Stop when the top stage is below the noise floor, the next target costs more to prove than it saves, or the owner's target is met.
- Very specific: line 84
Use $trial to test a process or skill change against past work.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Hill climb
A round counts only when a score proves it. An estimate or a diff is not a result.
1. Agree the score first
- The PM proposes what the score means: the metric, the scenario it runs on, the categories, the bar, and the budget (rounds, hours or units).
- The owner confirms before any round runs. Record the agreed definition in the project's root
STATUS.html. - Prefer a programmatic score: tests, an eval built from real past failures, a benchmark, latency, size or token count. Use model judges only for taste (UI, writing, design).
- A score that a builder can raise without the work getting better is the wrong score. Fix the score with the owner before climbing.
2. Roles
- The builder and the judges are separate agents. The builder never scores its own work.
- Each judge scores fresh every round, in a new agent, without seeing other judges' scores or earlier rounds.
- Judges score each named category from 1 to 10, with a one-line reason per score.
- Every judging pass also scores at least one known-good reference in the same pass: a competitor, the prior best, or a gold sample. A judge whose reference scores low is miscalibrated; report it, do not average it in.
- Judges are not told the bar. The parent aggregates scores and decides.
- Programmatic scores are judges too: run them the same way each round and record their raw output.
3. Judge ladder
- Gate with the cheapest judge first (a test run, a script, a small model). Add the expensive judges only after it passes.
- Judges follow the fleet's routing:
$opcWorker classes, and itsreview-securityclass for security-sensitive work. Project rules on which models may read code still apply.
4. Rounds
- One builder per round, under
$opcWorker rules. The brief gives the score definition, the last round's per-category scores and reasons, and the change to try. It does not give the bar. - Make one change per round when possible, so the score change has one cause.
- A change that does less work, skips a check or narrows coverage is a regression, even if the score rises.
5. Stop rules
Stop when one of these holds:
- every gating judge meets the bar in every category;
- the owner's budget is spent;
- 2 rounds pass with no gain above the noise floor. End with a report: best version, scores, what was tried.
Keep the passing version (commit or PR) before trying any higher bar. Raise the bar only when the owner asks.
6. Phase 2: hold the score, cut the cost (optional)
- Once the bar is met, the owner may ask to cut size, tokens or time while the score holds.
- Every gating judge must still meet the bar after each cut. Example: the eval stays perfect while tool descriptions shrink to a third.
- A cut that drops the score is reverted and logged as "no win".
7. Evidence
- Log every round: round number, revision, and the score per judge and per category, plus the reference scores. A plateau must be visible from the log.
- Keep the current best and a short round log in
STATUS.html, or in one evidence file it links. Do not create a new tracker. - Put lessons (a judge that lied, a trap in the scenario) in
LESSONS.mdthrough$repo-lessons. - Keep raw logs, judge outputs and CSVs in
~/.cache/fleet-scratch/<project>/<task>/.
Time metric
When the score is time (a loop, pipeline, build, agent run or UI flow), map the stages, cut the biggest, and prove each cut with before and after numbers.
Fix the scenario
- Write down one scenario: input, workload size, host, revision, flags. Mark it warm or cold; never mix the two.
- Record workload counts and outcomes with every run. Runs compare only when both match. Use exit codes and receipts, not a timer's "ok", to call a run clean.
Instrument with the least change
- Use what exists first: log timestamps, CI step times, timing flags, tracing spans.
- If you must add code, add one line per stage,
TIMING <stage> <subject> <seconds> <outcome>, from a monotonic clock, plus one CSV row per run. - Child timers nest inside a whole-run timer; never add nested times together. Report untimed gaps between top-level stages: a big gap is an unnamed stage.
Baseline and noise floor
- Run the scenario at least 5 times (3 when one run takes over 10 minutes). Take median and p90 per stage.
- Noise floor: the larger of (p90 minus median) of the total and 2% of the median total. A smaller change is noise.
- Without controlled runs (live systems), use only comparable natural runs and say so. Offline replay of saved inputs proves a stage got faster, not the whole run.
Stage map
Keep one table, sorted by share, largest first, with a line under it for scenario, revision, date and noise floor. Shares use top-level stages only.
| Stage | Start marker | End marker | Median s | p90 s | n | Share |
Pick and prove cuts
- Start with the largest stages and the largest p90 tails. Prefer removing repeated or wasted work (a rescan, a retry, a fixed sleep longer than the event) to faster code.
- Do not cut recovery waits, cold loads or safety checks to shrink a number, and do not count background work the critical path does not wait for.
- Never book a saving twice or promise the sum of upper bounds; overlapping fixes share the same seconds.
- Per cut, report stage and total median before and after, delta, noise floor, n, and both revisions. Keep it only if the delta beats the noise floor, workload and outcomes match, and correctness checks are green; otherwise revert and log "no win".
- Round 0 can be one read-only scout that builds the map and a ranked target list with evidence and expected seconds. After each latency commit, run one read-only review for weakened guards.
- Stop when the top stage is below the noise floor, the next target costs more to prove than it saves, or the owner's target is met. Claim a sustained win only after 3 comparable clean runs at the new revision.
Related
Use $trial to test a process or skill change against past work. This skill raises a score on the work itself.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

