uat-execute
Execute a UAT plan against live MCP connections, tracking pass/fail per test and filing issues on failure
Best use case
uat-execute is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
It is a strong fit for teams already working in Codex.
Execute a UAT plan against live MCP connections, tracking pass/fail per test and filing issues on failure
Teams using uat-execute should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/uat-execute/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How uat-execute Compares
| Feature / Agent | uat-execute | Standard Approach |
|---|---|---|
| Platform Support | Codex | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Execute a UAT plan against live MCP connections, tracking pass/fail per test and filing issues on failure
Which AI agents support this skill?
This skill is designed for Codex.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# UAT Execute
Execute a UAT plan against live MCP connections. Runs each phase sequentially, tracks pass/fail per test, files issues for failures, and always runs cleanup.
## Usage
```bash
# Execute a UAT plan
/uat-execute .aiwg/testing/uat/plan-gitea-20260227.md
# Dry run — show what would be executed without making calls
/uat-execute .aiwg/testing/uat/plan.md --dry-run
# Skip issue filing
/uat-execute .aiwg/testing/uat/plan.md --no-issues
# Resume from a specific phase (after fixing a blocker)
/uat-execute .aiwg/testing/uat/plan.md --resume-from 3
# Override execution mode (run only quick smoke subset)
/uat-execute .aiwg/testing/uat/plan.md --execution-mode quick
```
## Parameters
### plan_path (required)
Path to the UAT plan document generated by `/uat-generate`.
### --mode (default: mcp)
Test mode. Must match the plan's mode. Currently only `mcp` is supported.
### --execution-mode (optional)
Override the plan's execution mode. Useful for running a quick smoke test from a full plan.
### --dry-run (optional)
Parse the plan and show what would be executed without making any MCP calls.
### --no-issues (optional)
Disable automatic issue filing for failures. Results are still recorded.
### --resume-from (optional)
Resume execution from a specific phase number. Useful after fixing a blocker found mid-execution. Previous phase results are loaded from the checkpoint file.
## Workflow
### Step 1: Parse Plan
Read the UAT plan and extract:
- Phase list with prerequisites
- Test cases per phase with MCP call specs
- Variable wiring requirements
- Negative test isolation flags
```
Parsing UAT Plan...
Plan: plan-gitea-20260227.md
Phases: 12
Test cases: 165
Negative tests: 32 (will be isolated)
Variables: 18 cross-phase references
```
### Step 2: Preflight Check
Before executing tests, verify:
- MCP server(s) are reachable
- Required tools are available
- Authentication is valid
```
Preflight Check...
Server: gitea — Connected
Tools available: 78/78
Auth: Valid (user: roctibot)
Ready to execute.
```
### Step 3: Execute Phases
For each phase in order:
```
═══════════════════════════════════════
Phase 3: Issue Tracking (12 tests)
═══════════════════════════════════════
P03-001: Create Issue (Happy Path)
Tool: mcp__gitea__create_issue
Parameters: {owner: "test-org", repo: "test-repo", title: "UAT Test Issue", body: "..."}
Response: {number: 1, title: "UAT Test Issue", state: "open"}
✅ Criterion 1: Returns issue with number field — PASS
✅ Criterion 2: title matches — PASS
✅ Criterion 3: state is "open" — PASS
Stored: ISSUE_INDEX = 1
Result: PASS (3/3)
P03-002: Get Issue by Index
Tool: mcp__gitea__get_issue_by_index
Parameters: {owner: "test-org", repo: "test-repo", index: 1}
Response: {number: 1, title: "UAT Test Issue", ...}
✅ Criterion 1: Returns issue matching ISSUE_INDEX — PASS
✅ Criterion 2: title is "UAT Test Issue" — PASS
Result: PASS (2/2)
P03-003: Create Issue — Missing Title (Negative)
[Isolation: single call]
Tool: mcp__gitea__create_issue
Parameters: {owner: "test-org", repo: "test-repo", body: "No title"}
Response: {error: "validation failed"}
✅ Criterion 1: Returns error — PASS
✅ Criterion 2: Error indicates missing title — PASS
Result: PASS (2/2)
Phase 3 Summary: 12/12 passed (0 failed, 0 skipped)
Duration: 45 seconds
```
### Step 4: Handle Failures
On test failure:
1. Record the failure with full details
2. File an issue (unless `--no-issues`)
3. Continue to next test (don't stop)
4. If a stored variable was expected but not captured, mark dependent tests as `error`
```
P04-007: Update Repository Description
Tool: mcp__gitea__update_repo
Parameters: {owner: "test-org", repo: "test-repo", description: "Updated"}
Response: {error: "not found", message: "repository not found"}
❌ Criterion 1: Returns updated repository — FAIL
Result: FAIL (0/1)
Issue filed: #415 "UAT: P04-007 — Update Repository returns not found"
```
### Step 5: Cleanup Phase
The cleanup phase ALWAYS runs, even if earlier phases failed:
```
═══════════════════════════════════════
Phase 11: Cleanup (always runs)
═══════════════════════════════════════
P11-001: Delete Test Repository
Tool: mcp__gitea__delete_repo (if available)
...
P11-002: Delete Test Organization
...
Cleanup complete. 3/3 test entities removed.
```
### Step 6: Save Results
Write results to `.aiwg/testing/uat/results/` following the `uat-result.yaml` schema:
```
Results saved:
File: .aiwg/testing/uat/results/results-gitea-20260227-143022.yaml
Checkpoint: .aiwg/testing/uat/results/checkpoint-gitea-20260227.yaml
Generate report with:
/uat-report .aiwg/testing/uat/results/results-gitea-20260227-143022.yaml
```
### Step 7: Summary
```
═══════════════════════════════════════════
UAT Execution Complete
═══════════════════════════════════════════
Plan: plan-gitea-20260227.md
Duration: 8 minutes 32 seconds
Results:
Total tests: 165
Passed: 159 (96.4%)
Failed: 4 (2.4%)
Skipped: 1 (0.6%)
Errors: 1 (0.6%)
Issues filed: 4
#415: P04-007 — Update Repository returns not found
#416: P06-003 — Wiki page creation timeout
#417: P08-002 — Release tag not created
#418: P09-011 — Search returns stale results
Coverage: 76/78 tools tested (97.4%)
Untested: mcp__gitea__cancel_repo_action_run (no active runs)
mcp__gitea__stop_stopwatch (no active stopwatch)
═══════════════════════════════════════════
```
## Error Handling
### Plan Not Found
```
Error: UAT plan not found at {path}
Generate a plan first:
/uat-generate --mode mcp
```
### MCP Server Unavailable
```
Error: MCP server {name} is not reachable.
The UAT plan requires this server. Check your MCP configuration.
Retry with: /uat-execute {plan_path}
```
### Checkpoint Recovery
If execution crashes mid-run, results are checkpointed per-phase:
```
Checkpoint detected: .aiwg/testing/uat/results/checkpoint-gitea-20260227.yaml
Phases completed: 0-5
Phases remaining: 6-11
Resume with: /uat-execute {plan_path} --resume-from 6
```
## References
- Agent: @$AIWG_ROOT/agentic/code/addons/uat-mcp/agents/uat-executor.md
- Schema: @$AIWG_ROOT/agentic/code/addons/uat-mcp/schemas/uat-result.yaml
- Template: @$AIWG_ROOT/agentic/code/addons/uat-mcp/templates/uat-executor-guide.mdRelated Skills
execute-feedback
Execute tests on generated code and iterate until passing
aiwg-orchestrate
Route structured artifact work to AIWG workflows via MCP with zero parent context cost
venv-manager
Create, manage, and validate Python virtual environments. Use for project isolation and dependency management.
pytest-runner
Execute Python tests with pytest, supporting fixtures, markers, coverage, and parallel execution. Use for Python test automation.
vitest-runner
Execute JavaScript/TypeScript tests with Vitest, supporting coverage, watch mode, and parallel execution. Use for JS/TS test automation.
eslint-checker
Run ESLint for JavaScript/TypeScript code quality and style enforcement. Use for static analysis and auto-fixing.
repo-analyzer
Analyze GitHub repositories for structure, documentation, dependencies, and contribution patterns. Use for codebase understanding and health assessment.
pr-reviewer
Review GitHub pull requests for code quality, security, and best practices. Use for automated PR feedback and approval workflows.
YouTube Acquisition
yt-dlp patterns for acquiring content from YouTube and video platforms
Quality Filtering
Accept/reject logic and quality scoring heuristics for media content
Provenance Tracking
W3C PROV-O patterns for tracking media derivation chains and production history
Metadata Tagging
opustags and ffmpeg patterns for applying metadata to audio and video files