#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
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.
Heat
1.6- Star growth, last 7 daysAhead of 36% 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
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 tokensAlways available to the agent
SKILL.md
1,285 tokensWhen the skill is activated
Reference documents
16,712 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- I/O Contract
- Workflow Phases
- Progressive Loading
- Working Principles
- Hard Rules
- Output Hierarchy
Scripts executed separately
assets/candidate_picker_shell/build_candidate_picker_html.pyassets/preview_shell/build_preview_html.pyassets/review_shell/build_review_html.pyscripts/render_review_markup.py
Files
.gitignoreasset90 bytesLICENSEasset10,477 bytesREADME.en.mddoc9,678 bytesREADME.mddoc9,534 bytesSKILL.mdcore6,449 bytesSKILL.mdcore6,449 bytesassets/candidate_picker_shell/build_candidate_picker_html.pyruns35,068 bytesassets/candidate_picker_shell/index.htmlasset26,035 bytesassets/preview_shell/build_preview_html.pyruns49,684 bytesassets/preview_shell/index.htmlasset36,998 bytesassets/review_shell/build_review_html.pyruns56,514 bytesassets/review_shell/index.htmlasset42,159 bytesdocs/demo/ppt-image-first-demo-deck.pptxasset32,610,743 bytesdocs/images/sample-meteorology-defense-deck.pngasset261,381 bytesdocs/images/sample-red-campus-deck.pngasset330,888 bytesdocs/images/sample-tech-research-body-page.pngasset234,876 bytesdocs/images/workflow-overview-slide.pngasset194,061 bytesreferences/conversation_framework.mddoc10,971 bytesreferences/preview-flow.mddoc7,372 bytesreferences/style-system.mddoc4,603 bytesreferences/workflow.mddoc22,175 bytesscripts/render_review_markup.pyruns9,036 bytestemplates/content_report_reference.mddoc3,497 bytestemplates/design_spec_reference.mddoc3,677 bytestemplates/slide_blueprint_reference.mddoc3,230 bytestemplates/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 GitHubSkills 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 #492 · down 152 in 30 days
- #742 on Oct 31
- #743 on Nov 1
- #745 on Nov 2
- #752 on Nov 3
- #755 from Nov 4 to Nov 5
- #756 since Nov 6
49 earlier periods
- #487 on Aug 2
- #492 on Aug 7
- #489 on Aug 9
- #509 on Aug 10
- #492 on Aug 15
- #501 on Aug 16
- #523 on Aug 18
- #515 on Aug 19
- #518 on Aug 21
- #525 on Aug 23
- #540 on Aug 25
- #529 on Aug 26
- #542 on Aug 27
- #515 on Aug 30
- #544 on Aug 31
- #547 on Sep 1
- #528 on Sep 4
- #545 on Sep 7
- #549 on Sep 9
- #553 on Sep 10
- #545 on Sep 11
- #540 on Sep 12
- #543 on Sep 13
- #565 on Sep 14
- #552 on Sep 15
- #565 on Sep 17
- #570 on Sep 18
- #558 on Sep 19
- #570 on Sep 20
- #575 on Sep 21
- #561 on Sep 25
- #562 on Sep 26
- #583 on Sep 27
- #586 on Sep 28
- #610 on Sep 29
- #595 on Sep 30
- #585 on Oct 2
- #604 on Oct 6
- #635 on Oct 8
- #605 on Oct 10
- #625 from Oct 12 to Oct 13
- #643 on Oct 16
- #667 on Oct 21
- #648 on Oct 23
- #633 on Oct 24
- #721 on Oct 25
- #727 on Oct 28
- #732 on Oct 29
- #739 on Oct 30
Before you install
Local scriptsAutomated 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:1Analysis incomplete: Referenced executable target unavailable; not analyzedassets/candidate_picker_shell/build_candidate_picker_html.py:6Analysis incomplete: physical or joined line exceeds character limitassets/preview_shell/build_preview_html.py:6Analysis incomplete: physical or joined line exceeds character limitassets/review_shell/build_review_html.py:6Analysis incomplete: physical or joined line exceeds character limitdocs/demo/ppt-image-first-demo-deck.pptx:1Analysis incomplete: Blob exceeds size or total-read limit; file skipped
- No broad tool permissions
- No dangerous shell commands
- 43 network referencesin 6 files: assets/preview_shell/index.html:576 assets/review_shell/index.html:706 LICENSE:1 and 3 more
- No instruction overrides
- 4 executable scriptsin 4 files: assets/candidate_picker_shell/build_candidate_picker_html.py:1 assets/preview_shell/build_preview_html.py:1 assets/review_shell/build_review_html.py:1 and 1 more
- No access to secrets
- No requests to vote in Hot
Show all 53 signals by file
LICENSE
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
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 | 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.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/nyxtides-ppt-image-first/)