一键导入
deck-assembler
Assemble a .pptx presentation from all DeckContext contracts (SlideOutline, StyleGuide, ImageManifest, ChartManifest, SpeakerNotes) via PptxGenJS.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Assemble a .pptx presentation from all DeckContext contracts (SlideOutline, StyleGuide, ImageManifest, ChartManifest, SpeakerNotes) via PptxGenJS.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Produce a labeled figure with PERFECT text — render a label-free image locally (or take an external image) then overlay leader lines and typeset labels programmatically from vision-derived anchor coordinates. Text is correct by construction; only pointer placement is reviewed.
Ask which image models fit a set of tasks — get evidence-based recommendations with per-image costs, which external services to pay for, and which local models to install (with disk/RAM/licence guidance). Reads the live model catalog and probes what is actually available on this machine.
Check mflux (MLX) availability, per-family runtime presence, cached weights, and report readiness status.
Top-level image orchestrator. Routes all slide image generation to the appropriate skill (jack-tar-ollama:image, jack-tar-ollama:icon, jack-tar-ollama:pattern, jack-tar-ollama:diagram, jack-tar-cloud:image, jack-tar-cloud:icon, render_chart). Produces ImageManifest and ChartManifest. Also reads strategy-map.json to determine per-slide rendering approach (full_render, backdrop_render, composed).
Meta-verify — discover all jack-tar engine plugins, call each verify, report aggregate pipeline capability and discipline-hook readiness.
Generate an image locally on Apple Silicon via the mflux CLI (MLX). Flag-compatible with jack-tar-ollama's /image — a $0 local tier, no API keys needed.
| name | deck-assembler |
| description | Assemble a .pptx presentation from all DeckContext contracts (SlideOutline, StyleGuide, ImageManifest, ChartManifest, SpeakerNotes) via PptxGenJS. |
| argument-hint | ["--deck-dir PATH"] |
| allowed-tools | Bash(node *), Bash(npm *), Read, Glob |
Assemble a complete PowerPoint presentation from the DeckContext contracts in ./tmp/deck/.
All of these DeckContext files must exist before running:
./tmp/deck/outline.json (SlideOutline)./tmp/deck/style-guide.json (StyleGuide)./tmp/deck/image-manifest.json (ImageManifest)./tmp/deck/chart-manifest.json (ChartManifest)./tmp/deck/speaker-notes.json (SpeakerNotes)./tmp/deck/strategy-map.json (StrategyMap) — optional, controls per-slide rendering approach./tmp/deck/images/ directory with referenced image filesPLUGIN_ROOT=$(python3 -c "
from pathlib import Path
import sys, os
if os.environ.get('JACK_TAR_DECKHAND_ROOT'):
print(os.environ['JACK_TAR_DECKHAND_ROOT']); sys.exit()
home = Path.home()
for base in [home / '.claude' / 'plugins' / 'cache']:
for p in base.rglob('jack-tar-deckhand/.claude-plugin/plugin.json'):
print(str(p.parent.parent)); sys.exit()
dev = Path.cwd() / 'plugins' / 'jack-tar-deckhand'
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-deckhand not found" && exit 1; fi
Routing: Check for ./tmp/deck/template-profile.json first.
Template mode (template-profile.json exists):
PYTHONPATH="$PLUGIN_ROOT" python3 -c "
import json
from src.assembler.build_deck_template import build_deck
with open('./tmp/deck/template-profile.json') as f:
profile = json.load(f)
output = build_deck('./tmp/deck', profile['template_path'], profile)
print(f'Template deck assembled: {output}')
"
Standard mode (no template):
node src/assembler/build_deck.js --deck-dir ./tmp/deck
Default deck-dir is ./tmp/deck if not specified.
./tmp/deck/output/presentation.pptx
# prefix on hex colours (PptxGenJS convention)