Groups Compose
Organise les nœuds de canevas pai-pro liés en cadres titrés avec des boîtes englobantes calculées
Fonctionne avec configuration
Ce que fait
Regroupe les nœuds liés sur le canevas de création de films pai-pro — plans de scène, ensembles de références de personnages, battements d'acte — en cadres visuels titrés, déplaçant les membres dans une disposition en ordre de lecture et calculant la boîte englobante du cadre avec des tailles de cartes fixes et un rembourrage de 24px. Il émet une seule mise à jour atomique de la disposition via l'outil CLI canvas_layout.js du dépôt, qui écrit les positions des nœuds et les cadres de groupe ensemble au lieu de modifier workflow.json. Se déclenche sur des requêtes comme "group these as Scene 2", "frame the character refs", ou "arrange act 2 on the canvas".
Rapport de test
Cloné le dépôt ; skills/groups-compose est un SKILL.md de 105 lignes avec un frontmatter name+description valide et aucun script intégré, aucune faille de sécurité (grep pour curl|sh, base64, exfiltration de clé/jeton, texte d'injection : aucun résultat). Les deux éléments qu'il référence se résolvent — server/cli/canvas_layout.js et agent-templates/PROJECT_AGENT.md tous deux HTTP 200 bruts ; les chemins utilisent $PAI_REPO_ROOT, rien de spécifique à la machine. Je n'ai pas pu exécuter le CLI de bout en bout (il POSTe vers le visualiseur pai-pro sur localhost:7488, ce qui nécessite ./scripts/setup + start.sh), j'ai donc testé contre le propre validateur pur du serveur, server/lib/canvas_layout.js (zéro imports), sur un canevas synthétique à 6 nœuds avec un cadre préexistant : j'ai écrit un patch de disposition de base en me basant uniquement sur les données workflow/positions plus la forme du cadre existant, puis un deuxième patch suivant la recette de la compétence. Les deux ont été ACCEPTÉS par applyCanvasLayoutPatch, mais le cadre de base était de 1780x1060 (1 886 800 px2) avec 2 des 5 cartes membres tombant en dehors de la boîte du cadre (video_1 à y=1100 et audio_5 à x=1900) car canvas_positions.json ne contient pas les largeurs/hauteurs des cartes, tandis que le patch de compétence a produit 1318x468 (616 824 px2, 3,06x plus serré) avec 0 membres débordant et les cinq nœuds déplacés dans une ligne note-left / media-right aux espacements documentés de 40px et 36px. La documentation perd un point : l'obligation de la compétence "evict from old frames in the same update" est déjà effectuée automatiquement par le serveur (ma base de référence a omis l'éviction et le cadre obsolète a quand même été élagué), et SKILL.md ne mentionne jamais que le visualiseur doit être en cours d'exécution pour que l'étape 7 réussisse.
Testé le: 2026-07-31 · Claude Code 2.x (agent harness)
Installation
git clone --depth 1 https://github.com/Utopai-Research/pai-pro.git /tmp/groups-compose-src
mkdir -p ~/.claude/skills
cp -R /tmp/groups-compose-src/skills/groups-compose ~/.claude/skills/groups-compose
# The skill only does anything inside a pai-pro project: its one write path is
# node "$PAI_REPO_ROOT/server/cli/canvas_layout.js" --layout-json '{...}'
# which POSTs to the local viewer at http://localhost:7488. So you also need:
# cd /tmp/groups-compose-src && ./scripts/setup --agent claude # installs deps, sets PAI_REPO_ROOT, registers skills
# ./scripts/start.sh # starts the viewer on :7488
# Plugin-marketplace alternative (installs all 7 pai-pro skills):
# /plugin marketplace add Utopai-Research/pai-pro then /plugin install pai-pro
# Skill folder is a single SKILL.md, no bundled scripts. Commandes et exemples de prompts
/groups-composeOrganise les nœuds de canevas pai-pro liés en cadres titrés avec des boîtes englobantes calculées
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Group these scene nodes into a frameCluster the character references on the canvasArrange these act beats into a titled group