Synthèse automatique
Skill de QA adversariale qui écrit et exécute réellement des tests pour vérifier une implémentation terminée, en produisant des preuves plutôt que des opinions.
Points forts
- Exécute d'abord la suite de tests existante et impose de coller la sortie réelle, régressions en priorité
- Croise chaque critère d'acceptation avec un test existant dans un tableau de couverture COVERED/GAP
- Écrit du vrai code de test adversarial (nil/vide, valeurs limites, état manquant, appels répétés) au lieu de le décrire
- Interdit explicitement de fabriquer des résultats et de proposer des correctifs : le diagnostic reste séparé de l'implémentation
Limites
- La commande de test est codée en dur sur ~/bin/eldev etet, donc pensée pour un projet Emacs Lisp sous Eldev
- Suppose que les exigences et documents de conception se trouvent dans docs/plans/
- Ne corrige aucun bug : il signale les échecs avec reproduction, attendu et obtenu
À utiliser juste après avoir terminé une implémentation ou un lot de travail, pour vérifier la couverture des critères d'acceptation et casser le code avec des cas limites.
À éviter sur un projet non-Emacs Lisp sans adapter la commande de test, ou lorsque vous cherchez une correction automatique du code plutôt qu'un rapport de preuves.
Analyse de sécurité
PrudenceThe skill is a legitimate QA workflow and does not contain destructive, exfiltrating, or obfuscated instructions. However, it does instruct an agent to execute local test commands and write files in the repository, which are powerful actions requiring normal caution.
- •Runs local command `~/bin/eldev etest -r dot` without declared allowed-tools; this executes project test code and any eldev hooks.
- •Writes new test files into the repository, modifying the working tree without an explicit confirmation step.
- •Encourages adversarial tests that execute code and may trigger side effects in the project environment.
Exemples
Implementation of focus mode is done. Run /qa on it: read the requirements in docs/plans/, run the full test suite, and check acceptance criteria coverage.Use /qa to write adversarial tests for the calendar-visibility functions — nil args, empty lists, killed buffers mid-operation, and double calls — then run them and show the output./qa: audit the acceptance criteria for the sync feature against existing tests, write the missing tests for any gap, and report PASS/FAIL with actual eldev output.name: qa description: Use when implementation is complete and you want to verify quality through adversarial testing that writes code and provides evidence
/qa — Adversarial Testing
Overview
QA writes tests and runs them. It provides evidence, not opinions. Every claim is backed by a test or command output.
Core principle: Your job is to break things. Write code. Run it. Show evidence.
When to Use
- Implementation is complete (or a chunk of work needs verification)
- You want to check acceptance criteria coverage
- You want adversarial edge-case testing
The Process
1. Find Context
Look for requirements and design docs in docs/plans/. Read both to understand what was built and what was promised.
2. Run the Existing Test Suite
~/bin/eldev etest -r dot
Actually run it. Report exact output: how many tests, how many pass, how many fail. If any fail, report them immediately — existing regressions are priority one.
3. Check Acceptance Criteria Coverage
Read acceptance criteria from the requirements doc. For each criterion:
- Search for a test that exercises it (
Grepfor keywords) - Read the test — does it actually test what the criterion says?
- Report: covered or gap
| Criterion | Test | Status |
|-----------|------|--------|
| User can activate focus mode | focus-test.el:42 | COVERED |
| Calendar items always visible | (none found) | GAP |
4. Write Missing Tests
For each gap, write the test. Follow existing patterns in the codebase.
Run it. Report whether it passes or fails.
5. Write Adversarial Tests
Actively try to break things. Write actual test code, don't just describe it.
Target areas:
- Nil/empty inputs: What happens with nil arguments, empty strings, empty lists?
- Boundary values: 0, 1, max, min
- Missing state: Required properties absent, buffers killed mid-operation
- Invalid inputs: Wrong types, malformed data
- Repeated calls: What if the function is called twice in a row?
6. Run Everything and Report
~/bin/eldev etest -r dot
Report with evidence — actual test output, not fabricated numbers:
## QA Report
**Test Suite**: [paste actual eldev output]
### Acceptance Criteria Coverage
| Criterion | Test | Status |
|-----------|------|--------|
| ... | ... | ... |
### Tests Written
- [test name]: tests [what] — [PASS/FAIL]
### Failures Found
- [test name]: [what failed]
- **Reproduction**: [exact command or test invocation]
- **Expected**: [what should happen]
- **Actual**: [what happened]
Common Mistakes
| Mistake | Fix |
|---------|-----|
| Describing tests without writing code | WRITE the test. Create the file. Run it. |
| Fabricating test results | RUN the tests. Paste actual output. |
| Reporting opinions instead of evidence | Every claim needs a test or command output. |
| Suggesting implementation fixes | Report problems with evidence. Fixing is the implementer's job. |
| Categorizing tests instead of running them | Less taxonomy, more eldev etest. |
| Skipping the existing test suite | ALWAYS run the full suite first. Regressions are priority one. |
| Not checking requirements doc | Cross-reference acceptance criteria. That's what "done" means. |
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/adversarial-testing-qa-mrwak8kp/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/adversarial-testing-qa-mrwak8kp' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/adversarial-testing-qa-mrwak8kp/download' --output '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md.part' && mv '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md.part' '.skill-downloads/adversarial-testing-qa-mrwak8kp/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/adversarial-testing-qa-mrwak8kp/SKILL.md' && test -s '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/adversarial-testing-qa-mrwak8kp' '.claude/skills/qa'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/adversarial-testing-qa-mrwak8kp'openskills read 'adversarial-testing-qa-mrwak8kp'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/adversarial-testing-qa-mrwak8kp/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.