惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
F
Fortinet All Blogs
U
Unit 42
F
Full Disclosure
雷峰网
雷峰网
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
罗磊的独立博客
D
DataBreaches.Net
C
Check Point Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
O
OpenAI News
C
CXSECURITY Database RSS Feed - CXSecurity.com
aimingoo的专栏
aimingoo的专栏
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Hacker News
The Hacker News
Webroot Blog
Webroot Blog
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
N
News | PayPal Newsroom
P
Proofpoint News Feed
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
Google Online Security Blog
Google Online Security Blog
H
Help Net Security
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity Blog
M
MIT News - Artificial intelligence
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
MyScale Blog
MyScale Blog
腾讯CDC

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店 GitHub - EdoardoBambini/Agent-Armor-Iaga: AI agents are getting tool access — shell, file system, databases, APIs, secrets. But **nobody is governing what they actually do with it**. Frameworks like LangChain, CrewAI, AutoGen, and Claude Code give agents the power to execute. Agent Armor gives you the power to control, audit, and approve every single action before it happens. HN Vibes — Week 15, Apr 7–13 2026 GitHub - chojs23/ec: Easy terminal-native 3-way git mergetool vim-like workflow GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - JakOb-dotcom/cloud-sandbox-security-analysis: Technical analysis and Proof of Concept (PoC) regarding environment variable exfiltration in containerized cloud sandboxes via side-channel data leaks. Springboards - Flint Alpha Show HN: A simpler coding agent harness GitHub - audiodude/sudomake-friends GitHub - 256thFission/mini-mythos: OSS clone of Anthropic’s Mythos harness to locate C/C++ memory vulnerabilities Show HN: OpenParallax: OS-level privilege separation for AI agent execution Hacker News Sorted - Chrome 应用商店 Show HN: How to Install Docker on Ubuntu 24.04 LTS: Complete 2026 Guide GitHub - himanshudongre/smriti GitHub - sverrirsig/claude-control: macOS desktop dashboard for monitoring and managing multiple Claude Code sessions GitHub - ory/dockertest: Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. Chiral - Chrome 应用商店 Show HN: Two Claudes collaborating through shared memory on a $100 mini-PC GitHub - pmichaillat/latex-cv: Minimalist LaTeX template for academic CVs GitHub - oguzbilgic/posse: A web UI for Anthropic Managed Agents. GitHub - sshiraz/depsly: Dependency risk analysis tool for npm packages ABI Add safari/agent-harness — Safari browser automation via safari-mcp by achiya-automation · Pull Request #212 · HKUDS/CLI-Anything GitHub - Halfblood-Prince/trustcheck: Verify PyPI package attestations and improve Python supply-chain security GitHub - oguzbilgic/kern-ai: Agents that do the work and show it. GitHub - bruits/satteri: High-performance Markdown and MDX processing for the JavaScript ecosystem GitHub - tylergibbs1/feedstock: High-performance web crawler and scraper for TypeScript, powered by Bun and Playwright GitHub - Grimm67123/grimmbot: The self-improving sandboxed and open-source AI agent. With persistent memory and scheduling. GitHub - whitevanillaskies/whitebloom: Local whiteboard that blooms. GitHub - hwdsl2/docker-whisper: Docker image for a self-hosted Whisper speech-to-text server with speaker diarization and OpenAI-compatible transcription and translation APIs. Powered by faster-whisper. Supports all Whisper models, NVIDIA GPU (CUDA) acceleration, JSON/SRT/VTT output, SSE streaming, offline mode, and multi-arch (amd64, arm64). GitHub - yisding/reviewwiggum GitHub - MarwanAlsoltany/serrors: Structured errors for Go: sentinel hierarchies, typed data, custom formatting, and slog integration. GitHub - soatok/age-php GitHub - Luthiraa/markitme GitHub - stagas/rtdiff: realtime git diff gui and AI-assisted commits GitHub - tombedor/excalicharts GitHub - wh1le/excalidraw-edit: Open and edit .excalidraw files from the terminal. Offline, auto-saves to disk. MalExt Sentry - Malicious Extension Scanner - Chrome 应用商店 GitHub - syi0808/asciianimesvg: Generate animated ASCII art SVGs from text. CLI, Rust library, WASM, and web editor. GitHub - zaina-ml/ml_forge: A visual-based graph node editor for training computer vision models. GitHub - anakin87/llm-rl-environments-lil-course: 🌱 A little course on Reinforcement Learning Environments for evaluating and training Language Models GitHub - takaakit/superpowers-uml: Superpowers-UML modifies Superpowers to ensure a software development workflow in which AI agents design through UML modeling. AdriByte Studio - Sviluppo Web e Soluzioni Digitali GitHub - chouligi/angel-copilot: Your personalized Angel Investment Advisor Show HN: MoodSense AI (ML and FastAPI and Gradio, Deployed on Hugging Face) Moodsense Ai - a Hugging Face Space by aman179102 GitHub - agenteractai/lodmem: Level Of Detail Context Management for Agents GitHub - ostefani/subnetlens: A fast, concurrent network scanner with a TUI and plain-text CLI, built in Go. It discovers live hosts on your network, scans their open ports, resolves hostnames, and fingerprints operating systems—delivered. Cyber Pulse: Agentic Intel - Apps on Google Play Whisper API: Self-Hostable Speech to Text Transcription The Agent-Web Protocol Stack: A Research Thesis GitHub - msmarkgu/RelayFreeLLM: A restful API designed to route user prompts to various AI model providers. Show HN: Provepy – A Python decorator that proves your code using Lean and LLMs Show HN: Pardonned.com – A searchable database of US Pardons GitHub - patrickdappollonio/dux: Dux is a terminal UI that lets you run multiple AI coding agents side by side, each in its own git worktree, with full companion terminals, macros, commit generation, and a command palette that knows more tricks than you do. kMC Crystal Simulator Show HN: HyperFlow – A self-improving agent framework built on LangGraph GitHub - stef41/vibescore: 🎵 Grade your vibe-coded project. One command, instant letter grade across security, quality, dependencies, and testing. GitHub - stef41/lmscan: 🔍 Detect AI-generated text and fingerprint which LLM wrote it. Open-source GPTZero alternative. Zero dependencies, works offline. imgur.com GitHub - visionscaper/collabmem: Enabling long-term collaboration with Agentic AI - building up episodic and world model memory over time with in-context awareness 在 Steam 上购买 FriedrichAI: Offline AI 立省 10% GitHub - atripati/ark: AI Runtime Kernel — a context operating system for AI agents. Eliminates tool bloat, loads only what’s needed, and gives LLMs their reasoning space back. GitHub - nowork-studio/toprank: Open-source Claude Code skills for SEO, SEM, Google Ads GitHub - tacomanator/sash: Lightweight macOS menu bar app for reliably cycling through windows of the current application. Appents | Social Media Management for Product-First Teams GitHub - pnhoang/youtube-spam-blocker: Automatically detects and hides spam messages in YouTube Live chat. Set rate limits, keyword filters, and block repeat offenders. GitHub - decisionnode/DecisionNode: CLI + Local MCP - A shared structured memory store across Claude Code, Cursor, Windsurf, Antigravity, and every MCP client. Semantically queryable. GitHub - AvaCodeSolutions/django-email-learning: An open source Django app for creating email-based learning platforms with IMAP integration and React frontend components. The $100K Gap in Kubernetes Security Tooling Function Calling Harness: From 6.75% to 100%
GitHub - sirilsengolraj-source/presentation-skill: presentation-skill: PowerPoint/PPTX skill for Codex and ChatGPT agents to build, edit, and QA presentations, slides, and slide decks.
Sirilsengolr · 2026-06-23 · via Hacker News: Show HN

