Agent skill

Uat Testing

by ooiyeefei in ooiyeefei/ccc

End-to-end User Acceptance Testing for web applications. An agent skill from ooiyeefei/ccc.

MITAuto-check: notesTesting & QA

Install Uat Testing

skills CLI
$ npx skills add ooiyeefei/ccc --skill uat-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ooiyeefei/ccc uat-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ooiyeefei/ccc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/uat-testing .claude/skills/uat-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
uat-testing
GitHub stars
494
Token cost
~2.7k tokens
SKILL.md length
1,134 words
Files
7 (incl. references)
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

End-to-end User Acceptance Testing for web applications. An agent skill from ooiyeefei/ccc.

  • Works in 5 steps: Discovery → Environment Setup → Test Case Generation → …
  • The user says run UAT
  • SKILL.md covers Workflow Overview, Phase 1: Discovery, Phase 2: Environment Setup and Phase 3: Test Case Generation, plus 3 more sections
  • Runs JavaScript scripts from its folder; calls git, npm and curl; needs UAT_USER_PASSWORD

What it does

Uat Testing is an agent skill from ooiyeefei/ccc. End-to-end User Acceptance Testing for web applications. Analyzes branch changes and specs to generate exhaustive test cases, sets up the local environment, executes tests via Playwright browser automation, and produces a pass/fail results report with screenshots and fix documentation. Use when the user says "run UAT", "test this feature", "UAT testing", "acceptance test", "test my branch", "generate test cases", or wants to verify a feature branch against its spec before merge.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `CHANGELOG.md`, `README.md` and `references/agent-guide.md`).

It sits in Testing & QA, covering Test generation, End-to-end testing and Browser testing. It works with Playwright. The repository describes itself as: Claude Code Custom Plugins - Custom plugins for Claude Code CLI. The licence is MIT.

When your agent uses it

  • The user says run UAT
  • Test this feature
  • Acceptance test
  • Generate test cases

Example prompts

  • “run UAT”
  • “test this feature”
  • “UAT testing”
  • “/uat-testing”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Discovery
  2. Environment Setup
  3. Test Case Generation
  4. Test Execution
  5. Reporting

What it can do on your machine

Read from SKILL.md and the folder at commit c0fd926. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • npm
    • curl
    • node
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, npm, curl and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • UAT_USER_PASSWORD

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Uat Testing loads about 2.7k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 124 tokens; SKILL.md has 1,134 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~124
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:21
    │   ├─ Check for .env.local → ask user if missing
  • NoteMentions a .env fileSKILL.md:94
    | **Env vars** | Need `.env.local` with all keys | N/A — app is already configured |
  • NoteMentions a .env fileSKILL.md:105
    ls -la .env.local .env 2>/dev/null
  • NoteMentions a .env fileSKILL.md:108
    **If `.env.local` does not exist**, ask the user:
  • NoteMentions a .env fileSKILL.md:110
    > I don't see a `.env.local` file. Do you have an environment file or credentials I should use? Common needs:
  • NoteMentions a .env fileSKILL.md:157
    point me at an existing env file (e.g. `.env.local`) or create
  • NoteMentions a .env fileSKILL.md:158
    > `.env.uat` (gitignored) with:
  • NoteMentions a .env fileSKILL.md:215
    node --env-file=.env.uat uat-auth-setup.mjs    # writes .uat-auth/state.json
  • NoteMentions a .env fileSKILL.md:221
    Add `.env.uat` and `.uat-auth/` to `.gitignore`. See `references/agent-guide.md`

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ooiyeefei/ccc at commit c0fd926, republished under its MIT licence (© ooiyeefei). 1,134 words, ~2,745 tokens.

Download SKILL.mdSave it as .claude/skills/uat-testing/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
uat-testing
description
End-to-end User Acceptance Testing for web applications. Analyzes branch changes and specs to generate exhaustive test cases, sets up the local environment, executes tests via Playwright browser automation, and produces a pass/fail results report with screenshots and fix documentation. Use when the user says "run UAT", "test this feature", "UAT testing", "acceptance test", "test my branch", "generate test cases", or wants to verify a feature branch against its spec before merge.

UAT Testing

End-to-end UAT workflow: analyze → generate test cases → set up environment → execute → report.

Workflow Overview

Phase 1: Discovery
  ├─ Read spec/requirements (if provided)
  ├─ Analyze git branch diff against base
  └─ Identify what was built/changed

Phase 2: Environment Setup
  ├─ Determine target: local or production/staging?
  ├─ Local path:
  │   ├─ Check for .env.local → ask user if missing
  │   └─ Start dev server (npm run dev or equivalent)
  ├─ Prod/staging path:
  │   └─ Get application URL, verify reachable
  └─ Ask user for test account credentials (both paths)

