0xVoidw/subagent-allocator

Lit un plan.md existant, répartit les tâches entre sous-agents, détermine leur rôle, modèle et effort de réflexion, puis produit un nouveau document de répartition plan.dispatch.md pour économiser des crédits sans sacrifier la qualité ni l'efficacité.

Qu'est-ce que subagent-allocator ?

Ce skill transforme un fichier plan.md en un tableau de répartition exécutable pour des sous-agents. Il analyse chaque étape du plan, attribue un niveau de complexité (T0 à T3), choisit le modèle et l'effort de réflexion adaptés, et génère le document plan.dispatch.md. L'objectif principal est d'économiser des crédits en confiant les tâches simples (lecture de fichiers, recherche de code, exécution de tests) à des modèles peu coûteux, tandis que les tâches nécessitant un jugement (décisions architecturales, débogage complexe) sont réservées aux modèles les plus performants. Le skill inclut des mécanismes de protection de la qualité : vérification automatique des résultats, revue de code par un modèle de niveau supérieur, et définition de critères d'achèvement pour chaque tâche. Il supporte Claude Code, OpenAI Codex, ou les deux plateformes simultanément, et se base sur des fichiers de référence actualisés pour les noms de modèles et les prix.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/0xVoidw/subagent-allocator/tree/HEAD/skills/subagent-allocator

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Répartiteur de sous-agents

Transforme un plan.md en un tableau de répartition exécutable : qui fait quoi, avec quel modèle, avec quel effort de réflexion, et comment escalader en cas d'échec.

Le principe pour économiser des crédits est simple : la majeure partie du travail dans un plan consiste en lecture de fichiers, recherche de code, exécution de tests et modifications selon des spécifications, ce qui ne nécessite pas les modèles les plus coûteux. Les modèles coûteux ne doivent être utilisés que là où un véritable jugement est nécessaire. Ce skill se charge de séparer ces deux catégories.

Entrées

  1. Chemin du plan.md. S'il n'est pas fourni, cherche plan.md / PLAN.md / PLANS.md dans le répertoire courant. En dernier recours, demande.
  2. Plateforme cible : claude (Claude Code), codex (OpenAI Codex) ou both. Si non précisé, déduit de l'environnement d'exécution ; si impossible, demande une fois.
  3. Orientation (optionnelle) : économiser, équilibré (par défaut), sûr. N'affecte que l'étape 4 ci-dessous lorsqu'il y a une indécision.

Une fois la plateforme déterminée, lit le fichier de référence correspondant qui contient les noms de modèles spécifiques, les ratios de prix et les paliers d'effort :

  • Claude → references/claude.md
  • Codex → references/codex.md
  • both → lit les deux, présente les deux configs côte à côte dans la sortie

Les noms de modèles et les prix deviennent obsolètes. Les fichiers de référence sont la seule source de vérité ; ne pas utiliser de mémoire pour les noms de modèles.

Processus

1. Lire le plan, décomposer en unités de tâches

Conserver la division en étapes du plan.md, en n'ajustant que dans deux cas :

  • Séparer : une étape contient à la fois "beaucoup de lecture/recherche" et "prise de décision/modification de code". Extraire la partie lecture pour un sous-agent peu coûteux qui ne retourne qu'un résumé.
  • Fusionner : plusieurs petites étapes consécutives modifient les mêmes fichiers et nécessitent le même contexte. Les fusionner en une seule tâche pour éviter de recharger le contexte plusieurs fois.

Ne pas trop décomposer. Chaque sous-agent a un coût de démarrage (relecture du contexte, rédaction des instructions de passation). Les petites tâches qui peuvent être faites en quelques minutes par l'agent principal doivent être marquées comme "exécutées directement par l'agent principal".

2. Attribuer cinq marqueurs à chaque tâche

MarqueurQuestion poséeValeurs
ClartéLes spécifications sont-elles déjà figées, il suffit de les suivre ?Claire / Partielle / Ouverte
Coût d'erreurEst-ce facile de détecter et annuler une erreur ?Faible / Moyen / Élevé
VérifiabilitéY a-t-il des tests, builds, linters, scripts pour juger automatiquement ?Oui / À ajouter / Non
Volume de lectureCombien de matériel faut-il lire avant d'agir ?Faible / Élevé
ImpactLa modification est-elle locale, entre modules, ou architecturale ?Local / Entre modules / Architecture

