Skip to content
Back to skills

Qa

BSecurity

Run the E2E QA test suite against the live application using Playwright MCP and nREPL. Use when testing the app end-to-end.

  • 20 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
testinggobashtestinggit

Works with

  • cli
  • mcp

Security analysis

B85/100
  • highPerforms destructive filesystem operations

Pro shows the line behind each finding and how to fix it

Scanned September 12, 2026

npx -y skills add ObneyAI/orc --skill qa --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Qa?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Qa
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/obneyai-orc/badge)](https://www.skillsdirectory.com/skills/obneyai-orc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: qa
description: Run the E2E QA test suite against the live application using Playwright MCP and nREPL. Use when testing the app end-to-end.
argument-hint: "[script-number | 'all' | 'next' | 'status']"
---

# E2E QA Runner

Execute the structured QA test scripts in `qa/scripts/` against the live application.

## Current Progress

!`cat qa/scripts/progress.md`

## How It Works

The QA suite is split into individually-executable test scripts in `qa/scripts/`. Each script:
- Targets a specific feature area (e.g., "Auth Flow", "Core Pages")
- Contains step-by-step TEST items tagged as READ, WRITE, NAVIGATE, or GUARD
- Requires mandatory SCREENSHOT proof at state transitions
- Tracks pass/fail per item

## Invocation

- `/qa` or `/qa next` -- Run the next incomplete script (first `--` status in progress.md)
- `/qa all` -- Run all scripts from the beginning (Session 1 through end)
- `/qa 03` or `/qa 3` -- Run a specific script by number (e.g., `03-feature.md`)
- `/qa status` -- Show current progress.md without running anything
- `/qa 03-08` -- Run a range of scripts sequentially

## Execution Protocol

**Before running any script**, read and internalize the rules in `qa/scripts/EXECUTION-RULES.md`. These are non-negotiable:

1. **Execute EVERY test item in order.** Do NOT skip. Do NOT reorder.
2. **Do NOT move to the next TEST until the current TEST is fully verified.**
3. **"Page loads" is NOT "feature works."** If a test says WRITE, perform the write.
4. **Take a SCREENSHOT at every SCREENSHOT marker.** These are mandatory proof-of-work.
5. **If a test FAILS, log the failure and continue.** Do NOT silently skip. Do NOT fix bugs mid-QA.
6. **When a script completes, update `qa/scripts/progress.md`** with pass/fail/skip counts.
7. **If you cannot finish a script, STOP at the nearest `---` break.** Update progress.md as PARTIAL. Do NOT rush remaining items.

## Steps

### 1. Determine which script(s) to run

Parse `$ARGUMENTS`:
- `next` or empty: Read `qa/scripts/progress.md`, find the first row with Status `--`, that's the script to run.
- `all`: Start from script 00.
- A number (e.g., `3`, `03`, `15`): Run that specific script. Zero-pad to 2 digits to find the file.
- A range (e.g., `03-08`): Run scripts 03 through 08 sequentially.
- `status`: Print progress.md and stop.

### 2. Prerequisites check (Script 00)

If running script 00, or if this is the first script in a session:
1. Connect to nREPL via `/nrepl-connect`
2. Check if the system is running: `(some? repl-stuff/service)`
3. If not running, do a clean start:
   - `rm -rf storage/cache`
   - Eval the start form from `development/src/repl_stuff.clj`
4. Seed: `(require 'e2e-seed :reload) (e2e-seed/seed! repl-stuff/context)`
5. Verify seed output mentions expected counts

If the system is already running and seeded (script 00 shows completed in progress.md), skip to step 3.

### 3. Execute the script

1. Read the script file: `qa/scripts/{NN}-{name}.md`
2. Read the execution rules: `qa/scripts/EXECUTION-RULES.md`
3. Log in as the role specified in the script header
4. Execute each TEST item sequentially:
   - For **NAVIGATE**: Use `browser_navigate` or `browser_click`, verify URL/page title
   - For **READ**: Use `browser_snapshot` and verify expected elements/text
   - For **WRITE**: Perform the action (fill form, click button), then verify the result
   - For **GUARD**: Attempt the blocked action, verify error/redirect
   - At **SCREENSHOT** markers: Use `browser_take_screenshot` with the specified filename
5. Track results: count passes, failures, and skips

### 4. Record results

After completing the script, append the results section to the script file:

```markdown
---
## Results
**Date**: [today's date]
**Status**: PASS | PARTIAL | FAIL
**Pass**: X / Y
**Failures**:
- TEST X.Y: [description]
**Notes**: [anything relevant]
```

Then update `qa/scripts/progress.md` -- change the row's Status, Pass, Fail, Skip, and Date columns.

### 5. Continue or stop

- If running a range or `all`: proceed to the next script.
- If the current script took a long time: stop and report. Do NOT rush the next script.
- Always prefer quality over quantity. One thoroughly-tested script is worth more than three skimmed scripts.

## Key Tools

- **Playwright MCP**: `browser_navigate`, `browser_snapshot`, `browser_click`, `browser_type`, `browser_fill_form`, `browser_select_option`, `browser_take_screenshot`, `browser_press_key`, `browser_wait_for`
- **nREPL MCP**: `mcp__nrepl__eval_form` for data verification and seeding
- **Bash**: `curl` for webhook testing, `rm -rf storage/cache` for clean restart

## Adding New QA Scripts

When a new feature is built, add a test script:
1. Create `qa/scripts/{NN}-{feature-name}.md` following the format in existing scripts
2. Add a row to `qa/scripts/progress.md`
3. Add to `qa/scripts/RUN-ORDER.md` in the appropriate session
4. Include: TEST items with (READ/WRITE/NAVIGATE/GUARD) tags, SCREENSHOT markers, clear VERIFY criteria

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.