Markitdown
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
Distill a source PPTX with EasySlides into factual source evidence, a content-free semantic layout family, and real reusable component and symbol assets.
$ npx skills add Rimagination/easyslides --skill easyslides-distill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Rimagination/easyslides easyslides-distill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Rimagination/easyslides.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/easyslides-distill .claude/skills/easyslides-distill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "easyslides-distill" agent skill from https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distill into .claude/skills/easyslides-distill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "easyslides-distill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Rimagination/easyslides --skill easyslides-distill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Rimagination/easyslides easyslides-distill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rimagination/easyslides.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/easyslides-distill .agents/skills/easyslides-distill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "easyslides-distill" agent skill from https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distill into .agents/skills/easyslides-distill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "easyslides-distill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Rimagination/easyslides --skill easyslides-distill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Rimagination/easyslides easyslides-distill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rimagination/easyslides.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/easyslides-distill .cursor/skills/easyslides-distill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "easyslides-distill" agent skill from https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distill into .cursor/skills/easyslides-distill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "easyslides-distill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Rimagination/easyslides.git --path skills/easyslides-distill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Rimagination/easyslides --skill easyslides-distill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Rimagination/easyslides easyslides-distill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rimagination/easyslides.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/easyslides-distill .gemini/skills/easyslides-distill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "easyslides-distill" agent skill from https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distill into .gemini/skills/easyslides-distill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "easyslides-distill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Rimagination/easyslides easyslides-distillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Rimagination/easyslides --skill easyslides-distill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Rimagination/easyslides.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/easyslides-distill .github/skills/easyslides-distill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "easyslides-distill" agent skill from https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distill into .github/skills/easyslides-distill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "easyslides-distill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Rimagination/easyslides --skill easyslides-distill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Rimagination/easyslides easyslides-distill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rimagination/easyslides.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/easyslides-distill .opencode/skills/easyslides-distill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "easyslides-distill" agent skill from https://github.com/Rimagination/easyslides/tree/main/skills/easyslides-distill into .opencode/skills/easyslides-distill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "easyslides-distill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
easyslides-distillDistill a source PPTX with EasySlides into factual source evidence, a content-free semantic layout family, and real reusable component and symbol assets.
Easyslides Distill is an agent skill from Rimagination/easyslides. Distill a source PPTX with EasySlides into factual source evidence, a content-free semantic layout family, and real reusable component and symbol assets. Use for EasySlides/PPTX template distillation, style extraction, reusable-template creation, fixed-chrome versus material-slot analysis, or Chinese requests such as 蒸馏PPT、提取无内容模板、拆分组件资产和符号资产。 Promotion is fail-closed: source-order mirrors and metadata-only fragments remain review candidates until native PPTX and visual gates pass.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Documents & Office, covering PowerPoint presentations. It works with Microsoft PowerPoint. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fe4882b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Easyslides Distill loads about 4.7k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 1,798 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Rimagination/easyslides at commit fe4882b, republished under its MIT licence (© Rimagination). 1,798 words, ~4,702 tokens.
.claude/skills/easyslides-distill/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This Skill is the plugin-local entry point for turning a source PowerPoint into an inspectable, reusable EasySlides template. It is a staged operation:
The canonical production surface is deliberately small and evidence-driven:
three to five stable page shells. cover, content, and ending are
required; toc and chapter are optional and are materialized only when the
source deck provides evidence for them. Source pages are evidence, not runtime
layouts. Repeated content forms are grouped into body_variants.json; repeated
visual primitives become component or symbol assets. A distillation that exposes
one public SVG per source slide fails this policy unless it is explicitly marked
as a source-evidence or mirror candidate.
The first pass must preserve the source identity. It is not a redesign pass and it is not a one-off PPTX fill operation. A completed distillation has three deliberately separate layers: source evidence, a source-faithful review candidate, and a content-free semantic production family. A mechanical copy of the source slide roster is never the production template.
The reusable layer must not retain source-specific titles, body copy, data, photos, or logos in replaceable slots. Fixed chrome remains protected.
Use this Skill when the request contains any of these intents:
Use the regular easyslides route instead when the user wants a new story,
allows page count or order to change, or only wants a one-off native PPTX fill.
From the repository root, read these files before running the workflow:
SKILL.mdARCHITECTURE.mdworkflows/routing.mdworkflows/pptx-to-easyslides-template.mdpptx skillworkflows/create-template.mdworkflows/template-asset-bank.mdreferences/template-designer.mdThe repository files are authoritative for commands and current output names. Do not create a second export backend or silently bypass the existing SVG, shape IR, DrawingML, and native PPTX paths.
Every source deck must be described with the following machine-readable ideas.
They may be represented in distilled_spec.json, template_language.md, and
the generated contract sidecars:
identity_must_preserve: palette, typography, page ratio, chrome, recurring
labels, visual rhythm, cover/ending treatment, and other source identity;structural_primitives: rails, headers, title bars, section numerals,
dividers, cards, axes, chart frames, image masks, markers, and footer rules;slot_candidates: title, subtitle, body, list, table, chart, image, label,
caption, quote, page marker, and other material-bearing slots;adaptable_patterns: page roles and repeatable compositions that may accept
new material;forbidden_drift: changes that would make a claimed source-faithful
template visibly become a different design;template_language: concise natural-language rules for future generation;adaptation_strategy: classic, mirror, or slot-guided mirror behavior,
including density and overflow policy;source_geometry_risks: authored oddities, placeholder artifacts, clipping,
unsupported effects, rotation, crop, opacity, and other risks that must not
be mistaken for freeform slots.Rendered source pages are the visual truth. Prose summaries and object-level metadata are evidence, not a replacement for rendered inspection.
Use the canonical plugin command from the repository root. It creates evidence and the faithful review draft; it does not promote assets by default:
python scripts/easyslides.py distill "path\to\source.pptx" --template-id my_templateThe hub delegates this route to scripts/pptx_template_distill.py; use the hub
so plugin discovery and CLI help stay aligned.
When a reference workspace already exists, use the command's documented
--from-existing-source form instead of importing the source twice. Keep the
raw source and imported assets under:
templates/reference/template_asset_sources/<template_id>/The source workspace should contain manifest.json, source_graph.json,
distill_manifest.json, rendered or extracted assets, SVG evidence, and a
contact sheet whenever the command supports them.
For a source graph without the full template build, use:
python scripts/pptx_source_graph.py "path\to\source.pptx" --output tmp\source_graph.jsonThe graph is factual. It intentionally leaves object classification as
unknown; semantic component registration belongs to the next phase.
Inspect the generated contact sheet and the source render evidence. Then read:
distilled_spec.jsonsource_graph.jsondistill_manifest.jsonidentity_spec.jsonlayout_spec.jsoncomponent_catalog.jsonslot_contracts.jsonasset_provenance.jsonadaptation_policy.jsonreview_queue.jsondesign_system_pack.jsoncomponent_registry_fragment.jsonprojection_manifest.jsontemplate_language.mdadaptation_strategy.jsonsource_geometry_risks.jsoneditable_rebuild_plan.jsonConfirm which elements are fixed chrome and which are material slots. Preserve
rotated side labels, decorative words, CONTENTS or equivalent section labels,
section numerals, page markers, cover geometry, and ending geometry unless the
user explicitly asks to replace them.
The runtime template lives under:
templates/layouts/<template_id>/It must contain the three required shell SVGs plus optional toc and chapter
shell SVGs when the source evidence supports them, plus:
design_spec.mdlayouts.jsonpage_catalog.jsonstory_structure.jsonrules.mdbody_variants.jsonsource_page_roster.jsonscripts/template_contract_pack.pyUse the existing repository command to create or refresh the draft. The command must select one source exemplar for each active shell, preserve all source pages in the reference workspace, and group content pages by visual form and density. Do not synthesize a missing TOC or chapter page, and do not add a new public page because a source slide has a different title or evidence arrangement.
The generated layouts.json must declare:
{
"global_contract": {
"canonical_shell_policy": "evidence_driven_three_to_five_stable_shells",
"canonical_shell_minimum": 3,
"canonical_shell_limit": 5,
"required_shell_roles": ["cover", "content", "ending"],
"optional_shell_roles": ["toc", "chapter"],
"active_shell_roles": ["cover", "content", "ending"]
},
"body_variants": "body_variants.json",
"source_page_roster": "source_page_roster.json"
}The contract pack rejects missing required shells, more than five public pages, unsupported optional shells, or missing source roster/variant sidecars.
Each body variant must also declare how it uses reusable components. New output
uses ordered component_refs objects with stable asset_id, unique
instance_id, semantic role, contiguous order, required, and
slot_bindings. Bare component names in the legacy components field remain
readable, but new distillation output must not write them. A variant with no
component dependencies writes component_refs: [] and an explicit open
composition mode.
Validate this relationship independently:
python scripts/body_variant_contract.py templates/layouts/my_template --jsonFirst run the complete distillation promotion gate. Only when its
promotion_report.json has status=pass and promotable=true may the
source-scoped candidate be materialized:
python scripts/easyslides.py distill "path\to\source.pptx" --template-id my_template --promote-assetsIt produces:
templates/layouts/<template_id>/ # evidence-driven 3-5-shell runtime layer
templates/layouts/<template_id>_reusable/ # source-scoped review candidate
templates/components/source_templates/<id>_kit/ # source-scoped asset evidence
templates/reference/template_asset_sources/<id>/ # evidence and contractsThe asset kit includes component_asset_manifest.json for repeated visual
components and symbol_asset_manifest.json for repeated shapes, connectors,
groups, and other symbol-like primitives. Only assets with an actual
renderable SVG fragment belong in component/symbol manifests. Unknown,
metadata-only, or one-off objects remain in review_queue.json and are not
silently promoted.
The default command is equivalent to the former no-promotion mode. The compatibility flag remains accepted:
python scripts/easyslides.py distill "path\to\source.pptx" --template-id my_template --no-promote-assetsThe source-scoped candidate is never automatically registered as a main
template. It must remain evidence or be generalized into the same
evidence-driven shell family with
layouts.json, body_variants.json, named data-slot bindings, explicit
capacities, and a fail-closed template_status.json. Render material through:
python scripts/easyslides.py semantic-render templates/layouts/my_semantic_template plans/deck_plan.json --out svg_output
python scripts/easyslides.py template-gate templates/layouts/my_semantic_template --pptx exports/review.pptx --report reports/production_gate.jsonProduction rendering must bind exact slot names. DOM-order text replacement, source page numbers, and a fixed source slide count are forbidden routing signals.
For every editable text box, preserve the source geometry in the SVG or IR:
data-pptx-textbox="true"data-pptx-box-xdata-pptx-box-ydata-pptx-box-wdata-pptx-box-hdata-pptx-valignText inside a compact control is a shape-plus-text unit. Single-line control text is vertically middle-aligned. Multiline labels are centered as a group when the source design centers the control as a whole. A text box must not be visually top-heavy inside its rectangle: its text center must align with the container's vertical center, subject to the source's explicit baseline or optical adjustment.
Preserve parent transforms, direction, rotation, crop, opacity, gradients,
shadows, and layer order. If an SVG transform produces negative extents, emit
legal positive PPTX extents plus the corresponding flipH or flipV; never
write invalid negative PPTX dimensions.
Treat fixed chrome as protected geometry. Treat candidate slots as constrained material inputs with role, density, maximum lines, and overflow policy.
Do not promote these to slots merely because they contain text or images:
The graph and derived contracts must retain this hard geometry invariant:
eligible_text_center_y == container_center_yOptical or baseline exceptions must be explicit in a later slot contract with a reason and adjustment. They are never implicit permission to leave text top-aligned inside a centered container.
For tight list or table slots, adapt content to the declared capacity and reject visible ellipses or accidental clipping. If a slot cannot accept the material, change the page pattern or report the overflow rather than silently shrinking everything.
Build the renderer mapping after the semantic contracts exist:
python scripts/pptx_projection.py build templates/reference/template_asset_sources/my_template --template-id my_templateThe source_template_projection renderer targets SVG and replaces only
declared slots. Convert the projected SVG through the existing
scripts/svg_to_pptx.py path when a native PPTX is required. A missing slot
element is a blocking projection failure; do not fall back to arbitrary text
insertion.
Before visual promotion, run the shell-shape gate:
python scripts/template_contract_pack.py templates/layouts/my_template --checkFor a production distillation, this must report 3-5 public layouts, with
cover, content, and ending required. toc and chapter may appear only
when supported by source evidence. The source page count may be larger, but it
must appear only in source_page_roster.json; extra forms must be represented
by body_variants.json or asset manifests.
Run the focused checks from the repository root. Use the exact current command help if an option has changed:
python scripts/template_contract_pack.py templates/layouts/my_template --check
python scripts/svg_quality_checker.py templates/layouts/my_template
python scripts/template_geometry_qa.py templates/layouts/my_template --report tmp/my_template_geometry_svg.json --json
python scripts/svg_to_pptx.py templates/layouts/my_template --only native -t none -a none -o tmp/my_template_review.pptx
python scripts/validate_pptx_text_layout.py tmp/my_template_review.pptx --report tmp/my_template_text_layout_report.json
python scripts/template_geometry_qa.py templates/layouts/my_template --pptx tmp/my_template_review.pptx --report tmp/my_template_geometry_pptx.json --json
python scripts/visual_measure_gate.py --template-dir templates/layouts/my_template --pptx tmp/my_template_review.pptx --report tmp/my_template_visual_measure_report.jsonFor the complete Phase 5 promotion decision, run the orchestration gate from the reference workspace and runtime template directory:
python scripts/pptx_distill_promotion_gate.py templates/reference/template_asset_sources/my_template templates/layouts/my_template --pptx tmp/my_template_review.pptx --source-render-dir tmp/source_render_png --generated-render-dir tmp/generated_render_png --out tmp/my_template_promotion_gate --jsonIt writes promotion_report.json plus the focused child reports. A missing
PPTX, render diff, or cross-material run is review_required; it is never
treated as promotion success. The report is promotable only when every gate
passes.
For a reusable template, run the cross-material smoke test with a different material set:
python scripts/template_material_smoke_test.py templates/layouts/my_template --out tmp/my_template_material_smoke --force --forbidden-keyword SOURCE_SPECIFIC_TERM
python scripts/svg_quality_checker.py tmp/my_template_material_smoke
python scripts/template_geometry_qa.py tmp/my_template_material_smoke --report tmp/my_template_material_smoke_geometry_svg.json --json
python scripts/svg_to_pptx.py tmp/my_template_material_smoke --only native -t none -a none -o tmp/my_template_material_smoke.pptx
python scripts/validate_pptx_text_layout.py tmp/my_template_material_smoke.pptx --report tmp/my_template_material_smoke_text_layout.jsonIf PowerPoint or LibreOffice is available, render both source and generated PPTX files and compare their PNGs:
python scripts/render_pptx_png.py source_template.pptx --out tmp/source_render_png --report tmp/source_render_png_report.json
python scripts/render_pptx_png.py tmp/my_template_review.pptx --out tmp/generated_render_png --report tmp/generated_render_png_report.json
python scripts/pptx_visual_diff.py tmp/source_render_png tmp/generated_render_png --out tmp/my_template_visual_diffThe following are blocking failures:
CONTROL-TEXT-VERTICAL-MISALIGNPPTX-CONTROL-TEXT-VERTICAL-MISALIGNPPTX-TEXT-CONTAINER-OVERFLOWPPTX-INVALID-NEGATIVE-EXTENTellipsized_material_textThe acceptance claim has two parts:
For a semantic production family, add the final gate:
python scripts/easyslides.py template-gate templates/layouts/my_semantic_template --pptx tmp/my_semantic_template_review.pptx --report tmp/my_semantic_template_production_gate.json --promoteDo not use --promote until the contact sheet has been visually reviewed and
the review decision is recorded. review_required is not success.
Report the result in Chinese and include:
template_id;Never claim that a source deck has been distilled solely because a PPTX file was copied or its colors were patched. Distillation is complete only when the source evidence, reusable language, slot contract, geometry QA, and handoff are all present.
© Rimagination, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/easyslides-distill of Rimagination/easyslides.
Open the folder on GitHubat commit fe4882b
Easyslides Distill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Easyslides Distill this skillRimagination/easyslides | 138 | — | ~4.7k | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Image To Editable Pptningzimu/image-to-editable-ppt-skill | 2.9k | — | ~4.3k | Automated safety check: Pass | MIT | |
| GenOffice Document CLIgenspark-ai/genoffice | 9.2k | — | ~19k | Automated safety check: Pass | Apache-2.0 | |
| PPTX PostersK-Dense-AI/claude-scientific-writer | 2.4k | 2 repos | ~2.7k | Automated safety check: Notes | MIT | |
| Slidesfcakyon/claude-codex-settings | 1.2k | 1 repos | ~1.1k | Automated safety check: Pass | MIT |
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
ningzimu/image-to-editable-ppt-skill
Rebuild slide images, scanned or image-based PPT/PPTX files, and PDF decks into object-level editable PowerPoint (.pptx), preserving speaker notes when supplied.
genspark-ai/genoffice
Creates, converts, reads and edits real pptx, xlsx, docx and PDF files locally through the genoffice command line.
K-Dense-AI/claude-scientific-writer
Create and audit editable scientific posters in macro-free PowerPoint (.pptx) from author-approved local content and assets.
fcakyon/claude-codex-settings
Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities.
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.
Rimagination/easyslides
Use EasySlides to create, distill, edit, review, and export editable academic PPTX presentations, including 蒸馏PPT、提取模板、复用模板和答辩PPT。
Rimagination/easyslides
Canonical EasySlides entry point for creating, distilling, editing, reviewing, and exporting editable academic PPTX presentations.
Rimagination/easyslides
Resolve only result-affecting ambiguities in an EasySlides request through explicit user choices before route selection or generation.
Works with
Categories
Distill a source PPTX with EasySlides into factual source evidence, a content-free semantic layout family, and real reusable component and symbol assets. Easyslides Distill is an agent skill from Rimagination/easyslides. Distill a source PPTX with EasySlides into factual source evidence, a content-free semantic layout family, and real reusable component and symbol assets.
Easyslides Distill fits situations like: easySlides/PPTX template distillation; style extraction; reusable-template creation; fixed-chrome versus material-slot analysis.
Run `npx skills add Rimagination/easyslides --skill easyslides-distill -a claude-code`. Or copy the skill folder (skills/easyslides-distill in Rimagination/easyslides) into .claude/skills/easyslides-distill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Rimagination/easyslides --skill easyslides-distill -a codex`. Or copy the skill folder (skills/easyslides-distill in Rimagination/easyslides) into .agents/skills/easyslides-distill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Rimagination/easyslides --skill easyslides-distill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/easyslides-distill, .gemini/skills/easyslides-distill, .github/skills/easyslides-distill and .opencode/skills/easyslides-distill in your project.
Going by SKILL.md and its folder, Easyslides Distill needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Easyslides Distill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Easyslides Distill: Markitdown (ImCa0/just-laws, 781 stars), Image To Editable Ppt (ningzimu/image-to-editable-ppt-skill, 2.9k stars), GenOffice Document CLI (genspark-ai/genoffice, 9.2k stars) and PPTX Posters (K-Dense-AI/claude-scientific-writer, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Rimagination (a GitHub user) maintains it in Rimagination/easyslides, which has 138 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 13, 2026.
Source: Rimagination/easyslides on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.