Improves a plan, design, code or skill in graded rounds: fresh reviewers grade fixed properties 0 to 10, the author revises, and a script decides when to stop. Use when asked to hill-climb, iterate to a better version or improve something in rounds.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Hill Climb?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/niksavis-hill-climb)
---
name: hill-climb
description: 'Improves a plan, design, code or skill in graded rounds: fresh reviewers grade fixed properties 0 to 10, the author revises, and a script decides when to stop. Use when asked to hill-climb, iterate to a better version or improve something in rounds.'
---
<!-- Generated by `basicly skills-build` from skill.yaml. Do not edit; edit the source. -->
# Hill Climb
Improve one artifact in graded rounds until the grades stop rising. This skill uses the `swarm` steps; read that skill first.
The script is `${CLAUDE_SKILL_DIR}/../swarm/scripts/swarm.py`, in the `swarm` skill folder beside this one. `DIR` is a new folder per climb in the session scratchpad.
## Steps
1. **Round 0.** Choose 3 to 9 properties from [property sets](assets/properties.md), a subset or your own, named in lowercase with hyphens. Write one line per property that says what a 10 means. Start the state:
```sh
python3 -B ${CLAUDE_SKILL_DIR}/../swarm/scripts/swarm.py climb-init --state DIR/climb.json --properties coverage,done-states,poka-yoke
```
2. **Grade.** Save the version as `DIR/vN`, where N is the graded round, starting at 1, and run the `swarm` steps Brief, Launch, Collect and Verify on it with 3 to 6 lenses, at least one not used in the last round. Each brief's rubric holds the line per property that says what a 10 means; each reply holds `lens`, `grades` for every property and `findings`. `climb-round` replaces the swarm Check.
3. **Record.** Put the round's replies in a new folder `DIR/rN` and run:
```sh
python3 -B ${CLAUDE_SKILL_DIR}/../swarm/scripts/swarm.py climb-round --state DIR/climb.json --lenses a,b,c --dir DIR/rN --refuted 0
```
Set `--refuted` to the number of important findings Verify refuted. The script prints the grade table and the decision; [rounds](references/rounds.md) lists what it refuses.
4. **Revise or stop.** On continue, revise the artifact from the findings, note what changed, and go to step 2. On stop, report.
5. **Report.** Give the grade table, the final version, the changes per round and the open decisions, each with one recommendation.
## Rules
- The author never grades its own version. Grades come only from reviewer replies.
- The properties stay the same after round 0. For a new property, start a new climb.
- The script owns the stop rule. Run past a stop only when the user asks, with `--past-stop` on each extra round, and say so in the report.
- Ask the user only after the climb, unless a finding needs a fact only the user has. The user's request for a climb approves its reviewer and Verify agents; run them in batches of at most 8.