Skip to content
← Processus

Trier et router les bugs

Un rapport entrant est lu, comparé aux tickets ouverts pour repérer les doublons, puis classé sur le board de la bonne équipe avec sa sévérité.

Linear→Slack
Démarre
Nouveau rapport de bug
Étapes
5
Contrôles et conditions
0
Une personne décide
Jamais, tourne seul

Déclencheur · Événement

Nouveau rapport de bug

Chaque rapport entrant déclenche l'exécution dès son arrivée, si bien que le triage se fait en quelques minutes plutôt qu'au prochain passage.

Linear

Claude exécute la suite en autonomie

  1. 1

    Signaler ce que le rapport n'a pas dit

    Symptôme, étapes de reproduction, environnement, fréquence et impact sont extraits, et tout ce que le rapport n'a pas fourni est signalé comme manquant.

  2. 2

    Titrer le ticket sur le symptôme

    Le ticket est titré sur ce qui a été observé, et la cause supposée par le rapporteur reste dans le corps, attribuée à lui.

  3. 3

    Repérer les doublons et les régressions

    Linear

    Linear

    Un rapport correspondant à un ticket ouvert ou récemment fermé y est ajouté plutôt que reclassé, et une correspondance sur un ticket fermé compte comme une régression.

  4. 4

    Fixer la sévérité selon l'impact décrit

    Chaque ticket reçoit une bande de sévérité selon l'impact décrit plutôt que le ton, relevée quand plusieurs comptes le signalent ou qu'il s'agit d'une régression.

  5. 5

    Classer sur le board de l'équipe concernée

    Linear

    Linear

    Le ticket atterrit sur le board de l'équipe qui possède la zone, avec tout doute sur la responsabilité signalé dessus plutôt que laissé dans une file de triage.

    Slack

    Slack

Le triage est un travail facile à mal faire et invisible quand il est bien fait. Un rapport arrive, quelqu'un le survole, le classe là où ça semble raisonnable, et lui donne une sévérité fondée surtout sur le ton du rapporteur. Deux semaines plus tard, le même bug a trois tickets ouverts sur deux boards, dont une régression que personne n'a repérée parce qu'elle correspondait à un ticket fermé que personne n'a cherché.

Presque rien de tout cela ne demande de jugement produit. Extraire un symptôme, chercher une correspondance existante, décider d'une bande à partir de l'impact décrit, et faire correspondre une zone à l'équipe qui la possède sont des tâches mécaniques, et les faire de façon constante sur 200 rapports par semaine est exactement le point où les humains cessent d'être constants. Cette constance est l'argument pour faire tourner le triage de bugs avec un agent IA : chaque rapport reçoit les cinq mêmes vérifications dès son arrivée.

What you get

Every report lands on the owning team's board within minutes, deduplicated against what is already open, with a severity that reflects what the reporter actually described.

Ce que le triage de bugs par IA extrait d'un rapport

Chaque rapport est lu dès son arrivée, et cinq éléments en sont extraits, dans les mots du rapporteur quand c'est possible : le symptôme, les étapes de reproduction, l'environnement (navigateur, appareil, version, compte), la fréquence, et l'impact, c'est-à-dire si le rapporteur est bloqué ou contourne le problème.

Tout ce que le rapport n'a pas fourni est signalé comme manquant. Un rapport sans étapes de reproduction vaut quand même la peine d'être classé, mais il doit le signaler visiblement, car « impossible à reproduire » et « jamais reçu la méthode » mènent à des décisions opposées quand quelqu'un envisage plus tard de fermer le ticket.

Le symptôme va dans le titre, jamais le diagnostic du rapporteur. Les gens fournissent une cause avec leur rapport, et cette cause est souvent fausse : « le cache est cassé donc mon tableau de bord est vide » est une observation et une supposition. Un titre qui affirme la supposition envoie le ticket directement à l'équipe qui possède ce qui est supposé, où il est fermé à juste titre comme n'étant pas un bug, pendant que le vrai problème reste ouvert. La supposition va dans le corps avec le nom du rapporteur attaché, et le ticket atterrit là où pointe le symptôme.

