skills/critical-paths/SKILL.md
# Critical Paths Skill Test must-work user journeys defined in project configuration. Critical paths are essential flows that must always function correctly. ## What is a Critical Path? A critical path is a user journey that: - Must work for the site/app to be usable - Represents core business functionality - Would cause significant harm if broken - Should be tested before every deployment ## Examples of Critical Paths | Site Type | Critical Paths | |-----------|----------------| | E-commer
npx skillsauth add ncklrs/claude-chrome-user-testing skills/critical-pathsInstall 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.
Test must-work user journeys defined in project configuration. Critical paths are essential flows that must always function correctly.
A critical path is a user journey that:
| Site Type | Critical Paths | |-----------|----------------| | E-commerce | Purchase flow, Account creation, Cart | | SaaS | Signup, Login, Core feature usage | | Content | Navigation, Search, Article viewing | | Banking | Login, Transfer, Balance check |
{
"paths": [
{
"name": "string (required)",
"description": "string (required)",
"persona": "persona-id (required)",
"priority": "critical|high|medium|low (optional, default: high)",
"timeout": "number in seconds (optional, default: 120)",
"steps": [
{
"action": "navigate|task|verify|wait|input",
"...action-specific fields"
}
],
"onFailure": "continue|stop (optional, default: continue)"
}
]
}
Navigate to a URL path.
{
"action": "navigate",
"to": "/path",
"waitFor": "load|networkidle (optional)"
}
Perform a task using the persona's behavior.
{
"action": "task",
"do": "description of task to perform",
"timeout": 30
}
Verify something exists or is true.
// Verify element exists
{ "action": "verify", "element": "description of element" }
// Verify text appears
{ "action": "verify", "text": "exact text to find" }
// Verify URL matches
{ "action": "verify", "url": "/expected-path" }
// Verify URL contains
{ "action": "verify", "urlContains": "confirmation" }
Wait for a condition.
// Wait for seconds
{ "action": "wait", "seconds": 2 }
// Wait for element
{ "action": "wait", "for": "element description" }
// Wait for navigation
{ "action": "wait", "for": "page load" }
Enter specific data into a field.
{
"action": "input",
"field": "field description or selector",
"value": "value to enter"
}
function executePath(path, baseUrl):
results = { steps: [], status: 'pending' }
loadPersona(path.persona)
startTime = now()
for step in path.steps:
stepResult = executeStep(step, baseUrl)
results.steps.append(stepResult)
if stepResult.status == 'fail':
results.status = 'fail'
results.failedAt = step
captureScreenshot()
if path.onFailure == 'stop':
break
else:
return results
results.status = 'pass'
results.duration = now() - startTime
return results
function executeStep(step, baseUrl):
switch step.action:
case 'navigate':
navigate(baseUrl + step.to)
return { status: 'pass' }
case 'task':
success = performTaskAsPersona(step.do)
return { status: success ? 'pass' : 'fail' }
case 'verify':
found = verifyCondition(step)
return { status: found ? 'pass' : 'fail' }
case 'wait':
waitForCondition(step)
return { status: 'pass' }
case 'input':
fillField(step.field, step.value)
return { status: 'pass' }
| Priority | On Failure | Report Level | |----------|------------|--------------| | critical | Major alert | CRITICAL | | high | Alert | ERROR | | medium | Warning | WARNING | | low | Note | INFO |
const pathReport = {
summary: {
total: 3,
passed: 2,
failed: 1,
skipped: 0
},
results: [
{
name: 'purchase-flow',
status: 'pass',
duration: 45,
steps: [
{ action: 'navigate', status: 'pass', duration: 2 },
{ action: 'task', status: 'pass', duration: 15 },
// ...
]
},
{
name: 'password-reset',
status: 'fail',
duration: 15,
failedAt: { step: 4, action: 'task', error: 'Button not clickable' },
screenshot: 'path-password-reset-fail.png'
}
],
actionRequired: [
{
priority: 'high',
path: 'password-reset',
issue: 'Form submission broken',
recommendation: 'Check submit button handler'
}
]
};
When --fail-fast is enabled:
All pass + no critical failures = SUCCESS
Any critical failure = FAILURE
Only non-critical failures = WARNING (could be configurable)
{
"paths": [
{
"name": "guest-purchase",
"description": "Guest checkout flow",
"persona": "impulse-buyer",
"priority": "critical",
"steps": [
{ "action": "navigate", "to": "/" },
{ "action": "task", "do": "find a product" },
{ "action": "task", "do": "add to cart" },
{ "action": "task", "do": "go to cart" },
{ "action": "task", "do": "proceed to checkout" },
{ "action": "task", "do": "fill shipping info" },
{ "action": "verify", "element": "payment form" }
]
},
{
"name": "product-search",
"description": "Search for products",
"persona": "comparison-shopper",
"priority": "high",
"steps": [
{ "action": "navigate", "to": "/" },
{ "action": "task", "do": "search for a product" },
{ "action": "verify", "element": "search results" },
{ "action": "task", "do": "click a result" },
{ "action": "verify", "element": "product details" }
]
}
]
}
{
"paths": [
{
"name": "signup-to-dashboard",
"description": "New user onboarding",
"persona": "genz-digital-native",
"priority": "critical",
"steps": [
{ "action": "navigate", "to": "/signup" },
{ "action": "task", "do": "complete registration" },
{ "action": "verify", "urlContains": "dashboard" },
{ "action": "verify", "element": "welcome message" }
]
},
{
"name": "login-flow",
"description": "Existing user login",
"persona": "busy-executive",
"priority": "critical",
"steps": [
{ "action": "navigate", "to": "/login" },
{ "action": "input", "field": "email", "value": "[email protected]" },
{ "action": "input", "field": "password", "value": "testpass123" },
{ "action": "task", "do": "submit login" },
{ "action": "verify", "element": "dashboard or main app" }
]
}
]
}
development
# WCAG Auditor Skill This skill provides WCAG 2.1 accessibility audit capabilities, including criteria definitions, check implementations, and scoring logic. ## Purpose Systematically evaluate web pages against WCAG 2.1 Level A and AA success criteria to identify accessibility barriers and provide remediation guidance. ## WCAG 2.1 Overview WCAG is organized around four principles (POUR): - **Perceivable**: Information must be presentable to users - **Operable**: Interface must be usable - *
development
Comprehensive persona-based user testing skill for web applications. Simulates how real users from different demographics interact with interfaces, including realistic timing, behavioral patterns, and frustration triggers. Use when: - Testing user interfaces before release - Validating UX flows from diverse perspectives - Conducting accessibility reviews - Optimizing onboarding or checkout experiences - Getting feedback on form design
development
# Stripe Checkout Testing Skill This skill provides guidance for testing Stripe checkout flows with any persona. It handles test card data, form detection, and payment-specific narration. ## Purpose Enable realistic user testing of Stripe payment flows using official test cards, with persona-appropriate reactions to checkout experiences. ## Test Card Reference Load card data from `test-cards.json`. Key scenarios: | Scenario | Card | When to Use | |----------|------|-------------| | `succes
testing
# Smoke Testing Skill Run pre-configured smoke tests for common user flows. Quick validation that critical functionality works. ## What is Smoke Testing? 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. ## When to Use - Before releases to catch obvious breaks - After deployments to verify functionality - In CI/CD