Si le plan.md n'est pas clair, juger en fonction du cas le plus probable et l'indiquer dans la colonne "Hypothèses" de la sortie, sans poser de questions.

3. Mapper sur quatre paliers

Les modèles spécifiques à chaque plateforme sont dans les fichiers de référence ; ici on ne définit que les paliers :

PalierUtilisationTâches typiques
T0 LégerClaire + coût faible + résultat vérifiable d'un coup d'œilRechercher des fichiers, lire des logs, exécuter des tests et rapporter, classer, extraire, résumer
T1 StandardClaire + local + vérifiableImplémenter une fonctionnalité selon des spécifications, corriger un bug bien localisé, écrire des tests, rédiger de la documentation, reproduction d'UI
T2 PrincipalPartiellement claire, ou entre modules, ou nécessitant un débogage/jugementFonctionnalités multi-fichiers, débogage d'un bug de cause inconnue, revue de code, intégration de résultats de sous-agents
T3 FlagshipOuverte + architecturale, ou coût d'erreur élevé sans vérification automatiqueDécisions architecturales, schémas de refactoring lourds, arbitrages entre contraintes multiples, direction de plusieurs sous-agents

Ordre de jugement : supposer d'abord T1, puis voir s'il y a une raison de descendre ou de monter.

  • Raison de descendre en T0 : la tâche consiste essentiellement à "trouver et rapporter", sans produire de code à fusionner.
  • Raison de monter en T2 : la clarté n'est pas "claire", ou l'impact n'est pas "local".
  • Raison de monter en T3 : doit satisfaire à la fois "ouverte ou architecturale" ET "coût d'erreur élevé". Si une seule condition est remplie, utiliser T2 avec effort élevé.

Dans un plan normal, il n'y a généralement que 0 à 2 tâches T3. Si la moitié des tâches sont en T3, revenir à l'étape de décomposition : le plus souvent, la "lecture" et le "jugement" ont été mélangés.

4. Définir l'effort de réflexion

L'effort est un réglage plus fin que le changement de modèle ; il faut d'abord l'ajuster.

  • Départ : toujours commencer avec la valeur par défaut du palier dans le fichier de référence.
  • Vérifiabilité = Oui : conserver la valeur de départ, voire baisser d'un cran. Si le modèle peut s'auto-vérifier avec des tests, un effort élevé apporte peu de bénéfices.
  • Vérifiabilité = Non ET coût d'erreur ≥ Moyen : monter d'un cran.
  • Quelqu'un attend les résultats en temps réel : baisser d'un cran, priorité à la vitesse.
  • Orientation = économiser : en cas d'indécision, prendre la valeur la plus basse ; sûr : prendre la valeur la plus haute.

Au-delà de high, augmenter l'effort coûte souvent presque aussi cher que de passer directement au modèle du palier supérieur avec un effort faible. L'échelle de progression est donc la suivante :

  1. Ajouter d'abord un moyen de vérification (lui donner une commande de test ou de vérification exécutable)
  2. Monter l'effort d'un cran, jusqu'à high au maximum
  3. Passer au modèle du palier supérieur, avec l'effort de départ le plus bas de ce palier

Le T0 de Codex est une exception : son rapport qualité-prix reste excellent même à effort élevé, voir references/codex.md pour plus de détails.

5. Protection de la qualité

Économiser des crédits ne doit pas se faire au prix de reprises, qui coûtent plus cher que d'utiliser le bon modèle dès le départ. Voici les moyens de garantir que "la qualité ne se dégrade pas significativement" :

  • Chaque tâche doit avoir un critère d'achèvement. Si possible, sous forme de commande (pytest tests/x, npm run build). Si aucun critère d'achèvement ne peut être écrit, la tâche monte d'un palier.
  • Les modifications de code et les décisions critiques restent au-dessus de T1. T0 ne fait que lire, ou écrire ce qui n'ira pas dans la branche principale (rapports, listes).
  • Après l'exécution d'un modèle bon marché, un modèle du palier supérieur examine le diff. L'examen du diff ne lit que la partie modifiée (peu de tokens), mais arrête la plupart des problèmes. Ajouter une tâche de revue indépendante à la fin de chaque phase dans le tableau de répartition.
  • Les sous-agents ne retournent que des conclusions. Dans la définition du rôle, spécifier le format et la limite de longueur de la réponse (par exemple "résumé de moins de 200 mots + liste des chemins de fichiers pertinents") pour éviter que de longues sorties n'engorgent le contexte de l'agent principal.

