---
description: Phase 3 - Business analysis and BRD (ULTRATHINK)
agent: ba-analyse
model: sonnet
---

# Phase 3: Analyse Business - BRD

> **Modèle:** Sonnet (modélisation, règles métier)
> **Coût estimé:** ~$0.15
> **Input:** 1-discovery.md
> **Output:** 2-business-requirements.md (BRD)

---

## ULTRATHINK MODE

```
╔══════════════════════════════════════════════════════════════════════════════╗
║  ANALYSE MÉTIER APPROFONDIE                                                  ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║  Cette phase transforme la découverte en exigences business formelles:       ║
║                                                                              ║
║  • Formaliser les règles métier (BR-XXX)                                     ║
║  • Modéliser les processus (diagrammes textuels)                             ║
║  • Définir les objectifs mesurables                                          ║
║  • Identifier les intégrations nécessaires                                   ║
║                                                                              ║
║  RÈGLE: Aucun code technique. Tables et diagrammes textuels uniquement.      ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝
```

---

## STEP 1: Charger la découverte

```bash
FEATURE_ID=$1
FEATURE_DIR=$(find .business-analyse -type d -name "${FEATURE_ID}*" | head -1)
DISCOVERY_FILE="$FEATURE_DIR/1-discovery.md"

if [ ! -f "$DISCOVERY_FILE" ]; then
  echo "❌ ERREUR: 1-discovery.md non trouvé"
  echo "   Lancez d'abord: /business-analyse:2-discover $FEATURE_ID"
  exit 1
fi

# Lire le document discovery
DISCOVERY_CONTENT=$(cat "$DISCOVERY_FILE")
```

---

## STEP 2: Scanner la documentation existante

```bash
# Scanner les BRD existants pour cohérence
EXISTING_BRDS=$(find .business-analyse -name "2-business-requirements.md" -o -name "2-brd.md" 2>/dev/null)

# Scanner les règles métier existantes
EXISTING_RULES=$(grep -h "^| BR-" $EXISTING_BRDS 2>/dev/null | sort -u)

echo "Règles existantes trouvées: $(echo "$EXISTING_RULES" | wc -l)"

# Scanner le glossaire
GLOSSARY=$(cat .business-analyse/glossary.md 2>/dev/null)
```

---

## STEP 3: Extraction et formalisation des règles métier

À partir de la découverte, extraire et formaliser chaque règle:

### Pattern de règle métier

```
RULE BR-XXX: {Nom de la règle}

ÉNONCÉ:
  {Description formelle de la règle}

CONDITIONS:
  SI {condition A}
  ET {condition B}
  ALORS {résultat}
  SINON {résultat alternatif}

EXEMPLES:
  | Entrée | Sortie attendue |
  |--------|-----------------|
  | {ex1}  | {résultat1}     |
  | {ex2}  | {résultat2}     |

VALIDATION:
  - Critère 1
  - Critère 2
```

---

## STEP 4: Modélisation des processus

### Diagramme de flux (format texte)

```
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   START     │────►│   Étape 1   │────►│  Décision   │
│             │     │  {action}   │     │    ?        │
└─────────────┘     └─────────────┘     └──────┬──────┘
                                               │
                          ┌────────────────────┼────────────────────┐
                          │                    │                    │
                          ▼                    ▼                    ▼
                    ┌─────────┐          ┌─────────┐          ┌─────────┐
                    │ Chemin A│          │ Chemin B│          │ Chemin C│
                    └────┬────┘          └────┬────┘          └────┬────┘
                          │                    │                    │
                          └────────────────────┼────────────────────┘
                                               │
                                               ▼
                                        ┌─────────────┐
                                        │     END     │
                                        └─────────────┘
```

---

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

```bash
BRD_FILE="$FEATURE_DIR/2-business-requirements.md"
```

### Template 2-business-requirements.md

```markdown
# BRD - {FEATURE_ID} {Feature Name}

> **Module:** business/{application}/{module}
> **Version:** 1.0
> **Basé sur:** 1-discovery.md v1.0
> **Standard:** BABOK v3

---

## 1. Résumé exécutif

{Synthèse en 3-5 phrases du besoin business et de la solution proposée}

---

## 2. Objectifs business

| ID | Objectif | Métrique | Baseline | Cible | Deadline |
|----|----------|----------|----------|-------|----------|
| OBJ-001 | {objectif} | {KPI} | {actuel} | {cible} | {date} |

### 2.1 Critères de succès

| Critère | Mesure | Seuil acceptable |
|---------|--------|------------------|
| {critère} | {comment mesurer} | {valeur seuil} |

---

## 3. Règles métier

| ID | Règle | Catégorie | Priorité | Source |
|----|-------|-----------|----------|--------|
| BR-001 | {Description courte} | {catégorie} | Must | Discovery Q{x} |

### 3.1 Détail BR-001: {Nom}

**Énoncé:**
{Formulation précise et complète de la règle}

**Conditions:**
```
SI {condition A}
ET {condition B}
ALORS {résultat}
SINON {résultat alternatif}
```

**Exemples:**

| Scénario | Entrée | Sortie attendue |
|----------|--------|-----------------|
| Cas nominal | {entrée} | {résultat} |
| Cas limite | {entrée} | {résultat} |
| Cas erreur | {entrée} | {erreur} |

**Validation:**
- [ ] {Critère de validation 1}
- [ ] {Critère de validation 2}

---

## 4. Processus métier

### 4.1 Processus principal: {Nom}

**Acteurs:** {liste des acteurs impliqués}

**Déclencheur:** {événement qui démarre le processus}

**Flux:**

```
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Début     │────►│  Étape 1    │────►│  Étape 2    │
│             │     │  {action}   │     │  {action}   │
└─────────────┘     └─────────────┘     └──────┬──────┘
                                               │
                                               ▼
                                        ┌─────────────┐
                                        │  Étape 3    │
                                        │  {action}   │
                                        └──────┬──────┘
                                               │
                                               ▼
                                        ┌─────────────┐
                                        │    Fin      │
                                        └─────────────┘
