Claude
Skills
Sign in
Back

prompt:team

Included with Lifetime
$97 forever

Orchestre une équipe d'agents spécialisés pour les tâches complexes. Auto-détecte le type, compose l'équipe, coordonne les phases analyse → challenge → implémentation → QA.

AI Agents

What this skill does


# Objectif

Orchestrer une équipe d'agents natifs via Agent Teams pour les tâches de développement complexes. Tu es le **team lead** : tu crées l'équipe, distribues les tâches, coordonnes les phases et rapportes les résultats.

## Invocation

```
/prompt:team "<description>"
/prompt:team <type> "<description>"
/prompt:team "<description>" --agents=analyst,implementer
/prompt:team "<description>" --safe
```

## Architecture

### Agents fusionnés

L'équipe utilise 3 agents au lieu de 6 pour limiter la consommation de ressources :

| Agent | Fusionne | Fichier agent | Outils |
|-------|----------|---------------|--------|
| **analyst** | architect + designer | `prompt/agents/prompt-analyst.md` | Read, Grep, Glob, Bash |
| **challenger** | challenger + QA review | `prompt/agents/prompt-challenger.md` | Read, Grep, Glob, Bash |
| **implementer** | developer + tester | `prompt/agents/prompt-implementer.md` | Read, Write, Edit, Grep, Glob, Bash |

### Fichiers intermédiaires

Les agents communiquent via des fichiers dans le scratchpad, pas dans le contexte du team lead. Cela évite la saturation du contexte et la perte d'information lors de la compression.

```
{scratchpad}/prompt-{slug}/
  01-analysis.md        <- output analyst (architecture + design)
  02-challenge.md       <- output challenger (concerns)
  03-plan.md            <- synthèse validée par l'utilisateur (écrit par le team lead)
  04-implementation.md  <- résumé implementer (fichiers créés/modifiés)
  05-qa-report.md       <- rapport QA du challenger
```

Chaque agent :
- **Lit** les fichiers dont il a besoin (pas tout le contexte)
- **Écrit** son output dans son fichier dédié
- Le team lead ne garde en contexte qu'un **résumé court** de chaque phase

### Modes d'exécution

| Mode | Condition | Comportement |
|------|-----------|-------------|
| **Normal** | RAM >= 4 GB | Parallèle intra-phase (max 2 agents), shutdown entre phases |
| **Safe** | RAM >= 2 GB et < 4 GB, ou `--safe` | Séquentiel strict (1 agent), shutdown après chaque agent |
| **Abort** | RAM < 2 GB | Abandon, proposer `/prompt:start` comme alternative |

## Workflow

### Phase 0 : Initialisation

#### 1. Parser les arguments

Extraire :
- `description` : la description en langage naturel (obligatoire)
- `type` : feature / refactor / api / fix (optionnel, auto-détecté)
- `--agents=` : override de la composition d'équipe (optionnel)
- `--safe` : force le mode séquentiel strict (1 agent à la fois)

#### 2. Auto-détecter le type

Si le type n'est pas explicite, analyser la description :

| Mots-clés | Type détecté |
|-----------|-------------|
| ajouter, créer, nouveau, implémenter, feature, fonctionnalité | `feature` |
| refactorer, simplifier, restructurer, nettoyer, extraire, déplacer | `refactor` |
| api, endpoint, webhook, intégration, REST, GraphQL | `api` |
| corriger, fixer, bug, erreur, régression, crash, 500 | `fix` |

Si ambiguïté, demander via AskUserQuestion :

```json
{
  "questions": [{
    "question": "Quel type de tâche ?",
    "header": "Type",
    "multiSelect": false,
    "options": [
      {"label": "feature", "description": "Nouvelle fonctionnalité métier"},
      {"label": "refactor", "description": "Refactoring de code existant"},
      {"label": "api", "description": "API ou intégration externe"},
      {"label": "fix", "description": "Correction de bug"}
    ]
  }]
}
```

#### 3. Composer l'équipe

**Par défaut selon le type :**

| Type | Agents | Total |
|------|--------|-------|
| `feature` | analyst, challenger, implementer | 3 |
| `refactor` | analyst, implementer | 2 |
| `api` | analyst, challenger, implementer | 3 |
| `fix` | challenger, implementer | 2 |

**Override avec `--agents=` :**
Si l'utilisateur passe `--agents=analyst,implementer`, utiliser uniquement ces agents.

#### 4. Health check système

Avant de créer l'équipe, vérifier les ressources disponibles :

```bash
free -m | grep Mem | awk '{print $7}'
```

