Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pitch-deck generation exemplar — short/medium/long PDF+PPTX decks from one token-resolved, diligence-cited content source.
.claude/skills/docxology-template-pitch-deck/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 17% | 0% |
Project-scoped skill for the in-repo exemplar at projects/templates/template_pitch_deck/. Load this when working inside the project.
template_pitch_deck exemplar — running scripts, editing content, or regenerating outputs.infrastructure/rendering/ (e.g. this is the reference for DeckContent/Slide/DeckTheme).bash# From the repository root export PATH="$PWD/node_modules/.bin:$PATH" uv run python projects/templates/template_pitch_deck/scripts/10_audit_deck_content.py uv run python projects/templates/template_pitch_deck/scripts/15_generate_diagrams.py uv run python projects/templates/template_pitch_deck/scripts/20_render_decks.py uv run python projects/templates/template_pitch_deck/scripts/30_audit_diligence.py uv run pytest projects/templates/template_pitch_deck/tests --cov=projects/templates/template_pitch_deck/src --cov-fail-under=90 uv run pytest tests/infra_tests/rendering/test_slide_deck.py tests/infra_tests/rendering/test_pptx_deck.py tests/infra_tests/rendering/test_mermaid_figure.py
PDF and PPTX are required project formats; the isolated project environment installs python-pptx from this exemplar's own pyproject.toml. Mermaid figures require the repository-pinned node_modules/.bin/mmdc on PATH.
src/; layout/drawing logic belongs in infrastructure/rendering/{slide_deck,pptx_deck,mermaid_figure}.py — never in scripts/.pypdf/python-pptx), real repo introspection.source citation. src/diligence_audit.py fails the build otherwise (title-kind slides are exempt).PITCH_SUBJECT_*/EXEMPLAR_* token values come from src/deck_tokens.py::build_deck_tokens, which reads them live from the repo — adding a new fact means adding a new live read, not a literal.DeckContent. The exact Helvetica fitter and content layout planner live in slide_deck.py; pptx_deck.py consumes their results rather than estimating again. A title below the legibility floor or body crossing the QR/footer protected band fails before either output is replaced.PUBLIC_PROJECT_NAMES.source_base_url. Slide.qr_url (drawn bottom-right, both renderers) is only populated when manuscript/config.yaml's deck.source_base_url is non-empty — attach_qr_urls is a no-op otherwise. New infra capabilities (QR generation reuses infrastructure.steganography.barcode_generators.generate_qr_code) need their transitive dependency (qrcode[pil]) declared in THIS project's own pyproject.toml, not just the root repo's — see the isolated-venv pitfall below.infrastructure.* capability, re-run uv run python scripts/pipeline/stage_01_test.py --project templates/template_pitch_deck --project-only (not a bare root-venv pytest) — it is the only thing that catches a transitive dependency (reportlab/pypdf/Pillow/qrcode so far) missing from this project's own pyproject.toml.output/; regenerate from manuscript/ + src/. This includes output/slides_standalone/*.md — generated per-slide pages, not hand-authored.AGENTS.mdREADME.mdTODO.mdinfrastructure/rendering/slide_deck.py, pptx_deck.py, mermaid_figure.pyprojects/AGENTS.md| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 11,219 | 15,267 | +36% | 1 | 1 | 0% | 1,847 | 1,603 | -13% | 0 | 0 | — |
case-02 | fail→fail | 12,380 | 4,041 | -67% | 1 | 1 | 0% | 1,944 | 1,955 | +1% | 0 | 0 | — |
case-03 | fail→fail | 21,130 | 5,270 | -75% | 1 | 1 | 0% | 4,134 | 1,610 | -61% | 0 | 0 | — |
case-04 | fail→pass | 13,953 | 8,740 | -37% | 1 | 1 | 0% | 2,248 | 2,780 | +24% | 0 | 0 | — |
case-05 | pass→pass | 9,362 | 6,651 | -29% | 1 | 1 | 0% | 1,356 | 2,328 | +72% | 0 | 0 | — |
case-06 | fail→pass | 9,008 | 2,862 | -68% | 1 | 1 | 0% | 1,433 | 1,716 | +20% | 0 | 0 | — |
case-07 | fail→pass | 14,469 | 5,811 | -60% | 1 | 1 | 0% | 2,200 | 2,240 | +2% | 0 | 0 | — |
case-08 | pass→pass | 6,760 | 3,991 | -41% | 1 | 1 | 0% | 1,075 | 2,000 | +86% | 0 | 0 | — |
case-09 | pass→pass | 5,599 | 2,188 | -61% | 1 | 1 | 0% | 872 | 1,670 | +92% | 0 | 0 | — |
case-10 | fail→pass | 10,240 | 3,588 | -65% | 1 | 1 | 0% | 1,559 | 1,911 | +23% | 0 | 0 | — |
case-11 | fail→pass | 13,151 | 6,190 | -53% | 1 | 1 | 0% | 1,814 | 2,131 | +17% | 0 | 0 | — |
case-12 | fail→pass | 8,748 | 2,854 | -67% | 1 | 1 | 0% | 1,542 | 1,752 | +14% | 0 | 0 | — |
case-13 | fail→pass | 13,458 | 5,010 | -63% | 1 | 1 | 0% | 1,919 | 2,094 | +9% | 0 | 0 | — |
case-14 | pass→pass | 10,647 | 5,970 | -44% | 1 | 1 | 0% | 1,549 | 2,316 | +50% | 0 | 0 | — |
case-15 | fail→pass | 16,834 | 4,590 | -73% | 1 | 1 | 0% | 2,311 | 1,925 | -17% | 0 | 0 | — |
case-16 | fail→pass | 13,673 | 5,873 | -57% | 1 | 1 | 0% | 2,386 | 2,094 | -12% | 0 | 0 | — |
case-17 | fail→fail | 15,225 | 5,374 | -65% | 1 | 1 | 0% | 2,470 | 2,144 | -13% | 0 | 0 | — |
case-18 | fail→pass | 12,812 | 6,267 | -51% | 1 | 1 | 0% | 1,769 | 2,194 | +24% | 0 | 0 | — |
case-19 | pass→pass | 6,257 | 6,407 | +2% | 1 | 1 | 0% | 1,053 | 2,504 | +138% | 0 | 0 | — |
case-20 | pass→pass | 3,282 | 2,912 | -11% | 1 | 1 | 0% | 537 | 1,725 | +221% | 0 | 0 | — |
case-21 | pass→pass | 6,728 | 5,387 | -20% | 1 | 1 | 0% | 1,155 | 2,147 | +86% | 0 | 0 | — |
case-22 | fail→pass | 10,067 | 3,750 | -63% | 1 | 1 | 0% | 1,606 | 1,932 | +20% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/4/2026 | +59% |
Other measured skills in the registry, with their headline benchmark lift.