Skip to main content
mikeparcewski

wicked-scenarios

by mikeparcewskiv0.2.0

E2E testing via human and agent-readable markdown scenarios that orchestrate lightweight open-source CLI tools. Covers API, browser, performance, infrastructure, security, and accessibility testing with graceful degradation when tools are missing.

Installation guide →
1 skill 3 commands GitHub

Commands

check

Validate scenario file format and structure

list

List available E2E test scenarios with tool availability status

run

Execute an E2E test scenario by orchestrating CLI tools

Documentation

# wicked-scenarios

E2E testing written as human-readable markdown scenarios that orchestrate 9 lightweight CLI tools — curl, hurl, playwright, agent-browser, hey, k6, trivy, semgrep, and pa11y. Cover API, browser, performance, security, and accessibility testing without framework lock-in or test runner dependencies.

## Commands

| Command | Description |
|---------|-------------|
| `/wicked-scenarios:run` | Execute a test scenario |
| `/wicked-scenarios:list` | List available scenarios with tool availability |
| `/wicked-scenarios:check` | Validate scenario format |

## Categories

| Category | CLI Tools | What to Test |
|----------|-----------|-------------|
| api | curl, hurl | Health checks, API contracts |
| browser | playwright, agent-browser | Page load, interactions |
| perf | k6, hey | Load testing, response times |
| infra | trivy | Container/IaC scanning |
| security | semgrep | Static code analysis |
| a11y | pa11y | WCAG accessibility |

## Quick Start

```bash
# List available scenarios and tool status
/wicked-scenarios:list

# Run a scenario
/wicked-scenarios:run scenarios/api-health-check.md

# Validate scenario format
/wicked-scenarios:check scenarios/
```

## Scenario Format

Scenarios are markdown files with YAML frontmatter and fenced code blocks for each step:

````markdown
---
name: api-health-check
category: api
tools: [curl]
---
# API Health Check

## Step 1: Check health endpoint

```bash
curl -sf http://localhost:3000/health
```

Expected: HTTP 200 with JSON body containing `"status": "ok"`
````

Each step runs independently. Exit code 0 = PASS, non-zero = FAIL.

## Writing Scenarios

See the [scenario-authoring skill](skills/scenario-authoring/SKILL.md) for the full authoring guide.