Repérer les doublons et les régressions

Le tracker, Linear ici, est cherché sur le symptôme, en comparant le fond plutôt que la formulation : d'abord les tickets ouverts, puis ceux récemment fermés. Un rapport qui existe déjà devient un commentaire sur le ticket existant, avec les détails et le rapporteur du nouveau rapport, et la réponse indique qu'il a été rattaché.

Chercher dans les tickets fermés est l'étape qui se rentabilise. Un rapport correspondant à un ticket fermé la semaine dernière est une régression : le correctif n'a pas tenu, ou il a tenu et autre chose l'a cassé. Traité comme un nouveau bug, il repart en fin de file sans historique, et la personne qui l'a corrigé la première fois ne l'apprend jamais. Une requête de plus change ce résultat, et la régression est traitée comme plus urgente qu'un nouveau bug.

Fixer la sévérité selon l'impact et classer sur le bon board

La sévérité vient de ce qui a été décrit, jamais du ton du rapporteur. Un rapport furieux sur un défaut d'alignement cosmétique n'est pas urgent, et une note polie sur des exports corrompus l'est. Les bandes suivent l'impact :

  • bloqué sans contournement possible, ou données perdues ou affichées de façon erronée — bande la plus haute ;
  • un contournement à répéter à chaque fois — bande suivante ;
  • cosmétique, ou touchant une configuration inhabituelle — bande la plus basse.

Deux faits font monter la bande : le nombre de comptes ayant signalé la même chose, et le fait qu'il s'agisse ou non d'une régression.

Le ticket est ensuite classé sur le board de l'équipe qui possède la zone concernée. Quand la responsabilité est ambiguë, il va sur le board le plus probable avec le doute signalé sur le ticket lui-même. Un ticket laissé sans affectation dans une file de triage en attente d'une décision de routage est la façon la plus courante pour un vrai bug de s'enliser.

Seule la bande la plus haute est aussi postée sur Slack. Router chaque rapport de routine vers le chat apprend à l'équipe que le canal est du bruit de fond, et l'alerte qui avait vraiment besoin d'une réponse en dix minutes reçoit le même traitement que le bouton mal aligné de mardi.

The prompt

The real prompt behind the steps above, detailed enough that an agent with the same tools can run it as written. The Run buttons copy the full version, which also carries the steps for connecting those tools.

# Triage and route bug reports

You have access to an issue tracker and a messaging tool. Run this on
**[each incoming bug report]**.


## 1. Label what the report leaves out

Extract, in the reporter's own words where possible:

- The symptom. What happened, not what they think caused it.
- Reproduction steps, if given.
- Environment: browser, device, version, account.
- Frequency: once, intermittent, or every time.
- Impact: blocked entirely, or working around it.

Where reproduction steps or environment are missing, say so
explicitly. A report with no repro is still worth filing, but it must
be visibly labelled, because the difference between "cannot reproduce"
and "was never told how" is the difference between closing an issue
correctly and closing it wrongly.

## 2. Title the issue on the symptom, not the diagnosis

Reporters routinely supply a cause along with the effect, and the
cause is frequently wrong. "The cache is broken so my dashboard is
empty" is one observation and one guess.

File the observation. Keep the guess in the body, attributed to the
reporter. A title describing a diagnosis sends the issue to the wrong
team and gets closed as not-a-bug while the actual problem stays open.

## 3. Catch duplicates and regressions

Search the tracker on the symptom, matching by substance rather than
by wording. Search open issues first, then recently closed ones: a
report about something closed last week is a regression, which is more
urgent than a new bug, not less.

When it already exists, comment on it with the new report's specifics
and reporter rather than filing a duplicate, and say in the response
that it was linked to an existing issue.

## 4. Set severity from stated impact, not tone

Severity comes from what was described, never from the reporter's
tone. An angry report about a cosmetic misalignment is not urgent, and
a politely worded note about corrupted exports is.

- Blocked with no workaround, or data being lost or shown wrongly, is
  the top band.
