Groups Compose
Arrangerer relaterte pai-pro canvas-noder i titulerte rammer med beregnede avgrensningsbokser
Krever oppsett
Hva den gjør
Grupperer relaterte noder på pai-pro filmproduksjonslerretet — scenebilder, karakterreferansesett, akt-slag — til titulerte visuelle rammer, flytter medlemmer inn i et leserekkefølge-oppsett og beregner ramme-avgrensningsboksen med faste kortstørrelser og 24px polstring. Den sender ut en enkelt atomisk layoutoppdatering gjennom repoets canvas_layout.js CLI, som skriver node-posisjoner og grupperammer sammen i stedet for å redigere workflow.json. Utløses av forespørsler som "group these as Scene 2", "frame the character refs", eller "arrange act 2 on the canvas".
Testrapport
Klonet repoet; skills/groups-compose er en enkelt 105-linjers SKILL.md med gyldig name+description frontmatter og ingen medfølgende skript, ingen sikkerhetsmangler (grep for curl|sh, base64, key/token exfil, injeksjonstekst: ingen treff). De to tingene den refererer til løses — server/cli/canvas_layout.js og agent-templates/PROJECT_AGENT.md begge HTTP 200 rå; stier bruker $PAI_REPO_ROOT, ingenting maskinspesifikt. Jeg kunne ikke kjøre CLI-en ende-til-ende (den POSTer til pai-pro-viseren på localhost:7488, som trenger ./scripts/setup + start.sh), så jeg testet mot serverens egen rene validator, server/lib/canvas_layout.js (null importer), på et syntetisk 6-node-lerret med én eksisterende ramme: Jeg skrev en grunnlinje layout-patch som kun resonnerte fra workflow/positions-data pluss den eksisterende rammeformen, deretter en andre patch som fulgte ferdighetens oppskrift. Begge ble AKSEPTERT av applyCanvasLayoutPatch, men grunnlinjerammen var 1780x1060 (1,886,800 px2) med 2 av 5 medlemskort som falt utenfor rammeboksen (video_1 på y=1100 og audio_5 på x=1900) fordi canvas_positions.json ikke inneholder kortbredder/høyder, mens ferdighetspatchen produserte 1318x468 (616,824 px2, 3.06x strammere) med 0 medlemmer som fløt over og alle fem nodene flyttet inn i en note-venstre / media-høyre rad med de dokumenterte 40px og 36px mellomrommene. Dokumentasjonen mister et poeng: ferdighetens forpliktelse til å "evict from old frames in the same update" er allerede gjort automatisk av serveren (min grunnlinje utelot utkastelsen og den foreldede rammen ble fortsatt beskjært), og SKILL.md nevner aldri at viseren må kjøre for at trinn 7 skal lykkes.
Testet på: 2026-07-31 · Claude Code 2.x (agent harness)
Installer
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. Kommandoer og eksempelprompter
/groups-composeArrangerer relaterte pai-pro canvas-noder i titulerte rammer med beregnede avgrensningsbokser
Skills utløses av vanlige forespørsler — ingen kommandoer å huske. Etter installasjonen aktiverer prompter som disse skillen (på engelsk):
Group these scene nodes into a frameCluster the character references on the canvasArrange these act beats into a titled group