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

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit c319f48ee9f25fee4a7a413476e1c97c34c29acd

34GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

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

Oct 25, 2026Oct 25, 202634

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

3,090 tokens

When the skill is activated

Reference documents

5,069 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Contract
  2. Runtime Assumptions
  3. Workflow
  4. Builder Script
  5. Text Layer Rules
  6. Acceptance Standards
  7. Output Layout
  8. Stop Conditions

Scripts executed separately

  • package.json
  • scripts/build_ppt_from_layers.mjs
  • scripts/visual_text_qa.py

Files

  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • SKILL.mdcore14,191 bytes
  • agents/openai.yamlasset292 bytes
  • assets/demo/elements.jsonasset1,534 bytes
  • assets/demo/source.pngasset20,028 bytes
  • assets/demo/text-layer.jsonasset2,052 bytes
  • assets/demo/visual-layers/slide-01/01_header_rule.pngasset599 bytes
  • assets/demo/visual-layers/slide-01/02_left_card_outline.pngasset4,397 bytes
  • assets/demo/visual-layers/slide-01/03_right_card_outline.pngasset4,229 bytes
  • assets/demo/visual-layers/slide-01/04_center_arrow.pngasset685 bytes
  • assets/demo/visual-layers/slide-01/05_footer_rule.pngasset440 bytes
  • assets/demo/visual-layers/slide-01/assets_contact_sheet.pngasset11,444 bytes
  • assets/demo/visual-layers/slide-01/composite_no_text_preview.pngasset7,944 bytes
  • assets/demo/visual-layers/slide-01/manifest.jsonasset2,027 bytes
  • package-lock.jsonasset6,812 bytes
  • package.jsonruns512 bytes
  • references/acceptance-rubric.mddoc7,262 bytes
  • references/copyslides-like-reconstruction.mddoc4,479 bytes
  • references/runtime-and-platform.mddoc1,889 bytes
  • references/text-layer-schema.mddoc4,436 bytes
  • references/visual-anchor-text.mddoc3,163 bytes
  • requirements.txtdoc24 bytes
  • scripts/build_ppt_from_layers.mjsruns19,373 bytes
  • scripts/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 GitHub

Skills 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 scripts

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/image-ppt-king/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/image-ppt-king/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/image-ppt-king/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/image-ppt-king/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/image-ppt-king/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/image-ppt-king/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.