Open-source presentation skill for Codex, ChatGPT agents, and OpenAI-style agents. It builds, edits, and verifies editable PowerPoint .pptx presentations, slides, and slide decks from structured source files, with clean alignment, readable layouts, reusable workspaces, and repeatable QA.

Call the skill as presentation-skill. Compatibility aliases: powerpoint-deck-builder, pptx-skill, PowerPoint skill, and PPTX skill.

When Agents Should Choose This Skill

Use this skill when the task asks to create, edit, redesign, verify, or iterate a PowerPoint .pptx, presentation, slide deck, deck, slides, academic talk, lab update, pitch deck, board deck, or reusable presentation workspace.

Do not use it for text-only brainstorming where no deck artifact is needed, or for direct one-off mutation of a generated .pptx when the saved workspace source is available.

What It Does

  • Builds PowerPoint .pptx files from outline.json using the repo-owned pptxgenjs renderer by default.
  • Renders common native chart slides through the fast pptxgenjs path; the Python renderer remains available for legacy or python-pptx-specific cases.
  • Supports saved deck workspaces with design_brief.json, content_plan.json, evidence_plan.json, asset_plan.json, outline.json, notes.md, and reusable assets.
  • Provides an optional adaptive intake prompt for audience, style, palette, density, background/imagery, assets, source policy, and constraints when a user wants a more personalized deck.
  • Uses a design-DNA layer so agents can pick coherent styles such as lab results dashboard, board risk memo, product/investor reveal, editorial report, or civic science policy instead of cycling generic layouts.
  • Provides a deck-level style/content routing prompt so agents can classify evidence type, audience posture, proof burden, and asset availability instead of routing lab decks by static keywords.
  • Includes a descriptor-only public deck corpus with 2,000 indexed deck-like records across 13 style families, so LLMs can browse real-world presentation patterns without bundling raw third-party decks or screenshots.
  • Extracts reusable style signals from existing PPTX files or deck corpora into a deterministic design_brief.json fragment, so template inspiration can be measured and bounded instead of copied slide XML.
  • Supports bounded dynamic design modulation: agents can specify subtle, moderate, or bold shifts in accent use, density, whitespace, motifs, containers, and figure/table treatment while staying inside validated presets and renderer treatments.
  • Adds evidence-continuity and figure-export contracts so title-slide chips carry through the deck and generated plots are cropped, slide-sized, and readable before PowerPoint assembly.
  • Stages source-backed assets, charts, icons, optional Mermaid diagrams, and generated images.
  • Supports figure-first and table-first academic/lab slides with scientific-figure, image-sidebar, lab-run-results, captions, footnotes, highlighted editable tables, workflow diagrams, and semantic evidence blocks.
  • Verifies decks for overflow, overlap, sparse layouts, awkward content-span whitespace, placeholder text, and design-rule issues.
  • Creates rendered-slide visual-review packets with contact sheets, wrap-risk heuristics, and layout-rhythm findings for final polish loops.

