$npx -y skills add tobihagemann/turbo --skill pick-next-shellPick the next shell whose dependencies are satisfied and carry it through planning: expand, refine, self-improve, halt. Use when the user asks to \"pick next shell\", \"next shell\", \"continue project\", \"what's next\", \"next implementation step\", or \"continue with the plan\
| 1 | # Pick Next Shell |
| 2 | |
| 3 | Pick the next shell from `.turbo/shells/` whose dependencies are satisfied, then carry it through the planning pipeline: expand → refine → self-improve → halt. |
| 4 | |
| 5 | ## Task Tracking |
| 6 | |
| 7 | At the start, use `TaskCreate` to create a task for each step: |
| 8 | |
| 9 | 1. Scan shells and pick next |
| 10 | 2. Run `/expand-shell` skill |
| 11 | 3. Run `/refine-plan` skill |
| 12 | 4. Run `/self-improve` skill |
| 13 | 5. Mark plan ready |
| 14 | 6. Summarize and halt |
| 15 | |
| 16 | ## Step 1: Scan Shells and Pick Next |
| 17 | |
| 18 | Check terminal conditions first: |
| 19 | |
| 20 | - **No shells and no plans** — nothing to pick; stop |
| 21 | - **No shells, but plans exist with `status: done` for all** — the project is complete; stop |
| 22 | - **No shells, but plans exist with a non-`done` status** — there are unfinished plans; stop |
| 23 | |
| 24 | If shells exist in `.turbo/shells/`, glob `.turbo/shells/*.md` and read each file's YAML frontmatter. A shell's `depends_on` entry is satisfied when `.turbo/plans/<dep-slug>.md` exists with `status: done` in its frontmatter. |
| 25 | |
| 26 | - **Candidates** — shells whose `depends_on` are all satisfied |
| 27 | - **Blocked** — shells with one or more unsatisfied `depends_on` |
| 28 | |
| 29 | If there are no candidates (everything is blocked), report which shells are blocked and which dependencies they're waiting on, then stop. |
| 30 | |
| 31 | If multiple candidates exist, pick the one with the lowest shell number (from the `NN-` prefix `/draft-shells` gives each file). If ambiguous, use `AskUserQuestion` to let the user choose. |
| 32 | |
| 33 | State the picked shell path and its dependencies before continuing. |
| 34 | |
| 35 | ## Step 2: Run `/expand-shell` Skill |
| 36 | |
| 37 | Run the `/expand-shell` skill, passing the shell file path. Capture the resulting plan path for Step 3. |
| 38 | |
| 39 | ## Step 3: Run `/refine-plan` Skill |
| 40 | |
| 41 | Run the `/refine-plan` skill with the plan path from Step 2. |
| 42 | |
| 43 | ## Step 4: Run `/self-improve` Skill |
| 44 | |
| 45 | Run the `/self-improve` skill to compound planning learnings. |
| 46 | |
| 47 | ## Step 5: Mark Plan Ready |
| 48 | |
| 49 | Update the plan's YAML frontmatter to `status: ready`. |
| 50 | |
| 51 | ## Step 6: Summarize and Halt |
| 52 | |
| 53 | Present a brief summary of the finished plan: the essence of what it builds and the key decisions behind it, short enough to read at a glance so the user does not have to open the full plan file. When the plan delivers value to a user, developer, or operator, also present a short list of stories capturing what that person gains, in the form "As a <persona>, I want <capability> so that <outcome>". Skip the stories only when no beneficiary or outcome can be named, such as a purely mechanical refactor. Fit both to the plan rather than a fixed template. |
| 54 | |
| 55 | Then halt with this message: |
| 56 | |
| 57 | > Plan ready at `<plan path>`. |
| 58 | > |
| 59 | > Planning context is likely full, and the plan is comprehensive enough to continue fresh. Run `/clear`, then `/implement-plan <slug>` to implement. After that, run `/pick-next-shell` again for the next shell. |
| 60 | |
| 61 | ## Rules |
| 62 | |
| 63 | - Do not edit plan files directly. Revisions go through `/refine-plan`. |
| 64 | - Never modify the spec file. |
| 65 | - Do not attempt to auto-implement. The user drives implementation with `/implement-plan` in a fresh session. |
| 66 | - If a shell file is missing or has invalid frontmatter, halt and report. |