---
description: Phase 1 - Initialize Business Analysis structure (ULTRATHINK)
agent: ba-init
model: haiku
---

# Phase 1: Initialisation Business Analyse

> **Modèle:** Haiku (setup structure, pas de décision complexe)
> **Coût estimé:** ~$0.02

---

## PHASE 0: VALIDATION CONTEXTE BUSINESS (BLOQUANT)

```
╔══════════════════════════════════════════════════════════════════════════════╗
║  VALIDATION OBLIGATOIRE AVANT TOUTE ACTION                                   ║
╠══════════════════════════════════════════════════════════════════════════════╣
║                                                                              ║
║  1. VÉRIFIER que le contexte demandé est "business"                          ║
║                                                                              ║
║  SI contexte IN ["platform", "personal", "system"]:                          ║
║      ❌ ERREUR: "La Business Analyse est réservée au contexte 'business'.    ║
║         Les contextes platform/personal/system sont gérés par le core        ║
║         SmartStack. Contact: support@atlshub.ch"                             ║
║      → ABORT                                                                 ║
║                                                                              ║
║  2. VÉRIFIER la hiérarchie: Business > Application > Module > Section        ║
║                                                                              ║
╚══════════════════════════════════════════════════════════════════════════════╝
```

---

## STEP 1: Collecte des paramètres

```javascript
AskUserQuestion({
  questions: [
    {
      question: "Quel est le nom de l'APPLICATION business?",
      header: "Application",
      options: [
        { label: "Nouvelle application", description: "Créer une nouvelle application business" },
        { label: "Application existante", description: "Sélectionner une application existante" }
      ],
      multiSelect: false
    },
    {
      question: "Quel est le nom du MODULE dans cette application?",
      header: "Module",
      options: [
        { label: "Nouveau module", description: "Créer un nouveau module" },
        { label: "Module existant", description: "Ajouter une feature à un module existant" }
      ],
      multiSelect: false
    }
  ]
})
```

**Si nouvelle application ou module:**
- Demander le nom (kebab-case)
- Demander une description courte

---

## STEP 2: Scan de la structure existante

```bash
# Scanner les applications business existantes
EXISTING_APPS=$(find .business-analyse/applications/business -maxdepth 1 -type d 2>/dev/null | tail -n +2)

# Scanner les modules existants
if [ -n "$APPLICATION" ]; then
  EXISTING_MODULES=$(find .business-analyse/applications/business/$APPLICATION/modules -maxdepth 1 -type d 2>/dev/null | tail -n +2)
fi

# Scanner le code existant pour patterns
echo "Scanning existing code patterns..."
EXISTING_ENTITIES=$(find src -name "*.cs" -path "*/Entities/*" 2>/dev/null | head -20)
EXISTING_CONTROLLERS=$(find src -name "*Controller.cs" 2>/dev/null | head -20)
```

---

## STEP 3: Génération du Feature ID

```bash
# Lire le dernier ID utilisé
LAST_ID=$(cat .business-analyse/config.json 2>/dev/null | grep -oP '"lastFeatureId":\s*\K\d+' || echo "0")
NEW_ID=$(printf "%03d" $((LAST_ID + 1)))
FEATURE_ID="FEAT-$NEW_ID"

echo "Feature ID: $FEATURE_ID"
```

---

## STEP 4: Création de la structure

```bash
# Variables
APP_DIR=".business-analyse/applications/business/$APPLICATION"
MODULE_DIR="$APP_DIR/modules/$MODULE"
FEATURE_DIR="$MODULE_DIR/features/$FEATURE_ID-$FEATURE_NAME"

# Créer la structure
mkdir -p "$FEATURE_DIR/tracking/changes"
mkdir -p "$FEATURE_DIR/tracking/bugs"
mkdir -p ".business-analyse/templates"
mkdir -p ".business-analyse/documentation"
```

### Structure créée

```
.business-analyse/
├── config.json                         # Configuration globale
├── glossary.md                         # Glossaire unifié
│
└── applications/
    └── business/                       # Contexte BUSINESS uniquement
        └── {application}/
            ├── context.md              # Description application
            └── modules/
                └── {module}/
                    ├── context.md      # Description module
                    └── features/
                        └── FEAT-XXX-{name}/
                            ├── tracking/
                            │   ├── changes/
                            │   └── bugs/
                            └── (documents générés par phases suivantes)
```

---

## STEP 5: Génération des fichiers contexte

### config.json

```json
{
  "project": "{ProjectName}",
  "version": "1.0.0",
  "lastFeatureId": {NEW_ID},
  "context": "business",
  "standards": ["BABOK-v3", "IEEE-830"],
  "models": {
    "discover": "opus",
    "analyse": "sonnet",
    "specify": "sonnet",
    "validate": "haiku",
    "handoff": "opus",
    "doc-html": "sonnet"
  },
  "outputPaths": {
    "docs": "web/smartstack-web/src/pages/docs/business",
    "i18n": "web/smartstack-web/src/i18n/locales"
  },
  "contact": "support@atlshub.ch"
}
```

### context.md (Application)

```markdown
# Application: {ApplicationName}

> **Contexte:** business
> **Créé:** {DATE}
> **Permission base:** business.{application}.*

## Description

{Description de l'application}

## Modules

| Module | Description | Status |
|--------|-------------|--------|
| {module} | {description} | Active |

## Stakeholders

| Rôle | Responsabilité |
|------|----------------|
| Product Owner | {à définir} |
| Tech Lead | {à définir} |
```

### context.md (Module)

```markdown
# Module: {ModuleName}

> **Application:** business/{application}
> **Créé:** {DATE}
> **Permission base:** business.{application}.{module}.*

## Description

{Description du module}

## Features

| ID | Nom | Status | Version |
|----|-----|--------|---------|
| FEAT-XXX | {name} | Init | 1.0 |

## Dépendances

| Module/Système | Type | Description |
|----------------|------|-------------|
| {dépendance} | Interne/Externe | {description} |
```

---

## STEP 6: Résumé

```
================================================================================
                    BUSINESS ANALYSE - INITIALISATION COMPLÈTE
================================================================================

FEATURE:         {FEATURE_ID} - {FEATURE_NAME}
CONTEXTE:        business (validé)
APPLICATION:     business/{application}
MODULE:          business/{application}/{module}
PERMISSION BASE: business.{application}.{module}.*

STRUCTURE CRÉÉE:
  .business-analyse/applications/business/{application}/modules/{module}/features/{FEATURE_ID}-{name}/

FICHIERS GÉNÉRÉS:
  ✓ config.json
  ✓ context.md (application)
  ✓ context.md (module)

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

Lancez la phase de découverte:

  /business-analyse:2-discover {FEATURE_ID}

Cette phase utilisera le modèle OPUS avec ULTRATHINK pour une élicitation
exhaustive des besoins.

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

Contact support: support@atlshub.ch
```

---

## Validation

| Critère | Status |
|---------|--------|
| Contexte = business | ✅ Validé |
| Structure hiérarchique | ✅ Créée |
| Feature ID unique | ✅ Généré |
| Fichiers contexte | ✅ Créés |
| config.json | ✅ Mis à jour |
