Install the "uat-testing" agent skill from https://github.com/ooiyeefei/ccc/tree/main/skills/uat-testing into .claude/skills/uat-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uat-testing", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add ooiyeefei/ccc --skill uat-testing -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "uat-testing" agent skill from https://github.com/ooiyeefei/ccc/tree/main/skills/uat-testing into .agents/skills/uat-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uat-testing", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add ooiyeefei/ccc --skill uat-testing -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "uat-testing" agent skill from https://github.com/ooiyeefei/ccc/tree/main/skills/uat-testing into .cursor/skills/uat-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uat-testing", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add ooiyeefei/ccc --skill uat-testing -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "uat-testing" agent skill from https://github.com/ooiyeefei/ccc/tree/main/skills/uat-testing into .gemini/skills/uat-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uat-testing", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
GitHub CLI
$ gh skill install ooiyeefei/ccc uat-testing
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add ooiyeefei/ccc --skill uat-testing -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "uat-testing" agent skill from https://github.com/ooiyeefei/ccc/tree/main/skills/uat-testing into .github/skills/uat-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uat-testing", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add ooiyeefei/ccc --skill uat-testing -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "uat-testing" agent skill from https://github.com/ooiyeefei/ccc/tree/main/skills/uat-testing into .opencode/skills/uat-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uat-testing", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
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.
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
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.
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:
User-provided spec: If user gives a path to a spec, requirements doc, or thread — read it first
Spec directory: Check specs/[branch-name]/spec.md or specs/[feature-id]/spec.md
Tasks/todo: Check tasks/todo.md or similar for what was planned
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)?
Aspect
Local
Production / Staging
Server
Start with npm run dev
Already running at provided URL
Env vars
Need .env.local with all keys
N/A — app is already configured
Test data
May need seeding or setup
Uses existing real/staging data
Auth
Test account on local auth provider
Test account on prod/staging auth
Base URL
http://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:
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
Map spec to test cases: Each user story or requirement gets at least one test case
Prioritize: Critical (P1) = core happy path; High (P2) = error handling; Medium (P3) = edge cases
Be specific: Each step should be a concrete action ("Type 'hello' in the input field"), not vague ("Test the input")
Include expected data: Use actual values from the seeded test data or spec examples
Cover persistence: Always include a "reload page and verify" test case for stateful features
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:
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:
Navigate to the target page
Wait for page load (browser_wait_for or snapshot check)
Perform the test actions (click, type, submit)
Wait for the expected result
Verify via browser_snapshot (check accessibility tree for expected text/elements)
Take browser_take_screenshot for evidence
Check browser_console_messages for JS errors
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 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.
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…
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.
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.
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.
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.
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.
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.