tobihagemann/turbo-create-test-plan
Analyze what changed and generate a structured test plan at .turbo/test-plans/<slug>.md covering four escalating levels: basic functionality, complex operations, adversarial testing, and cross-cutting scenarios. Use when the user asks to \"create a test plan\", \"plan tests\", \"what should I test\", \"generate test scenarios\", \"test plan for this PR\", or \"what are the test cases\".
npx skills add https://github.com/tobihagemann/turbo --skill create-test-plan
Analyze what changed and generate a comprehensive test plan covering four escalating levels of testing depth.
Resolve scope using the first match:
After identifying scope, read the actual code in depth to understand:
Always check for project-specific testing skills or MCP tools first. Use the fallbacks below when nothing project-specific is available:
$agent-browser skill if available, otherwise Codex browser automationcomputer-use MCPFor each level, generate specific, actionable test scenarios tailored to the actual change. Each scenario needs exact steps and an expected outcome.
Does the feature work at all? Verify the happy path and the most obvious behavior.
Combine multiple actions in sequence. Verify state consistency across operations.
Actively try to break the feature. Explore boundary conditions and unexpected inputs.
Explore state interactions across system boundaries. These surface the hardest bugs.
If the change is small enough that a level has no meaningful scenarios (e.g., a typo fix has no cross-cutting scenarios), note "N/A for this change" with a brief explanation.
Pick a slug for the test plan from the change under test:
If the work is anchored to an existing artifact (a plan at .turbo/plans/<slug>.md, a shell at .turbo/shells/<slug>.md, or a spec at .turbo/specs/<slug>.md), reuse that artifact's slug verbatim.
The user may pass an explicit slug or path; honor it.
If .turbo/test-plans/<slug>.md already exists, use request_user_input to ask whether to overwrite, append a numeric suffix (-2, -3, ...), or pick a different slug. For a slug reused from an anchoring artifact, offer overwrite or a different slug only.
State the chosen slug and the resulting test plan path before continuing.
Output the plan as text. Then use request_user_input to ask for approval before writing.
Create .turbo/test-plans/ if it does not exist. Write the plan to .turbo/test-plans/<slug>.md using this format:
# Test Plan: <Feature/Change Name>
## Context
<Brief description of what changed and why>
## Approach
<Testing approach: agent-browser / Codex browser automation / computer-use / terminal>
<Dev server command if applicable>
## Level 1: Basic Functionality
- [ ] **<Test name>** — <Steps to perform> → Expected: <expected outcome>
## Level 2: Complex Operations
- [ ] **<Test name>** — <Steps to perform> → Expected: <expected outcome>
## Level 3: Adversarial Testing
- [ ] **<Test name>** — <Steps to perform> → Expected: <expected outcome>
## Level 4: Cross-Cutting Scenarios
- [ ] **<Test name>** — <Steps to perform> → Expected: <expected outcome>
Then call update_plan to mark this step completed and continue with the next step of the active workflow.
Take tobihagemann/turbo-create-test-plan from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.