#756 by GitHub stars

NyxTides/ppt-image-first

Build presentation plans for PPT / slides / decks through a conversation-first workflow, then propose multiple visual directions with preview images before writing deck specs. Use when the user asks to create a PPT, presentation, deck, 答辩稿, 路演 deck, 产品介绍 PPT, 汇报 PPT, or when the user has only a topi

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 · +0 / −0 lines

Before Local scripts → After Local scripts

87a300a559a2 → 87a300a559a2

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 87a300a559a2

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 87a300a559a2a55097fab337241218c6557bfa23

1.2kGitHub stars
1star in 7 days
1skill in this repository
0commits in 30 days

Heat

1.7
  • Star growth, last 7 daysAhead of 37% of tracked repositories
  • Star growth, last 24 hoursAhead of 3% of tracked repositories
  • Rank movement, last 7 daysAhead of 14% of tracked repositories
  • Commits, last 30 daysAhead of 0% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 5, 20261,235

Individual skills in this repository

How it works

ppt-image-first

When your agent uses it

Build presentation plans for PPT / slides / decks through a conversation-first workflow, then propose multiple visual directions with preview images before writing deck specs. Use when the user asks to create a PPT, presentation, deck, 答辩稿, 路演 deck, 产品介绍 PPT, 汇报 PPT, or when the user has only a topic or rough materials and needs help clarifying structure, style, and page planning before generation.

What it loads into context

Frontmatter

95 tokens

Always available to the agent

SKILL.md

1,285 tokens

When the skill is activated

Reference documents

16,712 tokens

Loaded on request

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

The playbook

  1. I/O Contract
  2. Workflow Phases
  3. Progressive Loading
  4. Working Principles
  5. Hard Rules
  6. Output Hierarchy

Scripts executed separately

  • assets/candidate_picker_shell/build_candidate_picker_html.py
  • assets/preview_shell/build_preview_html.py
  • assets/review_shell/build_review_html.py
  • scripts/render_review_markup.py

Files

  • .gitignoreasset90 bytes
  • LICENSEasset10,477 bytes
  • README.en.mddoc9,678 bytes
  • README.mddoc9,534 bytes
  • SKILL.mdcore6,449 bytes
  • SKILL.mdcore6,449 bytes
  • assets/candidate_picker_shell/build_candidate_picker_html.pyruns35,068 bytes
  • assets/candidate_picker_shell/index.htmlasset26,035 bytes
  • assets/preview_shell/build_preview_html.pyruns49,684 bytes
  • assets/preview_shell/index.htmlasset36,998 bytes
  • assets/review_shell/build_review_html.pyruns56,514 bytes
  • assets/review_shell/index.htmlasset42,159 bytes
  • docs/demo/ppt-image-first-demo-deck.pptxasset32,610,743 bytes
  • docs/images/sample-meteorology-defense-deck.pngasset261,381 bytes
  • docs/images/sample-red-campus-deck.pngasset330,888 bytes
  • docs/images/sample-tech-research-body-page.pngasset234,876 bytes
  • docs/images/workflow-overview-slide.pngasset194,061 bytes
  • references/conversation_framework.mddoc10,971 bytes
  • references/preview-flow.mddoc7,372 bytes
  • references/style-system.mddoc4,603 bytes
  • references/workflow.mddoc22,175 bytes
  • scripts/render_review_markup.pyruns9,036 bytes
  • templates/content_report_reference.mddoc3,497 bytes
  • templates/design_spec_reference.mddoc3,677 bytes
  • templates/slide_blueprint_reference.mddoc3,230 bytes
  • templates/spec_lock_reference.mddoc3,409 bytes
Read SKILL.md

# PPT Image First

Use this skill to turn a vague PPT request into a generation-ready, image-first deck plan.

## I/O Contract