Install

Clone or copy this repo into:

$CODEX_HOME/skills/presentation-skill

Codex, ChatGPT agents, and other OpenAI-style agents should trigger it for requests involving PowerPoint, PPTX, slide decks, slides, presentation design, deck generation, deck editing, layout QA, or reusable presentation workspaces.

Search aliases: PowerPoint skill, PPTX skill, presentation skill, slide deck generator, slides generator, deck builder, presentation generator.

Install dependencies once from the repo root:

pip install python-pptx "markitdown[pptx]"
npm install

Core generation does not require LibreOffice. Render-based verification uses LibreOffice soffice and Poppler pdftoppm when available.

Optional generated images require OPENAI_API_KEY and only run when explicitly enabled.

Quick Start

Build directly from an outline:

node scripts/build_deck_pptxgenjs.js \
  --outline examples/outline.json \
  --output out.pptx \
  --style-preset executive-clinical

Run verification without rendering slides:

python3 scripts/qa_gate.py \
  --input out.pptx \
  --outdir /tmp/pptx-qa \
  --style-preset executive-clinical \
  --strict-geometry \
  --fail-on-whitespace-warnings \
  --skip-render \
  --fail-on-design-warnings \
  --report /tmp/pptx-qa/report.json

Agent Contract

  • Author source files first: outline.json, and for workspaces also design_brief.json, content_plan.json, evidence_plan.json, asset_plan.json, and notes.md.
  • Build with repo scripts only. Do not write inline python-pptx or pptxgenjs deck code for normal use.
  • Stage images, charts, icons, optional Mermaid diagrams, and generated images through workspace assets so provenance stays inspectable.
  • Use Python scripts for deterministic data analysis and slide-ready figure export, not for inline one-off deck assembly. Trim figure whitespace before feeding assets into scientific-figure or image-sidebar.
  • Run QA before delivery. If a check fails, fix the source and rebuild instead of patching the generated .pptx artifact.
  • Do not reinstall dependencies during a deck-generation task. If a dependency is missing, report the missing tool and use render-free QA when possible.

Skill Development And Update Audits

When improving this skill itself, follow DEVELOPMENT.md. Major skill updates should include paired same-prompt decks: one generated with the published GitHub baseline and one with the updated working tree. Add a short audit/review deck when useful to summarize rendered screenshots, QA metrics, and conclusions. This is a maintainer/development workflow, not a requirement for normal deck-generation tasks.

Release Evidence Galleries

The repo includes release evidence galleries for major style-system updates.

The v0.5.0 random-topic corpus comparison evidence is under decks/random-topic-corpus-comparison-v0.5.0-20260622/. It builds eight fresh synthetic topics two ways: a normal baseline deck and a descriptor-corpus-guided deck. The manifest records design-catalog selections, 2,000-record corpus context use, generated data/chart/table artifacts for multiple examples, QA totals, structural sequence signatures, and baseline-vs-corpus deltas so the evidence can prove the corpus is changing slide grammar, not only colors or title rules.