| RAM disponible | Mode |
|---------------|------|
| >= 4 GB | Normal (parallèle intra-phase, max 2 agents simultanés) |
| >= 2 GB et < 4 GB | Safe (séquentiel strict, 1 agent à la fois) |
| < 2 GB | Abort : afficher un warning et proposer `/prompt:start` comme alternative |

Si `--safe` est passé, forcer le mode safe indépendamment de la RAM.

Afficher le mode détecté :

```
Ressources système : {X} GB disponibles -> mode {normal|safe|abort}
```

#### 5. Créer le répertoire intermédiaire

```bash
mkdir -p {scratchpad}/prompt-{slug}
```

#### 6. Créer l'équipe et les tâches

```
TeamCreate("prompt-{slug}")
```

Où `{slug}` est la description slugifiée (ex: "gestion-des-factures").

Créer les tâches avec dépendances :

```
TaskCreate #1: "Analyse (architecture + design)"   -> libre
TaskCreate #2: "Challenge des propositions"         -> addBlockedBy [#1]
TaskCreate #3: "Synthèse + validation utilisateur"  -> addBlockedBy [#2]
TaskCreate #4: "Implémentation (code + tests)"      -> addBlockedBy [#3]
TaskCreate #5: "QA + Review finale"                 -> addBlockedBy [#4]
TaskCreate #6: "Rapport final + cleanup"            -> addBlockedBy [#5]
```

Note : adapter les tâches selon les agents composés. Par exemple pour `fix`, pas de tâche #1 (analyse).

Afficher :

```
Equipe prompt-{slug} créée

Type détecté : {type}
Mode : {normal|safe}
Agents : {liste agents}
Tâches : {nombre} créées
Fichiers intermédiaires : {scratchpad}/prompt-{slug}/

Démarrage...
```

---

### Phase 1 : Analyse

**Agent :** prompt-analyst (si dans l'équipe)

**`TaskUpdate` tâche #1 -> `in_progress`**

#### Mode Normal (parallèle avec challenger)

Si le challenger est dans l'équipe, spawner analyst ET challenger en parallèle. Le challenger explore le codebase de son côté pendant que l'analyst produit son analyse.

```
Task(subagent_type="general-purpose", team_name="prompt-{slug}", name="prompt-analyst", max_turns=15)
Task(subagent_type="general-purpose", team_name="prompt-{slug}", name="prompt-challenger", max_turns=15)
```

Les 2 agents tournent en parallèle (max 2 processus). Ils PEUVENT communiquer entre eux via SendMessage :
- Le challenger peut poser des questions à l'analyst
- L'analyst peut demander au challenger de vérifier un point

#### Mode Safe (séquentiel)

Spawner uniquement l'analyst :

```
Task(subagent_type="general-purpose", team_name="prompt-{slug}", name="prompt-analyst", max_turns=15)
```

#### Prompt analyst

- Description de la tâche
- Instruction de lire `prompt/agents/prompt-analyst.md`
- Contexte : description utilisateur
- **Écrire l'output dans `{scratchpad}/prompt-{slug}/01-analysis.md`**

Quand l'analyst termine -> `TaskUpdate` tâche #1 en `completed`.

**Gestion d'erreur :**
- Si l'analyst échoue : continuer avec le challenger seul si actif, sinon arrêter

---

### Phase 2 : Challenge

**Agent :** prompt-challenger (si dans l'équipe)

**`TaskUpdate` tâche #2 -> `in_progress`**

#### Mode Normal

Le challenger a déjà été spawné en Phase 1 et a exploré le codebase en parallèle. Lui envoyer l'analyse :

```
SendMessage(type="message", recipient="prompt-challenger", content="L'analyse est terminée. Lis {scratchpad}/prompt-{slug}/01-analysis.md et produis ton rapport de challenge dans {scratchpad}/prompt-{slug}/02-challenge.md")
```

#### Mode Safe

Shutdown l'analyst d'abord, puis spawner le challenger :

```
SendMessage(type="shutdown_request", recipient="prompt-analyst")
Task(subagent_type="general-purpose", team_name="prompt-{slug}", name="prompt-challenger", max_turns=15)
```

#### Prompt challenger

- Instruction de lire `prompt/agents/prompt-challenger.md` (Mode 1)
- **Lire** `{scratchpad}/prompt-{slug}/01-analysis.md`
- Focus : identifier les concerns BLOQUANT / IMPORTANT / SUGGESTION
- **Écrire l'output dans `{scratchpad}/prompt-{slug}/02-challenge.md`**

Quand le challenger termine -> `TaskUpdate` tâche #2 en `completed`.

**Shutdown de la phase d'analyse :**

Tous les agents de la phase d'analyse ont terminé. Shutdown :

```
SendMessage(type="shutdown_request", recipient="prompt-ana

Related in AI Agents