3abfe53a1e
- Rewrite skills/uat/SKILL.md to be a general UAT overview that delegates per-plugin test procedures to UAT_PLAYBOOK.md in each plugin repository (authoritative source of truth) - Add "What UAT Is NOT" section to explicitly prevent GitHub-browsing anti-pattern - Update SDLC skill to require UAT_PLAYBOOK.md as a required deliverable alongside code changes affecting plugin testing - Create UAT_PLAYBOOK.md in sealed-secrets and rook plugin repos Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
73 lines
2.9 KiB
Markdown
73 lines
2.9 KiB
Markdown
---
|
|
name: uat
|
|
description: >
|
|
Functional UAT procedures for Privileged Escalation Headlamp plugins. Delegates per-plugin testing procedures to UAT_PLAYBOOK.md in each plugin repository.
|
|
---
|
|
|
|
# UAT Procedures
|
|
|
|
## Purpose
|
|
|
|
This skill defines **functional User Acceptance Testing** for all Privileged Escalation Headlamp plugins. UAT validates that plugins work correctly in the deployed environment — by **loading plugins in a running Headlamp instance and exercising their features**, not by browsing GitHub or inspecting PR diffs.
|
|
|
|
## What UAT Is NOT
|
|
|
|
- Browsing GitHub PRs and taking screenshots of code diffs
|
|
- Checking CI status on GitHub
|
|
- Reading commit messages or PR descriptions
|
|
- Approving based on QA's review alone
|
|
|
|
If your test evidence is screenshots of GitHub pages, you are not performing UAT.
|
|
|
|
## Pipeline Stage
|
|
|
|
UAT is the final promotion gate before production: `uat → main`. Pixel Patty (UAT agent) validates the deployed application via Playwright browser testing before merging.
|
|
|
|
## Per-Plugin Testing Procedures
|
|
|
|
Detailed, up-to-date testing procedures for each plugin are maintained in the plugin's own repository at `UAT_PLAYBOOK.md`. This is the authoritative source — do not copy procedure details into this skill.
|
|
|
|
| Plugin | Repository |
|
|
|--------|------------|
|
|
| headlamp-polaris-plugin | `polaris` |
|
|
| headlamp-sealed-secrets-plugin | `sealed-secrets` |
|
|
| headlamp-intel-gpu-plugin | `intel-gpu` |
|
|
| headlamp-kube-vip-plugin | `kube-vip` |
|
|
| headlamp-tns-csi-plugin | `tns-csi` |
|
|
| headlamp-rook-plugin | `rook` |
|
|
| headlamp-argocd-plugin | `argocd` |
|
|
|
|
Each plugin's `UAT_PLAYBOOK.md` contains:
|
|
|
|
- Access path (sidebar entry or app bar location)
|
|
- Step-by-step test actions
|
|
- Expected results for each step
|
|
- Pass/fail criteria
|
|
- Artifact requirements (screenshots, console errors, environment info)
|
|
|
|
## General Process
|
|
|
|
For every `uat→main` promotion:
|
|
|
|
1. Open the Headlamp UAT instance in the browser
|
|
2. Confirm the plugin appears in the sidebar or app bar
|
|
3. Retrieve the plugin's `UAT_PLAYBOOK.md` from its repository
|
|
4. Execute the test steps in the playbook
|
|
5. Capture screenshots of the **running plugin** at each verification step
|
|
6. Check the browser console for errors
|
|
7. Post a structured test report (see Artifacts section)
|
|
|
|
## UAT Artifacts
|
|
|
|
For each plugin tested, the UAT report must include:
|
|
|
|
1. **Screenshots** of the plugin running in Headlamp — sidebar entry visible, main view loaded, at least one detail view
|
|
2. **Test checklist** — each step from the playbook marked pass/fail
|
|
3. **Console errors** — any browser console errors observed (attach screenshot if present)
|
|
4. **Environment** — Headlamp version, plugin version, browser used
|
|
|
|
## Decision Criteria
|
|
|
|
- **Approve** the `uat→main` PR when all applicable test steps pass
|
|
- **Request changes** with specific failing steps and failure screenshots
|
|
- **Block** if the plugin fails to load entirely — escalate to CTO as a deployment issue |