{"id":51572148,"url":"https://github.com/NyxTides/ppt-image-first","last_synced_at":"2026-07-29T21:00:36.977Z","repository":{"id":353904889,"uuid":"1221334781","full_name":"NyxTides/ppt-image-first","owner":"NyxTides","description":"PPT image-first skill for Codex/Claude Code/Opencode CLI","archived":false,"fork":false,"pushed_at":"2026-05-04T16:19:30.000Z","size":31578,"stargazers_count":556,"open_issues_count":1,"forks_count":50,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-05-04T18:24:46.218Z","etag":null,"topics":["office","powerpoint","ppt","slide","slides"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NyxTides.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-26T04:04:15.000Z","updated_at":"2026-05-04T17:36:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/NyxTides/ppt-image-first","commit_stats":null,"previous_names":["nyxtides/ppt-image-first"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NyxTides/ppt-image-first","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NyxTides%2Fppt-image-first","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NyxTides%2Fppt-image-first/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NyxTides%2Fppt-image-first/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NyxTides%2Fppt-image-first/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NyxTides","download_url":"https://codeload.github.com/NyxTides/ppt-image-first/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NyxTides%2Fppt-image-first/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36049371,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-29T02:00:04.910Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["office","powerpoint","ppt","slide","slides"],"created_at":"2026-07-10T20:30:25.161Z","updated_at":"2026-07-29T21:00:36.971Z","avatar_url":"https://github.com/NyxTides.png","language":"Python","funding_links":[],"categories":["Uncategorized","🧠 Agent Skills","Diagram and Visual Skills"],"sub_categories":["Uncategorized"],"readme":"# ppt-image-first\n\n[中文](./README.md) | **English**\n\nConversation-first, image-first PPT workflow for building presentation plans, style previews, review loops, and generation-ready slide specs.\n\n`ppt-image-first` is designed for PPT / slides / decks that should not jump straight into rigid templates or direct slide assembly. It first clarifies the deck, builds a content basis, proposes visual directions with real previews, supports refinement, and only then moves into locked planning and downstream generation.\n\n\u003e **Output note: this is an image-first workflow.** By default, the workflow uses **GPT Image 2** to generate full-slide page visuals, then places those page images into a PPTX container for delivery. It is not a fully editable PowerPoint generator that recreates every text box, shape, chart, and decoration as native PowerPoint objects. The result is closer to a high-fidelity visual deck: suitable for presenting, sharing, and image-level retouching, but slide text and design elements are usually not individually editable as native PPT elements.\n\n## Quick examples\n\n### 1. Workflow overview slide\n\n![Workflow overview slide](./docs/images/workflow-overview-slide.png)\n\n### 2. Thesis defense / report cover example\n\n![Meteorology defense cover example](./docs/images/sample-meteorology-defense-deck.png)\n\n### 3. Campus / red-theme deck example\n\n![Campus red-theme PPT example](./docs/images/sample-red-campus-deck.png)\n\n### 4. Technical research body-page example\n\n![Technical research body-page example](./docs/images/sample-tech-research-body-page.png)\n\n## Demo PPT\n\nThe repository also includes a downloadable presentation that was directly created around this workflow:\n\n- [Download demo PPT (ppt-image-first-demo-deck.pptx)](./docs/demo/ppt-image-first-demo-deck.pptx)\n\nThis deck is about `ppt-image-first` itself, so it works well as a quick sample for checking the workflow's page quality, narrative structure, and overall finish.\n\n---\n\n## What it does\n\nThis skill is built for requests like:\n\n- \"Help me make a PPT\"\n- \"Turn this report into a presentation\"\n- \"Make a thesis defense deck\"\n- \"Create a product intro PPT\"\n- \"Generate style directions before writing the final slides\"\n- \"I only have a topic and rough notes — help me turn it into a real deck\"\n\nInstead of forcing the user into a parameter form, it follows a staged workflow:\n\n1. light intake\n2. baseline judgment\n3. requirement confirmation\n4. pre-style content research / `content_report.md`\n5. style-boundary alignment\n6. multi-direction visual preview generation\n7. style refinement if needed\n8. style confirmation\n9. style inversion confirmation\n10. planning files\n11. pre-generation confirmation\n12. generation branch selection\n13. review and retouch loop\n14. final export\n\n---\n\n## Why this exists\n\nMany PPT workflows fail in one of 2 ways:\n\n- they become **too template-driven**, so the output looks polished but generic\n- they become **too structure-light**, so the deck looks good but says very little\n\n`ppt-image-first` is built to avoid both.\n\nIts core idea is:\n\n- keep the conversation front-end light\n- build content depth before style when materials are thin\n- use real preview images before asking the user to choose a direction\n- treat generated page visuals as the main output path, not as background plates for manual patching\n\n---\n\n## Core principles\n\n### 1. Conversation-first\n\nThe user is treated like the client. The agent is the proposing design side.\n\nThat means:\n\n- the first intake stays light\n- the workflow avoids long questionnaires\n- the user reacts to judgments, directions, previews, and refinements\n- the workflow does not expose raw internal controls unless necessary\n\n### 2. Image-first\n\nThe workflow assumes that visual direction should be tested with **actual generated preview images**, not just text descriptions, wireframes, or placeholder shells.\n\nFinal generation follows the same logic: it prioritizes using **GPT Image 2** to render complete slide pages and then packages those rendered pages into PPTX. This preserves visual consistency and finish, but it does not promise that every element is a native editable PowerPoint object.\n\n### 3. Content before styling when needed\n\nAfter `需求确认`, the skill inserts a **pre-style content basis stage** unless the user already provided a complete report-like narrative.\n\nThat stage produces `content_report.md`, which gives later preview pages and planning files a real content source.\n\n### 4. Preview before lock-in\n\nThe skill does not ask the user to choose a final style from text alone. It first generates preview sets for:\n\n- 首页\n- 目录页\n- 正文页\n\n### 5. Review is part of the workflow\n\nThe first generated deck is not treated as final delivery. The skill includes a dedicated review-and-retouch round using a review HTML shell.\n\n---\n\n## Workflow overview\n\n### Stage 1 — Intake and baseline judgment\n\nCollect only the essentials:\n\n- purpose\n- audience\n- rough length\n- available materials\n- real identity anchors such as school / company / lab / course / brand\n\nThen output a short baseline judgment and stop for **需求确认**.\n\n### Stage 1.25 — Pre-style content research\n\nIf the user does not already provide a complete report-like narrative, generate a grounded `content_report.md`.\n\nThis stage is used to:\n\n- deepen thin topics\n- structure scattered material\n- make previews content-bearing\n- ground later planning files\n\n### Stage 1.5 — Style-boundary alignment\n\nAsk only 3 short questions:\n\n- bright / dark / middle\n- normal professional / clearly stylized\n- how many directions to preview\n\n### Stage 2 — Style proposal and preview\n\nGenerate multiple style directions and real preview images for:\n\n- cover\n- TOC\n- body page\n\n### Stage 2.5 — Style refinement\n\nIf the user likes a direction but wants changes, continue from that direction instead of forcing final selection.\n\n### Stage 2.75 — Style inversion confirmation\n\nRead the chosen preview images as evidence of what the user actually liked, and extract:\n\n- what should clearly continue\n- what looked good but needs confirmation\n- what was probably one-off and should not be hard-locked\n\n### Stage 3 — Planning files\n\nGenerate in this order:\n\n1. `design_spec.md`\n2. `slide_blueprint.md`\n3. `spec_lock.md`\n\nThen stop for **生成前确认**.\n\n### Stage 4 — Generation\n\nAsk whether the user wants:\n\n- one final image per slide\n- or multiple candidates per slide\n\nIf the user chooses multiple candidates, the candidate-picker shell is used before the final review stage.\n\n### Stage 5 — Review and retouch\n\nUse the review shell as the default review surface.\n\nIf the user is satisfied, finish the review. If not, they can copy structured feedback back into the chat and continue the retouch loop.\n\n---\n\n## Bundled workflow assets\n\nThis skill ships with fixed workflow shells that are meant to be reused, not replaced casually:\n\n- `assets/preview_shell/index.html`\n- `assets/candidate_picker_shell/index.html`\n- `assets/review_shell/index.html`\n\nThese shells support:\n\n- preview comparison\n- candidate selection\n- review and retouch collaboration\n\n---\n\n## Planning artifacts\n\nThe skill uses 4 main artifacts across the workflow:\n\n### `content_report.md`\n\nPre-style content basis used when the user does not already provide a complete report-like narrative.\n\n### `design_spec.md`\n\nDeck-level rationale and global direction.\n\n### `slide_blueprint.md`\n\nPage-by-page intent, content payload, and visual strategy.\n\n### `spec_lock.md`\n\nExecution constraints, grounding policy, and what downstream generation is allowed or not allowed to do.\n\n---\n\n## What makes this workflow different\n\n### Not template-first\n\nIt does not start from fixed page templates or a rigid layout family.\n\n### Not form-first\n\nIt avoids turning PPT creation into a long configuration questionnaire.\n\n### Not text-mockup-first\n\nPreview means real image previews by default.\n\n### Not shallow by default\n\nIf the topic is thin, the skill adds a content-basis stage before style.\n\n### Not patch-overlay-driven\n\nIt avoids using generated images as simple backgrounds and then rebuilding the slide with ad hoc overlay text and decorations.\n\n---\n\n## Repository structure\n\n```text\nppt-image-first/\n├─ SKILL.md\n├─ README.md\n├─ README.en.md\n├─ references/\n│  ├─ workflow.md\n│  ├─ conversation_framework.md\n│  ├─ preview-flow.md\n│  └─ ...\n├─ templates/\n│  ├─ content_report_reference.md\n│  ├─ design_spec_reference.md\n│  ├─ slide_blueprint_reference.md\n│  └─ spec_lock_reference.md\n└─ assets/\n   ├─ preview_shell/\n   ├─ candidate_picker_shell/\n   └─ review_shell/\n```\n\n---\n\n\n## Good fit\n\nThis workflow is a good fit for:\n\n- thesis defense decks\n- research presentations\n- project reports\n- product introduction decks\n- pitch decks\n- training decks\n- proposal decks\n- internal review / recap decks\n\nEspecially when:\n\n- the user has only a topic or rough notes\n- the deck needs stronger content grounding\n- the visual direction should be chosen from actual previews\n- the final deck should stay aligned with approved preview logic\n\n---\n\n## Notes\n\n- The workflow assumes `16:9` by default unless the user explicitly asks for another ratio.\n- Preview pages are expected to be content-bearing, not empty placeholders.\n- The workflow intentionally includes multiple confirmation points instead of collapsing everything into one pass.\n- The review stage is part of the main workflow, not an optional afterthought.\n\n---\n\n## Acknowledgements\n\nThis project acknowledges the [Linux.do community](https://linux.do/) for its open-source sharing and promotion culture.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNyxTides%2Fppt-image-first","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNyxTides%2Fppt-image-first","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNyxTides%2Fppt-image-first/lists"}