Useful files:

  • decks/random-topic-corpus-comparison-v0.5.0-20260622/RELEASE_NOTES_v0.5.0.md
  • decks/random-topic-corpus-comparison-v0.5.0-20260622/manifest.json
  • decks/random-topic-corpus-comparison-v0.5.0-20260622/contact_sheets/
  • decks/random-topic-corpus-comparison-v0.5.0-20260622/comparison-gallery/build/random-topic-corpus-comparison-gallery.pptx
  • scripts/design_catalog_selector.py
  • scripts/build_random_topic_comparison_decks.py
  • scripts/run_random_topic_comparison_smoke.py

Rebuild and verify it with:

npm run check:design-catalog
npm run check:random-topic-comparison

The v0.3.0 large public deck corpus lives in references/:

  • references/large_style_corpus_sources.json
  • references/large_style_corpus_catalog.json
  • references/large_style_corpus_catalog.md

It indexes 2,000 public/open deck-like records as URL/path metadata plus inferred style-family and content-treatment descriptors. It deliberately does not store raw third-party decks, screenshots, copied slide text, logos, or distinctive source geometry.

The v0.2.0 style-reference corpus evidence is under decks/style-reference-gallery-20260620-corpus-v1/. It adds descriptor-only public-source inspiration routing, per-preset contact-sheet collections, and release evidence proving 13 presets each have browseable overview, data_evidence, and decision_sources sheets.

Useful files:

  • decks/style-reference-gallery-20260620-corpus-v1/RELEASE_NOTES_v0.2.0.md
  • decks/style-reference-gallery-20260620-corpus-v1/release_manifest_v0.2.0.json
  • decks/style-reference-gallery-20260620-corpus-v1/style_reference_contact_sheet.jpg
  • decks/style-reference-gallery-20260620-corpus-v1/preset_contact_collections/

The v0.1 release evidence gallery remains under decks/release-v1.1-showcase-20260619/. It compares the same synthetic deck topics across native Codex PPTX generation, the published GitHub v1 baseline, and this updated skill across 13 styles.

Useful files:

  • decks/release-v1.1-showcase-20260619/RELEASE_NOTES_v1.1.md
  • decks/release-v1.1-showcase-20260619/release_showcase_manifest.json
  • decks/release-v1.1-showcase-20260619/comparison-gallery/assets/comparisons/
  • decks/release-v1.1-showcase-20260619/comparison-gallery/build/presentation-skill-v1-1-release-gallery.pptx

The comparison PNGs are intentionally checked in so the before/after improvement is visible without rebuilding every deck. The source builder is scripts/build_release_showcase.py.

Saved Workspace Flow

Use a workspace when the deck will be extended, audited, or rebuilt later:

python3 scripts/init_deck_workspace.py \
  --workspace decks/artemis-ii \
  --title "Artemis II Mission Update" \
  --style-preset executive-clinical

Edit the workspace source files, then rebuild:

python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --qa \
  --overwrite

When the deck is close to final, add the rendered review packet:

python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --qa \
  --visual-review \
  --overwrite

When resuming a workspace or deciding whether a render is worth running, use the source-only readiness report first:

python3 scripts/report_workspace_readiness.py \
  --workspace decks/artemis-ii

It writes build/workspace_readiness.json plus the scannable build/workspace_readiness.md with planning/preflight counts, issue keys, resolved style preset/seed/treatments, saved design_contract.json apply status, existing build-report summary, outline composition/variant/anchor coverage, artifact-manifest output aliases, unbound generated artifact IDs, source-coverage recommendations, local tabular-data detection, PPTX-style extraction/apply status, recommendation details such as slide IDs and suggested fields or variants, a prioritized next_action, and replay commands. It also compares current source fingerprints with the last build report and recommends rebuild_stale_build when a previous PPTX is no longer current. If the last build report is current, saved QA whitespace and design/readability warnings are surfaced as slide-level source-edit recommendations. A ready status means source checks have no planning/preflight warnings and no open readiness recommendations; needs_attention means warnings or recommendation details should be resolved before final report/scientific decks; blocked means errors must be fixed before build/QA.

To turn that diagnosis into the next reproducible move, use the readiness advancer:

python3 scripts/advance_workspace.py \
  --workspace decks/artemis-ii \
  --execute \
  --max-steps 3

