npx claudepluginhub zengwenliang416/ppt-agent --plugin ppt-agentThis skill is limited to using the following tools:
SVG slide layout and aesthetic optimizer via `scripts/invoke-gemini-ppt.ts`. Gemini's role is to **optimize layout and improve visual aesthetics** — not just check compliance. It evaluates layout balance, visual hierarchy, color harmony, typography, and readability, then proposes concrete improvements. The script automatically tries fallback models if the primary model is unavailable.
Converts PDF/DOCX/URL/Markdown sources to high-quality SVG presentation pages via multi-role AI pipeline, then exports to PPTX. For 'create PPT' or presentation requests.
Evaluates presentation slides with 12-point checklist for cognitive load, one idea per slide, assertions titles, element limits, accessibility, and TED/MIT best practices.
Creates, edits, and analyzes .pptx presentations programmatically: slides, layouts, content, speaker notes, comments. Uses Python scripts for text extraction and raw XML unpacking.
Share bugs, ideas, or general feedback.
SVG slide layout and aesthetic optimizer via scripts/invoke-gemini-ppt.ts. Gemini's role is to optimize layout and improve visual aesthetics — not just check compliance. It evaluates layout balance, visual hierarchy, color harmony, typography, and readability, then proposes concrete improvements. The script automatically tries fallback models if the primary model is unavailable.
npx tsx scripts/invoke-gemini-ppt.ts \
--role "<role>" \
--prompt "<prompt>" \
[--image "<path>"] \
[--model "<model>"] \
[--output "<path>"]
references/roles/{role}.mdscripts/invoke-gemini-ppt.ts| Role | Purpose | CLI Flag |
|---|---|---|
| reviewer | SVG slide layout & aesthetic optimization | --role reviewer |
Before calling Gemini, read the SVG file content and the relevant style YAML so you can include them in the prompt. The reviewer needs the actual SVG source code to inspect element attributes (font-size, fill, opacity, coordinates).
Construct a prompt that includes:
npx tsx scripts/invoke-gemini-ppt.ts \
--role reviewer \
--prompt "$REVIEW_PROMPT" \
--output "${RUN_DIR}/reviews/gemini-raw-${SLIDE_INDEX}.md"
The script tries models in order: default → gemini-2.5-pro → gemini-2.5-flash. If all fail, it exits with code 2.
${RUN_DIR}/reviews/gemini-raw-{nn}.md — do not delete it. Read and extract the structured optimization suggestions.references/roles/reviewer.md. This is the expected degradation path — optimization must still happen, just without the cross-model perspective.Whether from Gemini or Claude fallback, write the structured report to ${run_dir}/reviews/review-{nn}.md using the output format defined in references/roles/reviewer.md. The Gemini raw output (gemini-raw-{nn}.md) is preserved as an intermediate artifact for traceability.
npx tsx scripts/invoke-gemini-ppt.ts \
--role reviewer \
--output "${RUN_DIR}/reviews/gemini-raw-${N}.md" \
--prompt "
## Task
Optimize the SVG presentation slide's layout and visual aesthetics. Your primary output is **typed optimization suggestions** — concrete, actionable design improvements. Scoring is a secondary quality gate.
## Slide Content
${SVG_CONTENT}
## Style Reference
${STYLE_NAME} style with tokens: ${STYLE_TOKENS}
## Optimization Criteria
1. Layout Balance: card arrangement, visual weight distribution, whitespace usage
2. Color Harmony: palette consistency, contrast ratios, accent usage
3. Typography: hierarchy clarity, font size appropriateness, line spacing
4. Readability: text legibility at presentation resolution, information flow
5. Information Density: content-to-whitespace ratio, cognitive load
## Output Format
Follow the exact structure from references/roles/reviewer.md:
1. **Optimization Suggestions** (primary): typed suggestions using the 5-type taxonomy (attribute_change, layout_restructure, full_rethink, content_reduction, deck_coordination). Each with type, priority (1-3), description, and type-specific details.
2. **Suggestions JSON**: parseable JSON array of all suggestions for downstream automation.
3. **Quality Gate** (secondary): overall_score (1-10), pass (true/false), per-criterion weighted scores, hard rule violations.
"
The dual-model approach provides value through independent aesthetic perspective. Aesthetic optimization requires cross-model review — Claude cannot meaningfully optimize its own visual design choices (production data: 12 slides all scored 8.2-8.8 with identical notes during self-review).
When Gemini is unavailable (exit code 2), review-core performs technical validation only:
references/roles/reviewer.md Quality Standards table:
**Reviewer**: Claude technical validation (Gemini unavailable) — aesthetic optimization not performedThis is an honest tradeoff: without Gemini, slides have technical correctness but no cross-model aesthetic refinement. This is better than rubber-stamp scores that give false confidence.
Gemini's raw output (gemini-raw-{nn}.md) MUST be preserved in ${RUN_DIR}/reviews/. These files serve as:
| Required | Forbidden |
|---|---|
| MUST attempt Gemini via script first | Skip Gemini without trying |
| MUST fall back to technical validation on exit 2 | Fail the entire review if Gemini is down |
| MUST use reviewer role quality standards | Send generic/empty prompts to Gemini |
| MUST persist ALL output to run_dir artifacts | Discard Gemini output (gemini-raw-*.md) |
| Review MUST produce typed suggestions (Gemini) or hard-rule pass/fail (fallback) | Return vague qualitative-only feedback |
| MUST include SVG source in the prompt | Review based on filename alone |
Skill(skill="ppt-agent:gemini-cli") at runtime. The Skill tool loads SKILL.md into the agent's context, then the agent uses Bash to call invoke-gemini-ppt.ts. Both Skill and Bash must be in the agent's tools list.