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.
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.1 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. It has no build/lint/test system.
- Agents (in
agents/): persona + responsibilities + boundaries for specialized AI behavior - Instructions (in
instructions/): operational rules and standards that guide work consistently - Skills (in
skills/): reusable workflows + references + scripts/templates (progressively loaded in Copilot; otherwise used as playbooks)
agents/ # Custom agent definitions (*.agent.md)
instructions/ # Authoring & operational guidelines (*.instructions.md)
skills/ # Reusable capabilities (skills/*/SKILL.md + resources)
AGENTS.md # House style, file standards, frontmatter rules
CLAUDE.md # Additional guidance (legacy + architecture notes)
This repo is a catalog. Choose the integration style for your tool.
- 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.
-
Copy agents:
- From:
agents/ - To:
.github/agents/
- From:
-
Copy instructions:
- From:
instructions/ - To:
.github/instructions/
- From:
-
Copy skills:
- From:
skills/<skill-name>/ - To:
.github/skills/<skill-name>/
- From:
-
Commit the files to your target repo.
In your target repository:
-
Confirm files exist at the expected paths:
.github/agents/*.agent.md.github/instructions/*.instructions.md.github/skills/<skill-name>/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
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”).
Add this repo as a submodule, then copy/sync assets into .github/* as part of your internal workflow.
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-testingnpx skills add https://github.com/fugazi/test-automation-skills-agents --skill a11y-playwright-testingnpx skills add https://github.com/fugazi/test-automation-skills-agents --skill webapp-playwright-testingnpx skills add https://github.com/fugazi/test-automation-skills-agents --skill qa-test-plannernpx skills add https://github.com/fugazi/test-automation-skills-agents --skill webapp-selenium-testingnpx skills add https://github.com/fugazi/test-automation-skills-agents --skill qa-manual-istqbNote: 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/*.
Packaging note: the current folder layout and
frontmatterconventions are optimized forGitHub Copilotcustomizations. If you use another tool, you can still reuse the same content by mapping it to that tool’s equivalent mechanisms (rules files, system prompts, playbooks, templates).
Agents define:
- Identity and specialization (e.g., flaky test hunter)
- 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
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.1 AA)
- 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).
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 - Skills:
name+description(required), optionallicense
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 Flaky Test Hunter 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.
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
- Open Copilot Chat.
- Select the agent from the agent dropdown (Custom Agents).
- Give a task prompt.
Prompt examples:
- “Use Flaky Test Hunter: 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.”
If you’re using Copilot on GitHub (agent workflows), keep the agents under .github/agents/.
Recommended pattern:
- Use a planning agent (e.g., implementation plan) to produce an execution plan
- Hand off to a specialist agent (Playwright generator/healer, flaky hunter, etc.)
This repo currently includes the following agents (see agents/):
- API Tester Specialist: API test creation (REST Assured / Playwright API / Supertest), auth, contracts, schemas
- Flaky Test Hunter: identifies root causes of flaky tests, applies stabilization strategies
- 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
- Selenium Test Specialist: writes maintainable Selenium Java tests (POM, explicit waits, JUnit5, AssertJ)
- Selenium Test Executor: runs/debugs Selenium suites and provides actionable failure analysis
- Test Refactor Specialist: refactors test suites (DRY, POM extraction, parameterization)
- Docs Agent: technical writer focused on docs output (note: its default paths reference a typical app repo)
- Implementation Plan Generation Mode: produces deterministic implementation plans (no code changes)
- Principal Software Engineer: principal-level guidance (architecture, quality, pragmatic trade-offs)
- Architect: orchestrator-style agent (delegation-focused)
Note: Some agents are intended for orchestration or cross-repo workflows. Use the specialists for daily QA tasks.
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: copy
instructions/playwright-typescript.instructions.mdinto.github/instructions/. - Ensure Selenium suites never use
Thread.sleep(): copyinstructions/selenium-webdriver-java.instructions.mdinto.github/instructions/. - Standardize a11y approach: copy
instructions/a11y.instructions.md.
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.1 AA” →
a11y-playwright-testingoraccessibility-selenium-testing - “Generate ISTQB-aligned artifacts: test plan / bug report / traceability” →
qa-manual-istqb - “Browser-based exploration and debugging” →
webapp-playwright-testing
| Skill | Best for | Typical prompts |
|---|---|---|
playwright-e2e-testing |
Playwright TypeScript E2E + API-in-test patterns | “Write Playwright tests for checkout with POM and stable locators.” |
webapp-playwright-testing |
Live browser interaction + debugging via Playwright MCP | “Navigate to /login, fill the form, and verify validation errors.” |
a11y-playwright-testing |
WCAG 2.1 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.” |
qa-manual-istqb |
ISTQB-aligned artifacts + test design techniques | “Create a risk-based regression suite and a traceability matrix.” |
qa-test-planner |
Test plans + test cases + bug reports + Playwright artifacts | “Use the skill qa-test-planner to create a test plan for payments.” |
Note:
qa-test-planneris intentionally strict: it is designed to trigger only when you call it by name.
Copilot primarily uses the description in SKILL.md frontmatter to decide whether to load a skill.
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”).
- Copy the skill folder into
.github/skills/(not justskills/) in your target repo.
- 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.
- Use Flaky Test Hunter agent to identify patterns and root causes.
- Apply changes (wait strategy, locators, isolation, data seeding).
- Use Playwright Test Healer agent to validate and repair remaining failures.
- 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.1 AA violations (with triage exceptions documented).
- Use API Tester Specialist agent.
- Cover:
- Auth (401/403)
- Validation errors (400)
- Schema/contract checks
- Idempotency where relevant
- Pagination/sorting/filtering edge cases
- Create
agents/<new-agent>.agent.md. - Follow the structure in
AGENTS.md:- Required: frontmatter
description(single-quoted) - Recommended:
name,tools,model,target,handoffs
- Required: frontmatter
- Keep the scope explicit (includes/excludes) and avoid tool overreach.
- Create
skills/<skill-name>/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
- Do not store secrets in agents/skills/instructions.
- Prefer environment variables and secret managers.
- Avoid destructive scripts; require explicit confirmation flags for irreversible actions.
| 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>/SKILL.md |
qa-test-planner doesn’t activate |
Designed to be explicit-only | Mention it by name: “use the skill qa-test-planner …” |
| 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 |
- Name:
Douglas Urrea Ocampo - Job:
SDET - Software Developer Engineer in Test - Country:
Colombia - City:
Medellin - E-mail:
douglas@douglasfugazi.co - LinkedIn: https://www.linkedin.com/in/douglasfugazi
- Contact: https://douglasfugazi.co
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Douglas Urrea Ocampo for the QA Community.
