Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Shape or refine the existing bead or caller
.claude/skills/boshu2-plan/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -39% | 0% |
Turn the caller's intent into one bounded, testable behavior in the place that already owns the work. Prefer the caller's tracker, if any. When no durable tracker or issue reference is available, use the caller's conversation or supplied text; the runtime snapshots those resolved intent bytes so later contexts can read and hash the same source. Do not make the model restate those facts in a packet.
is not already durable, have the runtime pass its exact bytes to the validate skill's scripts/validate.py snapshot-intent --source -, resolved relative to wherever that skill package is installed (a repo checkout: skills/validate/scripts/validate.py; an installed skill package: .agents/skills/validate/scripts/validate.py), and use the returned intent_ref for later phases.
truth first. Then inspect only enough real context to make paths, interfaces, and evidence concrete: hydrate only the context sources this decision needs and carry their citations forward. Existing research and specialist skills are advisory inputs, never a merged context store.
allowed write scope. Use lightweight prose or Given/When/Then only where it removes ambiguity; do not require both normal and edge ceremony for every change.
place. Otherwise return a concise proposed amendment to the caller.
Planning produces no AgentOps packet. A durable caller-owned source stays in place; the runtime carries its reference and the digest of its exact resolved bytes to detect later acceptance drift. Only when no durable source exists does the runtime store those bytes under their digest as a content-addressed snapshot. That fallback is derived automatically and is not another model-authored planning artifact.
Bound the work around the caller-visible outcome, not individual files, gates, or reviewer comments. Decomposition is useful only when it reduces reasoning cost; it must not multiply invocations or proof artifacts.
In a repository with generated projections, write scope names generator-owned outputs as a class — the hand-edited sources plus all outputs of the owning regen commands — never as a hand-enumerated path list. Hand enumeration is falsified the first time a regen command rewrites a companion the author did not list: the 2026-07-15 heal-skill fold burned two implement lanes and three intent revisions (.agents/ao/intents/sha256/d1db59d4...2b81 superseded by f5fd7c3c...af75 superseded by 26a4f2be...eb48) before scope was restated as a class.
Before freezing acceptance, run a complexity admission: enumerate the generated companions, parity twins (for example a skills-codex/ mirror), and test files that assert on the paths being changed. Anything this pass finds that the scope does not admit will surface later as an out-of-scope diff or a broken gate.
Every plan needs a ground truth outside the planner's own reasoning. Before freezing acceptance, classify the work and name its ground truth, its control experiment, and its deviation ledger from the row below.
| Work type | Ground truth | Control experiment | Deviation ledger | |---|---|---|---| | Integrate an external substrate, runtime, tracker, or service | the vendor's own docs plus stock behavior | run their vanilla quickstart on pinned versions with zero local code, before designing | each deviation from the documented flow, each justified; and every component you write that has a native counterpart in the substrate | | Extend this project | the repo's existing patterns and behavior spec | the simplest version that satisfies acceptance, and why it is insufficient | each novelty introduced — new abstraction, dependency, or pattern | | Greenfield | reference experience and domain prior art | a walking skeleton | each deviation from the boring default, ~one novelty per change |
The Extend row is already the repo's default discipline: behavior-first acceptance, RED -> GREEN, the smallest real change. The Integrate row is the one that is cheap to skip and expensive to have skipped — run the stock control experiment before you design, or you will re-plumb what the substrate already documents and inherit bugs you built yourself.
Trigger: the Integrate-row mechanics — the stock-quickstart control run and the deviation ledger from the documented flow — apply only to integration-class work (adopting or wiring in an external substrate, runtime, tracker, or service). Routine feature work on this project uses the Extend row and does not incur them.
A plan is done only when it passes the fresh-context test: a cold context, given the intent source alone, could execute it without the author's conversation. If execution needs facts that live only in the planning conversation, move them into the source before freezing.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 15,852 | 15,226 | -4% | 1 | 1 | 0% | 2,742 | 3,067 | +12% | 0 | 0 | — |
case-03 | fail→fail | 14,739 | 12,137 | -18% | 1 | 1 | 0% | 2,287 | 3,018 | +32% | 0 | 0 | — |
case-09 | fail→pass | 12,444 | 5,306 | -57% | 1 | 1 | 0% | 1,954 | 1,934 | -1% | 0 | 0 | — |
case-10 | fail→pass | 15,262 | 6,616 | -57% | 1 | 1 | 0% | 2,279 | 2,143 | -6% | 0 | 0 | — |
case-11 | fail→fail | 13,093 | 6,280 | -52% | 1 | 1 | 0% | 1,920 | 2,016 | +5% | 0 | 0 | — |
case-02 | fail→fail | 17,197 | 14,292 | -17% | 1 | 1 | 0% | 2,903 | 3,002 | +3% | 0 | 0 | — |
case-04 | fail→fail | 17,621 | 6,494 | -63% | 1 | 1 | 0% | 2,614 | 1,401 | -46% | 0 | 0 | — |
case-05 | fail→fail | 16,800 | 8,170 | -51% | 1 | 1 | 0% | 2,623 | 2,395 | -9% | 0 | 0 | — |
case-06 | fail→pass | 23,559 | 18,995 | -19% | 1 | 1 | 0% | 3,601 | 3,367 | -6% | 0 | 0 | — |
case-07 | fail→fail | 14,149 | 6,083 | -57% | 1 | 1 | 0% | 2,391 | 1,381 | -42% | 0 | 0 | — |
case-08 | fail→fail | 13,380 | 11,589 | -13% | 1 | 1 | 0% | 2,239 | 3,060 | +37% | 0 | 0 | — |
case-12 | fail→pass | 11,553 | 2,968 | -74% | 1 | 1 | 0% | 1,769 | 1,661 | -6% | 0 | 0 | — |
case-13 | pass→pass | 7,892 | 4,299 | -46% | 1 | 1 | 0% | 1,183 | 1,843 | +56% | 0 | 0 | — |
case-14 | fail→pass | 15,815 | 2,985 | -81% | 1 | 1 | 0% | 2,631 | 1,592 | -39% | 0 | 0 | — |
case-15 | pass→pass | 10,938 | 4,788 | -56% | 1 | 1 | 0% | 1,681 | 1,955 | +16% | 0 | 0 | — |
case-16 | fail→pass | 13,134 | 6,091 | -54% | 1 | 1 | 0% | 2,001 | 2,127 | +6% | 0 | 0 | — |
case-17 | fail→pass | 10,563 | 2,834 | -73% | 1 | 1 | 0% | 1,490 | 1,572 | +6% | 0 | 0 | — |
case-18 | pass→pass | 12,690 | 3,210 | -75% | 1 | 1 | 0% | 1,977 | 1,580 | -20% | 0 | 0 | — |
case-19 | fail→fail | 3,310 | 5,187 | +57% | 1 | 1 | 0% | 542 | 1,384 | +155% | 0 | 0 | — |
case-20 | fail→fail | 7,605 | 9,108 | +20% | 1 | 1 | 0% | 1,134 | 2,110 | +86% | 0 | 0 | — |
case-21 | pass→fail | 3,491 | 19,423 | +456% | 1 | 1 | 0% | 470 | 4,015 | +754% | 0 | 0 | — |
case-22 | fail→pass | 16,663 | 5,537 | -67% | 1 | 1 | 0% | 2,400 | 1,933 | -19% | 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 +32 percentage points is the difference between those two pass rates over the 19 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.