
fugazi/test-automation-skills-agents
Developer toolsA practical library of , , and designed specifically for QA Automation Engineers, focusing on production-oriented solutions.
Overview
A practical library of , , and designed specifically for QA Automation Engineers, focusing on production-oriented solutions.
README
Test Automation AI Agents & Skills (Tool-Agnostic) 🚀
A practical library of agents, instructions, and skills designed specifically for QA Automation Engineers, focusing on production-oriented solutions.
This repository is tool-agnostic by design: the concepts and content can be used with GitHub Copilot, Claude, Cursor, OpenCode, Windsurf, and similar AI assistants.
Key Features
This repository is designed to be copied/embedded into real testing projects so your AI assistant can actively assist with:
- UI, API, E2E, smoke, and regression testing
- Accessibility testing (WCAG 2.2 AA)
- Flaky test investigation and stabilization
- Test planning (ISTQB-aligned) and documentation
- Framework patterns (Playwright TypeScript, Selenium Java)
Important: This repository is a documentation/knowledge base — no build or test system. The only validation is a dependency-free structural linter:
node scripts/lint-skills.mjs(0 errors required; runs in CI on PRs touchingskills/,agents/, orinstructions/).
What you get
- Agents (in
agents/): persona + responsibilities + boundaries for specialized AI behavior - Instructions (in
instructions/): lean, scoped essentials (locator priority, no-hard-waits rules) — deep content lives in skills - Skills (in
skills/): reusable workflows + references + scripts/templates (progressively loaded by supporting tools; otherwise used as playbooks)
Repository structure
agents/ # Custom agent definitions (*.agent.md)
instructions/ # Lean, scoped coding essentials (*.instructions.md)
skills/ # Reusable capabilities (skills/*/SKILL.md + resources)
docs/ # Setup guides, standards, and documentation
├── references/ # Authoring guides and examples
├── enhancements/ # Enhancement plans (CE audit, deferred decisions)
└── archive/ # Completed/stale planning logs (kept for history)
references/ # Shared reference material (anti-patterns, patterns)
scripts/ # Structural linter (lint-skills.mjs — the repo's only validation)
.claude-plugin/ # Claude Code plugin/marketplace metadata
AGENTS.md # House style, file standards, frontmatter rules
CLAUDE.md # Claude Code entry point + architecture notes
CHANGELOG.md # Release history (Keep a Changelog)
Quick start (recommended workflow)
This repo is a catalog. Choose the integration style for your tool.
Integration choices
- GitHub Copilot (customizations): use
.github/agents,.github/instructions, and.github/skills. - Claude/Cursor/OpenCode/Windsurf/etc.: copy the same content into the tool’s repo/workspace rules system, keeping the same structure and naming so your team shares a consistent vocabulary.
Setup guides
| Tool | Setup Guide |
|---|---|
| Claude Code | docs/claude-code-setup.md |
| Cursor | docs/cursor-setup.md |
| GitHub Copilot | docs/copilot-setup.md |
| Antigravity CLI | docs/antigravity-setup.md |
| Windsurf | docs/windsurf-setup.md |
Option A - Copy into your target repository (most reliable)
-
Copy agents:
- From:
agents/ - To:
.github/agents/
- From:
-
Copy instructions:
- From:
instructions/ - To:
.github/instructions/
- From:
-
Copy skills:
- From:
skills// - To:
.github/skills//
- From:
-
Commit the files to your target repo.
Verify Copilot can see the assets
In your target repository:
-
Confirm files exist at the expected paths:
.github/agents/*.agent.md.github/instructions/*.instructions.md.github/skills//SKILL.md
-
In VS Code, reload the window (or restart VS Code) to refresh Copilot customizations.
-
Open Copilot Chat:
- Ensure your
agentsappear in the agent selector dropdown. - If a
skilldoes not seem to trigger automatically, explicitly mention it by name in your prompt.
- Ensure your
Verify other AI tools can use the content
If you are using Claude/Cursor/OpenCode/Windsurf (or another assistant), verification is typically:
- Ensure the files are present in the tool’s configured rules/prompts scope (repo-level or workspace-level).
- Start a new chat session so the tool reloads instructions.
- Ask for a response that should clearly follow a rule (e.g., “avoid
Thread.sleep(); use explicit waits”).
Option B - Git submodule (centralized updates)
Add this repo as a submodule, then copy/sync assets into .github/* as part of your internal workflow.
Option C - Install via Claude Code Plugin Marketplace
Subscribe to this repository as a plugin marketplace directly from Claude Code:
/plugin marketplace add fugazi/test-automation-skills-agents
Then install the plugin:
/plugin install test-automation-skills-agents@fugazi-test-automation
This will make all 7 specialized QA agents and 10 reusable skills available in your Claude Code session.
Local / development:
git clone https://github.com/fugazi/test-automation-skills-agents.git
claude --plugin-dir /path/to/test-automation-skills-agents
Option D - Install skills via skills.sh
You can install skills directly from this repository using skills.sh:
- Browse the skills list for this repo:
https://skills.sh/?q=fugazi/test-automation-skills-agents
Copy/paste any of these commands:
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill playwright-e2e-testing
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill a11y-playwright-testing
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill webapp-selenium-testing
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill qa-manual-istqb
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill accessibility-selenium-testing
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill playwright-regression-testing
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill playwright-cli
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill api-testing
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill grill-me-qa
npx skills add https://github.com/fugazi/test-automation-skills-agents --skill qa-investigation
Note: Copilot’s discovery typically looks at canonical locations like
.github/agentsand.github/skills. Keeping this repo as a submodule is fine, but you will generally still want a sync step into.github/*.
Core concepts
1) Agents: “who does the work and how”
Agents define:
- Identity and specialization (e.g., Playwright Test Healer)
- Scope boundaries (what the agent will / will not do)
- Tool access (least-privilege when possible)
- Workflow expectations and output format
Agents live in files named like:
lowercase-with-hyphens.agent.md
Each file includes YAML frontmatter within this repo. See AGENTS.md for local standards.
Tool-agnostic mapping:
- Copilot: custom agent file under
.github/agents/ - Other tools: use the agent body as a dedicated system prompt / mode / persona, and keep the same boundaries
2) Instructions: “the operating system”
Instructions are cross-cutting rules that keep outputs consistent:
- Playwright coding standards, locator strategy, POM patterns
- Selenium Java standards, explicit waits, AssertJ, Allure
- Accessibility expectations (WCAG 2.2 AA)
- CI/CD test pipeline configuration (GitHub Actions, test tiers, parallel execution)
- Single-tag test classification: exactly one tag per test (
@smoke,@sanity,@regression,@e2e,@api,@destructive) — never ondescribe()/class level, never combined;@destructiveruns sequentially, excluded from parallel runs - Agent authoring guidelines (frontmatter, handoffs, tool selection)
In practice:
- Use instructions when you want consistent conventions across teams/repos.
- Treat instructions as non-negotiable constraints for day-to-day work.
Tool-agnostic mapping:
- Put the instruction content into your tool’s repo-level rules (often a single “rules” file), or keep them split by domain (Playwright, Selenium, a11y) like this repo does.
- If your tool supports file globs/scopes, mirror the intent (e.g., Playwright rules apply to
**/*.spec.ts).
Compatibility notes (VS Code vs GitHub)
Customizations can behave slightly differently depending on where you run Copilot.
- VS Code
- Supports agent
modelandhandoffs(depending on version). - Great for interactive workflows (planning → generate → debug → heal).
- Supports agent
- GitHub (Copilot Coding Agent)
- Commonly expects agents under
.github/agents/. - Some frontmatter fields may be ignored depending on the environment.
- Commonly expects agents under
When in doubt, keep the frontmatter minimal and portable:
- Agents:
description(required), plus optionalname,tools,target,infer,handoffs - Skills:
name+description(required), optionallicense - Do not pin
modelin agent or skill frontmatter — let the tool harness choose
Tool-agnostic usage (Claude/Cursor/OpenCode/Windsurf)
Use this repo as a shared “QA automation brain” for your team:
- Keep this repository as the source of truth.
- Sync/copy its content into whichever format your AI tool supports.
- Keep the same names so prompts remain consistent across tools:
- “Use the Playwright Test Healer agent.”
- “Follow the Playwright TypeScript instructions.”
- “Apply the playwright-e2e-testing skill playbook.”
Copilot-specific parts are mainly:
- The
.github/*discovery paths - Some frontmatter fields that other tools ignore
The testing guidance itself (locator strategies, waits, POM patterns, a11y workflows, ISTQB artifacts) is portable.
3) Skills: “reusable playbooks + resources”
Skills are folder-based capabilities that Copilot can load on-demand.
Key characteristics (by design):
-
Progressive loading
- Level 1: Copilot reads only
name+descriptionto decide relevance - Level 2: Copilot loads the body of
SKILL.mdwhen relevant - Level 3: Copilot loads references/scripts/templates only when linked/needed
- Level 1: Copilot reads only
-
Resource bundling
references/: docs loaded into context when referencedscripts/: executable helpers (deterministic behavior)templates/: starter code that AI may modifyassets/: static files used as-is
How to use agents (day-to-day)
Agents are activated the same way across tools — by referencing the agent in a prompt (its description drives selection). The exact UI differs per assistant; the prompts below work everywhere. The flows below are GitHub Copilot-specific examples — for Claude Code, Cursor, Windsurf, and OpenCode see the matching setup guide.
In VS Code (Copilot Chat)
- Open Copilot Chat.
- Select the agent from the agent dropdown (Custom Agents).
- Give a task prompt.
Prompt examples:
- “Use Playwright Test Healer: investigate why
checkout.spec.tsfails intermittently in CI and propose fixes.” - “As API Tester Specialist: create negative tests for
/v1/orderscovering auth failures and schema validation.” - “As Selenium Test Specialist: generate POM + JUnit 5 tests for login + forgot password.”
In GitHub (Copilot Coding Agent)
If you’re using Copilot on GitHub (agent workflows), keep the agents under .github/agents/.
Recommended pattern:
- Use the QA Orchestrator to plan and delegate work
- The orchestrator routes tasks to specialist agents (Playwright planner/generator/healer, API tester, etc.)
What agents exist in this repo
This repo currently includes 7 agents (see agents/):
- QA Orchestrator: routes test tasks to specialist agents, enforces Test Constitution
- Playwright Test Planner: explores an app and produces a structured test plan
- Playwright Test Generator: generates Playwright tests from a plan using Playwright MCP
- Playwright Test Healer: runs/debugs failing Playwright tests and fixes them iteratively
- API Tester Specialist: API test creation (REST Assured / Playwright API / Supertest), auth, contracts, schemas
- Selenium Test Specialist: writes maintainable Selenium Java tests (POM, explicit waits, JUnit5, AssertJ)
- Test Refactor Specialist: refactors test suites (DRY, POM extraction, parameterization)
How to use instructions (when and why)
Use instructions when you want consistent automation standards across:
- Multiple QA engineers
- Multiple repositories
- Different test stacks (Playwright vs Selenium)
Examples:
- Add Playwright standards to a new repo: install
instructions/playwright-typescript.instructions.mdinto your tool’s instructions location (e.g.,.github/instructions/for GitHub Copilot — see your setup guide). - Ensure Selenium suites never use
Thread.sleep(): installinstructions/selenium-webdriver-java.instructions.mdthe same way. - For a11y standards: use the
a11y-playwright-testingoraccessibility-selenium-testingskills (loaded on-demand).
How to use skills (when they help most)
Skills are best when the team repeats the same “playbook” frequently.
Typical triggers:
- “Write Playwright E2E tests with POM and stable locators” →
playwright-e2e-testing - “Run axe-core checks, keyboard navigation, WCAG 2.2 AA” →
a11y-playwright-testingoraccessibility-selenium-testing - “Plan, organize, or optimize regression test suites” →
playwright-regression-testing - “Generate ISTQB-aligned artifacts: test plan / bug report / traceability” →
qa-manual-istqb - “Inspect a live page, capture evidence, or debug interactively” →
playwright-cli - “Find the root cause of a failing or flaky test” →
qa-investigation
Skills catalog (this repo)
| Skill | Best for | Typical prompts |
|---|---|---|
playwright-e2e-testing |
Versioned Playwright TypeScript UI specs | “Write Playwright tests for checkout with POM and stable locators.” |
playwright-cli |
Live browser automation via CLI (snapshot, interact, debug) | “Open a browser, navigate to the login page, and capture a snapshot.” |
a11y-playwright-testing |
WCAG 2.2 AA checks using Playwright + axe-core | “Add automated a11y scans for auth pages and keyboard nav tests.” |
webapp-selenium-testing |
Selenium Java automation patterns | “Create Selenium POM + JUnit 5 tests for login and profile update.” |
accessibility-selenium-testing |
A11y scanning with Selenium + axe-core | “Scan key pages for WCAG issues and generate an Allure-friendly report.” |
playwright-regression-testing |
Regression strategy + test selection + CI/CD optimization | “Organize tests into tiers (smoke, selective, full) and set up GitHub Actions pipeline.” |
qa-manual-istqb |
QA artifacts + ISTQB test design techniques | “Create a test plan, cases, and traceability matrix for payments.” |
api-testing |
REST/GraphQL testing with Playwright and REST Assured | “Create API tests for user endpoints with schema validation.” |
grill-me-qa |
Guided interview to challenge QA plans & tests strategies | “Grill me on our Playwright migration strategy before we start building.” |
qa-investigation |
Root-cause investigation of failing/flaky tests | “Find the root cause of the checkout test that fails intermittently.” |
How skill discovery works
The tool harness uses the description in SKILL.md frontmatter to decide whether to load a skill. This is a tool-agnostic mechanism — it works the same way across GitHub Copilot, Claude Code, Cursor, Windsurf, and similar assistants.
To improve activation:
- Include WHAT the skill does
- Include WHEN to use it
- Include KEYWORDS users will naturally type
If a skill still does not activate automatically:
- Explicitly reference it in your prompt (e.g., “use the skill playwright-e2e-testing”).
- Ensure the skill folder is in the canonical location your harness expects (e.g.,
.github/skills/for GitHub Copilot — see your tool’s setup guide).
Suggested end-to-end workflows
Workflow 1 - From requirements to tests (Playwright)
- Use
qa-manual-istqbskill to draft test conditions and test cases. - Use Playwright Test Planner agent to create an E2E plan.
- Use Playwright Test Generator agent to generate tests from the plan.
- Use Playwright E2E Testing skill as the best-practices reference during implementation.
Workflow 2 - Stabilize a flaky suite
- Use the Playwright Test Healer agent to identify flaky-test patterns and root causes.
- Apply changes (wait strategy, locators, isolation, data seeding).
- Use Playwright Test Healer agent to validate and repair remaining failures.
Workflow 3 - Accessibility regression prevention
- Pick the stack:
- Playwright + axe-core:
a11y-playwright-testing - Selenium + axe-core:
accessibility-selenium-testing
- Playwright + axe-core:
- Add a11y checks to critical flows (auth, checkout, forms, modals).
- Fail CI on WCAG 2.2 AA violations (with triage exceptions documented).
Workflow 4 - Regression testing strategy
- Use
playwright-regression-testingskill to design your regression approach. - Organize tests into tiers:
- Tier 0: Smoke (< 2 min) - critical path, every commit
- Tier 1: Sanity (< 10 min) - core features, every PR
- Tier 2: Selective (< 30 min) - change-based, on merge
- Tier 3: Full (< 60 min) - complete regression, nightly/pre-release
- Implement test selection strategies (change-based, risk-based, time-budget).
- Set up CI/CD pipeline with GitHub Actions (smoke → selective → full).
- Add flaky test management (retry policies, quarantine, suite health metrics).
Workflow 5 - API contract validation
- Use API Tester Specialist agent.
- Cover:
- Auth (401/403)
- Validation errors (400)
- Schema/contract checks
- Idempotency where relevant
- Pagination/sorting/filtering edge cases
- Use
api-testingskill for schema validation patterns (Zod, JSON Schema) and contract testing.
Workflow 6 - CI/CD pipeline setup
- Use
cicd-testinginstruction for pipeline configuration guidance. - Set up tiered GitHub Actions workflows:
- Smoke (every commit, < 2 min)
- Sanity (every PR, < 10 min)
- Selective regression (on merge, < 30 min)
- Full regression (nightly, < 60 min)
- Configure parallel execution with sharding.
- Add deployment gates, flaky test handling, and failure notifications.
Contributing
Add a new agent
- Create
agents/.agent.md. - Follow the structure in
AGENTS.md:- Required: frontmatter
description(single-quoted) - Recommended:
name,target,handoffs - Optional:
tools(omit for tool-agnostic agents),infer - Do not pin
model— let the tool harness decide
- Required: frontmatter
- Include a Constitution section (MUST DO / WON’T DO rules) aligned with the QA Orchestrator’s Test Constitution
- Keep the scope explicit (includes/excludes) and avoid tool overreach
- See the Agent Authoring Guide for detailed standards
- Verify:
node scripts/lint-skills.mjs— 0 errors required (CI enforces it)
Add a new skill
- Create
skills//SKILL.mdwith frontmatter:name: lowercase-with-hyphens, ≤64 charsdescription: WHAT + WHEN + KEYWORDS (critical)
- Add supporting resources:
references/for long docsscripts/for deterministic automationtemplates/for scaffolds Copilot can modifyassets/for static content used as-is
- Verify:
node scripts/lint-skills.mjs— 0 errors required (CI enforces it)
Security & safety
- Do not store secrets in agents/skills/instructions.
- Prefer environment variables and secret managers.
- Avoid destructive scripts; require explicit confirmation flags for irreversible actions.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Agent not visible in selector | Wrong folder path | Ensure .github/agents/*.agent.md in target repo |
| Skill never triggers | Description too vague or folder not in canonical location | Improve description and ensure .github/skills//SKILL.md |
| Removed skill name in a prompt | Catalog was consolidated in v3 | See skill migration plan (archived) |
| Generated tests are unstable | Locator/wait anti-patterns | Follow the locator priority + web-first assertions from Playwright skills |
| Selenium tests flaky | Thread.sleep() or missing explicit waits |
Use WebDriverWait patterns from Selenium instructions/skills |
🏠 Author
- Name:
Douglas Urrea Ocampo - Job:
SDET - Software Developer Engineer in Test - Country:
Colombia - City:
Medellin - E-mail:
[email protected] - LinkedIn: https://www.linkedin.com/in/douglasfugazi
- Contact: https://douglasfugazi.co
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Douglas Urrea Ocampo for the QA Community.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add fugazi/test-automation-skills-agents