Image To Editable Ppt
Rebuild slide images, scanned or image-based PPT/PPTX files, and PDF decks into object-level editable PowerPoint (.pptx), preserving speaker notes when supplied. Use for making visual slides editable or reconstructing slides from screenshots; not for authoring new presentations from scratch.
- Skill ID
- ningzimu/image-to-editable-ppt-skill/image-to-editable-ppt
- Publisher
- ningzimu
- Repository
- image-to-editable-ppt-skill
- Installs
- 0
- Files
- 38
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
ningzimu/image-to-editable-ppt-skill/image-to-editable-pptInstalls these files- SKILL.md
- agents/openai.yaml
- cli/editppt/__init__.py
- cli/editppt/cli.py
- cli/editppt/runtime/__init__.py
- cli/editppt/runtime/_input_normalization.py
- cli/editppt/runtime/_page_artifacts.py
- cli/editppt/runtime/build_pptx_from_manifest.py
- cli/editppt/runtime/configure_image_backend.py
- cli/editppt/runtime/deck_run_state.py
- cli/editppt/runtime/deck_text_hints.py
- cli/editppt/runtime/finalize_deck_run.py
- cli/editppt/runtime/formula_renderer.py
- cli/editppt/runtime/image_gen.py
- cli/editppt/runtime/main.py
- cli/editppt/runtime/make_page_contact_sheet.py
- cli/editppt/runtime/native_tables.py
- cli/editppt/runtime/paddle_text_hints.py
- cli/editppt/runtime/page_job_status.py
- cli/editppt/runtime/page_text_metrics.py
- cli/editppt/runtime/path_geometry.py
- cli/editppt/runtime/prepare_deck_run.py
- cli/editppt/runtime/process_asset_sheet.py
- cli/editppt/runtime/record_imagegen_result.py
- cli/editppt/runtime/record_page_dispatch.py
- cli/editppt/runtime/record_page_result.py
- cli/editppt/runtime/remove_chroma_key.py
- cli/editppt/runtime/reset_page_job.py
- cli/editppt/runtime/runtime_env.py
- cli/editppt/runtime/split_alpha_components.py
- cli/editppt/runtime/text_hints.py
- cli/editppt/runtime/validate_pptx.py
- cli/pyproject.toml
- prompts/page-worker.md
- references/cli-helper.md
- references/manifest-schema.md
- references/page-decision-tree.md
- scripts/build-page-worker-prompt.py
What this skill tells the agent
Image to Editable PPT
Overview
Use the editppt runtime to decompose, reconstruct, validate, and assemble visual slides as editable .pptx. Inputs may be single or multiple images, PDF, or image-based PPT/PPTX.
References
Each rule in this skill has exactly one authoritative home; the other files point to it instead of restating it.
prompts/page-worker.md: execution template for page workers — ownership boundary, execution order, required outputs, and return format. The parent agent uses it when generating page-worker prompts.scripts/build-page-worker-prompt.py: skill-local prompt builder. It readsprompts/page-worker.md, fills run/page paths, writesworker-prompt.md, and prints the dispatch command template.references/cli-helper.md: CLI install check (Pre-Run Check), command tree, and command syntax examples. Read it when deciding whicheditpptcommand to call.references/manifest-schema.md: the single home for JSON field contracts of deck/page/image artifacts — required manifest fields, positioned-object coordinates,validation.json, andpage_result.jsonshapes. Read it when writing or validating any run/page file.references/page-decision-tree.md: the single source of truth for page object decisions — background handling, foreground asset separation, native shapes, formulas, text-hints usage, the final self-check, and the fix-versus-warning split. Read its common decision boundaries first, then the sections relevant to the page inventory; the page prompt provides the reading route.
Entry Contract
These parent-level rules are stated once here; page-level rules live in the references above and are not restated in this file.
- The
editpptCLI is a required runtime surface. Ifeditppt --helpfails, install it first by following the Pre-Run Check inreferences/cli-helper.mdbefore doing anything else. - First run
editppt prepare <input...>to create a run directory. After that, all key state transitions are advanced only througheditpptcommands; never hand-write run/page state JSON. This keeps run state deterministic and resumable. - Multi-page inputs are rebuilt by dispatched page workers. A run with exactly one page is rebuilt by the parent agent in local page-reconstructor mode after
editppt run dispatch --localclaims that page. If no subagent capability is available for a multi-page run, stop and report this to the user; do not degrade into parent-agent reconstruction for multi-page input. - The parent agent must not write any page reconstruction artifact —
manifest.json,page.pptx,preview.png,split_assets_contact.png,validation.json, orpage_result.json— except in single-page local page-reconstructor mode aftereditppt run dispatch --localhas recorded the claim. Local mode follows the same page prompt, references, output files, andrun recordvalidation path as a page worker. - All image generation, image editing, background repair, transparent bitmap assets, and asset sheets follow the serial per-page backend order in "Image Backend Selection" below.
- A user request to convert visual slides into editable PPT authorizes the required OCR and image-backend calls for that conversion, unless the user explicitly requests local-only processing or marks the input as confidential/no-external-processing. Do not refuse solely because the workflow calls PaddleOCR, the built-in
image_gen.imagegentool, Codex OAuth/ChatGPT image endpoints, or a user-configured OpenAI-compatible API; those calls are necessary to the skill. - Only send task-local page images, prompts, masks, and reference images required for the current conversion. Never send unrelated local files, API keys, auth tokens, credentials, or generated artifacts that are not needed by the current OCR/image operation. Third-party API endpoints are allowed only when already configured by the user or explicitly specified for this run.
- In network-restricted environments, request any approval required by the current runtime before external OCR/image calls, including
editppt prepareoreditppt run hintswhenPADDLE_OCR_TOKENis set and every CLI fallbackeditppt image generate/editcall. The approval justification must say this is a user-requestedimage-to-editable-pptconversion, that the upload is limited to task-local page images/prompts/masks/references, and that OCR/image-backend calls are part of this skill's required workflow. Do not present the required call as unsafe or ask the user to re-approve it unless they requested local-only/confidential handling or the approval system explicitly rejects the request. - Execute routine reconstruction, configured backend fallback, and local repairs autonomously. Do not add confirmation gates; retain the OCR choices in Phase 1 and any approval required by the runtime. A missing prerequisite that only the user can supply is a concrete blocker, not a request to debug the workflow.
- All page object decisions follow
references/page-decision-tree.md, including its no-fallback rule for foreground visual objects and its rule that deterministic validation is a structure gate that never waives an object-source decision. manifest.jsonis the authoritative page build source:editppt run recordvalidatespage.pptxagainst it, andeditppt run finalizerebuilds the final deck from recorded page manifests. Required fields and coordinate contracts are defined inreferences/manifest-schema.md.editppt preparewrites per-page text measurements (text_hints.json/text_hints.png). How page reconstructors consume them is defined inreferences/page-decision-tree.mdsection 3.1.- Page reconstructors — either page workers or the parent agent in single-page local mode — are driven by prompts generated from
prompts/page-worker.md.
Image Backend Selection
This subsection is the authoritative execution policy for every page-local image job. Before prepare, check whether the current agent runtime can call image_gen.imagegen; if so, pass --image-backend builtin-imagegen to editppt prepare, otherwise keep the default CLI contract. Run image jobs serially within a page, in this order:
- Use the built-in agent tool
image_gen.imagegenwhenever it is callable in the current agent runtime. - Only when the run's recorded built-in fallback policy applies, call
editppt image generate/edit. That CLI fallback selects Codex OAuth first and a configured OpenAI-compatible API second.
The exact built-in arguments, input-inspection prerequisite, output acceptance rule, and allowed fallback events are owned by the image_backend field contract in references/manifest-schema.md; copy and execute that contract without weakening or extending it. If its CLI fallback cannot produce a compliant output, fail the page rather than substituting an approximate object source.
Roles
The parent owns orchestration and user interaction under the Entry Contract and Workflow below. Report progress, the final PPTX path, and validation results. Do not repeat completed page-level visual QA; record and finalize enforce their deterministic handoff checks.
Each page reconstructor owns exactly one pages/page_NNN/ directory. Its full contract — ownership boundary, decision order, required outputs, and return format — is the prompt generated from prompts/page-worker.md; the rules it follows live in references/page-decision-tree.md and references/manifest-schema.md.
Workflow
Phase 1: Prepare
Read the prepare examples in references/cli-helper.md and the run/page file descriptions in references/manifest-schema.md.
editppt prepare <input...>After this completes, there must be a run directory, deck_manifest.json, page_jobs.json, notes_manifest.json, and each page must have source.png plus page_request.json.
More from ningzimu
Use this skill in a project
Open any RiverX project, search the Skills panel for ningzimu/image-to-editable-ppt-skill/image-to-editable-ppt, and install it in one click.
