Runs smoke tests for login, signup, checkout, navigation, and search flows in web apps. Validates critical functionality before releases, deployments, or CI/CD.
From user-testing-agentnpx claudepluginhub ncklrs/claude-chrome-user-testing --plugin user-testing-agentThis skill uses the workspace's default tool permissions.
presets/checkout.jsonpresets/login.jsonpresets/navigation.jsonpresets/search.jsonpresets/signup.jsonEnables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Guides agentic engineering workflows: eval-first loops, 15-min task decomposition, model routing (Haiku/Sonnet/Opus), AI code reviews, and cost tracking.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Run pre-configured smoke tests for common user flows. Quick validation that critical functionality works.
Smoke testing is a quick sanity check to ensure basic functionality works before deeper testing. The name comes from electronics - if you turn on a circuit and smoke comes out, you know something is wrong without further testing.
Purpose: Verify authentication works
Steps:
test@example.com / testpassword123)Failure Indicators:
Purpose: Verify registration works
Steps:
Test Data:
test-{timestamp}@example.comPurpose: Verify purchase flow initiates
Steps:
Does NOT:
/stripe-test for that)Purpose: Verify site navigation works
Steps:
Checks:
Purpose: Verify search works
Steps:
Checks:
{
"name": "preset-name",
"description": "What this preset tests",
"defaultPersona": "persona-id",
"tasks": [
"First task description",
"Second task description",
"Third task description"
],
"successCriteria": [
"What indicates success",
"Another success indicator"
],
"timeout": 120,
"testData": {
"email": "test@example.com",
"password": "testpassword123"
}
}
For each task in tasks array:
1. Announce task (unless --quiet)
2. Execute using persona's timing
3. Capture evidence:
- Screenshot on success
- Screenshot + error details on failure
4. Record status: PASS / FAIL / SKIP
5. If FAIL and not --continue-on-error: stop
PASS: All success criteria met FAIL: Any task fails or criteria unmet SKIP: Step skipped due to earlier failure
--quiet mode: minimal delaystimeout field# Smoke Test Report: [preset]
## Configuration
- **URL**: [url]
- **Preset**: [preset]
- **Persona**: [name] ([id])
- **Date**: [timestamp]
## Results
| Step | Status | Duration | Notes |
|------|--------|----------|-------|
| [Task 1] | PASS | 2.3s | - |
| [Task 2] | PASS | 1.8s | - |
| [Task 3] | FAIL | 5.0s | Element not found |
## Summary
- **Overall**: FAIL
- **Steps Passed**: 2/3
- **Duration**: 9.1s
## Failure Details
### Step 3: [Task 3]
- **Error**: Element not found
- **Expected**: Submit button visible
- **Actual**: Page showed error message

## Recommendations
1. Check if [specific element] exists on the page
2. Verify [specific functionality]
Smoke Test: login @ https://example.com
Persona: busy-executive
[1/5] Find login.......... PASS (1.2s)
[2/5] Navigate............ PASS (0.8s)
[3/5] Enter credentials... PASS (2.1s)
[4/5] Submit form......... FAIL (5.0s)
Error: Form validation failed
Result: FAIL (3/5 steps)
Duration: 9.1s
Users can create custom presets in .claude/smoke-presets/:
.claude/
└── smoke-presets/
├── onboarding.json
├── checkout-guest.json
└── admin-login.json
.claude/smoke-presets/{preset}.json (project custom)skills/smoke-testing/presets/{preset}.json (built-in)# If smoke test passes, run detailed testing
/smoke-test --url https://example.com --preset checkout --quiet
# If passed:
/user-test --url https://example.com --persona comparison-shopper --tasks "complete purchase" --stripe
# Run all smoke tests
/smoke-test --url $DEPLOY_URL --preset login --quiet
/smoke-test --url $DEPLOY_URL --preset navigation --quiet
/smoke-test --url $DEPLOY_URL --preset search --quiet
# If all pass, run full suite
/user-test --url $DEPLOY_URL --personas "genz-digital-native,boomer-tech-averse" --quiet
--quiet for automation