mcpbeat Sign in

Exploratory Test Agent Skill

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\".

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
398
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/tobihagemann/turbo --skill exploratory-test

The instruction itself

13 sections, as written by the author

Exploratory Test

Execute multi-level exploratory testing that goes beyond smoke testing to actively find bugs through escalating test scenarios.

Task Tracking

At the start, use update_plan to track each step, restating any remaining steps of a parent workflow alongside them:

  • Load or create test plan
  • Determine testing approach
  • Run $user-experience skill (when user-facing)
  • Execute tests by level
  • Report

Step 1: Load or Create Test Plan

Resolve the test plan using these rules in order:

  • Explicit path — If the user passed a file path, use it
  • Explicit slug — resolve to .turbo/test-plans/<slug>.md
  • Anchoring artifact — If the work under test is anchored to a plan, shell, or spec, resolve to .turbo/test-plans/<that-slug>.md when that file exists
  • Single file — Glob .turbo/test-plans/*.md. If exactly one file exists, use it
  • Most recent — If multiple files exist, use the most recently modified
  • Legacy fallback.turbo/test-plan.md if .turbo/test-plans/ does not exist
  • Nothing found — run the $create-test-plan skill first, then use the plan it writes

If multiple test plans exist and the most-recent choice is non-obvious, use request_user_input to let the user pick from the candidates.

Read the resolved test plan and state its path. If the user specifies a narrower scope, filter the plan to relevant scenarios rather than executing all of them.

Step 2: Determine Testing Approach

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.

Step 3: Run $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).

Step 4: Execute Tests by Level

Work through each level sequentially. Complete all tests in a level before moving to the next.

Execution Loop (Per Test)

  • Set up the preconditions described in the test scenario
  • Perform the exact steps
  • Capture the result (screenshot, output, or state observation)
  • Compare against the expected outcome
  • Record PASS or FAIL with details
  • When the UX lens is loaded, note any usability observation it surfaces, kept separate from the PASS/FAIL verdict

Level Progression

  • Level 1: Basic Functionality — If any Level 1 test fails, report early and use request_user_input to ask whether to continue. Basic failures may indicate the feature is too broken for deeper testing.
  • Level 2: Complex Operations — Execute all tests regardless of individual failures.
  • Level 3: Adversarial Testing — Execute all tests. Failures here are expected and valuable.
  • Level 4: Cross-Cutting Scenarios — Execute all tests.

If a project-specific testing skill or MCP tool was identified in Step 2, use that. The paths below are fallbacks.

Web App Path

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.

UI/Native App Path

Launch the app. Use the computer-use@openai-bundled plugin to interact with the UI.

CLI Path

Run commands directly.

Step 5: Report

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 the resolved test plan file 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.

Rules

  • Always clean up: close browser sessions, stop dev servers started by this skill.
  • Isolate shared process state so concurrent or sub-agent runs don't collide: bind dev servers and services to unique ports, scope tmux sessions (tmux -L <name>), and write screenshots and other scratch state to absolute paths under a unique scratch directory outside the repository under test.
  • Never modify application code. This skill is read-only verification. Report failures without attempting to fix them.
  • If the dev server fails to start, report the error and stop.
  • Tail app logs in a background shell for errors or warnings while running tests, so backend failures surface alongside test observations.
  • To diagnose failures, run the $investigate skill on the test report.

Other skills for the same job

different authors, same section of the catalogue
Webapp Testing
by anthropics
vendor ×12

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

6k tokens scripts
Finishing A Development Branch
by ZhanlinCui
×7

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1k tokens
Test Driven Development
by w95
×7

Use when implementing any feature or bugfix, before writing implementation code

2k tokens
Systematic Debugging
by ratacat
×7

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes

10k tokens scripts
Verification Before Completion
by ZhanlinCui
×6

Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always

1k tokens
Backtest Expert
by BaggaT236
×3

Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.

15k tokens scripts
Adaptyv
by christophacham
×3

Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.

16k tokens
Aeon
by christophacham
×3

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

19k tokens

How to use it

Copy the folder

Take tobihagemann/turbo-exploratory-test from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.