Not in the top 1,000 by GitHub stars
qybaihe/codex-ppt
Producer-style AI slide deck skill for Codex & AI agents — turn briefs into 16:9 poster-grade PDF decks or multi-layer editable PPTX presentations.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 2a132f19cbbd
No earlier version was observed for comparison.
Heat
Insufficient historyNot enough history yet to measure heat. It appears after a few days of data.
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
codex-ppt
When your agent uses it
Create polished 16:9 presentation decks from a topic, outline, report, or rough notes in two modes: image mode with fully AI-rendered slide images, or editable PPTX mode that first generates approved slide images and then reconstructs each slide through per-slide subagents into editable PowerPoint text boxes and movable visual layers. Includes 10 curated aesthetic presets (Swiss Klein Blue, Monocle Magazine, Apple Keynote Bento, Kenya Hara Zen, Memphis Pop, Neo-Brutalist Zine, Dark Emerald Roadshow, Industrial Cobalt HUD, Clinical Ice Blue, Heritage Parchment Gold) and 12 layout archetypes. Use when the user asks to 自动做PPT, 做PPT, 生成PPT, 创赛PPT, 路演PPT, 指定PPT风格, make slides, create a slide deck, create a fully AI-generated image-based deck, or produce an editable PowerPoint deck.
What it loads into context
Frontmatter
201 tokensAlways available to the agent
SKILL.md
4,140 tokensWhen the skill is activated
Reference documents
21,382 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Output Modes
- Default Assumptions
- Required Outcome
- Hard Constraints
- Full-Page AI Generation Contract
- Workflow
- Bundled Resources
Scripts executed separately
package.jsonscripts/build_editable_ppt_from_layers.mjsscripts/compile_slide_images_to_pdf.pyscripts/lib/json_io.mjsscripts/merge_editable_slide_outputs.pyscripts/slide_utils.pyscripts/verify_deck_outputs.pytests/build_editable_ppt_from_layers.test.mjstests/conftest.pytests/test_compile_slide_images_to_pdf.pytests/test_merge_editable_slide_outputs.pytests/test_verify_deck_outputs.py
Files
.github/workflows/tests.ymlasset705 bytes.gitignoreasset195 bytesLICENSEasset1,064 bytesREADME.mddoc13,178 bytesREADME.zh-CN.mddoc13,971 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytesagents/openai.yamlasset326 bytesassets/codex-ppt-hero.pngasset2,083,723 bytesassets/codex-ppt-workflow.excalidrawasset4,899 bytesassets/codex-ppt-workflow.pngasset408,983 bytesexamples/shit-app-memphis-pitch/README.mddoc821 bytesexamples/shit-app-memphis-pitch/final/shit-app-memphis-pitch.pdfasset7,090,886 bytesexamples/shit-app-memphis-pitch/final/shit-app-memphis-pitch.pptxasset18,220,551 bytesexamples/shit-app-memphis-pitch/slides/slide-01-cover.pngasset1,834,459 bytesexamples/shit-app-memphis-pitch/slides/slide-03-product-idea.pngasset1,870,062 bytesexamples/shit-app-memphis-pitch/slides/slide-05-core-flow.pngasset1,831,103 bytesexamples/shit-app-memphis-pitch/slides/slide-07-ai-playbook.pngasset1,979,917 bytesexamples/shit-app-memphis-pitch/slides/slide-10-roadmap-closing.pngasset1,864,697 bytesexamples/shit-app-memphis-pitch/source/brief.mddoc1,916 bytesexamples/shit-app-memphis-pitch/source/design-system.mddoc2,780 bytesexamples/shit-app-memphis-pitch/source/qa.mddoc1,604 bytesexamples/shit-app-memphis-pitch/source/storyboard.mddoc4,741 bytesexamples/shit-app-memphis-pitch/source/storyline.mddoc1,488 bytespackage-lock.jsonasset6,798 bytespackage.jsonruns966 bytespyproject.tomlasset373 bytesreferences/aesthetic-style-library.mddoc17,143 bytesreferences/editable-pptx-mode.mddoc5,347 bytesreferences/editable-slide-subagent-prompt.mddoc2,789 bytesreferences/page-template-grammar.mddoc7,462 bytesreferences/slide-quality-checklist.mddoc3,805 bytesrequirements-dev.txtdoc48 bytesrequirements.txtdoc13 bytesscripts/build_editable_ppt_from_layers.mjsruns25,961 bytesscripts/compile_slide_images_to_pdf.pyruns11,064 bytesscripts/lib/json_io.mjsruns504 bytesscripts/merge_editable_slide_outputs.pyruns10,098 bytesscripts/slide_utils.pyruns4,012 bytesscripts/verify_deck_outputs.pyruns13,962 bytestests/build_editable_ppt_from_layers.test.mjsruns6,818 bytestests/conftest.pyruns216 bytestests/test_compile_slide_images_to_pdf.pyruns4,711 bytestests/test_merge_editable_slide_outputs.pyruns4,058 bytestests/test_verify_deck_outputs.pyruns4,072 bytes
Read SKILL.md
# Codex PPT
Create a complete presentation as ordered 16:9 slide images, then either compile them into one PDF or use them as the approved visual target for an editable PPTX reconstruction pass. The skill is for deck-making where planning, visual consistency, full-page AI generation, quality review, and delivery format all matter.
## Output Modes
- `image` mode: generate approved slide images. This is the default unless the user asks for editable PowerPoint output; compile a PDF as the standard package unless the user only wants image files.
- `editable-pptx` mode: generate and QA the slide images first, then launch one per-slide reconstruction subagent for each approved image, merge the resulting visual layers and text layers, and build a final editable `.pptx`.
## Default Assumptions
- Output mode defaults to `image`.
- If the user asks for editable PPT, editable PowerPoint, selectable text, movable objects, or "图片转可编辑", use `editable-pptx`.
- In `image` mode, output is the ordered slide image set; compile a PDF unless the user asks to stop at images.View the complete source on GitHubSkills included
- codex-ppt
Repository facts
- License
- MIT
- Created
- Apr 27, 2026
- Last pushed
- Oct 26, 2026
- Forks
- 13
- Open issues
- 0
- Project activity
- Active
Before you install
Local scriptsAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 9 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedexamples/shit-app-memphis-pitch/final/shit-app-memphis-pitch.pptx:1Analysis incomplete: Blob exceeds size or total-read limit; file skipped
- No broad tool permissions
- No dangerous shell commands
- 90 network referencesin 6 files: package-lock.json:15 README.md:5 README.zh-CN.md:5 and 3 more
- No hidden or obfuscated text
- No instruction overrides
- 12 executable scriptsin 12 files: package.json:1 scripts/build_editable_ppt_from_layers.mjs:1 scripts/compile_slide_images_to_pdf.py:1 and 9 more
- 2 references to secretsin 2 files: .gitignore:19 scripts/slide_utils.py:19
- No requests to vote in Hot
Show all 104 signals by file
.gitignore
- Access to secretsline 19
[Credential-related source omitted]
README.md
- Network accessline 5
<p align="center"> <a href="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml"><img src="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml/badge.svg" alt="Tests"></a> - Network accessline 6
<a href="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml"><img src="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml/badge.svg" alt="Tests"></a> - Network accessline 7
<a href="https://github.com/qybaihe/codex-ppt/releases"><img src="https://img.shields.io/github/v/release/qybaihe/codex-ppt?include_prereleases&label=version" alt="Release"></a> - Network accessline 8
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a> - Network accessline 9
<img src="https://img.shields.io/badge/python-%3E%3D3.10-3776AB.svg" alt="Python >=3.10"> - Network accessline 10
<img src="https://img.shields.io/badge/node-%3E%3D18-339933.svg" alt="Node >=18"> - Network accessline 97
# For OpenAI Codex git clone https://github.com/qybaihe/codex-ppt.git ~/.codex/skills/codex-ppt - Network accessline 98
git clone https://github.com/qybaihe/codex-ppt.git ~/.codex/skills/codex-ppt - Network accessline 100
# Or for Claude Code / Antigravity git clone https://github.com/qybaihe/codex-ppt.git ~/.gemini/antigravity/skills/codex-ppt - Network accessline 101
git clone https://github.com/qybaihe/codex-ppt.git ~/.gemini/antigravity/skills/codex-ppt
README.zh-CN.md
- Network accessline 5
<p align="center"> <a href="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml"><img src="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml/badge.svg" alt="Tests"></a> - Network accessline 6
<a href="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml"><img src="https://github.com/qybaihe/codex-ppt/actions/workflows/tests.yml/badge.svg" alt="Tests"></a> - Network accessline 7
<a href="https://github.com/qybaihe/codex-ppt/releases"><img src="https://img.shields.io/github/v/release/qybaihe/codex-ppt?include_prereleases&label=version" alt="Release"></a> - Network accessline 8
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a> - Network accessline 9
<img src="https://img.shields.io/badge/python-%3E%3D3.10-3776AB.svg" alt="Python >=3.10"> - Network accessline 10
<img src="https://img.shields.io/badge/node-%3E%3D18-339933.svg" alt="Node >=18"> - Network accessline 97
# OpenAI Codex git clone https://github.com/qybaihe/codex-ppt.git ~/.codex/skills/codex-ppt - Network accessline 98
git clone https://github.com/qybaihe/codex-ppt.git ~/.codex/skills/codex-ppt - Network accessline 100
# Claude Code / Antigravity git clone https://github.com/qybaihe/codex-ppt.git ~/.gemini/antigravity/skills/codex-ppt - Network accessline 101
git clone https://github.com/qybaihe/codex-ppt.git ~/.gemini/antigravity/skills/codex-ppt
package-lock.json
- Network accessline 15
"node_modules/@types/node": { "version": "22.19.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", - Network accessline 16
"version": "22.19.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", "integrity": "sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==", - Network accessline 17
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", - Network accessline 24
"node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - Network accessline 25
"version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - Network accessline 26
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - Network accessline 30
"node_modules/https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - Network accessline 31
"version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==", - Network accessline 32
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - Network accessline 36
"node_modules/image-size": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - Network accessline 37
"version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", - Network accessline 38
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - Network accessline 51
"node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - Network accessline 52
"version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - Network accessline 53
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - Network accessline 57
"node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 58
"version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - Network accessline 59
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 63
"node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - Network accessline 64
"version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - Network accessline 65
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - Network accessline 69
"node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - Network accessline 70
"version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - Network accessline 71
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - Network accessline 81
"node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - Network accessline 82
"version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - Network accessline 83
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - Network accessline 90
"node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - Network accessline 91
"version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - Network accessline 92
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - Network accessline 96
"node_modules/pptxgenjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", - Network accessline 97
"version": "4.0.1", "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", "integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==", - Network accessline 98
"resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", - Network accessline 108
"node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - Network accessline 109
"version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - Network accessline 110
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - Network accessline 114
"node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - Network accessline 115
"version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - Network accessline 116
"resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - Network accessline 123
"node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - Network accessline 124
"version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - Network accessline 125
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - Network accessline 138
"node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - Network accessline 139
"version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - Network accessline 140
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - Network accessline 144
"node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - Network accessline 145
"version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - Network accessline 146
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - Network accessline 150
"node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - Network accessline 151
"version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - Network accessline 152
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - Network accessline 159
"node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 160
"version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - Network accessline 161
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 165
"node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - Network accessline 166
"version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - Network accessline 167
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
package.json
- Executable scriptline 1
Executable file - Network accessline 7
"repository": { "type": "git", "url": "https://github.com/qybaihe/codex-ppt.git" - Network accessline 8
"type": "git", "url": "https://github.com/qybaihe/codex-ppt.git" }, - Network accessline 9
"url": "https://github.com/qybaihe/codex-ppt.git" - Network accessline 10
}, "homepage": "https://github.com/qybaihe/codex-ppt#readme", "bugs": { - Network accessline 11
"homepage": "https://github.com/qybaihe/codex-ppt#readme", - Network accessline 12
"bugs": { "url": "https://github.com/qybaihe/codex-ppt/issues" }, - Network accessline 13
"url": "https://github.com/qybaihe/codex-ppt/issues"
scripts/build_editable_ppt_from_layers.mjs
- Executable scriptline 1
#!/usr/bin/env node
scripts/compile_slide_images_to_pdf.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/lib/json_io.mjs
- Executable scriptline 1
Executable file
scripts/merge_editable_slide_outputs.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/slide_utils.py
scripts/verify_deck_outputs.py
tests/build_editable_ppt_from_layers.test.mjs
- Executable scriptline 1
Executable file
tests/conftest.py
- Executable scriptline 1
Executable file
tests/test_compile_slide_images_to_pdf.py
- Executable scriptline 1
Executable file
tests/test_merge_editable_slide_outputs.py
- Executable scriptline 1
Executable file
tests/test_verify_deck_outputs.py
- Executable scriptline 1
Executable file - Network accessline 18
runs = "".join(f"<a:t>{t}</a:t>" for t in texts) xml = ( '<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" ' - Network accessline 19
xml = ( '<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" ' 'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">' - Network accessline 20
'<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" ' - Network accessline 21
'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 1 fact
- Contacts schemas.openxmlformats.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/verify_deck_outputs.py:26High confidence
Signal confidence: 46 facts
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:7Low confidence
- Network access in prose of documentationREADME.md:8Low confidence
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:10Low confidence
- Network access in code of documentationREADME.md:97Low confidence
- Network access in code of documentationREADME.md:98Low confidence
- Network access in code of documentationREADME.md:100Low confidence
- Network access in code of documentationREADME.md:101Low confidence
- Network access in prose of documentationREADME.zh-CN.md:5Low confidence
- Network access in prose of documentationREADME.zh-CN.md:6Low confidence
- Network access in prose of documentationREADME.zh-CN.md:7Low confidence
- Network access in prose of documentationREADME.zh-CN.md:8Low confidence
- Network access in prose of documentationREADME.zh-CN.md:9Low confidence
- Network access in prose of documentationREADME.zh-CN.md:10Low confidence
- Network access in code of documentationREADME.zh-CN.md:97Low confidence
- Network access in code of documentationREADME.zh-CN.md:98Low confidence
- Network access in code of documentationREADME.zh-CN.md:100Low confidence
- Network access in code of documentationREADME.zh-CN.md:101Low confidence
- Executable script in code of a file that runspackage.json:1High confidence
- Network access in code of a file that runspackage.json:7High confidence
- Network access in code of a file that runspackage.json:8High confidence
- Network access in code of a file that runspackage.json:9High confidence
- Network access in code of a file that runspackage.json:10High confidence
- Network access in code of a file that runspackage.json:11High confidence
- Network access in code of a file that runspackage.json:12High confidence
- Network access in code of a file that runspackage.json:13High confidence
- Executable script in code of a file that runsscripts/build_editable_ppt_from_layers.mjs:1High confidence
- Executable script in code of a file that runsscripts/compile_slide_images_to_pdf.py:1High confidence
- Executable script in code of a file that runsscripts/lib/json_io.mjs:1High confidence
- Executable script in code of a file that runsscripts/merge_editable_slide_outputs.py:1High confidence
- Executable script in code of a file that runsscripts/slide_utils.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuescripts/slide_utils.py:19Low confidence
- Executable script in code of a file that runsscripts/verify_deck_outputs.py:1High confidence
- Network access in code of a file that runsscripts/verify_deck_outputs.py:26High confidence
- Network access in code of a file that runsscripts/verify_deck_outputs.py:27High confidence
- Executable script in code of a testtests/build_editable_ppt_from_layers.test.mjs:1Low confidence
- Executable script in code of a testtests/conftest.py:1Low confidence
- Executable script in code of a testtests/test_compile_slide_images_to_pdf.py:1Low confidence
- Executable script in code of a testtests/test_merge_editable_slide_outputs.py:1Low confidence
- Executable script in code of a testtests/test_verify_deck_outputs.py:1Low confidence
- Network access in code of a testtests/test_verify_deck_outputs.py:18Low confidence
- Network access in code of a testtests/test_verify_deck_outputs.py:19Low confidence
- Network access in code of a testtests/test_verify_deck_outputs.py:20Low confidence
- Network access in code of a testtests/test_verify_deck_outputs.py:21Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.