# Guide de contribution

## Vue d'ensemble

Ce guide explique comment contribuer au Technology Radar AJR en ajoutant, modifiant ou supprimant des technologies (blips) et des profils équipe.

## Processus de contribution

### 1. Préparer l'environnement

Voir le [guide de développement](./developpement.md) pour l'installation et la configuration de l'environnement local.

### 2. Créer une branche

```bash
git checkout -b feature/nom-de-la-technologie
```

### 3. Ajouter ou modifier un blip

#### Ajouter un nouveau blip

1. Créer un fichier Markdown dans le dossier de release approprié :
   ```
   radar-business/2025-01-15/nom-technologie.md
   ```

2. Utiliser le format standard avec toutes les métadonnées :

```markdown
---
title: "Nom de la technologie"
ring: adopt|trial|assess|hold
quadrant: technologies-differentiantes|technologies-commodite|technologies-risque|technologies-emergentes
tags: [tag1, tag2]
businessImpact: high|medium|low
costToReplace: 0
revenueImpact: indirect
riskLevel: medium
competencyLevel: beginner
maintenanceCost: 0
differentiation: high
teamCoverage: 1
skillGap: high
---

Description de la technologie.

## Impact Business

Description de l'impact sur le business.

## Coûts

- Coût de remplacement : 0€
- Coût de maintenance annuel : 0€

## Compétences

- Nombre de personnes maîtrisant : 1
- Membres de l'équipe : pseudo
- Niveau moyen : beginner
- Risque de compétence manquante : high

## Recommandations

Recommandations stratégiques pour cette technologie.
```

Voir `radar-business/FORMAT-BLIP.md` pour le format complet.

#### Modifier un blip existant

1. Localiser le fichier dans `radar-business/2025-01-15/`
2. Modifier le contenu ou les métadonnées
3. Si vous changez le ring ou le quadrant, documenter la raison
4. **Important** : Vérifier que le ring est standard (adopt, trial, assess, hold)

#### Supprimer un blip

Si une technologie doit être retirée du radar :
- La déplacer vers le ring "hold" plutôt que de la supprimer
- Ou la supprimer complètement si elle n'est plus pertinente

### 4. Ajouter ou modifier un profil équipe

#### Ajouter un profil équipe

1. Créer un fichier Markdown dans `docs/data/team/` :
   ```
   docs/data/team/pseudo.md
   ```

2. Utiliser le format standard :

```markdown
---
name: "pseudo"
fullName: "Nom complet"
role: "Rôle"
availability: 50
seniorityLevel: expert
yearsExperience: 8
joinDate: "2016-01"
interests: ["Mobile", "Infrastructure"]
skills:
  - name: "Flutter"
    level: expert
    years: 4
    lastUsed: "2024-12"
softSkills:
  - "Autonomie"
projects:
  - "Projet1"
---
```

3. Régénérer les données équipe :
   ```bash
   node scripts/generate-team-visualization-data.js
   ```

### 5. Tester localement

```bash
npm run serve-business
```

Vérifier :
- L'affichage correct du blip
- Le positionnement dans le bon quadrant et ring
- La lisibilité du contenu
- Le fonctionnement des tags
- La page équipe (`/team`) affiche correctement les données

### 6. Commiter les changements

```bash
git add radar-business/2025-01-15/nom-technologie.md
git add docs/data/team/pseudo.md
git add public/team-visualization-data.json
git commit -m "feat: ajouter [technologie] au quadrant [quadrant]"
```

### 7. Pousser et créer une pull request

```bash
git push origin feature/nom-de-la-technologie
```

Créer une pull request sur le dépôt Git.

## Guidelines de contenu

### Choix du ring

- **Adopt** : Technologies recommandées et utilisées avec succès en production. Stables, éprouvées, peuvent être adoptées en toute confiance pour de nouveaux projets.
- **Trial** : Technologies à essayer. Prometteuses et testées avec succès dans certains contextes. À considérer pour de nouveaux projets.
- **Assess** : Technologies à évaluer. Prometteuses mais nécessitent une évaluation approfondie avant adoption. À surveiller et tester.
- **Hold** : Technologies à éviter ou à remplacer. Présentent des risques, sont obsolètes ou ne sont plus recommandées. À éviter pour de nouveaux projets.

**Important** : Les anciens rings (core, strategic, support, legacy) ne sont plus utilisés. Tous les blips doivent utiliser les rings standards (adopt, trial, assess, hold).

### Choix du quadrant

