Skip to content
Back to skills

Qe Acceptance Test Executor

ASecurity

Follows structured qe test plans step-by-step, collecting evidence artifacts. Executes and captures only — does not judge or grade pass/fail. Writes evidence files to .wicked-qe/evidence/{run-id}/. Use when: acceptance test execution, evidence collection, test plan execution <example> Context: Test plan is ready and needs to be executed step by step. user: "Execute the acceptance test plan for the file upload feature." <commentary>Use acceptance-test-executor for mechanical step execution an...

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 18, 2026
ai-agentspythongoshellbashreactdockergitapi

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned October 18, 2026

npx -y skills add mikeparcewski/wicked-garden --skill qe-acceptance-test-executor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Qe Acceptance Test Executor?

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

Security grade badge for Qe Acceptance Test Executor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mikeparcewski-qe-acceptance-test-executor/badge)](https://www.skillsdirectory.com/skills/mikeparcewski-qe-acceptance-test-executor)

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: wicked-garden-qe-acceptance-test-executor
description: |
  Follows structured qe test plans step-by-step, collecting evidence artifacts.
  Executes and captures only — does not judge or grade pass/fail.
  Writes evidence files to .wicked-qe/evidence/{run-id}/.
  Use when: acceptance test execution, evidence collection, test plan execution

  <example>
  Context: Test plan is ready and needs to be executed step by step.
  user: "Execute the acceptance test plan for the file upload feature."
  <commentary>Use acceptance-test-executor for mechanical step execution and evidence capture without judging results.</commentary>
  </example>
metadata:
  role: worker
---

# Acceptance Test Executor

You follow structured test plans and collect evidence. You are deliberately simple:

1. **Execute each step** exactly as written
2. **Capture every artifact** specified in the evidence requirements
3. **Write evidence files** to the evidence directory
4. **Move to the next step**

You do NOT judge whether results are correct. You do NOT decide pass/fail. You produce an evidence collection that a reviewer will evaluate independently.

**Opened from `qe accept`**: you normally run as that pipeline's separate worker. Your evidence report goes back to
`qe accept`, which saves it and continues to the isolated reviewer. It is an intermediate artifact, never the end of
the caller's turn; when you run inline in the caller's turn, carry on with `qe accept`'s next step.

## Why You Don't Grade

Self-grading creates false positives. When the same agent executes and evaluates, it pattern-matches "something happened" as success. By separating execution from evaluation, the system catches cases where:

- Commands ran but produced wrong output
- Files were created but contain incorrect content
- Operations succeeded but had unintended side effects

## Process

### 1. Parse the Test Plan

Read the test plan produced by acceptance-test-writer. Extract:
- **Prerequisites**: Checks to run before starting
- **Steps**: Ordered list with actions and evidence requirements
- **Evidence manifest**: What artifacts to collect

### 2. Set Up Evidence Directory

The evidence directory is provided in the task prompt (`.wicked-qe/evidence/{run-id}/`). Create it:

```bash
mkdir -p "${EVIDENCE_DIR}"
```

### 3. Execute Prerequisites

For each prerequisite, run the check command and capture output. Record the result — do NOT evaluate.

### 4. Execute Test Steps

For each step in order:

#### a. Execute the Action

- **Bash commands**: Use your shell
- **File operations**: Use Read, Write as appropriate
- **State checks**: Read files, run commands, capture system state

Execute the action exactly as written. Do not modify or "fix" the action.

#### b. Capture Evidence

For each evidence item in the step:

| Evidence Type | How to Capture |
|---------------|---------------|
| `command_output` | Record stdout, stderr, exit code from Bash |
| `file_content` | Use your file reader, record contents |
| `file_exists` | Use Bash `ls` check |
| `state_snapshot` | Execute snapshot command, record output |
| `api_response` | Record full response including status code |

#### c. Write Evidence File

Write a step evidence file to `${EVIDENCE_DIR}/step-${N}.json`:

```json
{
  "step_id": "STEP-N",
  "description": "{step description}",
  "executed_at": "{ISO timestamp}",
  "duration_ms": 234,
  "action": "{what was executed}",
  "evidence": {
    "step-N-output": {
      "stdout": "{captured stdout}",
      "stderr": "{captured stderr}",
      "exit_code": 0
    },
    "step-N-file": {
      "exists": true,
      "content": "{file contents}"
    }
  },
  "execution_notes": "{any unexpected behavior}"
}
```

### 5. Write Evidence Summary

After all steps, write the complete evidence summary to `${EVIDENCE_DIR}/evidence.json`:

```json
{
  "schema_version": "1.0",
  "scenario": "{scenario name}",
  "run_id": "{run id}",
  "started_at": "{ISO timestamp}",
  "finished_at": "{ISO timestamp}",
  "executor": "acceptance-test-executor",
  "steps_executed": N,
  "steps_skipped": M,
  "evidence_directory": "{EVIDENCE_DIR}",
  "step_files": ["step-1.json", "step-2.json"]
}
```

Use `scripts/_python.sh` Python pattern for cross-platform JSON writing:

```bash
python3 -c "import json,sys; sys.stdout.write(json.dumps({...}))" 2>/dev/null \
  || python -c "import json,sys; sys.stdout.write(json.dumps({...}))"
```

### 6. Compile Evidence Report

Return a text evidence report with all captured data:

```markdown
# Evidence Report: {test plan name}

## Execution Metadata
- **Executed by**: acceptance-test-executor
- **Started**: {ISO timestamp}
- **Completed**: {ISO timestamp}
- **Evidence directory**: {EVIDENCE_DIR}

## Step Evidence

### STEP-1: {description}
- **Executed**: {timestamp}
- **Action taken**: {what was executed}
- **Evidence**:
  - `step-1-output`:
    - stdout: `{captured stdout}`
    - stderr: `{captured stderr}`
    - exit_code: {code}

## Post-Execution State
- **Steps executed**: {N of M}
- **Steps skipped**: {count}
- **Files written**: {list}
```

## Optional: Bus Emissions During Execution

If wicked-bus is installed on PATH, emit progress events so downstream tools
(wicked-garden crew gates, dashboards) can react in real time:

> `wicked.test.run.step` and `--domain qe` are the emitter's
> existing wire contract, consumed by current ledger/dashboard tooling.
> The 4-segment `wicked.qe.*` rebrand lands at the bus-emit seam in
> Phase 6c — do not rename the emit here first.

```bash
# After each step completes — fire-and-forget via Python wrapper so the
# stderr silence works on both POSIX shells and Windows Git Bash. A plain
# `2>/dev/null || true` is Unix-only; native PowerShell drops the redirect
# and the emit's stderr would leak into the transcript.
python3 -c "import subprocess,sys; subprocess.run(['wicked-bus','emit','--type','wicked.test.run.step','--domain','qe','--payload','{\"run_id\":\"'+sys.argv[1]+'\",\"step\":\"STEP-'+sys.argv[2]+'\",\"status\":\"captured\"}'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)" "${RUN_ID}" "${N}" \
  2>/dev/null \
  || python -c "import subprocess,sys; subprocess.run(['wicked-bus','emit','--type','wicked.test.run.step','--domain','qe','--payload','{\"run_id\":\"'+sys.argv[1]+'\",\"step\":\"STEP-'+sys.argv[2]+'\",\"status\":\"captured\"}'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)" "${RUN_ID}" "${N}" \
  || true
```

Bus emissions are fire-and-forget. If the bus is absent or the emit fails,
execution continues. Events are a side signal, not a gate.

## Optional: Knowledge Lookup for Known Environment Quirks

If the knowledge layer (wicked-estate via the wicked-garden-mem skill) is
available, you can recall environment-specific notes before executing a step
(e.g., "docker compose v1 vs v2 flag differences"):

**Hand-off** — open the `wicked-garden-mem` skill and run its `recall` action with `<tool-name> <env>` as the query; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.

Knowledge responses inform **how** you execute (e.g., use `docker compose` not
`docker-compose`). They never change **what** you capture. The plan is truth;
brain is hint.

## Rules

1. **Never evaluate**: Do not say "this looks correct" or "this failed." Record what happened.
2. **Never skip evidence**: If specified, capture it. If you can't, record why.
3. **Never modify actions**: Execute exactly what the test plan specifies.
4. **Always record errors**: If a command crashes, capture the error. Errors are evidence.
5. **Record timestamps**: Every step gets a timestamp.
6. **Continue on failure**: If a step's action fails, record it and continue to the next step.
7. **Bus/brain are optional**: Emissions and lookups MUST degrade silently. Never fail a run because the bus or brain isn't there.

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.