Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Review the bead or caller intent write scope
.claude/skills/boshu2-scope/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -25% | 0% |
Review the write scope in the existing bead or caller intent. This skill is advisory: it does not create a second planning artifact, write a lock, install a hook, block an edit, or claim paths.
The caller decides whether to adopt the proposal in the original intent source, and Validate independently compares runtime-derived changed paths with that scope.
Derive the scope from axioms, not enumeration instinct. State the small set of facts the acceptance makes true — "behavior X lives in root A", "projection B is generated from A", "history under C is frozen" — and derive every include and exclude pattern from exactly one axiom. A pattern with no supporting axiom is unjustified breadth; an axiom with no pattern is a gap. Both go in the review output. Scopes assembled by listing directories that feel related are the vibes perimeter failure mode: they cannot be defended when Validate finds a path on the boundary, because nobody can say why the line is where it is. Stop condition: the review is complete when the axiom-to-pattern mapping has no unmapped members on either side.
When the review finds that protected paths were already touched — or the caller asks how a scope violation should be unwound — the advisory answer is a ceremony, not a hand-wave: identify the known-good source for each affected path (committed state, snapshot, or generated-from-source), restore, then verify byte-for-byte that restored content matches the known-good bytes (content hash comparison, not visual diff or "looks right"). Recovery declared on inspection alone is the eyeballed restore failure mode: a file that looks restored can still differ in bytes that matter. The ceremony's stop condition is a hash match for every affected path; any path with no known-good source to verify against is reported as unrecoverable-as-scoped, and the caller decides.
yamlwrite_scope: include: ["bounded/source/**"] exclude: ["bounded/source/generated-by-other-owner/**"] generated_companions: ["bounded/generated/**"] gaps: [] ambiguities: []
introduced.
If the scope cannot be made unambiguous from the supplied acceptance, report the missing facts and stop. The caller may revise the intent in a new action.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | 10,936 | 11,716 | +7% | 1 | 1 | 0% | 1,765 | 2,749 | +56% | 0 | 0 | — |
case-01 | fail→pass | 12,271 | 11,698 | -5% | 1 | 1 | 0% | 2,182 | 2,778 | +27% | 0 | 0 | — |
case-03 | fail→pass | 10,530 | 6,079 | -42% | 1 | 1 | 0% | 1,958 | 1,874 | -4% | 0 | 0 | — |
case-04 | fail→pass | 13,552 | 7,571 | -44% | 1 | 1 | 0% | 2,295 | 1,847 | -20% | 0 | 0 | — |
case-05 | pass→pass | 11,168 | 4,559 | -59% | 1 | 1 | 0% | 1,969 | 1,591 | -19% | 0 | 0 | — |
case-06 | pass→pass | 13,260 | 8,964 | -32% | 1 | 1 | 0% | 2,110 | 2,044 | -3% | 0 | 0 | — |
case-07 | pass→pass | 16,042 | 6,049 | -62% | 1 | 1 | 0% | 2,442 | 1,740 | -29% | 0 | 0 | — |
case-22 | pass→pass | 10,168 | 8,374 | -18% | 1 | 1 | 0% | 1,678 | 1,985 | +18% | 0 | 0 | — |
case-08 | fail→pass | 11,300 | 2,749 | -76% | 1 | 1 | 0% | 1,615 | 1,204 | -25% | 0 | 0 | — |
case-09 | pass→pass | 11,836 | 2,350 | -80% | 1 | 1 | 0% | 1,709 | 1,052 | -38% | 0 | 0 | — |
case-10 | pass→pass | 9,846 | 4,736 | -52% | 1 | 1 | 0% | 1,466 | 1,465 | -0% | 0 | 0 | — |
case-11 | fail→pass | 10,333 | 2,500 | -76% | 1 | 1 | 0% | 1,637 | 1,044 | -36% | 0 | 0 | — |
case-12 | fail→pass | 10,851 | 4,845 | -55% | 1 | 1 | 0% | 1,550 | 1,349 | -13% | 0 | 0 | — |
case-13 | pass→pass | 10,104 | 5,426 | -46% | 1 | 1 | 0% | 1,700 | 1,508 | -11% | 0 | 0 | — |
case-14 | fail→pass | 11,307 | 4,314 | -62% | 1 | 1 | 0% | 1,782 | 1,434 | -20% | 0 | 0 | — |
case-15 | pass→pass | 6,672 | 4,641 | -30% | 1 | 1 | 0% | 1,096 | 1,421 | +30% | 0 | 0 | — |
case-16 | pass→pass | 13,524 | 4,027 | -70% | 1 | 1 | 0% | 2,145 | 1,451 | -32% | 0 | 0 | — |
case-17 | fail→fail | 9,574 | 5,986 | -37% | 1 | 1 | 0% | 1,720 | 1,743 | +1% | 0 | 0 | — |
case-18 | pass→pass | 10,321 | 10,140 | -2% | 1 | 1 | 0% | 2,113 | 2,667 | +26% | 0 | 0 | — |
case-19 | pass→fail | 3,555 | 9,962 | +180% | 1 | 1 | 0% | 633 | 2,537 | +301% | 0 | 0 | — |
case-20 | fail→pass | 3,672 | 7,994 | +118% | 1 | 1 | 0% | 631 | 1,940 | +207% | 0 | 0 | — |
case-21 | pass→pass | 6,340 | 4,969 | -22% | 1 | 1 | 0% | 1,030 | 1,492 | +45% | 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. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 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.