Groups Compose

Ordnet verwandte pai-pro Canvas-Knoten in betitelten Frames mit berechneten Bounding Boxes an

von Utopai-Research · Utopai-Research/pai-pro

Funktioniert mit Setup ★ 8.4/10

Groups Compose — Ordnet verwandte pai-pro Canvas-Knoten in betitelten Frames mit berechneten Bounding Boxes an

Was es kann

Gruppiert verwandte Knoten auf der pai-pro Filmemacher-Canvas – Szenenaufnahmen, Charakterreferenzsätze, Akt-Beats – in betitelte visuelle Frames, verschiebt Mitglieder in ein Lese-Layout und berechnet die Bounding Box des Frames mit festen Kartengrößen und 24px Polsterung. Es gibt ein einziges atomares Layout-Update über die canvas_layout.js CLI des Repos aus, die Knotenpositionen und Gruppen-Frames zusammen schreibt, anstatt workflow.json zu bearbeiten. Wird bei Anfragen wie "group these as Scene 2", "frame the character refs" oder "arrange act 2 on the canvas" ausgelöst.

Testbericht

Das Repo geklont; skills/groups-compose ist eine einzelne 105-zeilige SKILL.md mit gültigem name+description Frontmatter und ohne gebündelte Skripte, keine Sicherheitsmängel (grep nach curl|sh, base64, key/token exfil, injection text: keine Treffer). Die beiden Referenzen lösen sich auf – server/cli/canvas_layout.js und agent-templates/PROJECT_AGENT.md beide HTTP 200 raw; Pfade verwenden $PAI_REPO_ROOT, nichts maschinenspezifisches. Ich konnte die CLI nicht End-to-End ausführen (sie POSTs an den pai-pro Viewer auf localhost:7488, der ./scripts/setup + start.sh benötigt), daher testete ich gegen den reinen Validator des Servers, server/lib/canvas_layout.js (null Imports), auf einer synthetischen 6-Knoten-Canvas mit einem bereits vorhandenen Frame: Ich schrieb einen Baseline-Layout-Patch, der nur von workflow/positions-Daten plus der vorhandenen Frame-Form ausging, dann einen zweiten Patch, der dem Rezept des Skills folgte. Beide wurden von applyCanvasLayoutPatch AKZEPTIERT, aber der Baseline-Frame war 1780x1060 (1.886.800 px2) mit 2 von 5 Mitgliedskarten, die außerhalb des Frame-Feldes lagen (video_1 bei y=1100 und audio_5 bei x=1900), da canvas_positions.json keine Kartenbreiten/-höhen enthält, während der Skill-Patch 1318x468 (616.824 px2, 3,06x enger) erzeugte, wobei 0 Mitglieder überliefen und alle fünf Knoten in eine note-left / media-right-Reihe mit den dokumentierten 40px und 36px Abständen verschoben wurden. Docs verlieren einen Punkt: Die Verpflichtung des Skills, "evict from old frames in the same update", wird bereits automatisch vom Server erledigt (meine Baseline ließ die Eviction weg und der veraltete Frame wurde trotzdem beschnitten), und SKILL.md erwähnt nie, dass der Viewer für Schritt 7 laufen muss, damit er erfolgreich ist.

Getestet am: 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.

Befehle & Beispiel-Prompts

  • /groups-composeOrdnet verwandte pai-pro Canvas-Knoten in betitelten Frames mit berechneten Bounding Boxes an

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

  • Group these scene nodes into a frame
  • Cluster the character references on the canvas
  • Arrange these act beats into a titled group