Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Initializes a stacked branch set from an ordered plan, one branch per slice with parent-child links. Use when a plan has 2+ sequentially dependent changes.
.claude/skills/athola-stack-create/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 30% | 0% |
Initialize a stacked branch set from a multi-step plan. Each logical slice of the plan becomes one branch targeting the previous slice's branch as its base.
Use stack-create when a plan produces 2 or more ordered changes where each change depends on the previous one completing (and merging) before it can land. For independent changes, use parallel worktrees instead (see egregore).
sanctum:stack-push)git version | awk '{print $3}' to check)gh CLI authenticateddo-issue orattune:blueprint)
git status)Create TodoWrite items before starting:
stack-create:git-version-checkedstack-create:slices-identifiedstack-create:branches-createdstack-create:stack-verifiedgit-version-checked)bashgit version
Confirm the output is 2.38.0 or higher. If not, the --update-refs flag is unavailable. Warn the user and fall back to manual branch tracking.
Check for optional jj accelerator:
bashif command -v jj &>/dev/null && jj root &>/dev/null 2>&1; then echo "jj available" else echo "using git --update-refs" fi
slices-identified)Read the plan and extract ordered slices. Each slice must satisfy:
Example slices for a plan with three parts:
Slice 1: add-schema -- database schema changes
Slice 2: add-api -- API layer (depends on schema)
Slice 3: add-ui -- frontend (depends on API)Record the slice list before creating branches.
branches-created)Starting from the base branch (usually master or main):
bashBASE=master STACK=stack/my-feature # Slice 1 branches from master git checkout -b ${STACK}/add-schema ${BASE} # Slice 2 branches from slice 1 git checkout -b ${STACK}/add-api ${STACK}/add-schema # Slice 3 branches from slice 2 git checkout -b ${STACK}/add-ui ${STACK}/add-api
Convention: stack/<feature-name>/<slice-name>
Return to the first slice branch to begin work:
bashgit checkout ${STACK}/add-schema
bash# jj creates an empty commit on each branch automatically # Use jj new to move to a new change jj new -m "stack: add-schema" --no-edit
stack-verified)Confirm the branch topology is correct:
bashgit log --oneline --graph \ ${BASE}..${STACK}/add-ui
Each slice branch should appear as a linear chain above the base.
If jj is available:
bashjj log --revisions \ "ancestors(${STACK}/add-ui, 10) & !ancestors(${BASE})"
each slice (empty branches produce confusing PRs)
by convention; keep it short and descriptive
stack-push toopen PRs, or work slice-by-slice and push when ready
re-verify the topology in Step 4
stack-create:git-version-checkedthrough stack-create:stack-verified) are created before branch creation starts and marked complete in order
branch tracking is documented and the user is warned
stack/<feature-name>/<slice-name>
git log --oneline --graph <base>..<tip> shows a linear chainwith each slice branch appearing in dependency order
is verified
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | pass→pass | 14,081 | 6,272 | -55% | 1 | 1 | 0% | 2,402 | 2,296 | -4% | 0 | 0 | — |
case-01 | fail→fail | 7,672 | 8,736 | +14% | 1 | 1 | 0% | 450 | 1,501 | +234% | 0 | 0 | — |
case-02 | fail→pass | 10,950 | 14,288 | +30% | 1 | 1 | 0% | 2,248 | 3,259 | +45% | 0 | 0 | — |
case-03 | fail→fail | 8,719 | 9,701 | +11% | 1 | 1 | 0% | 640 | 1,696 | +165% | 0 | 0 | — |
case-04 | pass→fail | 2,879 | 6,839 | +138% | 1 | 1 | 0% | 382 | 1,374 | +260% | 0 | 0 | — |
case-05 | fail→fail | 12,578 | 7,540 | -40% | 1 | 1 | 0% | 2,344 | 1,750 | -25% | 0 | 0 | — |
case-06 | pass→pass | 11,554 | 7,001 | -39% | 1 | 1 | 0% | 2,054 | 2,251 | +10% | 0 | 0 | — |
case-07 | pass→pass | 5,609 | 1,886 | -66% | 1 | 1 | 0% | 833 | 1,407 | +69% | 0 | 0 | — |
case-09 | pass→pass | 14,334 | 3,815 | -73% | 1 | 1 | 0% | 2,400 | 1,781 | -26% | 0 | 0 | — |
case-10 | fail→pass | 11,977 | 2,333 | -81% | 1 | 1 | 0% | 1,802 | 1,358 | -25% | 0 | 0 | — |
case-11 | fail→pass | 10,737 | 1,692 | -84% | 1 | 1 | 0% | 1,694 | 1,324 | -22% | 0 | 0 | — |
case-12 | fail→pass | 8,370 | 2,771 | -67% | 1 | 1 | 0% | 1,363 | 1,593 | +17% | 0 | 0 | — |
case-13 | fail→pass | 6,885 | 3,629 | -47% | 1 | 1 | 0% | 1,285 | 1,672 | +30% | 0 | 0 | — |
case-14 | pass→pass | 10,108 | 1,825 | -82% | 1 | 1 | 0% | 1,537 | 1,398 | -9% | 0 | 0 | — |
case-15 | pass→pass | 8,881 | 3,757 | -58% | 1 | 1 | 0% | 1,501 | 1,651 | +10% | 0 | 0 | — |
case-16 | fail→pass | 7,419 | 1,951 | -74% | 1 | 1 | 0% | 1,278 | 1,423 | +11% | 0 | 0 | — |
case-17 | fail→pass | 9,653 | 4,414 | -54% | 1 | 1 | 0% | 1,631 | 1,825 | +12% | 0 | 0 | — |
case-18 | fail→pass | 12,619 | 3,144 | -75% | 1 | 1 | 0% | 1,958 | 1,578 | -19% | 0 | 0 | — |
case-19 | fail→pass | 12,039 | 8,561 | -29% | 1 | 1 | 0% | 2,055 | 2,722 | +32% | 0 | 0 | — |
case-20 | pass→pass | 8,612 | 2,691 | -69% | 1 | 1 | 0% | 1,524 | 1,472 | -3% | 0 | 0 | — |
case-21 | fail→pass | 10,741 | 1,701 | -84% | 1 | 1 | 0% | 1,556 | 1,335 | -14% | 0 | 0 | — |
case-22 | fail→pass | 9,951 | 3,390 | -66% | 1 | 1 | 0% | 1,451 | 1,618 | +12% | 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 +45 percentage points is the difference between those two pass rates over the 18 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.