Not in the top 1,000 by GitHub stars
TateZhouSiu/image-ppt-king
Turn slide screenshots and generated images into editable PowerPoint decks with visual-layer splitting, OCR evidence, and QA.
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
skills/image-ppt-king/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
c319f48ee9f2 → c319f48ee9f2
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → c319f48ee9f2
No earlier version was observed for comparison.
Heat
0.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
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
- image-ppt-king
skills/image-ppt-king
How it works
image-ppt-king
When your agent uses it
Convert slide/page images into editable PowerPoint PPTX decks by using Image Split visual layers, region schemas, transparent editable text, and QA gates. Use when Codex is given PNG/JPG/Image2/AI-generated slide images and asked to reconstruct image-based PPT pages, keep text editable, preserve layout, or turn flat slide screenshots into PPTX with selectable text and movable image objects.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
3,090 tokensWhen the skill is activated
Reference documents
5,069 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contract
- Runtime Assumptions
- Workflow
- Builder Script
- Text Layer Rules
- Acceptance Standards
- Output Layout
- Stop Conditions
Scripts executed separately
package.jsonscripts/build_ppt_from_layers.mjsscripts/visual_text_qa.py
Files
SKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesSKILL.mdcore14,191 bytesagents/openai.yamlasset292 bytesassets/demo/elements.jsonasset1,534 bytesassets/demo/source.pngasset20,028 bytesassets/demo/text-layer.jsonasset2,052 bytesassets/demo/visual-layers/slide-01/01_header_rule.pngasset599 bytesassets/demo/visual-layers/slide-01/02_left_card_outline.pngasset4,397 bytesassets/demo/visual-layers/slide-01/03_right_card_outline.pngasset4,229 bytesassets/demo/visual-layers/slide-01/04_center_arrow.pngasset685 bytesassets/demo/visual-layers/slide-01/05_footer_rule.pngasset440 bytesassets/demo/visual-layers/slide-01/assets_contact_sheet.pngasset11,444 bytesassets/demo/visual-layers/slide-01/composite_no_text_preview.pngasset7,944 bytesassets/demo/visual-layers/slide-01/manifest.jsonasset2,027 bytespackage-lock.jsonasset6,812 bytespackage.jsonruns512 bytesreferences/acceptance-rubric.mddoc7,262 bytesreferences/copyslides-like-reconstruction.mddoc4,479 bytesreferences/runtime-and-platform.mddoc1,889 bytesreferences/text-layer-schema.mddoc4,436 bytesreferences/visual-anchor-text.mddoc3,163 bytesrequirements.txtdoc24 bytesscripts/build_ppt_from_layers.mjsruns19,373 bytesscripts/visual_text_qa.pyruns12,914 bytes
Read SKILL.md
# Image-PPT-King
## Contract
Build a PPTX where visual components are image/shape layers and semantic text is native editable PowerPoint text.
- Do not put final body text inside a flattened slide screenshot.
- Use `image-split` first when the input is only flat slide images and no clean visual layers exist.
- Preserve slide size, page order, visual rhythm, and page numbering.
- Treat charts, photos, microscopy, logos, and complex diagrams as image objects unless the user explicitly asks to redraw them.
- Rebuild main titles, labels, card text, bullets, captions, and page numbers as editable text boxes.
- Editable text boxes are text-only by default: no fill, no outline, no patch background.
- Prefer the Presentations artifact-tool when it is available because it can render previews and layout JSON. If it is not available, use the bundled `pptxgenjs` fallback backend to generate a reproducible editable PPTX.
View the complete source on GitHubSkills included
- image-ppt-king
Repository facts
- License
- MIT
- Created
- May 25, 2026
- Last pushed
- May 25, 2026
- Forks
- 2
- Open issues
- 0
- Project activity
- Slowing
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 15 notes
skills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/image-ppt-king/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 57 network referencesin 1 file: image-ppt-king/package-lock.json:14
- No hidden or obfuscated text
- No instruction overrides
- 3 executable scriptsin 3 files: image-ppt-king/package.json:1 image-ppt-king/scripts/build_ppt_from_layers.mjs:1 image-ppt-king/scripts/visual_text_qa.py:1
- No access to secrets
- No requests to vote in Hot
Show all 60 signals by file
skills/image-ppt-king/package-lock.json
- Network accessline 14
"node_modules/@types/node": { "version": "22.19.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", - Network accessline 15
"version": "22.19.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", "integrity": "sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==", - Network accessline 16
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", - Network accessline 23
"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 24
"version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - Network accessline 25
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - Network accessline 29
"node_modules/https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - Network accessline 30
"version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==", - Network accessline 31
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - Network accessline 35
"node_modules/image-size": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - Network accessline 36
"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 37
"resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - Network accessline 50
"node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - Network accessline 51
"version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - Network accessline 52
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - Network accessline 56
"node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 57
"version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - Network accessline 58
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - Network accessline 62
"node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - Network accessline 63
"version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - Network accessline 64
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - Network accessline 68
"node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - Network accessline 69
"version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - Network accessline 70
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - Network accessline 80
"node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - Network accessline 81
"version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - Network accessline 82
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - Network accessline 89
"node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - Network accessline 90
"version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - Network accessline 91
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - Network accessline 95
"node_modules/pptxgenjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", - Network accessline 96
"version": "4.0.1", "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", "integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==", - Network accessline 97
"resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz", - Network accessline 107
"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 108
"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 109
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - Network accessline 113
"node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - Network accessline 114
"version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - Network accessline 115
"resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - Network accessline 122
"node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - Network accessline 123
"version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - Network accessline 124
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - Network accessline 137
"node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - Network accessline 138
"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 139
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - Network accessline 143
"node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - Network accessline 144
"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 145
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - Network accessline 149
"node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - Network accessline 150
"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 151
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - Network accessline 158
"node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 159
"version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - Network accessline 160
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 164
"node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - Network accessline 165
"version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - Network accessline 166
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
skills/image-ppt-king/package.json
- Executable scriptline 1
Executable file
skills/image-ppt-king/scripts/build_ppt_from_layers.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/image-ppt-king/scripts/visual_text_qa.py
- Executable scriptline 1
#!/usr/bin/env python3
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.
Signal confidence: 3 facts
- Executable script in code of a file that runsimage-ppt-king/package.json:1High confidence
- Executable script in code of a file that runsimage-ppt-king/scripts/build_ppt_from_layers.mjs:1High confidence
- Executable script in code of a file that runsimage-ppt-king/scripts/visual_text_qa.py:1High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/image-ppt-king/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/image-ppt-king/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/image-ppt-king/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/image-ppt-king/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/image-ppt-king/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/image-ppt-king/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.