- Input: a PPT topic, rough goal, existing notes/materials, or complete report-like narrative.
- Optional anchors: audience, page count or duration, school/company/lab/course/brand identity, use occasion, source files, and style constraints.
- Output: a confirmed content basis, visual style previews, deck specs, generated page visuals, review surface, and final PPT after approval.
- Confirmation gates: `需求确认`, `风格确认`, `生成前确认`, and final review approval.
- Default ratio: generate preview images and final page visuals in `16:9` unless the user explicitly requests another ratio.

## Workflow Phases
View the complete source on GitHub

Skills included

  • ppt-image-first

Repository facts

License
Apache-2.0
Created
Apr 26, 2026
Last pushed
May 8, 2026
Forks
93
Open issues
0
Project activity
Slowing

Rank over the last 12 weeks

Now #756 · best #501 · down 121 in 30 days

  1. #742 on Oct 31
  2. #743 on Nov 1
  3. #745 on Nov 2
  4. #752 on Nov 3
  5. #755 from Nov 4 to Nov 5
  6. #756 since Nov 6
49 earlier periods
  1. #487 on Aug 2
  2. #492 on Aug 7
  3. #489 on Aug 9
  4. #509 on Aug 10
  5. #492 on Aug 15
  6. #501 on Aug 16
  7. #523 on Aug 18
  8. #515 on Aug 19
  9. #518 on Aug 21
  10. #525 on Aug 23
  11. #540 on Aug 25
  12. #529 on Aug 26
  13. #542 on Aug 27
  14. #515 on Aug 30
  15. #544 on Aug 31
  16. #547 on Sep 1
  17. #528 on Sep 4
  18. #545 on Sep 7
  19. #549 on Sep 9
  20. #553 on Sep 10
  21. #545 on Sep 11
  22. #540 on Sep 12
  23. #543 on Sep 13
  24. #565 on Sep 14
  25. #552 on Sep 15
  26. #565 on Sep 17
  27. #570 on Sep 18
  28. #558 on Sep 19
  29. #570 on Sep 20
  30. #575 on Sep 21
  31. #561 on Sep 25
  32. #562 on Sep 26
  33. #583 on Sep 27
  34. #586 on Sep 28
  35. #610 on Sep 29
  36. #595 on Sep 30
  37. #585 on Oct 2
  38. #604 on Oct 6
  39. #635 on Oct 8
  40. #605 on Oct 10
  41. #625 from Oct 12 to Oct 13
  42. #643 on Oct 16
  43. #667 on Oct 21
  44. #648 on Oct 23
  45. #633 on Oct 24
  46. #721 on Oct 25
  47. #727 on Oct 28
  48. #732 on Oct 29
  49. #739 on Oct 30

Before you install

Local scripts

Automated signals, not a guarantee

Checked Nov 3, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 5 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • assets/candidate_picker_shell/build_candidate_picker_html.py:6 Analysis incomplete: physical or joined line exceeds character limit
  • assets/preview_shell/build_preview_html.py:6 Analysis incomplete: physical or joined line exceeds character limit
  • assets/review_shell/build_review_html.py:6 Analysis incomplete: physical or joined line exceeds character limit
  • docs/demo/ppt-image-first-demo-deck.pptx:1 Analysis incomplete: Blob exceeds size or total-read limit; file skipped
Show all 53 signals by file

LICENSE

  • Network accessline 1
    Apache License Version 2.0, January 2004 http://www.apache.org/licenses/
  • Network accessline 3
    http://www.apache.org/licenses/
  • Network accessline 195
    http://www.apache.org/licenses/LICENSE-2.0

