Apply to my task
arXiv:2610.37201 ★ 87 Oct 27, 2026

Skill Optimizers: Auto-Written Agent Rules Are No Better Than a Hand-Written Skill, They Just Make It Pricier

Key result

Rules that automation appends to an agent's instructions solve tasks no more often than one good hand-written skill: the average difference is 0.1 points. But the agent reads roughly 16% more tokens. This finding lets you clean up a bloated CLAUDE.md or AGENTS.md: remove duplicates and keep a single verification rule with no loss in quality. The catch: the agent turns "double-check" and "do one at a time" into extra turns, and every turn resends the entire conversation to the model. The instructions look short, but the bill keeps growing.

01

TL;DR

A skill optimizer is automation that rewrites an agent's instructions (its skill, think CLAUDE.md). An editor model reads run logs, appends rules, and keeps whichever edits helped the agent solve more tasks on a small validation set. The researchers tested three such optimizers on long agentic tasks. The learned skills solve tasks no more often than one well-written hand-crafted starting skill (an average difference of 0.1 points), but they make the agent read roughly 16% more tokens. The main culprit: rules like "double-check" and "make one call at a time" turn into extra turns.

The gain an optimizer reports on its validation set is mostly an illusion. The set is tiny (up to 30 tasks), and agent success is noisy: the same skill solves a task one run and fails it the next. Pick the best of 4–8 candidates and you will "find" a gain even among candidates identical to the original. On fresh tasks it evaporates. Second problem: a solved/unsolved score hides the price. Every agent turn resends the whole conversation to the model, so an extra turn costs far more than an extra line of instructions. Third: the editor appends rules in batches (37 per run on average, up to 105), and nobody checks each rule on its own. Of 337 added rules, not one asked the agent to read less, and half asked it to verify something.

The authors propose four principles: accept an edit only if its gain beats what selection alone produces; price a rule by the turns it adds, not by its length; let the editor delete and merge rules; show the editor what past rules have cost.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Method Blueprint

The authors' method itself (BiPA) is a diagnostic, not a prompt. What's useful to you are its conclusions, so the blueprint shows how to vet any edit to an agent's instructions:

STEP 1: Run the original skill several times → learn its own variance
STEP 2: Run the new skill the same number of times → accept the edit only if the difference exceeds that variance
STEP 3: For every new rule, ask             → how many turns will it add?
STEP 4: Delete / merge rules                → don't just keep appending
STEP 5: Show the editor what past rules cost → before it writes new ones

Steps 1–2 are done by hand or in your automation. Steps 3–5 can be done with a prompt in a regular chat (see the template below).

03

Example in Practice

Task: You run a small studio that builds WordPress and Shopify sites. A Claude Code agent edits the markup and scripts. After every failure you added a rule to CLAUDE.md: "check again," "run the build after every change," "read files one at a time." Six months later you have 90 lines. The agent has slowed down, and your plan's tokens run out by mid-month. Time for an audit.

Prompt:

You are an instruction editor for an AI agent. Below is my CLAUDE.md. 
It has bloated: rules were added after every failure, and nobody ever reviewed them.

Context: the agent edits WordPress and Shopify sites (PHP, JS, markup). 
Every agent turn resends the whole conversation to the model, so an extra turn 
costs more than an extra line of instructions.

Audit it in 4 steps:

