codex/skills/expand-shell/SKILL.md
Expand a shell into a full implementation plan. Verifies Consumes against the current codebase, runs a fresh pattern survey, escalates open questions, and fills in concrete file references and verification. Use when the user asks to "expand a shell", "expand shell", "fill in the shell", "expand the shell", or "concretize the shell".
npx skillsauth add tobihagemann/turbo expand-shellInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expand a shell into a full implementation plan. The shell's Context, Produces, Consumes, Covers, and high-level Implementation Steps are authoritative. Expansion adds a pattern survey, concrete references, and verification, writes the plan to .turbo/plans/<shell-slug>.md, and deletes the source shell once the plan is in place.
Use update_plan to track each step:
$survey-patterns skill (shell-focused)Determine which shell to expand:
.turbo/shells/*.md and filter to shells whose depends_on are all satisfied (see satisfaction check below). If exactly one match, use itrequest_user_input to let the user choose.turbo/shells/, say so and stopA depends_on entry is satisfied when .turbo/plans/<dep-slug>.md exists with status: done in its frontmatter.
Read the shell file. Parse the YAML frontmatter:
Parse these body fields:
# Plan: heading)Compute the shell slug from the filename (basename without .md). The expanded plan will be written to .turbo/plans/<shell-slug>.md.
Verify Consumes are present in the current codebase. For each Consumes entry:
.turbo/plans/<prior-slug>.md has status: done AND that the artifact is actually present in the current codebase (the prior implementation may have diverged)If any Consumes entry fails verification, escalate via request_user_input:
$pick-next-shell again or resolve the prior work.Do not proceed to Step 2 until all Consumes verify cleanly.
$survey-patterns Skill (Shell-Focused)Run the $survey-patterns skill with a task description built from the shell's structural content:
<shell title>
Context: <shell Context>
Produces: <shell Produces, as a bulleted list>
Implementation steps: <shell Implementation Steps, numbered>
This scopes the survey to the shell's concern area instead of a generic sweep. Keep the returned findings in conversation context for use in Step 4.
For each entry in the shell's Open Questions field, present it via request_user_input and collect the answer. Frame each question with enough context from the shell for the user to decide.
Do not escalate other questions. If you identify a new question while reading the codebase, note it as a risk in the drafted plan's Verification or Context Files sections.
If the shell's Open Questions field is empty or contains "None," skip this step entirely and proceed to Step 4.
Expand the shell into a full plan using:
file_path references and named functions or symbols from the pattern surveyCreate .turbo/plans/ if it does not exist. Write the plan to .turbo/plans/<shell-slug>.md using this structure:
---
status: draft
spec: <spec path from original shell frontmatter>
---
# Plan: <Task Title>
## Context
<Shell Context, preserved verbatim or lightly edited.>
## Pattern Survey
<Insert the structured findings from `$survey-patterns`: Analogous Features, Reusable Utilities, Convention Anchors, Proposed Alignment. Use the same format the survey returned.>
## Implementation Steps
1. **<Step 1 title>**
- <Concrete action with `file_path` references and named functions or symbols>
2. **<Step 2 title>**
- ...
3. ...
## Verification
- <Specific test command, manual smoke check, or MCP tool invocation>
- <Expected observable result>
- <Edge cases to spot-check>
## Context Files
- `<path/to/file1>` — <why it matters>
- `<path/to/file2>` — <why it matters>
The plan carries spec forward as provenance. depends_on and the structural contract (Produces, Consumes, Covers) are locked in at expansion and do not need to persist on the plan.
State the plan path before proceeding.
file_path references and named functions or symbols. Reference existing functions and utilities from the Pattern Survey instead of reinventing them. Each step describes a discrete unit of work that can be tracked independently during execution.Re-read the shell at .turbo/shells/<shell-slug>.md and the drafted plan at .turbo/plans/<shell-slug>.md. Confirm the plan honors the shell's structural contract by checking each item below:
If every item passes, proceed to Step 6. If any item fails, revise the plan to close the gap and re-verify before proceeding. Do not delete the shell while any check is failing.
Present a brief summary of the expanded 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 read the full plan file. When the plan delivers user-facing value, also present a short list of user stories capturing what someone gains from it. Skip the stories for changes with no user-facing gain, such as internal refactors or infrastructure work. Fit both to the plan rather than a fixed template.
Then use request_user_input to offer two paths:
Do not delete the shell until the user approves.
Delete the source shell at .turbo/shells/<shell-slug>.md. The plan is now the authoritative artifact for this work.
Then update or check the active plan and proceed to any remaining task.
$review-plan or any review skills here.$finalize invocation in the plan file.development
Run the post-implementation quality assurance workflow including tests, code polishing, review, and commit. Use when the user asks to "finalize implementation", "finalize changes", "wrap up implementation", "finish up", "ready to commit", or "run QA workflow".
development
Run the post-implementation quality assurance workflow including tests, code polishing, review, and commit. Use when the user asks to "finalize implementation", "finalize changes", "wrap up implementation", "finish up", "ready to commit", or "run QA workflow".
tools
Teach the user to deeply understand a change through interactive tutoring: restating understanding, drilling into why/what/how, and quizzing until mastery. The active counterpart to a one-shot explanation. Use when the user asks to "understand this change", "teach me this change", "help me understand what changed", "walk me through this change", "make sure I understand this", "quiz me on this", or "teach me what we did".
tools
Teach the user to deeply understand a change through interactive tutoring: restating understanding, drilling into why/what/how, and quizzing until mastery. The active counterpart to a one-shot explanation. Use when the user asks to "understand this change", "teach me this change", "help me understand what changed", "walk me through this change", "make sure I understand this", "quiz me on this", or "teach me what we did".