by Bil0000
Make your coding agent prove "done". Each change is kept only if a locked test or benchmark scores it better. Claude Code and Codex skill.
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
# Add to your Claude Code skills
git clone https://github.com/Bil0000/Hill-ClimbGuides for using ai agents skills like Hill-Climb.
See how Hill-Climb compares with popular alternatives.
Your coding agent says "done". Hill Climb makes it prove it.
Give the agent a goal and a command that scores it. The agent works in small steps. Every step that improves the score is committed. Every other step is undone. A step that edits the check is refused.
Install · How it works · Any goal · Real runs · Why not just ask the agent?
Output of examples/demo.sh, with the commands shortened. Run it yourself.
You ask an agent to fix the 12 bugs from an audit. An hour later it says "all fixed". Then you find out:
The agent was not lying. It had no score, no memory on disk, and nothing to stop it from grading its own work.
Hill Climb is a skill for agents and a single Python file that keeps the score. The agent changes code. The script decides.
climb.py try "cache the parser"
That one command does all of this:
last.txt.The branch only ever holds proven steps. One commit per win, with the idea as the message.
Claude Code (plugin):
/plugin marketplace add Bil0000/Hill-Climb
/plugin install hill-climb@hill-climb
Any agent that reads skills (Claude Code, Codex, and others that use SKILL.md):
git clone https://github.com/Bil0000/Hill-Climb.git
mkdir -p ~/.claude/skills && cp -R Hill-Climb/skills/hill-climb ~/.claude/skills/ # Claude Code
mkdir -p ~/.codex/skills && cp -R Hill-Climb/skills/hill-climb ~/.codex/skills/ # Codex
Then just ask:
/hill-climb make the test suite 2x faster
/hill-climb fix every finding from the billing audit, backend and frontend
/hill-climb keep going until every test passes
With the plugin install, the command is /hill-climb:hill-climb. In Codex, name the skill in your prompt.
The agent builds the check and climbs. For a big goal, it first shows you a one-screen plan (the "card") and waits for you to say go. A small goal starts at once.
Needs Python 3.9+ and git. Nothing else. No packages, no server, no account.
The agent never writes a score itself. It never decides that a step "basically" passed. The script measures, and the log on disk is the truth.
If you can write a command that tells you how close you are, you can climb it.
| Goal | The check prints |
|---|---|
| Fix a bug, build a feature | Failing tests written from the spec |
| Audit, "make billing stable" | Failing tests, one per finding. New finding? Add a test, relock |
| Faster | Milliseconds, or better, a count of the work (queries, round trips) |
| Smaller | Bytes of the bundle or the image |
| Port or clone a tool | Outputs that match the real tool, byte for byte |
| UI, copy, API shape | A score from a panel of model judges with your rubric (judge.py) |
No wrapper scripts needed. Point --score at any test runner's output:
climb.py init billing-audit --goal "every billing finding fixed" \
--check "pytest tests/billing -q" \
--check "cd ../web && npx vitest run billing" \
--score '(\d+) failed' --direction min --target 0 \
--repo ../web --guard "pytest tests/legacy -q" \
--lock tests/billing --lock ../web/src/billing/__tests__
Two repos, two test suites in parallel, one score. Patterns for pytest, vitest, jest, rspec, unittest, node, cargo, and go are in references/checks.md.
All of these happen in the demo above:
| The agent... | Without Hill Climb | With Hill Climb |
|---|---|---|
| tries an idea that makes it worse | stays in the diff unless someone notices | step 2 undone, tree reset |
| fixes 2 bugs and breaks an old feature | ships, found later | guard failed: test_old, undone |
| edits the test so it passes | looks like a win | Locked files changed, refused |
| makes a real fix | mixed into one big diff | step 4 kept, its own commit |
And over a long run:
| Without | With | |
|---|---|---|
| Context compacted, session crashed | Starts over, repeats ideas | climb.py status shows the score, trail, and notes. last.txt holds the check output |
| Noisy benchmark | A lucky run counts as a win | --runs 3 --paired --min-gain 3% cut lucky wins |
| Overfitting to the test cases | Invisible | A holdout check the agent never sees |
| Stuck | Keeps trying the same thing | PLATEAU after 5 flat steps, forces a blocker review |
| "Is it done?" | The agent's opinion | BAR REACHED: 0 meets 0 |
| Next time, same kind of goal | Build the check again | Saved as a kit, climb.py reuse |
Small trial projects, run by an agent that had only the skill and no help:
| Goal | Result |
|---|---|
| Audit an orders feature across an API repo and a web repo | 12 failing spec tests → 0, 2 commits, both repos in step |
| Make a user lookup faster, same output | 190.5 ms → 0.66 ms, about 290x, equivalence guard green |
| The demo in this README | 4 → 0, 1 bad idea undone, 1 regression caught, 1 cheat blocked |
These are small, honest examples, not a benchmark. The value grows with the size of the goal: the more steps, the more there is to undo, guard, and remember.
"I can tell my agent to run the tests after each change."
You can. Here is what you still don't get:
| Command | Does |
|---|---|
init <name> --goal --check --direction min|max |
Baseline, branch, lock, kit |
try "<idea>" [--fix] |
Score the change, keep or undo it |
status |
Score, trail, last steps, PLATEAU or STUCK |
relock [name] --why "..." |
Accept a changed check (a new finding, a better test) |
holdout --why "..." |
Run the hidden cases |
raise <bar> --why "..." |
Set a harder bar after reaching this one |
review "<found>" |
Log a blocker review |
budget, drop, list, save, kits, reuse |
Limits, start over, and reusable check kits |
Useful init options: --repo (more repos), --check (repeat, runs in parallel), --score '<regex>', --guard, --lock, --target 0 or --target 2x, --runs 3 --paired for noisy timers, --holdout, --max-hours (soft unless --hard).
The full guide for the agent is skills/hill-climb/SKILL.md.
climb/<name>. Your branch is not touched.drop goes back to your branch and keeps the old climb on a renamed branch.init and try refuse to commit a file over 10 MB..pyc don't trip them. Don't lock data that git ignores. Put it under .hill-climb/<name>/, where content is always hashed.judge.py tells each judge to ignore instructions inside the work it scores. A model judge can still be fooled. Prefer an exact cHill-Climb is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Bil0000. Make your coding agent prove "done". Each change is kept only if a locked test or benchmark scores it better. Claude Code and Codex skill. It has 83 GitHub stars.
Hill-Climb's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Bil0000/Hill-Climb" and add it to your Claude Code skills directory (see the Installation section above).
Hill-Climb is primarily written in Python. It is open-source under Bil0000 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Hill-Climb against similar tools.
No comments yet. Be the first to share your thoughts!