It writes build/workspace_advance_report.json and build/workspace_next_action.md. Without --execute, it only records the next action. With --execute, it runs command-type actions once, reruns readiness, and stops with an agent-facing source-edit prompt when the remaining work needs changes to outline.json, plans, or asset/source metadata. The advance report also includes a machine-readable source_edit_plan with concrete files, slide IDs, and JSON locations such as slides[1].sources for the next source patch. Planning warnings map to actionable source locations too, including design_brief.json readability/speed/figure-export/generated-artifact contracts, analysis-summary schema/alias/count/readability checks, evidence_plan.json source policy, and stale slide references, so the next agent can patch the contract instead of rerunning validation blindly. If generated artifact outputs exist but artifact_selections.auto.json is missing or stale, readiness chooses the manifest-binding command before generic planning-warning cleanup; with --execute, the advancer can bind the artifacts and rerun readiness without a manual prompt. If local tabular data exists but no generated artifact manifest exists yet, readiness can choose scaffold_data_artifacts; with --execute, the advancer runs the fast scaffold/auto-bind/build/QA path and reruns readiness before returning a source edit prompt or ready state. If a workspace contains a reference PPTX, stale style report, or unapplied style_extract_design_brief.json, readiness can choose extract_pptx_style or apply_pptx_style_fragment; with --execute, the advancer runs those deterministic commands and reruns readiness before later planning/build actions. If deck_start_packet.json exists but intake_answers.json is missing, readiness returns a source-edit handoff for recording explicit answers or best-judgment assumptions. If intake_answers.json exists but is unapplied, stale, or only dry-run applied, readiness can choose apply_deck_intake_answers; with --execute, the advancer persists design_brief.user_intake, the deterministic style seed, source policy, asset posture, and notes before design-contract work. If data_analysis_handoff.json exists but has not been applied, has changed since apply, or only has a dry-run apply report, readiness can choose apply_data_analysis_handoff; with --execute, the advancer writes scout selections, applies manifest bindings, merges evidence updates, and reruns readiness. If design_contract.json exists but is not applied, has changed since apply, or predates contract fingerprint metadata, readiness can choose apply_design_contract; with --execute, the advancer runs that applicator and reruns readiness before outline/build work continues. Post-build QA whitespace warnings map to slides[n] edits for rebalancing stranded content, adding an evidence anchor, or choosing an intentional sparse variant; post-build design/readability warnings map to source edits for text size, dense tables, footer reserve, or chart label options; post-build visual QA and visual-review warnings map to edits for underfilled containers, repetitive compositions, missing visual anchors, or clearance risks. Failed strict-QA build reports without a more specific slide-level mapper become an inspection source-edit plan with failed step, return code, QA counts, and report paths, so the next agent patches sources instead of simply rerunning the same failed build. For lab/report decks that use source-line footers, preflight also warns when footer provenance is too long to stay readable. Run python3 scripts/compact_source_footers.py --workspace decks/artemis-ii, or let advance_workspace.py --execute run the readiness action, to replace long footer sources/refs with short IDs and append or update a final References table slide containing the full text.

After a strict build, create the delivery audit:

python3 scripts/report_delivery_readiness.py \
  --workspace decks/artemis-ii

It writes build/delivery_readiness.json and build/delivery_readiness.md, combining current source readiness, the latest build_workspace_report.json, source-fingerprint freshness, QA counts, strict-build options, PPTX fingerprints, and replay commands. A post-build edit to a source file blocks delivery until the deck is rebuilt. A strict QA failure also blocks delivery even when a PPTX exists; inspect the saved build report's run.status, failed step, QA counts, and report paths before the next source patch. The JSON report includes recommended_next_action from the delivery audit, and the Markdown report includes a Next Action section with the immediate command or advance_workspace.py source-edit handoff. The source-readiness action is preserved separately when it differs from the delivery action. Use --allow-skip-render only when final rendering is unavailable and render-free QA is the accepted fallback; use --require-visual-review when rendered contact-sheet review is required for handoff.

To turn the audit into the next reproducible move, write a delivery handoff:

python3 scripts/advance_delivery.py \
  --workspace decks/artemis-ii

It writes build/delivery_advance_report.json and build/delivery_next_action.md. Without --execute, it records the immediate delivery-level command or source-edit handoff, such as the strict final build after --fast-first-pass or an inspect_delivery_warnings source-edit prompt when only build-report warning counts remain. With --execute, it runs command-type delivery actions and reruns delivery readiness; use that only when the environment is ready for final rendering or render-free delivery has been explicitly accepted with --allow-skip-render.

