From pai-pro
Reads workflow.json and prints a compact, categorized list of canvas notes (scripts, shots, generic) to the chat. Handles user requests like 'what do we have' or 'summarize'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pai-pro:show-dagThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. Read `./workflow.json`. If the file is missing or `nodes` is empty, reply exactly: "Canvas is empty — nothing to show yet." and stop.
Read ./workflow.json. If the file is missing or nodes is empty, reply exactly: "Canvas is empty — nothing to show yet." and stop.
Print a compact rundown in this format. Prefix each note with a tag from data.subtype so scripts and shots are visually distinct from generic notes (📜 script, 🎬 shot, no prefix for generic):
📊 **<title or "Untitled">** — <N> notes
• `note_0` 📜 script — "<label>" — "<body excerpt ≤60 chars>"
• `note_1` 🎬 shot — "<label>" — "<body excerpt ≤60 chars>"
• `note_2` — "<label>" — "<body excerpt ≤60 chars>"
Keep the output under 12 lines. If there are more than 10 notes, show the last 8 and prefix the list with " earlier notes…". When a script has many derived shots, you can collapse the shot family into one line ("Shots 1–N (15s each) from note_0") rather than listing each shot.
Do NOT dump raw JSON.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub utopai-research/pai-pro --plugin pai-pro