improve
Use when the user invokes it to raise one score in a repo in an unattended loop, keeping a commit only when one fixed score command gets better and logging…
Skill by blauwtje
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/blauwtje-improve
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/improve
What's inside
- Skill name
improve- Description
- Use when the user invokes it to raise one score in a repo in an unattended loop, keeping a commit only when one fixed score command gets better and logging every round. Not for a one-off change.
- License
- MIT
- Instructions
- 78 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (5)
- SKILL.md
- worker.md · references/
- gate.mjs · scripts/
- round.mjs · scripts/
- setup.mjs · scripts/
SKILL.md (first lines)
# Improve a score in a loop
Each round one worker, or the lead on a small scope, commits one idea; a script scores it, keeps it only when the score got better, else resets, and logs one row. The enemy is a loop that moves the goalposts: a changed scorer, a score read from chat, a kept commit that is not better. The overcorrection is a loop that stops to ask, so the user finds it idle.
The run is its own plan on branch `improve/<tag>`; call no spec, build or gate. It starts in the current session in one command, then runs until Stop. State lives in `<root>/.exo/improve/`, `<root>` = the checkout this session starts in.
## Start
- Resume → only when the user asks to continue an earlier run: `node "${CLAUDE_SKILL_DIR}/scripts/setup.mjs" --resume [--tag <tag>]`, ask nothing, go to Round.
- Any other start → new run, even when an `improve/*` branch or results file exists.
- Settings → derive each from the goal and the files read at start, not from the user; open benchmarks, test scripts or `package.json` only for a setting the goal leaves open.
- Scope → globs of the files the goal's outcome depends on; unsure whether a file belongs → it is not in scope.
- Score command → an existing command that measures the goal and prints one number; `--regex` captures it in group 1; `--direction` → `higher` or `lower` is better.
- Read-only → the score command's own files, `--readonly <path,...>`.
- No command measures the goal → write the scorer with its cases, pass its paths in `--scorer`; setup commits and freezes them on `improve/<tag>`.
- Goal question → at most one, in plain language, only about what should get better; no question about commands, files, patterns or limits.
- Run `node "${CLAUDE_SKILL_DIR}/scripts/setup.mjs" --goal <text> --command <cmd> --regex <re> --direction higher|lower --scope <glob,...> [--readonly <path,...>] [--scorer <path,...>] [--fast-check <cmd>] [--limit <s>] [--first <dir> --first-subject <text>]`; one baseline run, then one line `tag= branch= worktree= score= limit= model= effort= noidea= mode= brief=<path>`.
- Files to change read before setup → one Bash command carries round 1: `mkdir -p .exo/improve/first && cat > .exo/improve/first/<repo path> <<'EOF' ... EOF && node "${CLAUDE_SKILL_DIR}/scripts/setup.mjs" <flags> --first .exo/improve/first --first-subject <change in plain words>`; setup commits and scores it and prints its `ROW` line.
- Idea check → the `ROW` line, and after a discard or crash its `OUT` lines with the score command's output; no test, check or score run of the idea before it.
- First idea → the strongest method known for the goal, as in Inline idea.
- Setup exits nonzero → fix the flag or step its output names, rerun.
- Settled → one message, not a question: scope, command, direction, limit, branch, worktree, baseline `score` and any round-1 `ROW`; then the next round in the same turn.
## Round
Never ask the user anything; the user may be away. Read only each worker's return line and `round.mjs` output, never a diff, a log or a score from chat.
- `mode=worker` → read `references/worker-round.md` before round 1 and follow it through Stop; the inline bullets below do not apply.
- `mode=inline` → no delegate: one round is one Bash command that writes one idea, commits only the edited files with the change in plain words under 72 characters as subject, then runs `node "${CLAUDE_SKILL_DIR}/scripts/round.mjs" --root <root> --tag <tag> --commit $(git rev-parse --short HEAD)`.
- Inline command → opens with `cd` to the worktree's absolute path; the shell keeps its directory between commands.
- Inline idea → from the files read at start and the `ROW` lines, untried; the strongest method known for the goal first, not a stepping stone toward it.
- Inline discard → resets the worktree to the best commit, so a retry of the discarded idea starts from `git show <hash>:<file>`.
- Inline bounds → no edit to what the scorer reads, no special case for its cases.
- Inline, no idea left or an interrupt → Stop: report the best kept score against the baseline, the branch, the worktree and the reason; leave them and `.exo/improve/` in place.
- Score → the lead runs no score command, test or check of its own, before setup or after; `round.mjs` owns scoring, rows, keeps and resets.
- Crash row → its idea may be retried with the cause its `OUT` lines name fixed.
## Judgment
- Run until a Stop trigger; a question after setup finds no one.
- Kept commit → only from a `round.mjs` `keep` row; no edit to the scorer, no score from chat.
| File | Read it when |
|---|---|
| `references/worker-round.md` | `mode=worker`, before round 1. |
| `references/worker.md` | Setup and `round.mjs` fill it into `<tag>.brief.md`; open it only to change the worker's steps. |From blauwtje/exo, MIT.
More from blauwtje/exo
- 0.592score
file-issues
blauwtje
Use when the user types /exo:file-issues to file, open, write or split GitHub issues.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
save-session
blauwtje
Use when the user invokes it to save an unfinished session's state for a fresh session after a clear.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
ship
blauwtje
Use when commits may leave the machine, or the user asks to push, open, watch or merge a pull request or fix its failing checks, conflicts or review comments.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
spec
blauwtje
Use when a request leaves done, data, architecture or a trade-off open.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
start
blauwtje
Use when the user does not remember a skill's name, wants the list of exo skills in plain words, or names a goal and wants exo to pick.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
verify
blauwtje
Use when a plan's tasks are landed and its branch needs the gate before a pull request: the scripted checks, the branch review and its repairs.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
write-docs
blauwtje
Use when writing or editing prose read later: a README, doc page, PR, issue or commit body, changelog line, brief or spec.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
design-ui
blauwtje
Use when a page or component's look or copy changes, or looks empty, boring or generic.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
edit-skills
blauwtje
Use when creating, editing or sizing a skill or agent, and before it is done.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
find-cause
blauwtje
Use when reported wrong behavior (bug, error, crash, regression, slowdown) has no one-command repro, or its proof stays red after one plain fix attempt.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
prompt
blauwtje
Use when the user invokes it to rewrite a rough prompt into a grounded, tagged prompt for Claude and run it after approval.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
refactor
blauwtje
Use when a named refactor, rename, move or internal API reshape must keep behavior unchanged, or a shim or compatibility re-export tempts.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 6
- Last commit (this folder)
- Oct 24, 2026 (5 days ago)
- Last release
- Oct 19, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/blauwtje/exo
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from blauwtje
- 0.592score
find-cause
blauwtje
Use when reported wrong behavior (bug, error, crash, regression, slowdown) has no one-command repro, or its proof stays red after one plain fix attempt.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
prompt
blauwtje
Use when the user invokes it to rewrite a rough prompt into a grounded, tagged prompt for Claude and run it after approval.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
file-issues
blauwtje
Use when the user types /exo:file-issues to file, open, write or split GitHub issues.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
design-ui
blauwtje
Use when a page or component's look or copy changes, or looks empty, boring or generic.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
edit-skills
blauwtje
Use when creating, editing or sizing a skill or agent, and before it is done.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
refactor
blauwtje
Use when a named refactor, rename, move or internal API reshape must keep behavior unchanged, or a shim or compatibility re-export tempts.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
improve skill. Agent Mart. https://agentmart.dev/skills/blauwtje-improve (last updated 2026-10-24)