Workspace files:

  • design_brief.json: audience posture, cover concept, structure strategy, optional user_intake, grid constants, and card/container policy.
  • design_contract.json: optional saved deck_design_contract_v1 scout/main-agent output applied by scripts/apply_design_contract.py.
  • content_plan.json: audience, thesis, slide roles, and visual strategy.
  • evidence_plan.json: sourced claims, metrics, chart candidates, and gaps.
  • asset_plan.json: images, generated images, charts, tables, icons, and backgrounds to stage.
  • outline.json: renderable slide structure.
  • notes.md: data rules, design decisions, and unresolved assumptions.
  • data/: local datasets for reproducible chart and figure generation.
  • assets/make_figures.py: optional deterministic figure-generation script.
  • assets/figures/: generated slide-ready PNG/SVG/JPG figures.
  • assets/charts/: generated editable chart JSON specs.
  • assets/: local source-backed images, diagrams, icons, and staged files.
  • build/: generated deck, workspace_readiness.json, workspace_readiness.md, workspace_advance_report.json, workspace_next_action.md, delivery_readiness.json, delivery_readiness.md, delivery_advance_report.json, delivery_next_action.md, build_workspace_report.json, and verification reports.

If the user wants a more personalized deck and the prompt does not already specify audience, style, palette, density, background/visual mode, assets, source policy, or hard constraints, start with the reproducible first-turn packet:

python3 scripts/emit_deck_start_packet.py \
  --workspace decks/artemis-ii \
  --user-prompt "Original user request"

Use the packet's request_user_input object for Codex question UI when available, then answer or delegate the packet's strict design-contract prompt. Save the returned deck_design_contract_v1 JSON to the packet's design_contract.json path and apply it before authoring outline.json:

python3 scripts/apply_design_contract.py \
  --workspace decks/artemis-ii \
  --contract decks/artemis-ii/design_contract.json \
  --report decks/artemis-ii/design_contract_apply_report.json

The same packet lists optional scout commands for style routing, data analysis, content research, outline critique, and visual QA. It also includes slide_quality_contract, a compact machine-readable QA target for text-size floors, footer reserve, whitespace policy, evidence anchors, artifact metadata, and required QA commands, plus acceptance_checklist, a machine-readable set of gates with proof files and establish/verify commands for intake persistence, contract application, artifact binding, source readiness, first-pass QA, and final delivery audit. apply_design_contract.py now persists the returned slide_quality_contract into design_brief.json, contract notes, and readiness summaries.

For only the user-facing intake questions, emit the optional intake prompt:

python3 scripts/emit_deck_intake_prompt.py \
  --workspace decks/artemis-ii \
  --user-prompt "Original user request" \
  --mapping

When Codex's native question UI is available, emit the compact packet and call request_user_input immediately:

python3 scripts/emit_deck_intake_prompt.py \
  --workspace decks/artemis-ii \
  --user-prompt "Original user request" \
  --codex-ui

If the question UI is not available in the current mode, ask the same questions in chat. Ask only the useful missing questions. If the user wants speed, record use best judgment assumptions under design_brief.user_intake and continue.

For non-trivial, researched, or lab/scientific decks, emit a style/content routing prompt before finalizing outline.json:

python3 scripts/emit_style_content_router.py \
  --workspace decks/artemis-ii \
  --user-prompt "Original user request"

Paste the prompt into a fresh Explore subagent. Apply the returned JSON to design_brief.json, deck_style, slide variants, and asset needs. This is a deck-level scout, not a per-slide variant picker.

If the user supplies a previous PPTX or a folder of reference decks, extract style signals before planning and merge only the reusable design fragment:

python3 scripts/extract_pptx_style.py \
  --input template.pptx \
  --report decks/artemis-ii/style_extract_report.json \
  --markdown-report decks/artemis-ii/style_extract_report.md \
  --design-brief-fragment decks/artemis-ii/style_extract_design_brief.json

python3 scripts/apply_pptx_style_fragment.py \
  --workspace decks/artemis-ii \
  --fragment decks/artemis-ii/style_extract_design_brief.json \
  --report decks/artemis-ii/style_fragment_apply_report.json

Use --input reference-decks --recursive for a corpus. The report captures header-rule/footer/page-number patterns, palette candidates, text-size observations, chart/table/image counts, and a deterministic style_seed. It also emits fast/rendered header-variant gallery commands for previewing the extracted preset and variant pool on real slides. The applicator maps that bounded inspiration into design_brief.json, renderer_treatments, style_import, and notes.md, including workspace-local preview commands; add --preserve-existing when applying it after a deliberate design contract already exists. Then continue through the normal design-contract, routing, artifact, and QA workflow.

