Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute one behavior-preserving structural
.claude/skills/boshu2-refactor/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -27% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -16% | 0% |
Refactor changes structure while preserving observable behavior. It performs one caller-selected transformation and reports the result.
encapsulate, move, or delete dead code.
by the changed surface.
Do not combine a newly discovered behavior fix with the structural change. A red result is evidence for the caller; this skill does not revert, narrow, retry, commit, validate, or route subsequent work automatically.
When the transformation needs a seam — an extraction boundary, interface, or module split — and more than one candidate seam exists, probe before you cut. Run the probe in disposable isolation (a scratch branch, worktree, or copied tree the caller's policy allows): rough in the seam, see what it forces — signature churn, import cycles, test rewrites — then discard the probe and keep only the knowledge. Stop condition: at most two probes; if the second candidate seam also fights back, report both findings to the caller instead of trying a third. Cutting the first imaginable seam directly into the working tree is the premature seam failure mode: the wrong boundary calcifies because reverting it now costs more than living with it.
"Behavior-preserving" is a claim to execute, not assert. Gate the transformation on behavior-identical proof:
and after, with the same set of pre-existing failures — no new red, and no quietly vanished red either (a test that stops running is a behavior change).
hash the outputs: capture golden-output hashes over identical inputs before the change and compare byte-for-byte after. A hash mismatch is a behavior diff to surface and explain, never to shrug at; the caller decides whether to keep, narrow, or reverse the change.
surface are part of behavior unless the caller excluded them.
A neutrality gate that was skipped or narrowed after the fact is the post-hoc neutrality failure mode — the diff decides what got tested. Name any surface the gates did not cover in the report's behavior-not-checked list.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,793 | 5,063 | +6% | 1 | 1 | 0% | 231 | 885 | +283% | 0 | 0 | — |
case-02 | fail→fail | 4,542 | 5,244 | +15% | 1 | 1 | 0% | 201 | 871 | +333% | 0 | 0 | — |
case-03 | fail→fail | 4,093 | 6,427 | +57% | 1 | 1 | 0% | 215 | 869 | +304% | 0 | 0 | — |
case-04 | pass→pass | 8,324 | 10,471 | +26% | 1 | 1 | 0% | 1,313 | 2,169 | +65% | 0 | 0 | — |
case-05 | fail→fail | 8,077 | 7,417 | -8% | 1 | 1 | 0% | 1,273 | 989 | -22% | 0 | 0 | — |
case-06 | fail→pass | 13,760 | 15,304 | +11% | 1 | 1 | 0% | 2,686 | 3,267 | +22% | 0 | 0 | — |
case-07 | fail→pass | 15,364 | 4,403 | -71% | 1 | 1 | 0% | 2,232 | 1,279 | -43% | 0 | 0 | — |
case-08 | fail→pass | 10,466 | 3,468 | -67% | 1 | 1 | 0% | 1,579 | 1,155 | -27% | 0 | 0 | — |
case-09 | fail→pass | 13,831 | 6,735 | -51% | 1 | 1 | 0% | 2,005 | 1,597 | -20% | 0 | 0 | — |
case-10 | fail→pass | 10,973 | 5,292 | -52% | 1 | 1 | 0% | 1,671 | 1,409 | -16% | 0 | 0 | — |
case-11 | fail→pass | 9,844 | 5,697 | -42% | 1 | 1 | 0% | 1,504 | 1,417 | -6% | 0 | 0 | — |
case-12 | pass→pass | 9,716 | 4,382 | -55% | 1 | 1 | 0% | 1,400 | 1,283 | -8% | 0 | 0 | — |
case-13 | pass→pass | 8,123 | 4,312 | -47% | 1 | 1 | 0% | 1,241 | 1,233 | -1% | 0 | 0 | — |
case-14 | pass→pass | 9,285 | 7,514 | -19% | 1 | 1 | 0% | 1,447 | 1,771 | +22% | 0 | 0 | — |
case-15 | pass→pass | 11,984 | 5,911 | -51% | 1 | 1 | 0% | 1,765 | 1,483 | -16% | 0 | 0 | — |
case-16 | fail→pass | 11,835 | 3,903 | -67% | 1 | 1 | 0% | 1,719 | 1,097 | -36% | 0 | 0 | — |
case-17 | pass→pass | 10,858 | 6,439 | -41% | 1 | 1 | 0% | 1,617 | 1,629 | +1% | 0 | 0 | — |
case-18 | pass→pass | 10,502 | 5,623 | -46% | 1 | 1 | 0% | 1,592 | 1,456 | -9% | 0 | 0 | — |
case-19 | fail→pass | 8,455 | 5,343 | -37% | 1 | 1 | 0% | 1,290 | 1,429 | +11% | 0 | 0 | — |
case-20 | fail→pass | 14,683 | 7,334 | -50% | 1 | 1 | 0% | 2,174 | 1,602 | -26% | 0 | 0 | — |
case-21 | fail→fail | 13,746 | 4,546 | -67% | 1 | 1 | 0% | 2,299 | 1,323 | -42% | 0 | 0 | — |
case-22 | pass→pass | 12,049 | 4,213 | -65% | 1 | 1 | 0% | 1,832 | 1,254 | -32% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 18 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.