STEP 1. Put every rule into a category: 
"verify" (re-checking), "one at a time" (one call per turn), 
"read" (what and how much to read), "format", "boundaries" (what's off-limits), "other".

STEP 2. For each rule, estimate how many EXTRA AGENT TURNS it 
generates: 0 / 1–2 / many. Judge "verify" and "one at a time" rules especially harshly.

STEP 3. Find duplicates and contradictions. Propose which rules to DELETE 
and which to MERGE into one. One line of reasoning per decision.

STEP 4. Output a new version of the file. Keep exactly one verification rule: 
"before claiming completion, run a fresh full check." 
Keep rules that generate many turns only if they cover 
a real failure from my notes.

Here are my notes on real failures: {failure_list}
Here is CLAUDE.md: {file_text}

Result: The model returns a table of rules with categories and turn estimates, then a delete/merge list with reasons, and a new, short version of the file. Verification gets boiled down to a single rule. Next, run the agent on 5–10 typical tasks several times each and compare token spend against the old version.

04

Why It Works

The weakness. An agent follows instructions literally. It turns "check the result" into an extra tool call, and "write one at a time" into a string of turns instead of one. Each turn resends the whole conversation, so in a long task an extra turn nearly doubles its own cost (the paper calls this "turn elasticity"). The instructions look short, but the bill keeps climbing.

Why the pile-up goes unnoticed. Edits are judged as a bundle on a small sample. There's no way to tell which of ten added rules helped and which just costs money. And when you pick the best of several noisy results, the winner almost always "wins" on luck.

The strength, and how the method uses it. Models are good at classifying and condensing text. So you can hand them the audit: sort rules into categories, find duplicates, merge. The starting skill in the study was exactly that kind: one general rule, "a fresh full check before claiming you're done." It held its own against everything the optimizers learned.

Control knobs: - Rule categories → add your own (e.g., "security") so you don't delete something you need. - Turn-cost scale → swap in "tokens" or "seconds" if that's what you track. - List of real failures → keep a rule only if it covers a failure on the list. That's your guard against "dead" rules. - Number of runs for comparison → the noisier the task, the more repeats you need.

05

Prompt Template

This applies principles 2–4 from the paper to a manual or chat-based audit. The authors did not test this prompt themselves.

You are an instruction editor for an AI agent. Shorten and clean up the instructions 
without losing the useful rules.

What the agent does: {agent_task}
Real failures the rules were written for: {failure_list}

Instructions:
{instruction_text}

Do the following:
1. For each rule, give its category: verify / one at a time / read / format / boundaries / other.
2. Estimate how many extra agent turns it generates (0 / 1–2 / many). 
   Every turn resends the whole conversation, so price rules in turns, not length.
3. Propose DELETING rules not tied to a real failure, 
   and MERGING duplicates and overlapping rules.
4. Output a new version. It must be shorter than the original. 
   No more than one "verify"-type rule.

Response format: a table (rule | category | turns | decision | reason), then the new version.

Fill in: {agent_task} — one sentence on what the agent does; {failure_list} — the real incidents that made you add rules; {instruction_text} — your full CLAUDE.md, AGENTS.md, or skill.

06

Limitations

⚠️ Tested on long agentic tasks: terminal work, customer support, business workflows. For short one-off requests (Q&A), the conclusions about turn cost don't necessarily carry over.

⚠️ Agent without history compression: in the study, the full conversation was sent on every turn. If your tool compresses or caches history, extra turns are cheaper. Tokens in the report don't map one-to-one to dollars.

⚠️ The diagnostic needs logs and code: BiPA itself (selection replay, the turn graph) is out of reach without an engineer. Take the conclusions from the paper, not the tool.

⚠️ The principles weren't tested as an intervention: the authors derived four principles from their analysis, but the available part of the text doesn't show that an optimizer gets better with them. The template above is our application, not a validated method.

⚠️ Small samples: one of the benchmarks has only 18 test tasks, and the variance is large.

⚠️ "Harmful" rules can still be needed: the paper doesn't say "don't verify the result." It says verification rules pile up and get expensive. A single general rule works well.

07

How They Studied It

The researchers took three published skill optimizers (GEPA, SkillOpt, SkillAdam) and three agentic benchmarks: Terminal-Bench 2.1 (fixing terminal environments), τ³-bench (customer support with a simulated user), and AutomationBench (business workflows). The agent was two models in the OpenCode harness with no history compression. Every optimizer started from the same hand-written skill: a general rule, "a fresh full check before claiming you're done." That produced 16 learned skills. Each skill, plus the original and a "no skill" variant, was run on the test set three times.

The key idea: run the optimizer's acceptance rule on candidates that are exactly identical to the original skill. If the "unchanged" candidates show the same gain, the gain comes from selection itself. And that's what happened. Unmodified candidates reproduced the reported gains with probabilities from 0.25 to 0.94. The reported 3–17 points on the dev set didn't hold up on the test set: the average result was plus 0.1 points, and for the nine skills under DeepSeek it was actually minus 1.4. The skills won about as many tasks as they lost (57 vs. 62). In other words, they didn't expand what the agent could do; they just made its behavior more uniform.

Cost was studied separately. Each run was recorded as a graph of "turns ↔ the texts they read." All nine skills under DeepSeek read 8–43% more tokens and took 3–22% more turns. Among the 337 added rules, not one asked to read less, half asked to verify, and 18 asked for "one at a time." On AutomationBench, 56% of writes under the original skill were batched; under the learned skills, no more than 0.3%: writes started going out one by one. One more surprise: the cost travels with the skill to another model and another benchmark, but the benefit doesn't. The practical takeaway: rules are expensive, their benefit is questionable, and you have to measure it with noise in mind.

08

Original from the Paper

The full text of the original skill (verification-before-completion, Vincent, 2025) isn't in the available part of the paper. It's only described as asking for a fresh, full check before any claim of completion. Section skipped.

09

Adaptations and Extrapolations

💡 Adaptation for vetting any instruction edit: instead of "it got better on two runs," use a noise-aware protocol.

I changed my agent's instructions. Help me plan how to test it.
The agent's task: {task}. Number of typical tasks to run: {count}.
1. Suggest how many times to run the OLD version to estimate its own variance.
2. Suggest a rule: the new version counts as better only if the difference 
   exceeds that variance.
3. Suggest what to record besides "solved / not solved": number of turns, token spend.

🔧 Technique: add "turn cost" to the audit prompt → the agent stops spawning checks. Line for your instructions: "Before claiming you're done, run one fresh full check. Don't repeat it after every step." It replaces a scatter of "double-check" rules with one.

🔧 Technique: independent calls → one turn. If you need to write several files or take several independent actions, ask: "Make independent tool calls in a single turn." The paper shows that "one write per turn" is one of the main drivers of turn growth.

10

Resources

  • Paper: Does Your Generalist Skill Optimizer Really Incentivize Agentic Tasks? Rethinking Skill Optimization via Bipartite Attribution
  • Code: github.com/valleysprings/BiPA
  • Authors: Jiawei Zhou, Bo Peng, Yuxuan Huang, Ming Zhang, Youbang Sun, Xiang Wang, Chaochao Lu
  • Affiliations: Shanghai AI Laboratory, Fudan University, Shanghai Jiao Tong University, USTC, Tsinghua University
  • Optimizers and benchmarks mentioned: GEPA, SkillOpt, SkillAdam; Terminal-Bench 2.1, τ³-bench, AutomationBench; OpenCode harness

Research digest

Key result

Rules that automation appends to an agent's instructions solve tasks no more often than one good hand-written skill: the average difference is 0.1 points. But the agent reads roughly 16% more tokens. This finding lets you clean up a bloated CLAUDE.md or AGENTS.md: remove duplicates and keep a single verification rule with no loss in quality. The catch: the agent turns "double-check" and "do one at a time" into extra turns, and every turn resends the entire conversation to the model. The instructions look short, but the bill keeps growing.

Principle

The principle is simple: measure a rule not by the length of its line, but by the number of turns it spawns. The audit process: 1. Sort the rules into categories: verify, one at a time, read, format, boundaries. 2. Score each one by its cost in turns: 0, 1-2, or many. 3. Delete rules with no real failure behind them. Merge duplicates into one. There should be exactly one verification rule: a fresh full check before claiming you're done. Picture a security guard who demands your ID at the door of every single office. Each check is reasonable on its own. Together they eat the whole day.

Why it works

An agent executes instructions literally. It turns "check the result" into an extra tool call and stretches "read one at a time" into a string of turns. In a long task, an extra turn nearly doubles its own cost, because the history keeps growing. Why doesn't the automation notice? Edits are scored as a bundle on a tiny sample, up to 30 tasks. Agent success is noisy: the same skill solves a task one time and fails it the next. Take the best of 4-8 candidates, and a gain "shows up" even for copies of the original skill. The winner wins on luck, not on its rules. On new tasks, the gain vanishes. The editor appends rules in batches: 37 per run on average, up to 105. Nobody can check each one individually. The kicker: of 337 added rules, not one asked the agent to read less, and half demanded that it verify something. Models, meanwhile, are good at classifying and condensing text. So you can hand them the audit.

When to apply

Agentic work with code, customer support, or business workflows → specifically for an instruction file that's grown after every failure, especially when your plan's tokens run out early and the agent has gotten slower. Not a fit for short one-off Q&A requests: the cost of a turn is different there. If your tool compresses or caches history, the savings will be smaller. The authors didn't test the prompt template itself. They validated the diagnostic; the chat-based audit is our application.

Mini recipe

1. Collect real failures: list the incidents that made you add rules. No failure behind it — the rule is suspect. 2. Hand the file to a model for audit: the job is categories, cost in turns, what to delete, what to merge. 3. Keep one verification rule: before claiming completion, run a fresh full check. 4. Run both versions: 5-10 typical tasks, each several times. One run isn't enough; success is noisy. 5. Compare tokens and success: adopt the new version only if the difference exceeds the old version's variance against itself. 6. Add your own categories: for example, "security," so you don't accidentally throw out something you need.

Examples

[BAD]: `The agent didn't check the result again. Add to CLAUDE.md: check again, run the build after every edit, read files one at a time` [GOOD]: `You are an instruction editor for an AI agent. Below is my 90-line CLAUDE.md. The agent edits WordPress and Shopify sites. Every turn resends the whole conversation, so an extra turn costs more than a line of instructions. For each rule, give its category (verify / one at a time / read / format / boundaries) and how many extra turns it generates: 0, 1-2, or many. Delete rules not tied to a real failure from my list, merge duplicates. Keep no more than one verification rule. Return a table and a new short version. Failures: {failure_list}. File: {file_text}` [BAD]: `The new rule set gives +2 tasks on five tests, shipping it` [GOOD]: `Ran the old version 5 times: results jump between 3 and 5 solved tasks. The new version got 4 out of 5, which is within the variance, so there's no gain. Keeping whichever one spends fewer tokens`

In plain words

Automatically optimizing agent instructions is a pretty myth. You feed the optimizer your error logs, it spits out a batch of new rules like "always double-check the result," and the payoff is a big fat nothing. An LLM agent takes every piece of advice literally. Instead of actually solving the problem, it starts piling up extra iterations, pushing a bloated context through the model all over again at every step.

It's like hiring a sharp junior dev and sticking them with a micromanaging team lead who demands they "breathe according to policy" and file a report after every line of code. The work grinds to a halt, not because the junior is dumb, but because they're burning resources on bureaucracy. You thought you'd added "quality control"; in reality you just paralyzed the system with mindless micromanagement.

The researchers ran three popular optimizers through long agentic tasks, and the numbers are a cold shower. The success-rate difference between the auto-generated skill and a plain baseline prompt was a measly 0.1 points — zero effect. Meanwhile, the agent starts gobbling 16% more tokens, because innocent tips like "do one action at a time" snowball into an avalanche of extra turns.

The experiment was run on optimization software, but the trap is completely universal. If you've spent months hand-inflating your CLAUDE.md or system prompt after every failure, you're doing exactly the same dumb thing. Devs are often baffled when their agent suddenly gets dumber and the token limit burns out in a week — well, that's because the model is buried under dozens of paranoid instructions.

The moral is simple: stop hoarding prompt rules. A long list of precautions doesn't turn your agent into a genius; it just jacks up the cost of every sneeze as context gets shipped back and forth. Ruthlessly purge the parasite rules, keep an eye on turn counts, and stick to one clear baseline skill — or keep paying for useless "self-checks" out of your own pocket.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on Skill Optimizers: Auto-Written Agent Rules Are No Better Than a Hand-Written Skill, They Just Make It Pricier arXiv:2610.37201

Sign in to apply this study New accounts get 50 free credits.