Phase 3: Test Case Generation
  ├─ Write uat-test-cases.md (see references/test-case-template.md)
  ├─ Cover: happy path, errors, persistence, auth, responsive
  └─ Present to user for review before execution

Phase 4: Test Execution
  ├─ Start dev server (framework-appropriate command)
  ├─ Authenticate via the env-var auth script (never type passwords)
  ├─ Execute test cases with Playwright MCP tools
  ├─ Take screenshots as evidence
  └─ If a test fails → document the failure, continue testing

Phase 5: Reporting
  ├─ Write uat-results.md (see references/results-template.md)
  ├─ Include: summary table, detailed results, screenshots, fixes
  └─ Present overall PASS/FAIL verdict

Phase 1: Discovery

Finding the Spec

Look for feature context in this priority order:

  1. User-provided spec: If user gives a path to a spec, requirements doc, or thread — read it first
  2. Spec directory: Check specs/[branch-name]/spec.md or specs/[feature-id]/spec.md
  3. Tasks/todo: Check tasks/todo.md or similar for what was planned
  4. PR description: If a PR exists, read it via gh pr view
Analyzing Branch Changes
bash
# What branch are we on?
git branch --show-current

# What changed vs base branch?
git log main..HEAD --oneline
git diff main..HEAD --stat

# What files were modified?
git diff main..HEAD --name-only

Read the changed files to understand what was built. Focus on:

  • New components or pages (user-facing features)
  • Modified API routes or backend logic (behavior changes)
  • Schema changes (data model additions)
  • Config changes (new env vars needed)
Output

Summarize findings to the user:

  • "This branch adds [feature] based on [spec]"
  • "Key changes: [list of modified areas]"
  • "I'll generate test cases covering [scope]"

Phase 2: Environment Setup

Determine Target Environment

Ask the user (or infer from context) whether this is local or production testing:

