Generate an editable SmartArt carrier .pptx from a spec. Accepts a SmartArt spec (graphic_type, items or tree, layout_id), renders the carrier file, and returns the path.
How this skill is triggered — by the user, by Claude, or both
Slash command
/jack-tar-msft-smartart:renderThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate an editable SmartArt carrier .pptx from a structured spec.
Generate an editable SmartArt carrier .pptx from a structured spec.
PLUGIN_ROOT=$(python3 -c "
from pathlib import Path
import sys, os
if os.environ.get('JACK_TAR_MSFT_SMARTART_ROOT'):
print(os.environ['JACK_TAR_MSFT_SMARTART_ROOT']); sys.exit()
home = Path.home()
for base in [home / '.claude' / 'plugins' / 'cache']:
for p in base.rglob('jack-tar-msft-smartart/.claude-plugin/plugin.json'):
print(str(p.parent.parent)); sys.exit()
dev = Path.cwd() / 'plugins' / 'jack-tar-msft-smartart'
if dev.exists():
print(str(dev)); sys.exit()
print('NOT_FOUND')
" 2>/dev/null)
if [ -z "$PLUGIN_ROOT" ] || [ "$PLUGIN_ROOT" = "NOT_FOUND" ]; then echo "ERROR: jack-tar-msft-smartart not found" && exit 1; fi
Parse $ARGUMENTS:
flowchart, cycle, org_chart, list)process1, cycle2). Optional — will use default for the graphic type../tmp/smartart/)If --spec-file is provided, read it as the spec. Otherwise build a spec from --graphic-type and --items.
If building from arguments, construct:
{
"graphic_type": "<TYPE>",
"layout_id": "<LAYOUT_ID or null>",
"items": ["<item1>", "<item2>"]
}
For hierarchical types (org_chart, hierarchy), --items is not valid — require --spec-file with a tree key.
PYTHONPATH="$PLUGIN_ROOT" python3 -c "
import json, sys
from pathlib import Path
spec = $SPEC_DICT
output_dir = '$OUTPUT_DIR'
Path(output_dir).mkdir(parents=True, exist_ok=True)
from src.engine import render
result = render(spec, output_dir)
print(json.dumps(result, indent=2))
"
The render() function returns a dict with at minimum:
carrier_pptx: absolute path to the generated carrier filelayout_id: the layout that was usedstatus: ok or errorReport the carrier file path, layout used, and status. On error, report the error message.
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 stevegjones/jack-tar-deckhand --plugin jack-tar-msft-smartart