Groups Compose

Arrangerer relaterede pai-pro canvas-noder i titelforsynede rammer med beregnede bounding boxes

Af Utopai-Research · Utopai-Research/pai-pro

Virker med opsætning ★ 8.4/10

Groups Compose — Arrangerer relaterede pai-pro canvas-noder i titelforsynede rammer med beregnede bounding boxes

Hvad det gør

Grupperer relaterede noder på pai-pro filmproduktionslærredet — sceneoptagelser, karakterreferencesæt, akt-beats — i titelforsynede visuelle rammer, flytter medlemmer til et læserækkefølge-layout og beregner rammens bounding box med faste kortstørrelser og 24px padding. Den udsender en enkelt atomisk layoutopdatering via repoets canvas_layout.js CLI, som skriver node-positioner og grupperammer sammen i stedet for at redigere workflow.json. Udløses af anmodninger som "group these as Scene 2", "frame the character refs" eller "arrange act 2 on the canvas".

Testrapport

Klonede repoet; skills/groups-compose er en enkelt 105-linjers SKILL.md med gyldig name+description frontmatter og ingen medfølgende scripts, ingen sikkerhedsbrister (grep for curl|sh, base64, key/token exfil, injection text: ingen hits). De to ting, den refererer til, løses — server/cli/canvas_layout.js og agent-templates/PROJECT_AGENT.md begge HTTP 200 raw; stier bruger $PAI_REPO_ROOT, intet maskinspecifikt. Jeg kunne ikke køre CLI'en ende-til-ende (den POSTer til pai-pro-viseren på localhost:7488, hvilket kræver ./scripts/setup + start.sh), så jeg testede mod serverens egen rene validator, server/lib/canvas_layout.js (nul imports), på en syntetisk 6-node canvas med en eksisterende ramme: Jeg skrev en baseline layout-patch, der kun ræsonnerede ud fra workflow/positions-data plus den eksisterende rammeform, derefter en anden patch efter færdighedens opskrift. Begge blev ACCEPTERET af applyCanvasLayoutPatch, men baseline-rammen var 1780x1060 (1.886.800 px2) med 2 af 5 medlemskort faldende uden for rammeboksen (video_1 ved y=1100 og audio_5 ved x=1900), fordi canvas_positions.json ikke indeholder kortbredder/højder, mens færdighedspatchen producerede 1318x468 (616.824 px2, 3.06x strammere) med 0 medlemmer, der løb over, og alle fem noder flyttet til en note-venstre / media-højre række ved de dokumenterede 40px og 36px mellemrum. Docs mister et point: færdighedens "evict from old frames in the same update"-forpligtelse udføres allerede automatisk af serveren (min baseline udelod udsættelsen, og den forældede ramme blev stadig beskåret), og SKILL.md nævner aldrig, at viseren skal køre, for at trin 7 kan lykkes.

Testet: 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.

Kommandoer og eksempelprompter

  • /groups-composeArrangerer relaterede pai-pro canvas-noder i titelforsynede rammer med beregnede bounding boxes

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

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