Are we testing locally (I'll start the dev server) or against a deployed environment (provide the URL)?

AspectLocalProduction / Staging
ServerStart with npm run devAlready running at provided URL
Env varsNeed .env.local with all keysN/A — app is already configured
Test dataMay need seeding or setupUses existing real/staging data
AuthTest account on local auth providerTest account on prod/staging auth
Base URLhttp://localhost:3000 (or configured port)https://app.example.com
Local Environment Path
Check Environment Variables
bash
# Check if env file exists
ls -la .env.local .env 2>/dev/null

If .env.local does not exist, ask the user:

I don't see a .env.local file. Do you have an environment file or credentials I should use? Common needs:

  • Database connection (e.g., Convex URL/deploy key)
  • Auth provider keys (e.g., Clerk publishable/secret key)
  • API keys (e.g., AI model keys, external service keys)

Please provide the file path or paste the required variables.

Start Dev Server

Detect the framework and start the dev server:

SignalFrameworkStart Command
next.config.*Next.jsnpm run dev
vite.config.*Vitenpm run dev
angular.jsonAngularng serve
nuxt.config.*Nuxtnpm run dev
package.json scriptsGenericRead dev script

If the project needs multiple services (e.g., Next.js + Convex), start all of them.

Verify the server is reachable before proceeding:

bash
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000
Production / Staging Environment Path

No server startup or env file needed. Ask the user for:

Please provide:

  1. Application URL (e.g., https://app.example.com)
  2. Any test data considerations (is there a staging org/business to use?)

Verify the URL is reachable:

bash
curl -s -o /dev/null -w "%{http_code}" https://app.example.com
Request Test Account (Both Environments)

Authentication uses the env-var auth script, never interactive password entry (see Phase 4 and references/agent-guide.md → Auth Handling). So ask the user to put the credentials in a gitignored env file, not to paste the password into chat:

For UAT I authenticate with a small script that reads the test creds from a gitignored env file — I never type your password into a login field. Please either point me at an existing env file (e.g. .env.local) or create .env.uat (gitignored) with:

UAT_BASE_URL=https://app.example.com   # or http://localhost:3000
UAT_USER_EMAIL=test@example.com
UAT_USER_PASSWORD=...

Also tell me: any 2FA/MFA steps, and which business/org/team to use after login (if applicable). Don't paste the password in chat — the env file keeps it out of the conversation.

Phase 3: Test Case Generation

Read references/test-case-template.md for the full template format.

Generation Rules
  1. Map spec to test cases: Each user story or requirement gets at least one test case
  2. Prioritize: Critical (P1) = core happy path; High (P2) = error handling; Medium (P3) = edge cases
  3. Be specific: Each step should be a concrete action ("Type 'hello' in the input field"), not vague ("Test the input")
  4. Include expected data: Use actual values from the seeded test data or spec examples
  5. Cover persistence: Always include a "reload page and verify" test case for stateful features
  6. Cover auth boundaries: If the feature has role-based access, test with different roles
Writing the File

Write uat-test-cases.md to the spec directory (e.g., specs/[feature-id]/uat-test-cases.md) or to the project root if no spec directory exists.

Present the test cases to the user for review before executing. Ask:

I've generated [N] test cases in [file path]. Review them and let me know:

  • Any test cases to add or remove?
  • Any priority adjustments?
  • Ready to proceed with execution?
Show full SKILL.md (446 more words)Show less

Phase 4: Test Execution

Playwright MCP Setup

Load the Playwright tools via ToolSearch before starting:

ToolSearch: "playwright browser"

Key tools: browser_navigate, browser_snapshot, browser_click, browser_fill_form, browser_type, browser_press_key, browser_take_screenshot, browser_wait_for, browser_console_messages, browser_evaluate.

See references/agent-guide.md for the full tool reference and auth handling patterns.

Authenticate (secure, env-var — never type passwords)

Do not type a password into a login field (not browser_fill_form, browser_type, computer, or any interactive tool). Instead:

  1. Copy references/uat-auth-setup.mjs into the project and adapt signIn() to the app's auth provider.
  2. Run it to produce an authenticated session (the secret is read from the env file, never echoed):
    bash
    node --env-file=.env.uat uat-auth-setup.mjs    # writes .uat-auth/state.json
  3. Reuse the saved session for the run — either drive the UAT as a Playwright script with browser.newContext({ storageState: '.uat-auth/state.json' }), or load its cookies into the MCP browser via browser_evaluate before navigating.

Add .env.uat and .uat-auth/ to .gitignore. See references/agent-guide.md → Auth Handling for the full pattern, security rules, and bot-detection fallback.

Execution Pattern

For each test case:

  1. Navigate to the target page
  2. Wait for page load (browser_wait_for or snapshot check)
  3. Perform the test actions (click, type, submit)
  4. Wait for the expected result
  5. Verify via browser_snapshot (check accessibility tree for expected text/elements)
  6. Take browser_take_screenshot for evidence
  7. Check browser_console_messages for JS errors
  8. Record PASS or FAIL with details
Failure Handling

When a test fails:

  • Document exactly what happened (expected vs actual)
  • Take a screenshot of the failure state
  • Check console for errors (browser_console_messages)
  • Continue testing other cases — do not stop on first failure
  • If the fix is obvious and small (< 5 lines), ask user if you should fix it. If yes, fix, re-verify, and document the fix in the results report
Screenshot Naming Convention

Save screenshots to the project root with descriptive names:

uat-tc001-invoice-card.png
uat-tc002-cashflow-dashboard.png
uat-tc003-fail-missing-button.png

Phase 5: Reporting

Read references/results-template.md for the full report format.

Writing the Report

Write uat-results.md alongside the test cases file.

Include:

  1. Summary table: PASS/FAIL/BLOCKED/NOT TESTED counts
  2. Per-test results: What happened for each test case with specific details
  3. Fixes applied: Any code changes made during testing, with root cause analysis
  4. Component status: Build pass/fail for each modified component
  5. Screenshots: Reference all captured screenshots
  6. Remaining issues: Known problems that weren't fixed
  7. Overall verdict: PASS (all critical tests pass) or FAIL (any critical test fails)
Verdict Rules
  • PASS: All Critical (P1) and High (P2) test cases pass. Medium/Low failures are documented but don't block.
  • FAIL: Any Critical (P1) test case fails, OR more than 50% of High (P2) cases fail.
  • PARTIAL: Critical tests pass but significant High (P2) failures exist. Merging is a judgment call.

References

© ooiyeefei, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in skills/uat-testing of ooiyeefei/ccc.

  • SKILL.md
  • CHANGELOG.md
  • README.md
  • references/agent-guide.md
  • references/results-template.md
  • references/test-case-template.md
  • references/uat-auth-setup.mjs

Open the folder on GitHubat commit c0fd926

Compare with similar skills

Uat Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Uat Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Uat Testing this skillooiyeefei/ccc494—~2.7kAutomated safety check: NotesMIT
Playwright Testingaehrc/pathling137—~1.5kAutomated safety check: PassApache-2.0
Playwrightmagnus919/agent-skills111—~3.4kAutomated safety check: NotesMIT
playwright-cli Browser Automationgithub/gh-aw5.3k23 repos~2.8kAutomated safety check: PassMIT
Write and Verify Playwright Testsappsmithorg/appsmith41k—~2.9kAutomated safety check: NotesApache-2.0
Kane CLI Browser TestingLambdaTest/kane-cli247—~8.4kAutomated safety check: PassApache-2.0

Similar skills

  • Playwright Testing

    aehrc/pathling

    Expert guidance for writing end-to-end tests with Playwright Test framework.

    137 GitHub stars~1.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Playwright

    magnus919/agent-skills

    Operate Playwright for browser automation end to end: author and debug E2E test suites (robust locators, network interception and mocking, parallel workers, accessibility snapshot checks), wire them…

    111 GitHub stars~3.4k tokensUpdated today
    Testing & QAAuto-check: notes
  • Official

    Drives a real browser from the command line with playwright-cli to open pages, interact, mock requests, save state and work with Playwright tests.

    5.3k GitHub starsUsed in 23 repos~2.8k tokens
    Testing & QAAuto-check passed
  • Writes a Playwright end-to-end test from a prompt, runs it against a live Appsmith deployment and retries with fixes up to three times until it passes.

    41k GitHub stars~2.9k tokensUpdated today
    Testing & QAAuto-check: notes
  • Kane CLI Browser Testing

    LambdaTest/kane-cli

    Drives a real browser through the kane-cli tool and designs requirement-linked test suites from a PRD or a plain description, with mobile and cloud-grid runs.

    247 GitHub stars~8.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Open Browser

    JasonHonKL/Openbrowser

    A skill your agent uses whenever the task involves browsing web pages, extracting page content, clicking forms, or completing web workflows.

    114 GitHub stars~1.6k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed

More from ooiyeefei/ccc

All 22 skills in this repo
  • Turns meeting recordings into notes with a chain of custody from audio to claim, auditing transcripts for gaps and low-confidence numbers and names.

    494 GitHub stars~876 tokensUpdated 2 mo ago
    Auto-check passed
  • Builds marketing and explainer videos in Remotion from rendered scenes, with one real product capture as proof, and cuts them for each platform's formats.

    494 GitHub stars~2.9k tokensUpdated 2 mo ago
    Auto-check passed
  • Records a sharp product demo video by driving the real app with a browser agent, from storyboard to Xvfb capture and a narration script synced to the frames.

    494 GitHub stars~2.8k tokensUpdated 2 mo ago
    Auto-check passed
  • Generates architecture diagrams as .excalidraw files by analyzing a codebase, with optional PNG or SVG export through Playwright.

    494 GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Sets up GA4 on a website and wires one real conversion event end to end, verified in DebugView before any money goes into ads.

    494 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Builds or rewrites SaaS landing pages by researching the real product, positioning it against alternatives and writing buyer-focused copy, then implementing it in the codebase.

    494 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Categories

Questions about Uat Testing

What does Uat Testing do?

End-to-end User Acceptance Testing for web applications. An agent skill from ooiyeefei/ccc. Uat Testing is an agent skill from ooiyeefei/ccc. End-to-end User Acceptance Testing for web applications.

When should I use Uat Testing?

Uat Testing fits situations like: the user says run UAT; test this feature; acceptance test; generate test cases.

How do I install Uat Testing in Claude Code?

Run `npx skills add ooiyeefei/ccc --skill uat-testing -a claude-code`. Or copy the skill folder (skills/uat-testing in ooiyeefei/ccc) into .claude/skills/uat-testing in your project. Claude Code loads it when a task matches its description.

How do I install Uat Testing in Codex?

Run `npx skills add ooiyeefei/ccc --skill uat-testing -a codex`. Or copy the skill folder (skills/uat-testing in ooiyeefei/ccc) into .agents/skills/uat-testing in your project. Codex loads it when a task matches its description.

Can I use Uat Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ooiyeefei/ccc --skill uat-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/uat-testing, .gemini/skills/uat-testing, .github/skills/uat-testing and .opencode/skills/uat-testing in your project.

What does Uat Testing need to run?

Going by SKILL.md and its folder, Uat Testing needs JavaScript for the scripts in its folder, the command-line tools its instructions call (git, npm, curl, node and gh) and credentials named UAT_USER_PASSWORD. Our summary lists: Node.js.

Does Uat Testing access the network?

SKILL.md contains no URLs. Its commands use git, npm, curl and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Uat Testing safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Uat Testing use?

Uat Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Uat Testing use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4k tokens, read only when the agent opens those files.

What are the alternatives to Uat Testing?

Skills that share tags, products or a category with Uat Testing: Playwright Testing (aehrc/pathling, 137 stars), Playwright (magnus919/agent-skills, 111 stars), playwright-cli Browser Automation (github/gh-aw, 5.3k stars) and Write and Verify Playwright Tests (appsmithorg/appsmith, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Uat Testing?

ooiyeefei (a GitHub user) maintains it in ooiyeefei/ccc, which has 494 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on July 29, 2026.

Source: ooiyeefei/ccc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.