Hill Climb

Hill Climb

Make coding agents prove changes improved

Description

You ask a coding agent to fix twelve bugs. An hour later it says it is all done. Then you look: three were passed by rewriting what the test expects, one broke a feature nobody asked it to touch, and after its context was compacted it retried the same dead ends. It was not lying — it just had no score and no memory on disk. Hill Climb hands the question of whether it got better to a scoring command, so the agent never grades its own work.

The agent makes one small change, then runs climb.py try. Better score with every guard still passing? The step is committed. Worse, equal, or a guard failed? The tree is reset at once. Try to quietly edit the check? A locked file moving gets the step refused. The branch only ever holds proven steps.

Features



Locks the check files: the tests, benchmark and fixtures are locked, and a step that touched any of them is void.

Runs checks and guards in parallel: several check commands run at once for the score, and the old tests, typecheck and lint must all still pass.

Commits only the winning step: one commit per win with the idea as the message, across every repo the climb touches.

The log on disk is the truth: every step is written down, full output kept in last.txt, so a compacted context never forgets what was tried.

Any goal becomes a number: failing tests for bugs, milliseconds or request counts for speed, bytes for size, even a panel of model judges scoring UI and copy to your rubric. Installs as a Claude Code plugin or a Codex skill.