```

**Étapes détaillées:**

| # | Étape | Acteur | Action | Système | Règles |
|---|-------|--------|--------|---------|--------|
| 1 | {nom} | {qui} | {fait quoi} | {réponse} | BR-XXX |

### 4.2 Flux alternatifs

| Condition | À l'étape | Flux alternatif | Résultat |
|-----------|-----------|-----------------|----------|
| {si...} | {#} | {description} | {état final} |

### 4.3 Flux d'erreur

| Erreur | À l'étape | Gestion | Message utilisateur |
|--------|-----------|---------|---------------------|
| {erreur} | {#} | {action} | {message} |

---

## 5. Modèle de données (conceptuel)

### 5.1 Entités

| Entité | Description | Cardinalité |
|--------|-------------|-------------|
| {Entité} | {description métier} | {relation} |

### 5.2 Attributs (description métier, PAS de types)

| Entité | Attribut | Description | Obligatoire | Règles |
|--------|----------|-------------|-------------|--------|
| {E} | {attribut} | {description} | Oui/Non | BR-XXX |

### 5.3 Relations

```
┌──────────┐         ┌──────────┐
│ Entité A │───[1:N]─│ Entité B │
└──────────┘         └──────────┘
      │
      │[1:1]
      ▼
┌──────────┐
│ Entité C │
└──────────┘
```

---

## 6. Intégrations

| Système | Direction | Données | Fréquence | Criticité |
|---------|-----------|---------|-----------|-----------|
| {sys} | In/Out/Bi | {données} | {freq} | Haute/Moyenne/Basse |

### 6.1 Détail intégration {Système}

**Objectif:** {pourquoi cette intégration}

**Données échangées:**

| Champ | Direction | Format | Mapping |
|-------|-----------|--------|---------|
| {champ} | {in/out} | {format} | {vers quel champ} |

**Gestion des erreurs:**
- Si {système} indisponible: {comportement}
- Si données invalides: {comportement}

---

## 7. Exigences non-fonctionnelles

### 7.1 Performance

| Métrique | Exigence | Priorité |
|----------|----------|----------|
| Temps de réponse | < {x}ms | Must |
| Utilisateurs simultanés | {n} | Must |
| Volume de données | {n} enregistrements | Should |

### 7.2 Sécurité

| Exigence | Description | Priorité |
|----------|-------------|----------|
| Authentification | {méthode} | Must |
| Autorisation | Par permission granulaire | Must |
| Audit | {actions à logger} | Must |
| Conformité | {normes: GDPR, etc.} | Must |

---

## 8. Glossaire du module

| Terme | Définition | Synonymes |
|-------|------------|-----------|
| {terme} | {définition métier} | {autres termes} |

---

## 9. Hypothèses et dépendances

### 9.1 Hypothèses

| # | Hypothèse | Impact si fausse |
|---|-----------|------------------|
| H1 | {hypothèse} | {impact} |

### 9.2 Dépendances

| # | Dépendance | Type | Owner | Status |
|---|------------|------|-------|--------|
| D1 | {dépendance} | Technique/Business | {qui} | {status} |

---

## 10. Prochaines étapes

- [ ] Valider ce BRD avec le sponsor
- [ ] Résoudre les hypothèses non confirmées
- [ ] Lancer `/business-analyse:4-specify {FEATURE_ID}`

---

## Historique des versions

| Version | Date | Auteur | Modifications |
|---------|------|--------|---------------|
| 1.0 | {date} | BA (Sonnet) | Création initiale |
```

---

## STEP 6: Mise à jour du glossaire global

```bash
# Ajouter les nouveaux termes au glossaire global
GLOSSARY_FILE=".business-analyse/glossary.md"

# Extraire les termes du BRD section 8
NEW_TERMS=$(grep "^| " "$BRD_FILE" | grep -v "^| Terme" | grep -v "^|---")

# Ajouter au glossaire si non existants
```

---

## STEP 7: Résumé

```
================================================================================
                    ANALYSE BUSINESS COMPLÈTE - {FEATURE_ID}
================================================================================

DOCUMENT GÉNÉRÉ:   {FEATURE_DIR}/2-business-requirements.md
MODÈLE UTILISÉ:    Sonnet avec ULTRATHINK
BASÉ SUR:          1-discovery.md v1.0

CONTENU:
  Objectifs:       {N} définis
  Règles métier:   {N} formalisées (BR-001 à BR-XXX)
  Processus:       {N} modélisés
  Entités:         {N} identifiées
  Intégrations:    {N} documentées

================================================================================
PROCHAINE ÉTAPE
================================================================================

1. Valider 2-business-requirements.md avec le sponsor
2. Lancer les spécifications fonctionnelles:

   /business-analyse:4-specify {FEATURE_ID}

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

Contact support: support@atlshub.ch
```