- A workaround exists but is performed repeatedly is the next.
- Cosmetic, or affecting one unusual configuration, is the lowest.

Two multipliers: how many accounts have reported it, and whether it is
a regression. Both should raise the band, and both are facts rather
than judgements.

## 5. File it on the owning team's board

Map the affected surface to the board that owns it. Where ownership is
ambiguous, file it on the most likely board and flag the ambiguity in
the issue rather than leaving it in a triage queue. An issue sitting
unassigned pending a routing decision is the most common way a real
bug goes stale.

Post to the channel only for the top severity band. Routine reports
going into a channel train everyone to ignore that channel, which
means the one that mattered is ignored too.

## Output

Report: reports triaged, matched to existing issues, regressions
identified, new issues created by board and severity, reports missing
repro steps, and the ones where ownership was ambiguous.

Pourquoi le faire tourner avec Tulina

Un prompt aide une personne. Un processus fait avancer une équipe.

Collé dans une conversation, le prompt ci-dessus marche une fois, pour celui qui l'a collé. Dans Tulina, « Trier et router les bugs » devient un processus que l'équipe partage, qui garde son historique, qui tourne seul, et qui reste dans le même périmètre de sécurité que les outils qu'il appelle.

  • Toute l'équipe travaille sur le même

    PersonnelÉquipeOrganisation

    Un processus se range à l'endroit qui lui correspond : à vous, à votre équipe ou à toute l'organisation. Celui qui l'exécute peut l'améliorer, et tout le monde repart de la meilleure version au lieu de réexpliquer le travail à chaque fois.

  • Chaque modification est une version

    v1v2v3

    Chaque changement crée une nouvelle version et garde la précédente ; une mauvaise modification se défait en restaurant une version antérieure. Chaque exécution enregistre la version qu'elle a suivie, et ce qu'elle a appris revient dans le processus.

  • Il tourne sans vous

    planifiéwebhookà la demande

    Un agent hébergé exécute le processus sur l'infrastructure de Tulina, à heure fixe ou quand un événement arrive, et continue quand vous fermez la conversation. Rien à héberger. Chaque exécution est suivie jusqu'à son résultat.

  • Dans le même périmètre de sécurité

    coffrerôlesjournal

    Les identifiants restent dans le coffre, jamais dans le prompt. Les rôles décident qui peut lancer quoi, chaque appel est journalisé, et une étape qu'une personne doit valider attend cette personne.

Questions sur le triage de bugs par IA

Oui. Un agent ayant accès au tracker peut lire chaque rapport dès son arrivée, en extraire le symptôme, les étapes de reproduction, l'environnement, la fréquence et l'impact, vérifier s'il existe déjà un ticket, fixer une bande de sévérité et le classer sur le board de l'équipe qui possède la zone concernée. Quand la responsabilité n'est pas claire, il le classe sur le board le plus probable et signale le doute sur le ticket plutôt que de le laisser dans une file de triage.

À partir de ce qui est décrit, jamais du ton employé. Un rapport furieux sur un bouton mal aligné reste dans la bande basse, et une note calme sur des exports contenant de mauvais chiffres monte dans la bande haute. Le nombre de personnes ayant signalé le même problème et le fait qu'il s'agisse d'une régression font monter la bande, car ce sont des faits, pas des impressions.

Oui, en cherchant dans le tracker sur le symptôme, en comparant le fond plutôt que la formulation, sur les tickets ouverts puis sur ceux récemment fermés. Une correspondance avec un ticket ouvert devient un commentaire portant les détails du nouveau rapport. Une correspondance avec un ticket fermé récemment est une régression, traitée comme plus urgente qu'un nouveau bug.

Elle le classe quand même, mais en le signalant visiblement comme incomplet sur ce point. Cela compte plus tard, car « impossible à reproduire » et « jamais reçu la méthode pour reproduire » mènent à des décisions opposées sur la fermeture du ticket.

D'autres processus qui tournent surtout sur Linear. Les outils partagés avec celui-ci sont allumés.

Découvrez Tulina en 30 minutes.

Réserver une démo