- **Technologies Différenciantes** : Créent un avantage concurrentiel et de la valeur différenciante
- **Technologies de Commodité** : Nécessaires mais non différenciantes, à optimiser pour réduire les coûts
- **Technologies à Risque** : Obsolètes, coûteuses, à migrer ou remplacer
- **Technologies Émergentes** : Opportunités futures, à évaluer et potentiellement adopter

### Tags

Utiliser les tags établis :
- architecture
- security
- devops
- frontend
- agile
- coding
- quality assurance
- ci/cd
- ux/ui
- documentation
- blockchain
- infrastructure
- dataviz
- mobile

Ajouter plusieurs tags si la technologie couvre plusieurs domaines.

### Qualité du contenu

- **Clarté** : Description claire et concise
- **Pertinence** : Focus sur l'utilisation dans l'écosystème Duniter/Ğ1
- **Objectivité** : Présenter les avantages et inconvénients
- **Concision** : Rester factuel et éviter les détails superflus
- **Métadonnées complètes** : Remplir toutes les métadonnées business

## Format des commits

Utiliser des messages de commit clairs :

```
feat: ajouter [technologie] au quadrant [quadrant]
fix: corriger la description de [technologie]
update: déplacer [technologie] de trial à adopt
docs: améliorer la documentation de [technologie]
feat(team): ajouter profil [pseudo]
fix(team): mettre à jour compétences de [pseudo]
```

## Créer une nouvelle release

Quand créer une nouvelle release :

1. **Périodicité** : Généralement tous les 3-6 mois
2. **Changements significatifs** : Plusieurs nouveaux blips ou changements majeurs
3. **Événements** : Après des évaluations importantes

### Processus de release

1. Créer un nouveau dossier avec la date :
   ```bash
   mkdir radar-business/2025-07-15
   ```

2. Copier les blips pertinents depuis la release précédente

3. Ajouter les nouveaux blips

4. Mettre à jour les blips existants si nécessaire (changement de ring, quadrant, description)

5. **Migrer les rings si nécessaire** : S'assurer que tous les blips utilisent les rings standards

6. Documenter les changements majeurs

## Migration des rings

Si vous avez des blips avec les anciens rings, utilisez ce mapping :

- **core** → **adopt** : Technologies fondamentales en production
- **strategic** → **assess** : Technologies prometteuses à évaluer
- **support** → **adopt** : Technologies utilisées en production
- **trial** → **trial** : Déjà correct
- **legacy** → **hold** : Technologies obsolètes à remplacer

Le script `scripts/migrate-rings.sh` peut être utilisé pour automatiser cette migration.

## Review process

Les contributions sont revues pour :

- **Exactitude** : Les informations sont correctes
- **Pertinence** : La technologie est pertinente pour l'écosystème
- **Format** : Le format Markdown est correct
- **Classification** : Le ring et quadrant sont appropriés
- **Rings standards** : Utilisation des rings standards (adopt, trial, assess, hold)
- **Métadonnées** : Toutes les métadonnées business sont remplies
- **Qualité** : Le contenu est clair et utile

## Questions fréquentes

### Puis-je ajouter une technologie que je n'ai pas encore utilisée ?

Non. Le radar ne contient que des technologies testées au moins une fois par l'équipe.

### Comment décider entre deux quadrants ?

Choisir le quadrant le plus approprié selon l'impact business. Si c'est ambigu, discuter avec l'équipe.

### Puis-je modifier un blip d'une release précédente ?

Généralement non. Les releases précédentes sont figées. Créer un nouveau blip dans la release actuelle si nécessaire.

### Comment gérer les technologies obsolètes ?

Les déplacer vers le ring "hold" avec une explication de pourquoi elles ne sont plus recommandées.

### Quels rings dois-je utiliser ?

Toujours utiliser les rings standards : **adopt**, **trial**, **assess**, **hold**. Les anciens rings (core, strategic, support, legacy) ne sont plus utilisés.

### Comment mettre à jour les données équipe ?

1. Modifier les fichiers dans `docs/data/team/*.md`
2. Régénérer les données : `node scripts/generate-team-visualization-data.js`
3. Commiter les deux fichiers (profils + données JSON)

## Ressources

- [Guide de développement](./developpement.md)
- [Configuration](./configuration.md)
- [Architecture](./architecture.md)
- [Format des blips](../radar-business/FORMAT-BLIP.md)
- [Guide page équipe](./guide-page-equipe.md)
- Framework source : https://github.com/AOEpeople/aoe_technology_radar

## Contact

Pour toute question sur les contributions, contacter l'équipe AJR ou ouvrir une issue sur le dépôt Git.
