
Compatibility Testing
- 621 installs
- 433 repo stars
- Updated August 4, 2026
- proffesor-for-testing/agentic-qe
compatibility-testing is an Agentic QE evaluation skill at version 1.0.0 that validates cross-browser, cross-platform, and cross-device consistency for developers shipping AI-generated interfaces before release.
About
compatibility-testing is version 1.0.0 of the Agentic QE Compatibility Testing Skill Evaluation Suite from proffesor-for-testing/agentic-qe. The skill provides a comprehensive evaluation framework for cross-browser and cross-platform compatibility testing, covering browser matrix coverage, device tier validation, responsive breakpoints, and visual difference detection. Developers reach for compatibility-testing before release when AI-generated UI code must behave consistently across Chrome, Safari, Firefox, mobile viewports, and multiple AI model outputs. The suite includes multi-model configuration for evaluating compatibility test quality itself. It produces structured test evaluation results rather than writing Playwright scripts from scratch.
- Evaluates cross-browser, cross-platform, and cross-device compatibility
- Tests browser matrix coverage, responsive breakpoints, and visual difference detection
- Validates performance against Claude 3.5 Sonnet and Claude 3 Haiku models
- MCP integration with namespace skill-validation and outcome tracking
- Shares learning across qe-learning-coordinator, qe-queen-coordinator, and qe-visual-tester agents
Compatibility Testing by the numbers
- 621 all-time installs (skills.sh)
- +4 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #587 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill compatibility-testingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 621 |
|---|---|
| repo stars | ★ 433 |
| Security audit | 2 / 3 scanners passed |
| Last updated | August 4, 2026 |
| Repository | proffesor-for-testing/agentic-qe ↗ |
How do you test cross-browser AI-generated UI code?
Automatically validate that their AI-generated code and interfaces work consistently across browsers, devices, and AI models before release.
Who is it for?
QA engineers and developers releasing AI-generated web interfaces who need structured cross-browser and cross-device validation before production.
Skip if: Backend-only API services with no UI layer or teams satisfied with a single-browser smoke test without matrix coverage.
When should I use this skill?
A developer asks to validate cross-browser compatibility, responsive breakpoints, device tiers, or visual differences before shipping AI-generated UI.
What you get
Compatibility evaluation results covering browser matrix, device tiers, responsive breakpoints, and detected visual differences.
- Compatibility evaluation report with browser and device matrix results
By the numbers
- Agentic QE Compatibility Testing Skill Evaluation Suite version 1.0.0
- Covers 4 evaluation areas: browser matrix, device tiers, responsive breakpoints, visual differences
Files
Compatibility Testing
Browser engine
Browser-driven checks (viewport emulation, responsive validation, cross-browser screenshots) should go through the qe-browser fleet skill (.claude/skills/qe-browser/). Vibium is installed by aqe init. Quick reference:
# Viewport emulation per breakpoint
vibium viewport 375 667 # mobile
vibium viewport 768 1024 # tablet
vibium viewport 1920 1080 # desktop
# Full device emulation (user-agent, DPR, touch)
vibium emulate-device "iPhone 15"
# Visual diff per viewport
for vp in "375 667 mobile" "768 1024 tablet" "1920 1080 desktop"; do
read w h name <<< "$vp"
vibium viewport $w $h
node .claude/skills/qe-browser/scripts/visual-diff.js --name "homepage-$name"
doneCross-browser (Firefox/Safari) still requires Playwright or a cloud device farm today — Vibium's BiDi backend is Chrome-only at v26.3.x.
<default_to_action> When validating cross-browser/platform compatibility: 1. DEFINE browser matrix (cover 95%+ of users) 2. TEST responsive breakpoints (mobile, tablet, desktop) 3. RUN in parallel across browsers/devices 4. USE cloud services for device coverage (BrowserStack, Sauce Labs) 5. COMPARE visual screenshots across platforms
Quick Compatibility Checklist:
- Chrome, Firefox, Safari, Edge (latest + N-1)
- Mobile Safari (iOS), Mobile Chrome (Android)
- Screen sizes: 320px, 768px, 1920px
- Test on actual target devices for critical flows
Critical Success Factors:
- Users access from 100+ browser/device combinations
- Test where users are, not where you develop
- Cloud testing reduces 10 hours to 15 minutes
</default_to_action>
Quick Reference Card
When to Use
- Before release
- After CSS/layout changes
- Launching in new markets
- Responsive design validation
---
Cross-Browser with Playwright
// playwright.config.ts
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
{ name: 'mobile-chrome', use: { ...devices['Pixel 5'] } },
{ name: 'mobile-safari', use: { ...devices['iPhone 12'] } }
]
});
// Run: npx playwright test --project=chromium --project=firefox---
Cloud Testing Integration
// BrowserStack configuration
const capabilities = {
'browserName': 'Chrome',
'browser_version': '118.0',
'os': 'Windows',
'os_version': '11',
'browserstack.user': process.env.BROWSERSTACK_USER,
'browserstack.key': process.env.BROWSERSTACK_KEY
};
// Parallel execution across devices
const deviceMatrix = [
{ os: 'Windows', browser: 'Chrome' },
{ os: 'OS X', browser: 'Safari' },
{ os: 'Android', device: 'Samsung Galaxy S24' },
{ os: 'iOS', device: 'iPhone 15' }
];---
Agent-Driven Compatibility Testing
// Cross-platform visual comparison
await Task("Compatibility Testing", {
url: 'https://example.com',
browsers: ['chrome', 'firefox', 'safari', 'edge'],
devices: ['desktop', 'tablet', 'mobile'],
platform: 'browserstack',
parallel: true
}, "qe-visual-tester");
// Returns:
// {
// combinations: 12, // 4 browsers × 3 devices
// passed: 11,
// differences: [{ browser: 'safari', device: 'mobile', diff: 0.02 }]
// }---
Agent Coordination Hints
Memory Namespace
aqe/compatibility-testing/
├── browser-matrix/* - Browser/version configurations
├── device-matrix/* - Device configurations
├── visual-diffs/* - Cross-browser visual differences
└── reports/* - Compatibility reportsFleet Coordination
const compatFleet = await FleetManager.coordinate({
strategy: 'compatibility-testing',
agents: [
'qe-visual-tester', // Visual comparison
'qe-test-executor', // Cross-browser execution
'qe-performance-tester' // Performance by platform
],
topology: 'parallel'
});---
Related Skills
- mobile-testing - Mobile-specific testing
- visual-testing-advanced - Visual regression
- accessibility-testing - Cross-platform a11y
---
Remember
Cover 95%+ of your user base. Use analytics to identify actual browser/device usage. Don't waste time on browsers nobody uses.
With Agents: Agents orchestrate parallel cross-browser testing across cloud platforms. qe-visual-tester catches visual inconsistencies across platforms automatically.
# =============================================================================
# AQE Compatibility Testing Skill Evaluation Suite v1.0.0
# Cross-browser, cross-platform, cross-device compatibility testing evaluation
# =============================================================================
skill: compatibility-testing
version: 1.0.0
description: >
Comprehensive evaluation suite for cross-browser and cross-platform
compatibility testing. Tests browser matrix coverage, device tier validation,
responsive breakpoints, and visual difference detection.
# =============================================================================
# Multi-Model Configuration
# =============================================================================
models_to_test:
- claude-sonnet-4-6 # Primary (high accuracy expected)
- claude-haiku-4-5 # Fast model (minimum quality floor)
# =============================================================================
# MCP Integration Configuration
# =============================================================================
mcp_integration:
enabled: true
namespace: skill-validation
query_patterns: true
track_outcomes: true
store_patterns: true
share_learning: true
update_quality_gate: true
target_agents:
- qe-learning-coordinator
- qe-queen-coordinator
- qe-visual-tester
# =============================================================================
# Learning Configuration
# =============================================================================
learning:
store_success_patterns: true
store_failure_patterns: true
pattern_ttl_days: 90
min_confidence_to_store: 0.7
cross_model_comparison: true
# =============================================================================
# Result Format Configuration
# =============================================================================
result_format:
json_output: true
markdown_report: true
include_raw_output: false
include_timing: true
include_token_usage: true
# =============================================================================
# Environment Setup
# =============================================================================
setup:
required_tools:
- jq
environment_variables:
BROWSER_COVERAGE_TARGET: "95"
fixtures:
- name: responsive_layout
content: |
<div class="container">
<nav class="main-nav">Navigation</nav>
<main class="content">Main content</main>
<aside class="sidebar">Sidebar</aside>
</div>
# =============================================================================
# Test Cases
# =============================================================================
test_cases:
# -------------------------------------------------------------------------
# Browser Matrix Tests
# -------------------------------------------------------------------------
- id: tc001_browser_matrix_detection
description: "Detect and report browser compatibility issues"
category: browser_matrix
priority: critical
input:
code: |
// Uses CSS Grid without fallback
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
// Uses CSS custom properties
:root {
--primary-color: #007bff;
}
.btn { background: var(--primary-color); }
context:
language: css
target_browsers: ["chrome", "firefox", "safari", "edge", "ie11"]
expected_output:
must_contain:
- "browser"
- "compatibility"
- "grid"
must_not_contain:
- "all browsers supported"
finding_count:
min: 1
max: 3
validation:
schema_check: true
keyword_match_threshold: 0.8
reasoning_quality_min: 0.7
- id: tc002_webkit_specific_issues
description: "Detect WebKit/Safari-specific compatibility issues"
category: browser_matrix
priority: high
input:
code: |
.flex-container {
display: flex;
gap: 10px; /* Gap not supported in older Safari */
}
.gradient {
background: linear-gradient(to right, red, blue);
}
input[type="date"] {
/* Date input styling varies by browser */
-webkit-appearance: none;
}
context:
language: css
target_browsers: ["safari", "mobile-safari"]
expected_output:
must_contain:
- "Safari"
- "WebKit"
finding_count:
min: 1
validation:
schema_check: true
# -------------------------------------------------------------------------
# Device Coverage Tests
# -------------------------------------------------------------------------
- id: tc003_device_tier_coverage
description: "Validate device coverage across tiers"
category: device_coverage
priority: critical
input:
prompt: |
Analyze compatibility for the following device matrix:
Tier 1 (60% users): iPhone 15, Galaxy S24, iPad Pro
Tier 2 (30% users): iPhone 13, Pixel 7, Galaxy A54
Tier 3 (10% users): iPhone 11, older Android devices
context:
test_type: device_coverage
minimum_coverage: 95
expected_output:
must_contain:
- "Tier 1"
- "Tier 2"
- "coverage"
- "device"
validation:
schema_check: true
keyword_match_threshold: 0.8
- id: tc004_mobile_specific_issues
description: "Detect mobile-specific compatibility issues"
category: device_coverage
priority: high
input:
code: |
// Touch events without fallback
element.addEventListener('touchstart', handler);
// Fixed positioning issues on iOS
.modal {
position: fixed;
bottom: 0;
}
// Viewport units with address bar
.full-height {
height: 100vh;
}
context:
language: javascript
platforms: ["ios", "android"]
expected_output:
must_contain:
- "mobile"
- "touch"
- "viewport"
validation:
schema_check: true
# -------------------------------------------------------------------------
# Responsive Breakpoint Tests
# -------------------------------------------------------------------------
- id: tc005_responsive_breakpoints
description: "Validate responsive design across breakpoints"
category: responsive
priority: high
input:
code: |
@media (max-width: 320px) {
.nav { display: none; }
}
@media (min-width: 768px) {
.sidebar { display: block; }
}
@media (min-width: 1200px) {
.container { max-width: 1140px; }
}
context:
language: css
breakpoints: [320, 480, 768, 1024, 1200, 1920]
expected_output:
must_contain:
- "breakpoint"
- "mobile"
- "responsive"
must_not_contain:
- "all breakpoints pass"
validation:
schema_check: true
keyword_match_threshold: 0.8
# -------------------------------------------------------------------------
# Visual Consistency Tests
# -------------------------------------------------------------------------
- id: tc006_visual_differences
description: "Detect visual differences across platforms"
category: visual
priority: medium
input:
prompt: |
Compare visual rendering of the following component across browsers:
- Chrome (Windows): Button renders with 4px border-radius
- Firefox (Windows): Button renders with 4px border-radius
- Safari (macOS): Button renders with 6px border-radius (native styling)
- Edge (Windows): Button renders with 4px border-radius
context:
test_type: visual_comparison
threshold: 0.02
expected_output:
must_contain:
- "visual"
- "difference"
- "Safari"
finding_count:
min: 1
validation:
schema_check: true
# -------------------------------------------------------------------------
# JavaScript Compatibility Tests
# -------------------------------------------------------------------------
- id: tc007_javascript_features
description: "Detect JavaScript feature compatibility issues"
category: javascript
priority: high
input:
code: |
// Optional chaining - not supported in older browsers
const value = obj?.nested?.property;
// Nullish coalescing
const result = value ?? 'default';
// Array.flat() - ES2019
const flat = nested.flat(2);
// BigInt - limited support
const big = 9007199254740991n;
context:
language: javascript
target_browsers: ["chrome-80", "firefox-75", "safari-13", "ie11"]
expected_output:
must_contain:
- "JavaScript"
- "compatibility"
- "ES"
finding_count:
min: 2
validation:
schema_check: true
keyword_match_threshold: 0.8
# -------------------------------------------------------------------------
# Negative Tests
# -------------------------------------------------------------------------
- id: tc010_no_issues_modern_code
description: "Modern browsers should pass with standard code"
category: negative
priority: high
input:
code: |
.container {
display: flex;
justify-content: center;
align-items: center;
}
.button {
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
}
context:
language: css
target_browsers: ["chrome-latest", "firefox-latest", "safari-latest"]
expected_output:
must_contain:
- "compatible"
must_not_contain:
- "critical"
- "breaking"
finding_count:
max: 1
validation:
schema_check: true
# -------------------------------------------------------------------------
# Edge Cases
# -------------------------------------------------------------------------
- id: tc011_mixed_platform_issues
description: "Handle issues affecting multiple but not all platforms"
category: edge_cases
priority: medium
input:
prompt: |
Analyze this scenario:
- Feature works on Chrome, Firefox, Edge
- Feature partially works on Safari desktop
- Feature fails on Safari iOS
- Feature not tested on Opera
context:
test_type: cross_platform
expected_output:
must_contain:
- "Safari"
- "partial"
- "platform"
validation:
schema_check: true
allow_partial: true
# =============================================================================
# Success Criteria
# =============================================================================
success_criteria:
pass_rate: 0.90
critical_pass_rate: 1.0
avg_reasoning_quality: 0.70
max_execution_time_ms: 300000
cross_model_variance: 0.15
# =============================================================================
# Metadata
# =============================================================================
metadata:
author: "@aqe-team"
created: "2026-02-02"
last_updated: "2026-02-02"
coverage_target: "Browser matrix, device tiers, responsive breakpoints, visual consistency"
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://agentic-qe.dev/schemas/compatibility-testing-output.json",
"title": "AQE Compatibility Testing Skill Output Schema",
"description": "Schema for cross-browser, cross-platform, and cross-device compatibility testing output. Extends base skill output template with browser matrix, device coverage, and visual consistency fields.",
"type": "object",
"required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
"properties": {
"skillName": {
"type": "string",
"const": "compatibility-testing",
"description": "Skill identifier"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$",
"description": "Semantic version of the skill"
},
"timestamp": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?$",
"description": "ISO 8601 timestamp of test execution"
},
"status": {
"type": "string",
"enum": ["success", "partial", "failed", "skipped"],
"description": "Overall execution status"
},
"trustTier": {
"type": "integer",
"const": 3,
"description": "Trust tier 3: has schema, validator, and eval suite"
},
"output": {
"type": "object",
"required": ["summary", "browserMatrix", "deviceCoverage", "metrics"],
"properties": {
"summary": {
"type": "string",
"minLength": 10,
"maxLength": 2000,
"description": "Human-readable summary of compatibility test results"
},
"score": {
"$ref": "#/$defs/compatibilityScore",
"description": "Overall compatibility score"
},
"browserMatrix": {
"$ref": "#/$defs/browserMatrix",
"description": "Browser coverage and results matrix"
},
"deviceCoverage": {
"$ref": "#/$defs/deviceCoverage",
"description": "Device coverage breakdown by tier"
},
"platformResults": {
"type": "array",
"items": {
"$ref": "#/$defs/platformResult"
},
"maxItems": 100,
"description": "Results by platform/browser/device combination"
},
"findings": {
"type": "array",
"items": {
"$ref": "#/$defs/compatibilityFinding"
},
"maxItems": 500,
"description": "Compatibility issues discovered"
},
"recommendations": {
"type": "array",
"items": {
"$ref": "#/$defs/recommendation"
},
"maxItems": 100,
"description": "Recommendations for improving compatibility"
},
"metrics": {
"$ref": "#/$defs/compatibilityMetrics",
"description": "Quantitative compatibility metrics"
},
"artifacts": {
"type": "array",
"items": {
"$ref": "#/$defs/artifact"
},
"maxItems": 50,
"description": "Generated artifacts (screenshots, reports)"
},
"responsiveBreakpoints": {
"type": "array",
"items": {
"$ref": "#/$defs/breakpointResult"
},
"description": "Results by responsive breakpoint"
},
"visualDifferences": {
"type": "array",
"items": {
"$ref": "#/$defs/visualDifference"
},
"description": "Cross-platform visual differences detected"
}
}
},
"metadata": {
"type": "object",
"properties": {
"executionTimeMs": {
"type": "integer",
"minimum": 0,
"description": "Execution time in milliseconds"
},
"toolsUsed": {
"type": "array",
"items": {
"type": "string",
"enum": ["playwright", "browserstack", "saucelabs", "lambdatest", "percy", "cypress", "selenium"]
},
"description": "Testing tools used"
},
"agentId": {
"type": "string",
"pattern": "^qe-[a-z][a-z0-9-]*$",
"description": "Agent that executed the test"
},
"targetUrl": {
"type": "string",
"pattern": "^https?://",
"description": "URL tested"
},
"totalCombinations": {
"type": "integer",
"minimum": 1,
"description": "Total browser/device combinations tested"
}
}
},
"validation": {
"type": "object",
"properties": {
"schemaValid": { "type": "boolean" },
"contentValid": { "type": "boolean" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"warnings": { "type": "array", "items": { "type": "string" } },
"errors": { "type": "array", "items": { "type": "string" } }
}
},
"learning": {
"type": "object",
"properties": {
"patternsDetected": {
"type": "array",
"items": { "type": "string" },
"description": "Compatibility patterns detected"
},
"reward": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Learning reward signal"
}
}
}
},
"$defs": {
"compatibilityScore": {
"type": "object",
"required": ["value", "max"],
"properties": {
"value": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Compatibility score (0-100)"
},
"max": {
"type": "number",
"const": 100
},
"grade": {
"type": "string",
"pattern": "^[A-F][+-]?$",
"description": "Letter grade"
},
"userCoveragePercent": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Percentage of user base covered by passing platforms"
},
"trend": {
"type": "string",
"enum": ["improving", "stable", "declining", "unknown"]
}
}
},
"browserMatrix": {
"type": "object",
"required": ["browsers"],
"properties": {
"browsers": {
"type": "array",
"items": {
"$ref": "#/$defs/browserEntry"
},
"minItems": 1,
"description": "Browser test results"
},
"coveragePercent": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Browser market share covered"
}
}
},
"browserEntry": {
"type": "object",
"required": ["browser", "status"],
"properties": {
"browser": {
"type": "string",
"enum": ["chrome", "firefox", "safari", "edge", "opera", "mobile-chrome", "mobile-safari", "samsung-internet"],
"description": "Browser name"
},
"version": {
"type": "string",
"description": "Browser version (e.g., '118.0', 'latest')"
},
"status": {
"type": "string",
"enum": ["passed", "failed", "partial", "skipped"],
"description": "Test status"
},
"issueCount": {
"type": "integer",
"minimum": 0,
"description": "Number of issues found"
},
"marketShare": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Browser market share percentage"
}
}
},
"deviceCoverage": {
"type": "object",
"properties": {
"tier1": {
"$ref": "#/$defs/tierCoverage",
"description": "Tier 1 devices (60% of users)"
},
"tier2": {
"$ref": "#/$defs/tierCoverage",
"description": "Tier 2 devices (30% of users)"
},
"tier3": {
"$ref": "#/$defs/tierCoverage",
"description": "Tier 3 devices (10% of users)"
},
"totalDevicesTested": {
"type": "integer",
"minimum": 0,
"description": "Total unique devices tested"
}
}
},
"tierCoverage": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": { "type": "string" },
"description": "Device names in this tier"
},
"passRate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Pass rate percentage"
},
"tested": {
"type": "integer",
"minimum": 0
},
"passed": {
"type": "integer",
"minimum": 0
}
}
},
"platformResult": {
"type": "object",
"required": ["platform", "browser", "status"],
"properties": {
"platform": {
"type": "string",
"enum": ["windows", "macos", "linux", "ios", "android"],
"description": "Operating system"
},
"platformVersion": {
"type": "string",
"description": "OS version"
},
"browser": {
"type": "string",
"description": "Browser name"
},
"browserVersion": {
"type": "string",
"description": "Browser version"
},
"device": {
"type": "string",
"description": "Device name (for mobile)"
},
"status": {
"type": "string",
"enum": ["passed", "failed", "partial", "skipped"]
},
"executionTimeMs": {
"type": "integer",
"minimum": 0
},
"screenshotPath": {
"type": "string",
"description": "Path to screenshot"
},
"issues": {
"type": "array",
"items": { "type": "string" },
"description": "Issue IDs found on this platform"
}
}
},
"compatibilityFinding": {
"type": "object",
"required": ["id", "title", "severity", "category"],
"properties": {
"id": {
"type": "string",
"pattern": "^COMPAT-\\d{3,6}$",
"description": "Unique finding identifier"
},
"title": {
"type": "string",
"minLength": 5,
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 2000
},
"severity": {
"type": "string",
"enum": ["critical", "high", "medium", "low", "info"]
},
"category": {
"type": "string",
"enum": ["layout", "rendering", "functionality", "performance", "visual", "javascript", "css", "responsive"],
"description": "Issue category"
},
"affectedPlatforms": {
"type": "array",
"items": { "type": "string" },
"description": "Platforms where issue occurs"
},
"workingPlatforms": {
"type": "array",
"items": { "type": "string" },
"description": "Platforms where it works correctly"
},
"remediation": {
"type": "string",
"description": "How to fix this issue"
},
"evidence": {
"type": "string",
"description": "Screenshot path or code snippet"
},
"userImpactPercent": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Percentage of users affected"
}
}
},
"recommendation": {
"type": "object",
"required": ["id", "title", "priority"],
"properties": {
"id": {
"type": "string",
"pattern": "^REC-\\d{3,6}$"
},
"title": {
"type": "string",
"minLength": 5,
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 2000
},
"priority": {
"type": "string",
"enum": ["critical", "high", "medium", "low"]
},
"effort": {
"type": "string",
"enum": ["trivial", "low", "medium", "high", "major"]
},
"relatedFindings": {
"type": "array",
"items": { "type": "string" }
}
}
},
"compatibilityMetrics": {
"type": "object",
"properties": {
"totalCombinations": {
"type": "integer",
"minimum": 0,
"description": "Total platform combinations tested"
},
"passed": {
"type": "integer",
"minimum": 0
},
"failed": {
"type": "integer",
"minimum": 0
},
"skipped": {
"type": "integer",
"minimum": 0
},
"passRate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Overall pass rate percentage"
},
"userCoverage": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "User base coverage percentage"
},
"browsersCovered": {
"type": "integer",
"minimum": 0
},
"devicesCovered": {
"type": "integer",
"minimum": 0
},
"criticalIssues": {
"type": "integer",
"minimum": 0
},
"duration": {
"type": "integer",
"minimum": 0,
"description": "Total test duration in milliseconds"
}
}
},
"breakpointResult": {
"type": "object",
"required": ["breakpoint", "width", "status"],
"properties": {
"breakpoint": {
"type": "string",
"enum": ["mobile", "tablet", "desktop", "large-desktop"],
"description": "Breakpoint category"
},
"width": {
"type": "integer",
"minimum": 1,
"description": "Screen width in pixels"
},
"status": {
"type": "string",
"enum": ["passed", "failed", "partial"]
},
"issues": {
"type": "array",
"items": { "type": "string" }
}
}
},
"visualDifference": {
"type": "object",
"required": ["platform1", "platform2", "diffPercent"],
"properties": {
"platform1": {
"type": "string",
"description": "First platform"
},
"platform2": {
"type": "string",
"description": "Second platform"
},
"diffPercent": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Visual difference percentage"
},
"diffImagePath": {
"type": "string",
"description": "Path to diff image"
},
"significant": {
"type": "boolean",
"description": "Whether difference is significant"
}
}
},
"artifact": {
"type": "object",
"required": ["type", "path"],
"properties": {
"type": {
"type": "string",
"enum": ["report", "screenshot", "diff", "video", "log", "data"]
},
"path": {
"type": "string",
"maxLength": 500
},
"format": {
"type": "string",
"enum": ["json", "html", "md", "png", "jpg", "webm", "mp4", "txt", "csv"]
},
"description": {
"type": "string",
"maxLength": 500
}
}
}
}
}
{
"skillName": "compatibility-testing",
"skillVersion": "1.0.0",
"requiredTools": [
"jq"
],
"optionalTools": [
"playwright",
"browserstack",
"ajv",
"jsonschema",
"python3"
],
"schemaPath": "schemas/output.json",
"requiredFields": [
"skillName",
"status",
"output",
"output.browserMatrix",
"output.deviceCoverage",
"output.metrics"
],
"requiredNonEmptyFields": [
"output.summary",
"output.browserMatrix"
],
"mustContainTerms": [
"browser",
"compatibility"
],
"mustNotContainTerms": [
"TODO",
"placeholder",
"FIXME"
],
"enumValidations": {
".status": [
"success",
"partial",
"failed",
"skipped"
]
}
}
Related skills
How it compares
Choose compatibility-testing over unit-test skills when the release gate is cross-browser UI consistency and visual diffs rather than isolated function correctness.
FAQ
What does compatibility-testing evaluate?
compatibility-testing is the Agentic QE evaluation suite at version 1.0.0 for cross-browser and cross-platform testing. The skill evaluates browser matrix coverage, device tier validation, responsive breakpoints, and visual difference detection before release.
Does compatibility-testing support multiple AI models?
compatibility-testing includes multi-model configuration in its evaluation suite, allowing validation of compatibility test quality across different AI model outputs. The skill targets AI-generated code and interface consistency before shipping.
Is Compatibility Testing safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.