Skip to content

Guide · Agent skill

How to use the HillClimb Skill Improvement Loop agent skill (Intents)

Updated · written with AI from the project's own documentation and checked against our catalogue data

The HillClimb Skill Improvement Loop, packaged as the Intents skill from danielmiessler/LifeOS, makes an AI agent improve one existing skill in a measured, repeatable way. It gathers real failures, turns them into test cases, proposes edits and keeps a change only when a test run shows improvement. This guide explains what the skill does, how to install and trigger it, and what it needs before you use it on a real skill.

HillClimb Skill Improvement Loopdanielmiessler/LifeOS · MIT

Quick start

  1. 1Download and unzip. Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder.
  2. 2Or upload in the Claude apps. In the Claude apps, open Settings → Capabilities → Skills and upload the skill.
  3. 3Confirm the requirements. Make sure Bun, the LifeOS framework scripts, Git and a YAML test suite for your target skill are available.
  4. 4Ask for a climb. Send a plain request naming the skill and the pain, such as the complaint or failing cases you want reduced.
  5. 5Take the baseline and preflight. Let the agent record a baseline from a suite run and run preflight to confirm the suite can see a meaningful win.
  6. 6Review kept changes. Check each committed diff and the stop reason recorded when the climb closes.

What an agent skill is and what this one makes the agent do

An agent skill is a folder of instructions and files that an AI agent loads when a request matches it. This skill is aimed at one existing skill at a time. Its goal is to climb that skill until its outputs stop drawing the complaints and misses that started the climb.

The loop works roughly like this: the agent collects real failures such as user complaints, failing test cases and bad transcripts, and turns each into a test case. It then proposes candidate edits and keeps a change only when a measured test run shows improvement. Learnings are recorded as dated Gotchas, new standing checks or deterministic tools, not as longer prompts. The kept diff is committed, and the complaint rate is tracked afterwards.

  • Requires a baseline measurement and a suite built from real misses before the first experiment.
  • Blocks changes that delete, weaken or skip an existing check.
  • Re-runs the skill hygiene check after the climb and refuses to close without a supported stop reason.

Install the HillClimb Intents skill

Download the ZIP from the skill's page in this directory and unzip it into one of two places. For a personal install, use ~/.claude/skills/. For a single project, use the .claude/skills/ folder inside that project.

If you use the Claude apps instead, upload the skill under Settings → Capabilities → Skills.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into .claude/skills/ in your project
  • Claude apps: Settings → Capabilities → Skills, then upload

Check the requirements before you start

The skill is not a standalone prompt. The tool commands are invoked with Bun, and they rely on the LifeOS framework, including its Tools/HillClimb.ts script and the Assay EvalRunner, Compare, FailureToCase and Errata scripts, plus SkillHygieneGate.ts. You also need an existing skill with a test suite written in YAML, or a plan to create one, and Git for committing kept diffs.

The files do not name any API keys or external accounts. The skill is not designed for a skill with no test suite and no failure log, because it depends on real misses and a baseline.

  • Bun runtime
  • LifeOS framework with HillClimb.ts and the listed Assay and Errata scripts
  • An existing skill with a YAML test suite, or the ability to build one from real misses
  • Git

Trigger the skill with a natural request

Ask the agent in plain language to climb a named skill and say what pain started it. The skill's own tool contract starts a climb with a metric and a reason, so including the complaint in your words helps. Name the skill and the measure you care about, such as its suite pass rate or its complaint rate.

The skill's safety gates mean it will not change structure without review, so expect it to ask for or use a baseline before any content change.

  • Example: Climb the Summarise skill's pass^k on its suite. Users keep saying the summaries drop action items.
  • Example: Use the HillClimb loop on the Invoice skill. Errata shows a rising complaint rate since last month.
  • Example: Start a HillClimb climb on the Meeting skill with a budget of 10 experiments.

What the climb does, step by step

A climb starts by naming the ideal state: the skill's ISA if it has one, otherwise its done-looks-like block, its standing checks and the asks it serves. A baseline is taken from a raw suite run file, using a seeded train and test split. Preflight then checks that the suite can see a win worth having. If it cannot, the climb adds cases or trials before round one.

Each round runs the whole suite. Candidate changes come from varied proposers, and each one is compared with a paired test. The stricter keep test applies to judged suites. A kept change is committed, and the loop finishes only with a recorded stop such as plateau, target, budget or abort.

  • Baseline: raw run file with a seeded train/test split
  • Preflight: confirms the suite can detect a meaningful win
  • Each round: full suite run, then a paired comparison
  • Stop: plateau, target, budget or abort, with a reason
bun ${LIFEOS_SKILL_DIR}/Tools/HillClimb.ts start --type skill --target <Skill> --metric "<suite> pass^k" --direction higher --why "<the pain, in the principal's words where possible>" [--budget <n experiments>]

Safety notes: scripts and network

The skill runs scripts. Its tool commands are executed with Bun and they can edit skill files and commit kept diffs. The files say it does not use the network.

Because the loop edits skill content, review its commits before relying on them. Run the consuming skills' tests before keeping a change to a skill's output shape, since other skills treat it as an API.

  • Runs scripts: yes
  • Uses network: no
  • Structural edits (frontmatter, adding or removing intents or tools) go through Skill("CreateSkill")
  • Keeps are refused if the standing-check count drops

Tips for getting useful results

Start with a clean baseline and a real failure log. Measure the complaint rate with Errata before and after, so you can see whether the skill has moved in practice and not only on the suite. Keep the scope to one skill per climb.

Expect the process to be heavy. It is built for sustained climbs with baselines, paired comparisons and ledgers, not for quick prompt tweaks.

  • Use one skill per climb.
  • Keep your failure log current so new misses become cases.
  • Review each kept diff in Git.
bun LIFEOS/ERRATA/Errata.ts skills --since <date> --json

What people use it for

  • Lowering the complaint rate of a personal assistant skill that keeps missing a recurring user request.
  • Raising the pass^k score of a skill that already has a YAML suite and a log of failing cases.
  • Turning real failure transcripts into test cases for a skill that has none yet.
  • Tracking before-and-after statistics for changes made to a skill used by several other skills.

Frequently asked questions

Is the HillClimb Intents skill free to use?

The source files name an MIT licence for the skill. The licence terms are what govern use and redistribution; check the repository's licence file for the full text.

What do I need before I can use it?

You need the Bun runtime, the LifeOS framework with its HillClimb, Assay and Errata scripts, Git, and an existing skill with a YAML test suite or a plan to build one. The skill is not meant for a skill with no failure log.

How do I install the HillClimb skill?

Download the ZIP from the directory page and unzip it into ~/.claude/skills/ for personal use or .claude/skills/ inside a project. In the Claude apps, upload it under Settings → Capabilities → Skills.

Does the skill use the internet or run code?

It runs scripts, since its tool commands are invoked with Bun. The files state that it does not use the network. Review its commits because it edits skill files.

Can I use it for a quick prompt tweak?

No. The process requires baselines, paired comparisons and ledgers, so it is designed for sustained improvement. For one-off prompt changes, a lighter approach is more suitable.

What should I use instead if I have no test suite?

The skill itself says a suite must be built first, from real misses, before a climb begins. Without a suite or failure log, you will need to build those first or choose a simpler way to edit the skill by hand.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you maintain an agent skill that already has a test suite and real failure data, and you want each change measured before it is kept. Pick something lighter if you only need occasional prompt edits, or if you have no suite, failure log or review process for automated edits to skill files.

Download the skill