codex/skills/exploratory-test/SKILL.md
Execute multi-level exploratory testing of the app covering basic functionality, complex operations, adversarial testing, and cross-cutting scenarios, plus usability observations through a UX lens reported separately from defects. Deeper than $smoke-test. Use when the user asks to "exploratory test", "test thoroughly", "test all scenarios", "deep test", "test edge cases", "test everything", "break it", "find bugs by testing", "test usability", or "check the UX while testing".
npx skillsauth add tobihagemann/turbo exploratory-testInstall 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.
Execute multi-level exploratory testing that goes beyond smoke testing to actively find bugs through escalating test scenarios.
At the start, use update_plan to track each step, restating any remaining steps of a parent workflow alongside them:
$user-experience skill (when user-facing)Check if .turbo/test-plan.md exists.
$create-test-plan skill first, then continue.Use the approach specified in the test plan. If the plan does not specify one, determine it using the same logic as $create-test-plan Step 3.
$user-experience Skill (When User-Facing)If the app has a user-facing surface (UI, screens, commands, messages, or any behavior a user sees or does), run the $user-experience skill to load the UX lens before executing tests, so usability concerns surface while interacting with the app. When it is unclear whether the surface is user-facing, use request_user_input to ask rather than skipping silently. Skip this step for test targets with no user-facing behavior (internal library or infrastructure).
Work through each level sequentially. Complete all tests in a level before moving to the next.
request_user_input to ask whether to continue. Basic failures may indicate the feature is too broken for deeper testing.If a project-specific testing skill or MCP tool was identified in Step 2, use that. The paths below are fallbacks.
Start the dev server if not already running. Wait for it to be ready. Use the browser-use@openai-bundled plugin to interact with the app.
Launch the app. Use the computer-use@openai-bundled plugin to interact with the UI.
Run commands directly.
Present results organized by level:
Exploratory Test Results:
## Level 1: Basic Functionality (X/Y passed)
- [PASS] Test name: description
- [FAIL] Test name: description — [what went wrong]
## Level 2: Complex Operations (X/Y passed)
- [PASS] Test name: description
- [FAIL] Test name: description — [what went wrong]
## Level 3: Adversarial Testing (X/Y passed)
- [PASS] Test name: description
- [FAIL] Test name: description — [what went wrong]
## Level 4: Cross-Cutting Scenarios (X/Y passed)
- [PASS] Test name: description
- [FAIL] Test name: description — [what went wrong]
Overall: X/Y passed across all levels
Report usability observations from the UX lens below the level results, separately from the PASS/FAIL defects. A scenario can pass every functional check and still surface a usability concern.
## Usability Observations
- [UX] <observation> — names the UX context it touches (Understanding, Bridging, or Flowing) and the goal mismatch or friction it creates
For each failure, include the relevant screenshot, output, or state observation.
Update .turbo/test-plan.md by checking off completed tests and annotating results.
Then call update_plan to mark this step completed and continue with the next step of the active workflow.
tmux -L <name>), and use temporary directories for scratch state.$investigate skill on the test report.development
Apply a UX lens to a user-facing change: whether it serves the user's real goal and whether the path through it holds together, using the Understanding, Bridging, and Flowing contexts. Use when scoping, planning, or assessing any change that affects what a user sees or does. Loaded as a lens during planning and assessment.
development
Apply a UX lens to a user-facing change: whether it serves the user's real goal and whether the path through it holds together, using the Understanding, Bridging, and Flowing contexts. Use when scoping, planning, or assessing any change that affects what a user sees or does. Loaded as a lens during planning and assessment.
development
Assess project-wide structural technical debt: complexity hotspots, deprecated API usage, duplication clusters, and architecture rot. Ranks findings by impact and refactor effort into a report at .turbo/technical-debt.md. Use when the user asks to "assess technical debt", "find technical debt", "review technical debt", "what should we refactor", "find refactoring candidates", "where is the code rot", or "what's our worst code". Analysis-only — does not modify code.
development
Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues. Covers what-restating comments, name-mirroring doc comments, status-update prose, and other documentation noise. Use when the user asks to "simplify docs", "simplify documentation", "clean up comments", "clean up docs", "review documentation", "strip unnecessary comments", "reduce doc noise", or "run simplify-docs".