Synthèse automatique
Ce skill exécute des tests end-to-end sur un WordPress local selon deux niveaux : un smoke test basique d'un scénario principal, ou une suite étendue d'acceptation et de régression.
Points forts
- Sépare clairement un tier « basic » rapide (un seul scénario heureux) d'un tier « extended » plus complet, adapté à une fenêtre d'exécution d'agent de planification.
- Fournit des recettes concrètes : curl sur admin-ajax.php et en-têtes de cache, ou séquence Playwright MCP (login, navigation, snapshot).
- Table anti-rationalisation qui interdit les échappatoires classiques (« l'environnement n'est probablement pas lancé », « le code me semble correct »).
- Format de rapport JSON normalisé avec PASS/FAIL/SKIP, et un SKIP explicite qui ne bloque pas le pipeline quand le boot échoue.
Limites
- Fortement lié à un contexte précis : le dépôt wp-media/imagify-plugin et une URL locale http://localhost:8888, avec des valeurs injectées par l'orchestrateur.
- Dépend de Playwright MCP et d'un script de démarrage bin/dev-start.sh disponibles dans l'environnement.
- Le tier extended est délégué à un sous-agent e2e-qa-tester dont le détail de procédure n'est pas décrit dans ce fichier.
À utiliser lorsqu'un agent doit vérifier le comportement réel de l'environnement WordPress avant d'écrire une spec, ou valider un scénario principal après un changement.
À éviter sur un projet qui n'est pas ce plugin WordPress ou dans un environnement sans Playwright MCP ni script de démarrage local.
Analyse de sécurité
SûrThe skill instructs the use of bash scripts, curl, and Playwright for legitimate end-to-end testing against a local WordPress environment. It includes hardcoded admin credentials for a local dev setup and modifies repository files (committing test specs) only in a controlled CI context. No destructive, exfiltration, obfuscation, or safety-disabling actions are present. The use of network tools is for testing purposes and does not pose a meaningful execution risk.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Before writing the spec for the Imagify settings change, boot the local environment and smoke-test the current settings page with Playwright MCP — confirm the existing toggle is present and there are no JS console errors. Report PASS/FAIL/SKIP.Run a basic-tier E2E check: boot the environment with bin/dev-start.sh, then curl the admin-ajax.php endpoint for this action and tell me what it returns for the scenario in the issue.This change is backend-only. Still run the basic E2E tier: verify the primary happy path against http://localhost:8888 and give me the JSON report with the confirming assertion.name: e2e description: Run E2E smoke tests (basic) or full acceptance + regression suite (extended).
E2E SKILL
Config loading
The following values are injected via the orchestrator prompt — do not read any config file:
{TEMP_ROOT}=.ai{REPO}=wp-media/imagify-plugin{E2E_URL}=http://localhost:8888{E2E_BOOT}=bash bin/dev-start.sh{E2E_SETTINGS}=http://localhost:8888/wp-admin/options-general.php?page=imagify{E2E_CI}=true
This skill provides end-to-end test execution at two tiers. The tooling is the same (Playwright MCP + curl); the difference is scope and depth.
The local WordPress environment is at {E2E_URL} (admin / password). Boot
or restart it with {E2E_BOOT}.
Tier 1 — Basic
Purpose: behavioral verification and smoke tests. Fast enough to fit inside a planning agent's execution window.
Invokers:
grooming-agent— verify behavioral assumptions about the current system before writing the spec. Use to confirm: does the current feature behave as described in the issue? What does the current API or AJAX endpoint return for the scenario being changed?
Anti-rationalization table
| You'll be tempted to say | Why you can't |
|---|---|
| "The environment probably isn't up, I'll skip" | Run {E2E_BOOT}. It's idempotent. If it fails, log SKIP with the reason — do not silently omit the step. |
| "The change is backend-only, no need to smoke it" | The primary happy path must be verified. A backend change with no observable behavior change still needs a confirming assertion. |
| "I already read the code, I know it works" | "Seems right" never closes a task. Run the scenario. |
| "One scenario is too slow for this stage" | Basic tier is exactly one primary scenario. The cost is acceptable. |
Basic tier process
-
Boot the environment (idempotent — safe to run if already up):
{E2E_BOOT}If the script exits non-zero, set
status: "SKIP", note the reason, and do not block the pipeline. -
Run the primary happy path scenario from the spec or grooming plan.
Backend / AJAX / REST:
# Public REST or AJAX curl -s -X POST {E2E_URL}/wp-admin/admin-ajax.php \ -H "Cookie: $(cat .wp-session-cookie 2>/dev/null)" \ -d 'action=<action>&nonce=...' # Cache headers curl -sI {E2E_URL}/ | grep -E '(x-cache|cf-cache)'Browser (settings page, dashboard notices, interactive UI): Use the Playwright MCP directly for basic-tier smoke. Do not delegate to
e2e-qa-testerat this tier (that is the extended tier path):mcp__playwright__navigate({ url: "{E2E_URL}/wp-login.php" }) # login mcp__playwright__fill({ selector: "#user_login", value: "admin" }) mcp__playwright__fill({ selector: "#user_pass", value: "password" }) mcp__playwright__click({ selector: "#wp-submit" }) # primary scenario mcp__playwright__navigate({ url: "{E2E_SETTINGS}" }) mcp__playwright__snapshot({}) # Inspect snapshot output to confirm expected element/text is presentTake at most 1–2 screenshots if helpful, but do not publish them at this tier.
-
Report:
{ "status": "PASS|FAIL|SKIP", "scenarios_tested": ["Settings page loads without errors after enabling X option"], "details": "Logged in as admin, navigated to {E2E_SETTINGS}, confirmed no JS console errors and X toggle present" }SKIP:{E2E_BOOT}failed or environment unreachable. Record reason. Do not block the pipeline.
Basic tier boundaries
- Do: verify the one primary scenario from the spec or grooming plan
- Do: probe current-system behavior (grooming-agent only) when an assumption needs verification
- Do not: cover all acceptance criteria (that is extended tier)
- Do not: write or commit Playwright specs (that is extended tier via
e2e-qa-tester) - Do not: publish screenshots (that is extended tier)
Tier 2 — Extended
Purpose: full acceptance criteria coverage, regression testing, edge cases, visual comparison, and Playwright spec authoring with screenshot evidence.
Invoker: qa-engineer only.
Execution: the qa-engineer agent delegates browser flows to the e2e-qa-tester
sub-agent, which handles Playwright MCP driving, temporary spec authoring under
.e2e-temp/, screenshot publishing via the commit-SHA method, and clean-up.
The qa-engineer agent itself handles:
- Strategy A (API / functional validation via curl)
- Strategy C (test-suite-only fallback when the environment is unreachable)
For details, read:
.claude/agents/qa-engineer.md— strategy selection and report format.claude/agents/e2e-qa-tester.md— browser flow execution, spec authoring, screenshot publishing
The extended tier writes Playwright specs to .e2e-temp/ (gitignored, never committed when {E2E_CI} is false).
Because {E2E_CI} is true for this project, e2e-qa-tester will commit spec files to the permanent suite under Tests/e2e/specs/ rather than delete them.
Screenshots go to .e2e-screenshots/ (gitignored). Screenshots are published using the commit-SHA method: commit screenshots temporarily to the branch, push, capture the SHA, then remove them in a follow-up commit. Use the SHA-based raw.githubusercontent.com URL in QA reports (permanent even after file removal):
https://raw.githubusercontent.com/wp-media/imagify-plugin/<SHA>/.e2e-screenshots/<filename>
When to use which tier
| Invoker | Tier | Purpose |
|---|---|---|
| grooming-agent | Basic | Verify a behavioral assumption before writing the spec |
| qa-engineer | Extended | Full acceptance criteria + regression + screenshots |
Project-specific notes
-
The boot script
{E2E_BOOT}is idempotent. Always run it before testing — don't pre-check whether the environment is up. -
Admin credentials:
admin/password. -
Settings page URL:
{E2E_SETTINGS}. -
Plugin activation check:
npx @wordpress/env run cli wp plugin list --name=imagify -
Playwright config:
Tests/e2e/playwright.config.ts. Test specs:Tests/e2e/specs/. Page objects:Tests/e2e/pages/. Fixtures:Tests/e2e/fixtures/. -
Page Object Model files:
Tests/e2e/pages/settings.ts→SettingsPageTests/e2e/pages/bulk-optimization.ts→BulkOptimizationPageTests/e2e/pages/media-library.ts→MediaLibraryPage
-
API-key-gated tests require
IMAGIFY_TESTS_API_KEYto be set (sourced from.env.local):test.skip( ! process.env.IMAGIFY_TESTS_API_KEY, 'IMAGIFY_TESTS_API_KEY not set' ); -
Run the full E2E suite via:
bash bin/test-e2e.sh(flags:--headed,--ui, or a spec pattern). -
The basic tier never writes Playwright spec files and is invoked by grooming-agent only. Implementation agents (backend-agent, frontend-agent) do not invoke the e2e skill — full E2E validation belongs to the qa-engineer + e2e-qa-tester tier.
-
Known admin routes:
| Area | URL | |---|---| | Settings |
/wp-admin/options-general.php?page=imagify| | Bulk optimization |/wp-admin/upload.php?page=imagify-bulk-optimization| | Custom folders (Files) |/wp-admin/upload.php?page=imagify-files| | Media library (list) |/wp-admin/upload.php?mode=list|
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/e2e-testing-mryiqigv/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/e2e-testing-mryiqigv' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/e2e-testing-mryiqigv/download' --output '.skill-downloads/e2e-testing-mryiqigv/SKILL.md.part' && mv '.skill-downloads/e2e-testing-mryiqigv/SKILL.md.part' '.skill-downloads/e2e-testing-mryiqigv/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/e2e-testing-mryiqigv/SKILL.md' && test -s '.skill-downloads/e2e-testing-mryiqigv/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/e2e' && cp -R '.skill-downloads/e2e-testing-mryiqigv' '.claude/skills/e2e'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/e2e-testing-mryiqigv'openskills read 'e2e-testing-mryiqigv'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/e2e-testing-mryiqigv/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Comparaison de performances ClickHouse
Testing
Évaluez les résultats de tests de performance ClickHouse, analysez les régressions de PR, comparez avec l'historique et vérifiez la fiabilité des mesures.
Analyse des rapports de performance CI
Testing
Analyse les rapports de comparaison de performance CI pour une PR ClickHouse. Recoupe l'historique master pour distinguer les vraies régressions des tests instables.
Méthode Santa
Testing
Vérification adversarial multi-agents avec deux réviseurs indépendants. La sortie est vérifiée deux fois et corrigée itérativement jusqu'à ce que les deux acceptent avant publication.