README.en.md

  • Network accessline 327
    This project acknowledges the [Linux.do community](https://linux.do/) for its open-source sharing and promotion culture.

README.md

  • Network accessline 345
    本项目感谢 [Linux.do 社区](https://linux.do/) 对开源分享与传播的推动。

assets/candidate_picker_shell/build_candidate_picker_html.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 6
    HTML_B64 = """PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+UFBUIENhbmRpZGF0ZSBQaWNrZX
  • Possible obfuscationline 11
    html = base64.b64decode(HTML_B64).decode("utf-8")

assets/candidate_picker_shell/index.html

  • Network accessline 615
    const svg = `         <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'>
  • Network accessline 616
    <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'>

assets/preview_shell/build_preview_html.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 6
    HTML_B64 = """PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+UFBUIFN0eWxlIFByZXZpZXc8L3
  • Possible obfuscationline 11
    html = base64.b64decode(HTML_B64).decode("utf-8")

assets/preview_shell/index.html

  • Network accessline 576
    <div class="preview-label">首页</div>               <button class="preview-button" type="button" data-preview-title="方案 A|首页预览" data-preview-subtitle="看第一印象、主视觉和整体气质。" data-preview-group="A" data-preview-index="0">                 <img class=
  • Network accessline 577
    <button class="preview-button" type="button" data-preview-title="方案 A|首页预览" data-preview-subtitle="看第一印象、主视觉和整体气质。" data-preview-group="A" data-preview-index="0">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xml
  • Network accessline 578
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23e5d1ba'/%3E%3Cstop offset='1' stop
  • Network accessline 583
    <div class="preview-label">目录页</div>               <button class="preview-button" type="button" data-preview-title="方案 A|目录页预览" data-preview-subtitle="看结构能力和层级组织。" data-preview-group="A" data-preview-index="1">                 <img class="p
  • Network accessline 584
    <button class="preview-button" type="button" data-preview-title="方案 A|目录页预览" data-preview-subtitle="看结构能力和层级组织。" data-preview-group="A" data-preview-index="1">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns=
  • Network accessline 585
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23d9e3ef'/%3E%3Cstop offset='1' stop
  • Network accessline 590
    <div class="preview-label">正文页</div>               <button class="preview-button" type="button" data-preview-title="方案 A|正文页预览" data-preview-subtitle="看信息承载和视觉语法是否成立。" data-preview-group="A" data-preview-index="2">                 <img clas
  • Network accessline 591
    <button class="preview-button" type="button" data-preview-title="方案 A|正文页预览" data-preview-subtitle="看信息承载和视觉语法是否成立。" data-preview-group="A" data-preview-index="2">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xm
  • Network accessline 592
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23e8dbc6'/%3E%3Cstop offset='1' stop
  • Network accessline 621
    <div class="preview-label">首页</div>               <button class="preview-button" type="button" data-preview-title="方案 B|首页预览" data-preview-subtitle="看第一印象、主视觉和整体气质。" data-preview-group="B" data-preview-index="0">                 <img class=
  • Network accessline 622
    <button class="preview-button" type="button" data-preview-title="方案 B|首页预览" data-preview-subtitle="看第一印象、主视觉和整体气质。" data-preview-group="B" data-preview-index="0">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xml
  • Network accessline 623
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23e5d1ba'/%3E%3Cstop offset='1' stop
  • Network accessline 628
    <div class="preview-label">目录页</div>               <button class="preview-button" type="button" data-preview-title="方案 B|目录页预览" data-preview-subtitle="看结构能力和层级组织。" data-preview-group="B" data-preview-index="1">                 <img class="p
  • Network accessline 629
    <button class="preview-button" type="button" data-preview-title="方案 B|目录页预览" data-preview-subtitle="看结构能力和层级组织。" data-preview-group="B" data-preview-index="1">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns=
  • Network accessline 630
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23d9e3ef'/%3E%3Cstop offset='1' stop
  • Network accessline 635
    <div class="preview-label">正文页</div>               <button class="preview-button" type="button" data-preview-title="方案 B|正文页预览" data-preview-subtitle="看信息承载和视觉语法是否成立。" data-preview-group="B" data-preview-index="2">                 <img clas
  • Network accessline 636
    <button class="preview-button" type="button" data-preview-title="方案 B|正文页预览" data-preview-subtitle="看信息承载和视觉语法是否成立。" data-preview-group="B" data-preview-index="2">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xm
  • Network accessline 637
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23e8dbc6'/%3E%3Cstop offset='1' stop
  • Network accessline 666
    <div class="preview-label">首页</div>               <button class="preview-button" type="button" data-preview-title="方案 C|首页预览" data-preview-subtitle="看第一印象、主视觉和整体气质。" data-preview-group="C" data-preview-index="0">                 <img class=
  • Network accessline 667
    <button class="preview-button" type="button" data-preview-title="方案 C|首页预览" data-preview-subtitle="看第一印象、主视觉和整体气质。" data-preview-group="C" data-preview-index="0">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xml
  • Network accessline 668
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23e5d1ba'/%3E%3Cstop offset='1' stop
  • Network accessline 673
    <div class="preview-label">目录页</div>               <button class="preview-button" type="button" data-preview-title="方案 C|目录页预览" data-preview-subtitle="看结构能力和层级组织。" data-preview-group="C" data-preview-index="1">                 <img class="p
  • Network accessline 674
    <button class="preview-button" type="button" data-preview-title="方案 C|目录页预览" data-preview-subtitle="看结构能力和层级组织。" data-preview-group="C" data-preview-index="1">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns=
  • Network accessline 675
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23d9e3ef'/%3E%3Cstop offset='1' stop
  • Network accessline 680
    <div class="preview-label">正文页</div>               <button class="preview-button" type="button" data-preview-title="方案 C|正文页预览" data-preview-subtitle="看信息承载和视觉语法是否成立。" data-preview-group="C" data-preview-index="2">                 <img clas
  • Network accessline 681
    <button class="preview-button" type="button" data-preview-title="方案 C|正文页预览" data-preview-subtitle="看信息承载和视觉语法是否成立。" data-preview-group="C" data-preview-index="2">                 <img class="preview-image" src="data:image/svg+xml,%3Csvg xm
  • Network accessline 682
    <img class="preview-image" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23e8dbc6'/%3E%3Cstop offset='1' stop

assets/review_shell/build_review_html.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 6
    HTML_B64 = """PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+UFBUIFJldmlldyBXb3Jrc3BhY2
  • Possible obfuscationline 11
    output_path.write_bytes(base64.b64decode(HTML_B64))

assets/review_shell/index.html

  • Network accessline 706
    title: '首页|研究答辩开场',         role: '首页',         image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f7f1e7'/%
  • Network accessline 707
    role: '首页',         image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f7f1e7'/%3E%3Cstop offset='1' stop-co
  • Network accessline 708
    image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f7f1e7'/%3E%3Cstop offset='1' stop-color='%23d8e6f5'/%3E%
  • Network accessline 713
    title: '目录页|结构总览',         role: '目录页',         image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23edf4fb'/%
  • Network accessline 714
    role: '目录页',         image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23edf4fb'/%3E%3Cstop offset='1' stop-c
  • Network accessline 715
    image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23edf4fb'/%3E%3Cstop offset='1' stop-color='%23f5ede2'/%3E%
  • Network accessline 720
    title: '正文页|关键结论承载',         role: '正文页',         image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f5eee5'
  • Network accessline 721
    role: '正文页',         image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f5eee5'/%3E%3Cstop offset='1' stop-c
  • Network accessline 722
    image: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cdefs%3E%3ClinearGradient id='bg' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%23f5eee5'/%3E%3Cstop offset='1' stop-color='%23dce8f3'/%3E%

scripts/render_review_markup.py

  • Executable scriptline 1
    Executable file

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.

No combined signals at this commit.

Works with

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

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

NyxTides/ppt-image-first: #756 on hotskills, 1.2k stars

[![NyxTides/ppt-image-first on hotskills](https://hotskills.dev/badge/nyxtides-ppt-image-first.svg)](https://hotskills.dev/skill/nyxtides-ppt-image-first/)