Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Switch a caller-selected coding-agent
.claude/skills/boshu2-account-rotation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 97% | 0% |
| case-22 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -63% | 0% |
Choose the credential tool from both host and agent family, perform only the explicit account switch, and report the identity observed by the matching runtime.
Verifying identity through the target runtime works because the runtime is the only party whose opinion matters: credential files can be swapped perfectly and still authenticate as the old account in an already-running process.
Named failure mode — stale-process identity: declaring the rotation done while every live session still holds the previous account's tokens in memory.
Anti-pattern: confirming a switch by diffing credential file bytes. Corrective: ask the matching runtime who it is now, and report whether a new process is required for the answer to hold.
mutates host credential state and is never implied by repository access.
the names below are this operator's routes, not a universal prescription. On macOS with Claude credentials the route is claude-acct (Keychain-backed); file-backed Codex, Gemini, Linux, or WSL credentials use caam. Never use caam for macOS Claude account operations.
identity.
available, report that absence as a disclosed fact and stop. Never fall back to diffing credential-file bytes to declare a switch done.
affects a new process.
state, or decide what happens after the switch.
Return the host, agent family, selected tool, requested account/profile, the identity observed before and after the switch, whether any live runtime still holds the previous account (a partial rotation), the command exit code, and whether a new process is required for the new identity to hold.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | fail→pass | 5,833 | 8,110 | +39% | 1 | 1 | 0% | 943 | 1,861 | +97% | 0 | 0 | — |
case-22 | fail→pass | 7,917 | 4,240 | -46% | 1 | 1 | 0% | 1,301 | 879 | -32% | 0 | 0 | — |
case-01 | fail→fail | 16,394 | 11,244 | -31% | 1 | 1 | 0% | 2,034 | 886 | -56% | 0 | 0 | — |
case-02 | fail→fail | 9,392 | 11,383 | +21% | 1 | 1 | 0% | 1,503 | 803 | -47% | 0 | 0 | — |
case-03 | fail→fail | 7,393 | 7,943 | +7% | 1 | 1 | 0% | 1,179 | 942 | -20% | 0 | 0 | — |
case-04 | fail→pass | 13,213 | 4,437 | -66% | 1 | 1 | 0% | 2,026 | 1,148 | -43% | 0 | 0 | — |
case-11 | fail→pass | 4,673 | 6,673 | +43% | 1 | 1 | 0% | 767 | 1,415 | +84% | 0 | 0 | — |
case-05 | fail→pass | 16,208 | 4,030 | -75% | 1 | 1 | 0% | 2,776 | 1,015 | -63% | 0 | 0 | — |
case-06 | fail→pass | 10,760 | 4,197 | -61% | 1 | 1 | 0% | 1,666 | 1,113 | -33% | 0 | 0 | — |
case-07 | pass→pass | 13,120 | 4,495 | -66% | 1 | 1 | 0% | 1,944 | 1,164 | -40% | 0 | 0 | — |
case-08 | pass→pass | 7,964 | 4,200 | -47% | 1 | 1 | 0% | 1,120 | 1,016 | -9% | 0 | 0 | — |
case-09 | fail→pass | 12,839 | 4,996 | -61% | 1 | 1 | 0% | 2,014 | 1,189 | -41% | 0 | 0 | — |
case-12 | fail→pass | 8,974 | 7,824 | -13% | 1 | 1 | 0% | 826 | 1,703 | +106% | 0 | 0 | — |
case-13 | pass→pass | 9,266 | 5,079 | -45% | 1 | 1 | 0% | 1,462 | 768 | -47% | 0 | 0 | — |
case-14 | fail→pass | 12,175 | 4,200 | -66% | 1 | 1 | 0% | 1,972 | 872 | -56% | 0 | 0 | — |
case-15 | pass→pass | 10,179 | 4,364 | -57% | 1 | 1 | 0% | 1,504 | 1,095 | -27% | 0 | 0 | — |
case-21 | pass→pass | 7,741 | 5,014 | -35% | 1 | 1 | 0% | 1,240 | 1,045 | -16% | 0 | 0 | — |
case-16 | pass→pass | 3,614 | 5,156 | +43% | 1 | 1 | 0% | 716 | 1,434 | +100% | 0 | 0 | — |
case-17 | pass→pass | 3,186 | 4,197 | +32% | 1 | 1 | 0% | 552 | 1,088 | +97% | 0 | 0 | — |
case-18 | pass→pass | 9,551 | 6,234 | -35% | 1 | 1 | 0% | 1,692 | 1,658 | -2% | 0 | 0 | — |
case-19 | pass→pass | 14,729 | 5,102 | -65% | 1 | 1 | 0% | 969 | 1,277 | +32% | 0 | 0 | — |
case-20 | pass→pass | 25,145 | 4,812 | -81% | 1 | 1 | 0% | 1,988 | 993 | -50% | 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 19 counted toward the lift figure. The other 3 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 19 comparable cases. 2 cases got worse with the skill loaded, and they are 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.