Deux interfaces d’invocation, une seule squad
Ce plugin et son serveur MCP compagnon proposent deux façons d’accéder à la même squad — choisissez selon que votre hôte délègue directement aux agents ou appelle uniquement des outils.
Interface 1 — délégation directe aux agents (ce plugin)#
L’installation de hve-squad-plugin enregistre agents/squad/ et
skills/squad/ directement auprès de l’hôte (Copilot CLI, VS Code ou l’application
de bureau). Le mécanisme runSubagent/task propre à l’hôte délègue au
coordinateur de la squad et à ses agents au sein du même processus, dans l’espace de noms hve-squad:squad-*.
Aucun processus serveur, aucun appel réseau — tout s’exécute sous forme d’agents et de compétences que
l’hôte sait déjà charger.
Interface 2 — invocation par appel d’outils via @hve-squad/mcp#
Le fichier .mcp.json de ce plugin enregistre également le serveur compagnon
Peter-N91/hve-squad-mcp
via stdio. Il s’agit du même hôte — Copilot CLI, VS Code et l’application de bureau
prennent tous en charge nativement les appels d’outils MCP, en complément de leur propre interface de délégation aux agents,
et non à sa place. L’interface 2 n’est pas réservée à un autre client dépourvu d’agents ; elle donne
à la même session un point d’entrée supplémentaire : le modèle peut appeler de manière autonome
squad_research, squad_plan, squad_review,
squad_architect ou squad_run en cours de conversation, sans que personne
ne désigne d’abord un agent.
En mode délégué (le modèle d’exécution actuel, en phase 0), chaque appel d’outil
renvoie la persona du coordinateur de la squad, la ligne correspondante de la table de routage et une demande
de délégation structurée ; c’est la boucle d’exécution des agents de l’hôte appelant qui exécute réellement
runSubagent/task pour la traiter. Le serveur MCP lui-même n’appelle aucun
modèle et ne détient aucun identifiant d’authentification — c’est un routeur, pas un environnement d’exécution.
Un hôte réellement différent — Copilot Studio ou M365 Copilot — accède en revanche à
hve-squad-mcp par son mode embarqué/distant via HTTP distinct,
un déploiement séparé hébergé dans Azure et documenté dans le fichier
host/RUNBOOK.md de ce dépôt. Ce mode n’est aucunement configuré dans le fichier
.mcp.json de ce plugin.
Le schéma n’a pas pu être affiché. Sa source reste disponible ci-dessous.
Source du schéma
flowchart TD
subgraph Plugin["hve-squad-plugin (ce dépôt)"]
A["agents/squad/*.agent.md<br/>(27 agents)"]
S["skills/squad/ + invocations/<br/>(compétence squad, 7 compétences d’invocation)"]
H["hooks.json<br/>(contrôles complémentaires)"]
M[".mcp.json<br/>enregistre @hve-squad/mcp"]
end
subgraph Host["Copilot CLI / VS Code / application (une session, deux chemins)"]
HD["Délégation directe aux agents<br/>(l’utilisateur ou l’agent désigne hve-squad:squad-*)"]
HM["Appel autonome d’outils<br/>(le modèle appelle squad_* pendant la conversation)"]
end
subgraph MCPServer["Peter-N91/hve-squad-mcp (stdio, mode délégué)"]
T["5 outils de haut niveau :<br/>squad_research, squad_plan,<br/>squad_review, squad_architect, squad_run"]
end
subgraph Remote["Copilot Studio / M365 (déploiement distinct, hors de ce plugin)"]
R["hve-squad-mcp en mode intégré/HTTP"]
end
HD -- "délégation directe" --> A
A --> S
S --> H
HM -- "appel d’outil" --> T
T -- "renvoie le persona + la règle de routage<br/>+ la demande de délégation encadrée" --> HM
HM -- "runSubagent/task du même hôte<br/>effectue la délégation réelle" --> A
M -.->|"enregistre (stdio)"| T
Ce qui est réellement épinglé, et ce qui ne l’est pas#
Le serveur en mode délégué ne fournit ni n’utilise de copie intégrée des
personas des agents de la squad — son propre code source le précise explicitement : le
systemPrompt renvoyé par un appel d’outil est une courte reformulation rédigée à la main de la seule
règle de discipline de délégation, et délibérément pas une copie du véritable
contenu des fichiers .agent.md. L’hôte effectue ensuite sa propre délégation vers les
véritables fichiers d’agents installés par ce plugin, épinglés sur un tag — la version de
@hve-squad/mcp qui a répondu à l’appel d’outil n’a donc aucune incidence sur la
persona réellement exécutée. Il n’y a ici aucun risque de « deux copies de l’ensemble des agents susceptibles de diverger ».
Ce qui manquait réellement (désormais corrigé) : .mcp.json
référençait auparavant @hve-squad/mcp sans version, que npx résout vers
la version actuellement désignée par @latest — deux installations effectuées à des dates différentes
pouvaient donc exécuter silencieusement un code serveur différent, sans garantie de reproductibilité. Ce
plugin épingle désormais une version exacte et testée
(@hve-squad/mcp@0.7.0 au moment de la rédaction). La mise à jour de cette version épinglée est une
action délibérée, distincte de la régénération du contenu des agents du plugin — le
générateur (Build-SquadPlugin.ps1, paramètre -McpVersion) ne
modifie jamais silencieusement cet épinglage lors d’une régénération de contenu sans rapport.
Ce qui reste un point d’attention, de moindre portée : les métadonnées de routage de haut niveau
(tools.catalog.yml / generated/mcp-tools.schema.json,
qui sont bien incluses dans le package npm) sont générées à partir de la copie propre à hve-squad-mcp du fichier
squad-routing.instructions.md, lors de sa dernière publication. Si
la table de routage de hve-squad change sans mise à jour correspondante de la version MCP épinglée,
le niveau, le conseil et les points de contrôle indiqués par un appel d’outil peuvent devenir légèrement obsolètes par rapport
aux agents actuels du plugin — il s’agit d’une table de routage obsolète, et non d’un décalage du contenu
des agents. La mesure d’atténuation repose sur la même discipline que ci-dessus : refaire les tests et
épingler délibérément une nouvelle version lorsque le routage a changé, plutôt que de suivre @latest.