qa_skill
Provides a central index for all testing-related agent skills.
Install
mkdir -p .claude/skills/qa-skill && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12587" && unzip -o skill.zip -d .claude/skills/qa-skill && rm skill.zipInstalls to .claude/skills/qa-skill
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Skill and agent index for crest (API), celium (UI), pixify (VD), and appium (Mobile) — load qa_common as the universal entry point or use individual skills (api, ui, vd, app) directly for single-layer tasks.Key capabilities
- →Route QA tasks to specific tools based on input type.
- →Automate API testing using Crest.
- →Generate UI test scripts using Celium.
- →Run mobile test suites using Appium.
- →Perform visual diffing using Pixify.
- →Auto-detect testing layers from various inputs.
How it works
The skill acts as an index, auto-detecting the input type and routing the QA task to the appropriate testing layer (API, UI, Mobile, Visual Diff) using specific tools.
Inputs & outputs
When to use qa_skill
- →Automate API tests
- →Generate UI test scripts
- →Run mobile test suites
- →Perform visual diffing
About this skill
Headout Unified QA Framework — Skill Index
This file is the canonical skill index for AI agents.
- Start every QA task from:
qa/common/skill/SKILL.md(auto-routes to the right layer) - Full reference (agents + skills + prompts + patterns):
qa/qa.md
WHEN INVOKED — Display This Greeting
When this skill is loaded (e.g. via /qa), output the following greeting exactly, then wait for user input:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
QA SKILL · Ready to generate tests
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1 cURL → crest (API)
2 HTML / Live URL → celium (UI) + pixify (VD if applicable)
3 Appium XML → appium (Mobile)
4 Pod + VD request → pixify (Visual Diff)
5 PR / PRD / EDD → auto-detects all layers
6 Description → I'll confirm repo, then generate
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Paste input · mode is auto-detected
Type "help" for examples & templates
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Repository Map
| Repo | Testing Layer | Primary Tool | Config / Data | UQF Version |
|---|---|---|---|---|
unified-qa-framework | Core shared library | All layers | — | 1.6.13 |
crest | API / Backend | RestAssured + Cucumber | src/test/resources/ResponseSchema/ + configuration.properties | 1.2 |
celium | Web UI (desktop + mobile web) | Selenium 4 / Playwright + Cucumber | src/test/resources/configuration.properties | 1.1-alpha |
pixify (VD layer) | Visual Diff (pixel regression) | pixify engine (com.headout.common.visual.* in UQF) | src/test/resources/vd/{podName}/ — 3 JSON files per pod (see below) | 1.1-alpha |
appium | Native mobile (Android + iOS) | Appium 9 + Cucumber | src/test/resources/configuration.properties + appium-config.json | 1.6-beta-3 |
Visual Diff (VD) — Pod Config Files
All VD config lives in src/test/resources/vd/{podName}/ (one folder per pod):
| JSON File | Purpose | Key Format |
|---|---|---|
visual-diff-action.json | Maps snapshot names → pre-capture actions | {snapshotName}.ACTION.{ACTION_KEY} |
visual-diff-version-1.json | Maps snapshot path → S3 baseline URL | {BROWSER}.{SERVICE_TYPE}.{SNAPSHOT_NAME}.{MODE_TYPE}.{LANGUAGE} |
upload-snapshot-{browser}-on-s3.json | Defines pages/elements to capture and push to S3 | snapshotName, url, captureElement, action[] |
S3 baseline URL pattern:
https://headout-testing.s3.{region}.amazonaws.com/ui-automation/{version}/{serviceType_lower}/{modeType_lower}/{browser_lower}/{env}/{snapshotName}_{lang_lower}.png
VD engine classes (all in unified-qa-framework):
| Class | Package | Role |
|---|---|---|
ScreenshotComparison | com.headout.common.visual.core | Takes screenshots (ThreadLocal singleton) |
CaptureElement | com.headout.common.visual.core | Enum: FULL_PAGE / VIEWPORT / ELEMENT |
NewImageComparison | com.headout.common.visual | Pixel diff engine (2 % tolerance default) |
UploadSnapshotToS3 | com.headout.common.visual.action | Uploads new baselines to S3 |
VisualDiffReader | com.headout.utility.visualdiff | Reads visual-diff-action.json |
VisualDiffReaderVersion | com.headout.utility.visualdiff | Reads visual-diff-version-1.json |
Supported action types (usable in both visual-diff-action.json and inline action[]):
| Type key | Effect |
|---|---|
STOP_ALL_PLAY | Pause all auto-playing media |
SCROLL_DOWN_PAGE | Scroll to bottom of page |
DOM_DELETE | Remove XPath-targeted elements from DOM |
CLICK | Click XPath-targeted element |
WAIT | Hard wait (seconds) |
WAIT_UNIT_ELEMENT_DISPLAY | Wait for element visibility |
SEND_KEYS | Type text into element |
CUSTOM_SCRIPT | Execute inline JS strings |
Entry Point — Common Skill
Always load this first. It auto-detects the input type, assigns layer(s), and routes to the correct individual skill(s) automatically.
File: qa/common/skill/SKILL.md
How the Common Skill Routes
Your input
│
├─ curl -X / HTTP verb + URL + -d → API (crest)
│ loads: qa/api/skill/SKILL.md
│ + document_driven_test_generation.skill.md
│
├─ <html / data-qa-marker= / aria-label= → UI (celium) — HTML snippet
│ loads: qa/ui/skill/SKILL.md
│ + qa/ui/agent/locator_generate_agent.md
│
├─ https?:// + "write UI test" → UI (celium) — live URL
│ loads: qa/ui/skill/SKILL.md
│ + qa/ui/agent/playwright_discovery_agent.md
│
├─ <hierarchy / resource-id= / XCUI → Mobile (appium)
│ loads: qa/app/skill/SKILL.md
│ + qa/app/agent/locator_generate_agent.md
│
├─ microbrand: / slug: / pod: / VD (HTML) → Visual Diff (pixify) — HTML snippet
│ loads: qa/vd/skill/SKILL.md
│ + qa/vd/agent/vd_test_agent.md
│ + qa/vd/agent/locator_generate_agent.md
│
├─ https?:// + pod: / "VD coverage" → Visual Diff (pixify) — live URL
│ loads: qa/vd/skill/SKILL.md
│ + qa/vd/agent/playwright_discovery_agent.md
│
├─ As a ... I want ... (no API contract) → UI + Mobile
│ loads: qa/ui/skill/SKILL.md
│ + qa/app/skill/SKILL.md
│
├─ User story WITH API contract → API + UI + Mobile
│ loads: api + ui + app skills
│
├─ PRD with API contract → API + UI + Mobile
│ loads: api + ui + app skills
│ + document_driven_test_generation.skill.md
│
├─ PRD with API contract + design section → API + UI + VD
│ loads: api + ui + vd skills
│
├─ dev-pr (backend diff only) → API
├─ dev-pr (frontend diff only) → UI + Mobile
└─ dev-pr (full-stack diff) → API + UI + Mobile
Always loaded regardless of layer:
test_case_creation.skill.md (full 17-category matrix — always)
step_reuse.skill.md (grep existing stepdefs + POs before writing)
The One Prompt to Use
You are a senior QA automation engineer for Headout.
Load this common skill: qa/common/skill/SKILL.md
Follow without exception: qa/common/agent/_PRAETORIAN_CONSTITUTION.md
INPUT
[paste: cURL / PR / user story / PRD / HTML / Appium XML / VD request]
TARGET (leave blank for auto-detect)
[x] Auto-detect layers
Individual Skills — Load Directly for Single-Layer Tasks
| Skill | When to load directly | What it covers |
|---|---|---|
qa/api/skill/SKILL.md | You know it's API-only | RestAssured + Cucumber, ThreadLocal, schema files, URLBuilders, cURL-to-automation |
qa/ui/skill/SKILL.md | You know it's UI-only | ByBuilder locators, waitFor, genericMethod, Page Object patterns |
qa/app/skill/SKILL.md | You know it's Mobile-only | Dual-platform ByBuilder, wait.app(), AppPO, AppStepDef |
qa/vd/skill/SKILL.md | You know it's VD-only | pixify engine, 3 JSON config files, CaptureElement modes, S3 baselines |
qa/common/skill/test_case_creation.skill.md | Designing test cases before code | All 8 scenario types, Gherkin rules, Scenario Outline |
qa/common/skill/document_driven_test_generation.skill.md | Input is a cURL / PR / Notion / GDoc | Extracts endpoints, ACs, fields, constraints → test matrix |
qa/common/skill/step_reuse.skill.md | Before writing any new step or PO | grep protocol: stepdefinitions / pageobjects / features |
qa/common/skill/test_execution_and_fix.skill.md | Running and fixing tests | mvn compile test, parse errors, classify failures, auto-fix loop |
Agents
| Agent File | Role | Load when |
|---|---|---|
qa/common/agent/_PRAETORIAN_CONSTITUTION.md | Universal inviolable rules | Every prompt — always |
qa/api/agent/agent.md | Writes crest API tests end-to-end | API layer tasks |
qa/ui/agent/ui_test_agent.md | Writes celium UI tests end-to-end | UI layer tasks |
qa/ui/agent/locator_generate_agent.md | Generates ByBuilder from HTML/XML | HTML snippet or Appium XML input |
qa/app/agent/app_test_agent.md | Writes appium mobile tests | Mobile layer tasks |
qa/common/agent/locator_strategy.md | Locator priority (8-tier web, 5-tier mobile) | Whenever deriving locators |
qa/vd/agent/vd_test_agent.md | Visual Diff (pixify) tests | VD layer tasks |
qa/common/agent/architect_agent.md | Test design blueprint before coding | New feature, design-first |
qa/common/agent/remediator_agent.md | Fix broken/flaky tests | CI failure, test error |
qa/common/agent/qa_architect.md | Cross-repo strategy + governance | Onboarding, architecture review |
Common Skill → Individual Skill Mapping (Quick Reference)
| If common skill detects... | It loads these individual skills |
|---|---|
| API | api + document_driven_test_generation |
| UI (HTML snippet) | ui + locator_generate_agent |
| UI (live URL) | ui + playwright_discovery_agent |
| Mobile | app + locator_generate_agent |
| VD (HTML snippet) | vd + vd_test_agent + locator_generate_agent |
| VD (live URL + pod) | vd + playwright_discovery_agent |
| API + UI | above API skills + above UI skills |
| API + UI + Mobile | all three layer skills |
| API + UI + VD | API + UI + VD skills |
| API + UI + Mobile + VD | all four layer skills |
| Always | test_case_creation + step_reuse |
Universal Rules (Enforced by _PRAETORIAN_CONSTITUTION.md)
- Never hardcode URLs, tokens, credentials — use
PropertyUtils.get(ConfigMap.*)orGetSecretToken - Tag every scenario — minimum
@testor@liveplus one functional tag - **Extend the correct BaseAutomation
Content truncated.
When not to use it
- →When performing non-QA related tasks.
- →When direct interaction with a specific testing tool is preferred over routing.
Limitations
- →The skill is designed for Headout Unified QA Framework.
- →The skill requires specific input formats for auto-detection.
How it compares
This skill provides a unified entry point for various QA tasks, automatically directing them to specialized tools, unlike manually selecting and invoking individual testing frameworks.
Compared to similar skills
qa_skill side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| qa_skill (this skill) | 0 | 3mo | Review | Intermediate |
| http-generate | 1 | 7mo | Review | Intermediate |
| android-java | 0 | 4mo | No flags | Intermediate |
| mockzilla-mock-maker | 0 | 1mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
http-generate
spring-ai-alibaba
Generates HTTP request examples for Spring Boot Web interfaces according to task specification and saves them as .http files in module-generate.md directories
android-java
alinaqi
Android Java development with MVVM, ViewBinding, and Espresso testing
mockzilla-mock-maker
andrecrjr
Use when creating stateless Mockzilla mocks, JSON Schema Faker responses, wildcard mock variants, realistic API response data, or query/header/body-aware previews through manage_mocks.
springboot-patterns
affaan-m
Spring Boot 架构模式、REST API 设计、分层服务、数据访问、缓存、异步处理和日志记录。适用于 Java Spring Boot 后端工作。
springboot-tdd
affaan-m
Test-driven development for Spring Boot using JUnit 5, Mockito, MockMvc, Testcontainers, and JaCoCo. Use when adding features, fixing bugs, or refactoring.
unit-testing
TencentBlueKing
单元测试编写指南,涵盖 JUnit5/MockK 使用、测试命名规范、Mock 技巧、测试覆盖率要求、TDD 实践。当用户编写单元测试、Mock 依赖、提高测试覆盖率或进行测试驱动开发时使用。