---
description: Bug resolution documentation and specification (ULTRATHINK)
agent: ba-bug
model: sonnet
---

# Documentation Bug - Business Analyse

> **Modèle:** Sonnet (analyse root cause)
> **Output:** `.business-analyse/.../tracking/bugs/BUG-XXX.md`

---

## QUAND UTILISER

```
╔══════════════════════════════════════════════════════════════════════════════╗
║  DOCUMENTATION BUG: Traçabilité et analyse structurée                        ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║  Utiliser cette commande pour:                                               ║
║  • Documenter un bug découvert après implémentation                          ║
║  • Analyser la root cause                                                    ║
║  • Créer un prompt de correction pour Claude                                 ║
║  • Maintenir la traçabilité vers les specs (FR/BR impactés)                  ║
║                                                                              ║
║  NE PAS utiliser pour:                                                       ║
║  • Hotfix urgent (utiliser /business-analyse:hotfix)                         ║
║  • Changement de scope (utiliser /business-analyse:change-request)           ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝
```

---

## STEP 1: Collecte des informations

```javascript
AskUserQuestion({
  questions: [
    {
      question: "Quelle feature est impactée par ce bug?",
      header: "Feature",
      options: [
        { label: "Feature existante", description: "Bug sur une feature documentée" },
        { label: "Nouvelle", description: "Bug sur code non documenté en BA" }
      ],
      multiSelect: false
    },
    {
      question: "Quelle est la sévérité du bug?",
      header: "Sévérité",
      options: [
        { label: "Critique", description: "Bloque l'utilisation, perte de données" },
        { label: "Majeur", description: "Fonctionnalité principale impactée" },
        { label: "Mineur", description: "Workaround possible" },
        { label: "Cosmétique", description: "UI/UX, pas d'impact fonctionnel" }
      ],
      multiSelect: false
    },
    {
      question: "Le bug est-il reproductible?",
      header: "Repro",
      options: [
        { label: "Toujours", description: "100% reproductible" },
        { label: "Souvent", description: ">50% du temps" },
        { label: "Parfois", description: "<50% du temps" },
        { label: "Rarement", description: "Difficile à reproduire" }
      ],
      multiSelect: false
    }
  ]
})
```

---

## STEP 2: Générer Bug ID

```bash
FEATURE_ID=$1  # Optionnel
DATE=$(date +%Y%m%d)

# Lire le dernier bug ID
LAST_BUG_ID=$(find .business-analyse -name "BUG-*.md" | grep -oP 'BUG-\K\d+' | sort -n | tail -1 || echo "0")
NEW_BUG_ID=$(printf "%03d" $((LAST_BUG_ID + 1)))
BUG_ID="BUG-$NEW_BUG_ID"

# Déterminer le dossier
if [ -n "$FEATURE_ID" ]; then
  FEATURE_DIR=$(find .business-analyse -type d -name "${FEATURE_ID}*" | head -1)
  BUG_DIR="$FEATURE_DIR/tracking/bugs"
else
  BUG_DIR=".business-analyse/tracking/bugs"
fi

mkdir -p "$BUG_DIR"
```

---

## STEP 3: Collecte détaillée

Demander à l'utilisateur:

1. **Description du bug** (comportement observé vs attendu)
2. **Étapes de reproduction**
3. **Environnement** (browser, OS, données de test)
4. **Screenshots/logs** si disponibles

---

## STEP 4: Analyse root cause

```
╔══════════════════════════════════════════════════════════════════════════════╗
║  ANALYSE ROOT CAUSE (5 WHYS)                                                 ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║  1. POURQUOI le bug se produit?                                              ║
║     → {réponse niveau 1}                                                     ║
║                                                                              ║
║  2. POURQUOI {réponse niveau 1}?                                             ║
║     → {réponse niveau 2}                                                     ║
║                                                                              ║
║  3. POURQUOI {réponse niveau 2}?                                             ║
║     → {réponse niveau 3}                                                     ║
║                                                                              ║
║  ... jusqu'à identifier la ROOT CAUSE                                        ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝
```

---

## STEP 5: Génération du document

### Template BUG-XXX.md