6. Ordonnancement de l'exécution

  • Les tâches indépendantes sont marquées comme parallélisables.
  • Autant que possible, regrouper les tâches utilisant le même modèle, et changer de modèle aux points de coupure naturels entre les phases. Changer fréquemment de modèle en cours de route videra le cache, ce qui équivaut à repayer le coût du contexte.
  • Les considérations spécifiques à chaque plateforme (appartenance du cache, seuils de majoration pour contexte long, etc.) sont dans les fichiers de référence ; les inclure dans la section "Remarques" de la sortie.

Sortie

Écrire plan.dispatch.md dans le même répertoire que le plan.md, en utilisant la structure suivante. Si les tâches sont nombreuses, le tableau conserve toutes les tâches, mais les fiches de rôle ne sont écrites que pour les tâches de sous-agents.

# Répartition des sous-agents : <Nom du plan>

Source : <chemin du plan.md> Plateforme : <claude / codex / both> Orientation : <économiser / équilibré / sûr>

## Aperçu

| # | Tâche | Exécutant | Palier | Modèle | Effort | Dépendances | Parallélisable |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | … | Explorateur | T0 | … | … | Aucune | Avec 2 |

Distribution des paliers : T0 ×n, T1 ×n, T2 ×n, T3 ×n
Agent principal : <modèle> / <effort>, responsable de <coordination, intégration, validation finale, etc.>

## Phases d'exécution

### Phase 1 : <Nom> (Modèle : …)
- Tâches 1, 2 en parallèle
- Revue de fin de phase : <qui révise, quoi>

## Fiches de rôle

### Tâche 1 : <Nom>
- **Rôle** : <description en une phrase, ex. "Explorateur en lecture seule : localiser toutes les occurrences de l'ancienne interface">
- **Modèle / Effort** : … / …
- **Objectif** : …
- **Entrée** : <fichiers, répertoires, messages d'erreur à lire>
- **Contraintes** : <ce qui est interdit de modifier, normes à suivre>
- **Critère d'achèvement** : <commande ou état vérifiable>
- **Format de retour** : <contenu et limite de longueur>
- **Échelle de progression** : Ajouter vérification → effort monte à … → Remplacer par … / …
- **Raison du choix** : <une phrase, en lien avec les cinq marqueurs>

## Hypothèses et remarques
- <éléments non clarifiés dans le plan.md, déduits par ce skill>
- <pièges de coût spécifiques à la plateforme>

## Économies estimées
Par rapport à une configuration "tout palier principal par défaut" : estimation grossière <ex. "environ la moitié des tâches passent en T0/T1, leur prix unitaire est divisé par 2 à 20">

Les quatre champs "Objectif, Entrée, Contraintes, Critère d'achèvement" de la fiche de rôle sont les instructions directement copiables-collables pour le sous-agent ; ils doivent être rédigés de manière à être compris indépendamment, car le sous-agent ne verra pas le reste du plan.md.

La section "Économies estimées" ne donne qu'un ordre de grandeur et la justification, sans fabriquer de pourcentage précis. La consommation réelle dépend de la tâche elle-même ; il est conseillé à l'utilisateur de comparer avec les statistiques d'utilisation après exécution et d'ajuster.

Exemple

Dans un plan.md, une étape :

  1. Remplacer toutes les occurrences de oldLogger par newLogger dans le dossier utils/, en notant que certaines endroits transmettent un formateur personnalisé

Traitement : cette étape mélange "trouver tous les points d'appel" (volume de lecture élevé, lecture seule) et "remplacer et gérer les cas spéciaux de formateur" (modification de code, cas spéciaux nécessitant un jugement). Séparer en deux tâches :

#TâcheExécutantPalierEffortRaison
3aLister tous les points d'appel de oldLogger et signaler ceux avec formateur personnaliséExplorateurT0Valeur de départLecture seule, les oublis seront détectés par le grep de 3b
3bRemplacer selon la liste, adapter chaque formateur un par unImplémenteurT1Valeur de départSpécifications claires, critère d'achèvement : grep -r oldLogger utils/ vide et tests passent

S'il n'y a pas de test couvrant le comportement du formateur, l'effort de 3b monte d'un cran, et cela est mentionné dans "Hypothèses et remarques".

Skills associés