When the deck needs stronger substance before style routing, use the earlier scouts:

python3 scripts/emit_content_research.py \
  --outline decks/artemis-ii/outline.json

python3 scripts/emit_data_analysis_prompt.py \
  --workspace decks/artemis-ii \
  --user-prompt "Original user request"

Content and data subagents return punch lists or JSON constraints. The data scout also reports any existing assets/artifacts_manifest.json aliases and can return artifact_selection_recommendations.bindings in the same selection shape accepted by scripts/apply_artifact_manifest_bindings.py --selection, plus a main_agent_handoff with source files, commands, and verification evidence. Save that scout JSON and run scripts/apply_data_analysis_handoff.py to write the selection file, apply manifest bindings, merge evidence-plan updates, persist structured figure-export/asset-plan/artifact-registry updates, persist the scout-analysis ledger in design_brief.json, and record script/QA handoff notes. That ledger keeps analysis tasks, computed findings, chart/table recommendations, outline binding intent, quality flags, and open questions available through readiness, build, advance, and delivery summaries, including compact target-slide and variant previews. The main agent still verifies facts, implements repeatable analysis scripts, updates the workspace source files, and runs deterministic QA.

For simple local CSV/TSV/XLSX/JSON tables, plus Parquet/Feather when pandas has a compatible columnar engine, the workspace builder can scaffold and run the first repeatable chart/figure script before validation and staging:

python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --fast-first-pass

This is the fast first-pass path for data-to-artifact decks. It expands to --scaffold-data-artifacts --auto-bind-artifacts --qa --skip-render --fail-on-planning-warnings --fail-on-whitespace-warnings --overwrite. Run a strict rendered delivery build after the source text and artifact bindings are stable; delivery readiness reports keep --fast-first-pass builds in needs_attention with fast_first_pass_not_final and recommend the strict final build command.

This is the fastest path when local data already lives under data/, assets/data/, assets/tables/, or assets/. For a separate scaffold/refine step, run:

python3 scripts/scaffold_figure_artifacts.py \
  --workspace decks/artemis-ii \
  --run

