Skip to content
Content
Skill

/pptx-posters

Create and audit editable scientific posters in macro-free PowerPoint (.pptx) from author-approved local content and assets. Use when the requested deliverable is a PowerPoint research/conference poster and exact physical, printer, accessibility, provenance, and package-security

From plugin
claude-scientific-writer
2.2k78 skills1 command
Install
$ npx -y skills add K-Dense-AI/claude-scientific-writer --skill pptx-posters --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/pptx-posters

Context preview

The summary Claude sees to decide when to auto-load this skill.

Create and audit editable scientific posters in macro-free PowerPoint (.pptx) from author-approved local content and assets. Use when the requested deliverable is a PowerPoint research/conference poster and exact physical, printer, accessibility, provenance, and package-security

SKILL.md

pptx-posters.SKILL.md
name: pptx-posters
description: Create and audit editable scientific posters in macro-free PowerPoint (.pptx) from author-approved local content and assets. Use when the requested deliverable is a PowerPoint research/conference poster and exact physical, printer, accessibility, provenance, and package-security checks are required.
license: MIT
compatibility: Requires Python 3.10+, uv, and exact generation pins python-pptx 1.0.2, Pillow 12.3.0, and lxml 6.1.1. Validation and PPTX ZIP/XML inspection are local and network-free; final PowerPoint, accessibility, PDF, printer, and author review are manual.
allowed-tools: Read Write Bash Glob Grep Python
metadata:
  version: "2.1"
  skill-author: K-Dense Inc.

PPTX posters

Scope

Use this skill only when the requested source/deliverable is an editable PowerPoint poster. Do not route an unspecified poster request here merely because PowerPoint is available.

Version 2.0 generates a real one-slide `.pptx` from strict local JSON. It does not use HTML conversion, external templates, schematic/image-generation services, API keys, environment files, network requests, or mandatory figure styles.

Hard gates

Stop instead of guessing when any gate is unmet:

1. The author has not supplied exact poster content and source records. 2. Any claim, number, citation, author, affiliation, funding statement, figure, license, or QR target is unresolved. 3. Current conference and printer requirements are not confirmed. 4. Author approval is not bound to the current manifest content hash. 5. An asset is remote, outside the manifest directory, unhashed, or unapproved. 6. An input is `.pptm`, contains macros/external relationships/OLE/embedded files, or is an untrusted template. 7. The requested workflow needs PowerPoint to be opened or executed automatically. 8. A script reports a package, layout, DPI, contrast, or output-plan blocker.

Never fabricate missing material or leave a plausible placeholder. Drafts fail closed.

Install exact generation dependencies

From the skill directory:

uv venv
uv pip install "python-pptx==1.0.2" "Pillow==12.3.0" "lxml==6.1.1"

Generation requires exactly:

python-pptx==1.0.2
Pillow==12.3.0
lxml==6.1.1

All CLIs use lazy optional imports, so `python -B scripts/<tool>.py --help` works without these packages. Use `-B` to avoid bytecode artifacts.

Establish requirements before layout

Record these separately:

  • physical trim width/height and orientation;
  • bleed on each edge;
  • safe margin inside trim;
  • PowerPoint canvas width/height;
  • uniform physical-artboard/canvas print scale;
  • conference maximum dimensions and delivery format;
  • printer trim, bleed, margin, scaling, color-mode, and proof requirements;
  • final-output font and raster-DPI thresholds, each labeled as a heuristic or tied to

an exact source.

  • required font faces, workstation availability, embedding permission, and the

substitution/proof workflow.

There is no universal poster size. Microsoft currently limits each custom PowerPoint dimension to 1–56 inches and uses one size for all slides. If the physical artboard is larger, use a proportional canvas only when the printer confirms scaling.

Read `references/poster_layout_design.md`.

Build the manifest

Copy `assets/poster_manifest_template.json` into the project. The template is deliberately invalid until every replacement token, false confirmation, and draft approval is resolved.

Follow `references/manifest_spec.md` and `references/poster_content_guide.md`.

The manifest requires:

  • exact source IDs for document metadata, every element, and every asset;
  • `author_verified: true` on every source;
  • `author_approved: true` on every element and asset;
  • local PNG/JPEG paths and lowercase SHA-256 hashes;
  • exact provenance and license/permission for every optional image;
  • approved alt text and, when needed, a source-bound native long description;
  • explicit reading order and design rectangles;
  • visible exact fallback URL/text for every local QR image;
  • confirmed conference/printer rules;
  • declared sRGB contrast pairs and redundant data encoding;
  • approval bound to canonical manifest content.

To obtain the content hash after all non-approval fields pass:

python -B scripts/validate_manifest.py poster.json \
  --print-content-hash

Give that exact manifest and hash to the author. Then set `approval.status` to `approved`, record approver and offset-aware timestamp, and copy the hash. Any non-approval edit invalidates approval.

Validate the approved manifest and local assets:

python -B scripts/validate_manifest.py poster.json

Audit assets and palette before generation

python -B scripts/inventory_images.py poster.json \
  --output poster.assets.json

python -B scripts/check_palette.py poster.json \
  --output poster.palette.json

python -B scripts/plan_export.py poster.json \
  --output poster.export-plan.json

Effective DPI is pixels divided by final placed inches, not image metadata DPI. The inventory fully decodes bounded images and blocks EXIF/XMP/comments and embedded text/application metadata; strip those offline, then rehash and reapprove the asset. Contrast uses WCAG 2.2 sRGB mathematics; applying those values to a physical poster is a design target, not a standalone conformance claim. Keep color-redundant labels, markers, shapes, patterns, or line styles.

If the printer requires CMYK, the plan blocks print-readiness until a printer-approved conversion/profile and proof exist. Do not claim that a native PowerPoint PDF is CMYK-compliant.

Read `references/poster_design_principles.md`.

Generate the PPTX

Use a new output path:

python -B scripts/generate_poster.py poster.json \
  --output poster.pptx \
  --report poster.generation.json

Generation:

  • creates a new blank presentation; it never loads a user template;
  • sets the approved canvas before adding content;
  • uses one native title
Read more
Ships withclaude-scientific-writer

🚀 Looking for more advanced capabilities? For end-to-end scientific writing, deep scientific search, advanced image generation and enterprise solutions, visit www.k-dense.ai Stay up to date: Follow K-Dense on X, LinkedIn, and YouTube for new features,

Get the whole plugin
Stats
2,200
Stars
262
Forks
Active
Maintenance
Python
Language
MIT
License
12d ago
Last commit
9mo ago
Created

Repo: K-Dense-AI/claude-scientific-writer

Other skills on claude-scientific-writer.