Synthèse automatique
Anime une session de QA interactive où l'utilisateur décrit ses bugs au fil de la conversation et où l'agent les transforme en tickets GitHub Issues ou Linear, un par un ou sous forme de décomposition liée par dépendances.
Points forts
- Clarification volontairement limitée à 2-3 questions courtes par problème, pour éviter l'interrogatoire et aller droit au ticket
- Exploration du code en arrière-plan (agent Explore) pour s'approprier le langage métier du projet sans citer de fichiers ni de lignes dans l'issue
- Arbitrage explicite entre ticket unique et décomposition en sous-issues avec liens « Blocked by » quand les symptômes sont indépendants
- Choix du tracker (Linear ou GitHub) fixé une seule fois en début de session, puis conservation pour tous les tickets
Limites
- N'applique aucun correctif et ne fait pas de triage d'un bug isolé : ces cas renvoient vers /triage-issue ou /dbg
- Dépend d'une intégration opérationnelle : CLI gh ou configuration cc-linear / LINEAR_TEAM_ID doivent être en place
- La qualité des tickets repose sur la description de l'utilisateur, volontairement peu relancée au-delà de quelques questions
À utiliser quand vous enchaînez une passe de QA avec plusieurs problèmes à signaler et voulez des tickets durables, rédigés dans le vocabulaire du domaine.
À éviter pour un bug unique à trier, pour déboguer de façon interactive, ou lorsque vous voulez que l'agent corrige directement le problème.
Analyse de sécurité
PrudenceThe skill is a well-scoped QA workflow with no destructive commands, no secret handling, and no obfuscated payloads. Its only meaningful risk is the explicit instruction to create external tracker issues via Bash/gh/cc-linear without prior user review, which yields irreversible public side effects — legitimate for its stated purpose but warranting a caution rating rather than fully safe.
- •Instructs the agent to file tracker issues without asking the user to review first ("Do NOT ask the user to review first — file and share URLs"), producing irreversible external side effects such as public GitHub/Linear issues before confirmation.
- •Relies on Bash plus network-backed CLIs (`gh issue create`, `/cc-linear`) to write to external systems, expanding the skill's blast radius beyond read-only exploration.
- •Delegates context gathering to a background Explore subagent and reads repo docs such as UBIQUITOUS_LANGUAGE.md; read-only but broadens the sweep of repository content processed.
- •References an external upstream URL (mattpocock/skills) for attribution only; no fetch or execution of remote content is requested.
Exemples
I want to do a QA pass on the checkout flow. First problem: when I apply a discount code the total doesn't update until I reload. Second: the confirmation email arrives with the wrong order number.Report bugs from this QA session: the signup form validation is wrong, the success message never shows, and the redirect after submit goes to a 404. File them as separate linked issues.Start a QA session for the Docker deployment layer — file everything via GitHub Issues, not Linear.name: qa description: >- Interactive QA session where the user reports bugs conversationally and the agent files them as tracker issues (GitHub or Linear) one by one or as a dependency-linked breakdown. Explores the codebase in the background for context and domain language. Use when user wants to "do QA", "report bugs", "file issues from a QA pass", or runs through multiple problems at once. NOT for single-bug triage (use /triage-issue) or interactive debug (/dbg). allowed-tools: [Read, Grep, Glob, Bash, Task, Skill, AskUserQuestion]
QA Session
Upstream: Adapted from mattpocock/skills/qa. Adapted to use this repo's
Exploreagent,cc-linear/ghintegration, andUBIQUITOUS_LANGUAGE.mdconvention.
Run an interactive QA session. The user describes problems they're encountering. You clarify lightly, explore the codebase for context, and file tracker issues that are durable, user-focused, and use the project's domain language. No fixes applied.
Pick the tracker once, at the start
Detect Linear (look for cc-linear config / LINEAR_TEAM_ID / Linear references in recent issues) vs GitHub Issues. If ambiguous, ask once: AskUserQuestion: "File via Linear or GitHub Issues for this session?" — then keep that choice for the whole session.
For each issue the user raises
1. Listen and lightly clarify
Let the user describe the problem in their own words. Ask at most 2-3 short clarifying questions:
- What they expected vs what actually happened
- Steps to reproduce (if not obvious)
- Whether it's consistent or intermittent
Do NOT over-interview. If the description is clear enough to file, move on.
2. Explore the codebase in the background
While the user describes the next issue, kick off an Agent (subagent_type=Explore) for the previous one. Goal is not to fix — it's to:
- Learn the domain language used in that area (cross-check with
product-docs/UBIQUITOUS_LANGUAGE.mdif it exists) - Understand what the feature is supposed to do
- Identify the user-facing behavior boundary
Context helps you write a better issue. The issue itself must NOT reference specific files, line numbers, or internal implementation details.
3. Assess scope: single issue or breakdown?
Before filing, decide whether this is a single issue or a breakdown into multiple issues.
Break down when:
- The fix spans multiple independent areas (e.g., "form validation is wrong AND success message is missing AND redirect is broken")
- There are clearly separable concerns that different people/agents could work on in parallel
- The user describes multiple distinct failure modes or symptoms
Keep as a single issue when:
- It's one behavior wrong in one place
- The symptoms all stem from the same root behavior
4. File the issue(s)
Use gh issue create or invoke /cc-linear (whichever was picked at the start). Do NOT ask the user to review first — file and share URLs.
Single-issue template
## What happened
[Actual behavior the user experienced, in plain language]
## What I expected
[Expected behavior]
## Steps to reproduce
1. [Concrete numbered steps a developer can follow]
2. [Use domain terms from UBIQUITOUS_LANGUAGE.md, not internal module names]
3. [Include relevant inputs, flags, or configuration]
## Additional context
[Extra observations from the user or from background exploration —
e.g. "this only happens in the Docker layer, not the filesystem layer".
Use domain language; do not cite files.]
Breakdown template (per sub-issue)
## Parent
#<parent-issue-number> (if a tracking issue was created) or "Reported during QA session"
## What's wrong
[This specific behavior problem — just this slice, not the whole report]
## What I expected
[Expected behavior for this slice]
## Steps to reproduce
1. [Steps specific to THIS issue]
## Blocked by
- #<issue-number> (if this issue can't be fixed until another is resolved)
Or "None — can start immediately" if no blockers.
## Additional context
[Observations relevant to this slice]
When creating a breakdown:
- Prefer many thin issues over few thick ones — each independently fixable and verifiable
- Mark blocking relationships honestly — if B genuinely can't be tested until A is fixed, say so. If they're independent, mark both as "None — can start immediately"
- Create issues in dependency order so you can reference real issue numbers in "Blocked by"
- Maximize parallelism — multiple people /
/siruns should be able to grab different issues simultaneously
5. Rules for all issue bodies
- No file paths or line numbers — they go stale
- Use the project's domain language (check
product-docs/UBIQUITOUS_LANGUAGE.mdif it exists) - Describe behaviors, not code — "the sync service fails to apply the patch", not "applyPatch() throws on line 42"
- Reproduction steps are mandatory — if you can't determine them, ask the user once
- Keep it concise — a developer should be able to read the issue in 30 seconds
After filing, print all issue URLs (with blocker relationships summarized) and ask: "Next issue, or are we done?"
6. Continue the session
Keep going until the user says they're done. Each issue is independent — don't batch them.
Distinction from sibling skills
| Skill | Mode | Output |
|---|---|---|
| /dbg | Interactive single-bug debug, may fix | Fixed bug or hypothesis |
| /triage-issue | Single bug → root cause + TDD plan, no fix | One tracker issue |
| /qa | Multiple bugs reported conversationally, no fix | Multiple tracker issues, possibly with blocker links |
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/qa-session-mrwak8zt/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/qa-session-mrwak8zt' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/qa-session-mrwak8zt/download' --output '.skill-downloads/qa-session-mrwak8zt/SKILL.md.part' && mv '.skill-downloads/qa-session-mrwak8zt/SKILL.md.part' '.skill-downloads/qa-session-mrwak8zt/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/qa-session-mrwak8zt/SKILL.md' && test -s '.skill-downloads/qa-session-mrwak8zt/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/qa-session-mrwak8zt' '.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/qa-session-mrwak8zt'openskills read 'qa-session-mrwak8zt'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/qa-session-mrwak8zt/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.