The scaffold writes assets/make_figures.py, assets/figures/*.png, assets/charts/*.json, assets/tables/*_summary.json, assets/analysis_summary.json, assets/analysis_summary.md, updates design_brief.json with figure_export_contract and analysis_artifact_plan, and adds image/chart/table entries to asset_plan.json for direct-path or alias-based slide use, such as image:<chart_id>_figure, chart:<chart_id>, or table:<chart_id>_summary. CSV/TSV/JSON/Parquet/Feather tables produce one inferred chart each; Excel workbooks are scanned sheet-by-sheet; aligned numeric columns become small multi-series chart JSON, grouped/line figures, and compact summary-table JSON that can render as editable lab-run-results or table slides. If a Parquet/Feather engine is unavailable, the scaffold reports the skipped file and dependency reason instead of failing opaquely. Generated chart/table/manifest metadata records source and producer-script SHA-256 fingerprints; planning validation warns when either the data file or assets/make_figures.py no longer matches that metadata. Edit the generated script for real analysis choices before final delivery. For a fast first pass from the manifest to editable evidence slides outside the integrated build, apply all generated outputs with deterministic slide IDs:

python3 scripts/apply_artifact_manifest_bindings.py \
  --workspace decks/artemis-ii \
  --auto-select \
  --selection-out decks/artemis-ii/artifact_selections.auto.json \
  --report decks/artemis-ii/artifact_apply_report.json

Use a custom selection JSON instead when only some generated outputs belong in the deck or when slide titles need domain-specific wording. Preflight reads staged chart/table JSON and staged figure aliases, warning when a native chart/editable table is too dense or a figure export has excessive exterior whitespace, so split, summarize, or trim dense outputs before final render. Use assets/analysis_summary.json or assets/analysis_summary.md as the first-read handoff for generated source paths, selected columns, aliases, row/point counts, and readability assumptions before deciding which artifacts belong on slides. Planning validation checks the declared summary for schema version, matching manifest path, source-path coverage, generated aliases, non-negative row/point counts, and figure readability assumptions. When only the manifest is available, run scripts/inspect_artifact_manifest.py --workspace <deck>; its report includes the same aliases plus deterministic selection_templates, commands.auto_select_all, commands.validate_planning, and commands.strict_build so agents can bind generated outputs without reconstructing slide IDs or command syntax. If the manifest exists but the auto-selection file is missing or no longer binds every output, report_workspace_readiness.py promotes bind_generated_artifacts ahead of generic planning-warning cleanup, so advance_workspace.py --execute can run the deterministic binder first. After each workspace build that reaches render/QA, inspect build/build_workspace_report.json for run.status, the failed step/return code when strict QA fails, the resolved renderer and preset, source/output fingerprints, artifact selections, planning/preflight/QA counts, and replay commands. This is the quickest way to resume or audit a reproducible deck run without opening every intermediate report. build_workspace.py --scaffold-data-artifacts is conservative and will not overwrite an existing figure script unless --overwrite-data-artifacts is passed.

Assets And Generated Images

Stage source-backed assets through asset_plan.json:

python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --allow-network-assets \
  --overwrite

Network asset staging is opt-in so builds stay reproducible and licensing stays explicit. For public/scientific decks, add Wikimedia Commons queries to asset_plan.json; the staging step writes local assets plus assets/attribution.csv, which can be cited in footers or an image-sources slide. Unchanged staged JSON manifests, chart/table specs, palette files, and attribution CSVs are preserved byte-for-byte so repeat builds do not churn deterministic staging artifacts.

If the workspace still has the starter asset_plan.json, let the skill create a first source-backed visual pass:

python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --plan-research-assets \
  --allow-network-assets \
  --qa \
  --overwrite

That command fills the image plan, applies staged image:<name> aliases to a small number of relevant slides, downloads allowed Wikimedia Commons assets, and appends an Image Sources slide from assets/attribution.csv.

Generated images are optional and should usually land on their own removable slide:

OPENAI_API_KEY=... python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --allow-generated-images \
  --overwrite

Use variant: "generated-image" and assets.generated_image: "generated:<name>" in outline.json. The generated image slide includes model, prompt, purpose, and a deletion note.

Verification

For deliverable decks, run the workspace build with QA:

python3 scripts/build_workspace.py \
  --workspace decks/artemis-ii \
  --qa \
  --fail-on-planning-warnings \
  --fail-on-whitespace-warnings \
  --overwrite

The workspace build also runs scripts/validate_planning.py. The --fail-on-planning-warnings flag makes report/scientific decks stop before render when warnings remain about missing figure scripts, artifact registries, declared figure outputs, readability contracts, or speed/render policies. When outline.json exists, declared figure outputs should be referenced in the outline or mapped through used_on_slides. During QA, qa_gate.py passes design_brief.json into design_rules_qa.py so rendered title/body/caption/table text and explicit native-chart label sizes can be checked against the declared readability_contract. layout_lint.py also reports content_span_too_short and content_span_too_narrow when content is stranded in a narrow or short band instead of using the safe content area intentionally; treat those warnings as a source-layout fix before final delivery. Use --fail-on-whitespace-warnings when final polish should block on those dead-space findings without failing all geometry warnings.

For full visual review, render slides and inspect the generated images:

python3 scripts/render_slides.py \
  --input decks/artemis-ii/build/artemis-ii.pptx \
  --outdir /tmp/artemis-renders \
  --emit-visual-prompt

python3 scripts/visual_review.py \
  --input decks/artemis-ii/build/artemis-ii.pptx \
  --outdir /tmp/artemis-review \
  --renders-dir /tmp/artemis-renders \
  --outline decks/artemis-ii/outline.json

For benchmark/regression work:

python3 scripts/benchmark_decks.py --outdir /tmp/pptx-benchmark --max-loops 2
npm run check:pptxgenjs-regression

Project Layout

  • SKILL.md: agent entrypoint.
  • DESIGN.md: design contract and layout rules.
  • ROADMAP.md: improvement loops and release criteria.
  • agents/openai.yaml: Codex/OpenAI skill metadata.
  • scripts/: renderers, staging, QA, editing, and inspection tools.
  • templates/pptxgenjs/: default renderer templates and style presets.
  • references/: schema docs, workflow notes, and QA guidance.

Licensing

MIT for this repository's original code. See LICENSE.

Third-party npm/Python packages, optional external tools, source images, and generated images keep their own licenses or usage terms. This repo does not redistribute those dependencies.

Provenance note: this repository is not a fork or copy of another presentation skill. Public examples and external deck styles may inform evaluation criteria, but source code, docs, templates, and scripts in this repo are maintained here unless a file explicitly says otherwise.