---
name: documentation
description: |
  Génère automatiquement la documentation technique pour SmartStack.
  Utiliser ce skill quand:
  - L'utilisateur demande de créer/générer de la documentation
  - L'utilisateur mentionne "documenter", "documentation", "doc", "MCD", "schéma"
  - L'utilisateur veut documenter un module, une table, un outil, ou un test
  - Après l'implémentation d'une feature pour générer sa documentation
  Types: user module, developer tools, database MCD, testing tools
---

# Skill Documentation SmartStack

> **Note:** Ce skill fonctionne en synergie avec la commande `/documentation:module`.
> Le skill détecte automatiquement le besoin, la commande contient le workflow détaillé.

## QUAND CE SKILL S'ACTIVE

Claude invoque automatiquement ce skill quand il détecte :

| Déclencheur | Exemple |
|-------------|---------|
| Demande explicite | "Documente le module SLA" |
| Mention de documentation | "Il faudrait créer la doc pour..." |
| Après implémentation | "La feature est terminée, génère la doc" |
| Question sur structure | "Comment est organisée la documentation ?" |
| Mots-clés | "MCD", "schéma", "diagramme", "documenter" |

---

## WORKFLOW AUTOMATIQUE

### ÉTAPE 1: DÉTECTION DU TYPE

Analyser la demande pour identifier :

| Indice | → Type |
|--------|--------|
| Module fonctionnel (SLA, Tickets, Users) | `user` |
| Outil dev (Docker, Postman, VS Code) | `developer` |
| Tables, schéma, base de données | `database` |
| Tests (sécurité, charge, E2E) | `testing` |

### ÉTAPE 2: EXTRACTION DE LA CIBLE

Identifier le nom spécifique :
- Module: `sla`, `tickets`, `users`, `permissions`
- Outil: `docker`, `postman`, `playwright`, `maildev`
- Schéma: `support`, `auth`, `nav`, `usr`
- Test: `security`, `load`, `e2e`

### ÉTAPE 3: EXÉCUTION

Suivre le workflow de la commande `/documentation:module` :

```
TYPE = type détecté (user|developer|database|testing)
TARGET = cible extraite

→ Exécuter le workflow complet de /documentation:module
```

---

## RÉFÉRENCE RAPIDE

### Types de documentation

| Type | Description | Sortie |
|------|-------------|--------|
| `user` | Module utilisateur avec maquettes UI | `docs/user/{context}/{Module}DocPage.tsx` |
| `developer` | Guide d'outil de développement | `docs/developer/tools/{Tool}Page.tsx` |
| `database` | Schéma avec diagramme MCD | `docs/developer/database/{Schema}SchemaPage.tsx` |
| `testing` | Outil de test | `docs/developer/testing/{Tool}TestingPage.tsx` |

### Outils Developer disponibles

| Catégorie | Outils |
|-----------|--------|
| Environnement Local | Docker Compose, MailDev, VS Code, Variables d'env |
| Tests API | Postman, REST Client, Swagger/OpenAPI |
| Tests E2E | Microsoft Playwright, Inspector, Trace Viewer |
| Tests Charge | NBomber (.NET), k6, Azure Load Testing |
| Tests Sécurité | OWASP ZAP, Security Code Scan, Snyk, OWASP ASVS |

---

## RÈGLES ABSOLUES

1. **JAMAIS** de texte en dur → `useTranslation('docs')`
2. **JAMAIS** d'ASCII art → composants React/HTML pour MCD
3. **TOUJOURS** lire les sources avant de générer
4. **TOUJOURS** demander confirmation avant de créer
5. **TOUJOURS** mettre à jour App.tsx et index parents
6. **TOUJOURS** ajouter le module dans `UserIndexPage.tsx` (SI type == `user`)

---

## INTÉGRATION UserIndexPage (TYPE: user)

**OBLIGATOIRE** pour les modules `user`: Ajouter le module à la hiérarchie de navigation.

| Fichier | Modification |
|---------|--------------|
| `UserIndexPage.tsx` | Ajouter icône + entrée dans `modules[]` de l'application parente |
| `fr/docs.json` | Ajouter `user.modules.{module}.name` et `.description` |
| `en/docs.json` | Ajouter `user.modules.{module}.name` et `.description` |

**Applications parentes:**
- `Platform > Administration`: modules admin (users, roles, ai, entra...)
- `Platform > Support`: modules support (tickets, sla, templates...)
- `Personal > MySpace`: modules personnels (profile, preferences...)

**Vérification:** Le module doit apparaître sur `/docs/user` sous son application.

---

## SOURCES DE DONNÉES

| Donnée | Source |
|--------|--------|
| Schémas DB | `src/SmartStack.Infrastructure/Persistence/Configurations/` |
| Tables | `ApplicationDbContextModelSnapshot.cs` |
| Documentation existante | `web/smartstack-web/src/pages/docs/` |
| Outils de test | WebSearch (versions actuelles) |

---

## FICHIERS ASSOCIÉS

- **Templates React:** [templates.md](templates.md)
- **Commande complète:** `.claude/commands/documentation-module.md`