```markdown
# {BUG_ID} - {Bug Title}

> **Feature:** {FEATURE_ID} (si applicable)
> **Sévérité:** {Critique/Majeur/Mineur/Cosmétique}
> **Status:** Open
> **Date:** {YYYY-MM-DD}

---

## 1. Description

### Comportement observé
{Description précise de ce qui se passe}

### Comportement attendu
{Ce qui devrait se passer selon les specs}

### Impact
- Utilisateurs impactés: {qui}
- Fonctionnalité: {laquelle}
- Workaround: {existe/n'existe pas}

---

## 2. Reproduction

### Prérequis
- Environnement: {dev/staging/prod}
- Rôle utilisateur: {rôle}
- Données requises: {données de test}

### Étapes
1. {Étape 1}
2. {Étape 2}
3. {Étape 3}
4. → Bug observé

### Reproductibilité
{Toujours/Souvent/Parfois/Rarement}

---

## 3. Analyse

### 3.1 Root Cause Analysis (5 Whys)

| # | Question | Réponse |
|---|----------|---------|
| 1 | Pourquoi le bug se produit? | {réponse} |
| 2 | Pourquoi {réponse 1}? | {réponse} |
| 3 | Pourquoi {réponse 2}? | {réponse} |
| 4 | Pourquoi {réponse 3}? | {réponse} |
| 5 | Pourquoi {réponse 4}? | **ROOT CAUSE: {cause}** |

### 3.2 Specs impactées

| Type | ID | Description | Impact |
|------|----|----|--------|
| Règle métier | BR-XXX | {description} | {comment impacté} |
| Exigence | FR-XXX | {description} | {comment impacté} |
| Use Case | UC-XXX | {description} | {comment impacté} |

### 3.3 Code impacté

| Fichier | Ligne(s) | Description |
|---------|----------|-------------|
| `{path/to/file}` | ~{lines} | {ce qui est incorrect} |

---

## 4. Solution proposée

### 4.1 Correction

{Description de la correction à apporter}

### 4.2 Fichiers à modifier

| Fichier | Modification |
|---------|--------------|
| `{path}` | {description du changement} |

### 4.3 Tests à ajouter

```gherkin
@bugfix @{BUG_ID}
Scenario: {BUG_ID} - {description}
  Given {contexte}
  When {action qui causait le bug}
  Then {comportement correct attendu}
```

---

## 5. Prompt de correction

```
CONTEXTE:
Bug {BUG_ID} à corriger dans le module business/{app}/{module}

ROOT CAUSE:
{root cause identifiée}

CORRECTION:
{description de la correction}

FICHIERS À MODIFIER:
{liste des fichiers}

TEST DE VALIDATION:
Après correction, le scénario Gherkin suivant doit passer:
{scénario}
```

---

## 6. Validation

### Critères d'acceptation
- [ ] Bug n'est plus reproductible
- [ ] Tests de régression passent
- [ ] Nouveau test ajouté pour ce cas
- [ ] Code review effectué

### Environnements testés
- [ ] Local
- [ ] Staging
- [ ] Production (si applicable)

---

## 7. Prévention

### Comment éviter ce type de bug à l'avenir?

| Action | Responsable | Deadline |
|--------|-------------|----------|
| {action préventive} | {qui} | {quand} |

---

## Historique

| Date | Action | Par |
|------|--------|-----|
| {date} | Création | {auteur} |
| {date} | Analyse | {auteur} |
| {date} | Correction | {dev} |
| {date} | Validation | {qa} |
| {date} | Fermé | {pm} |
```

---

## STEP 6: Résumé

```
================================================================================
                    BUG DOCUMENTÉ - {BUG_ID}
================================================================================

FICHIER:           {BUG_DIR}/{BUG_ID}.md
FEATURE LIÉE:      {FEATURE_ID ou "N/A"}
SÉVÉRITÉ:          {sévérité}
ROOT CAUSE:        {résumé}

SPECS IMPACTÉES:
  • BR: {liste ou "Aucune"}
  • FR: {liste ou "Aucune"}
  • UC: {liste ou "Aucune"}

================================================================================
CORRECTION
================================================================================

Utilisez le prompt de correction dans la section 5 pour demander
à Claude de corriger ce bug.

Si c'est un hotfix urgent, utilisez:
  /business-analyse:hotfix {BUG_ID}

================================================================================

Contact support: support@atlshub.ch
```
