gen-mdpt
Skill301 starsChanged 9 months agoApache-2.0View on GitHub
Generate an MDPT-compatible markdown presentation from a topic, description, or document. Use this when the user wants to create slides for mdpt.
In this repositoryOne other file it gives its agents.
- openspec/AGENTS.mdAGENTS.md
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 4 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Write the generated markdown to gen.md in the current working directory.
- Very specific: line 47
Use --- on its own line to separate slides.
- Distinctive: line 222
Use varied elements: lists, code blocks, tables, charts, columns, quotes, animations
- Very specific: line 223
Use <!-- pause --> for progressive reveal on content-heavy slides
- Distinctive: line 226
If a topic has too much content for one slide, split into multiple slides
- Distinctive: line 227
Use the language matching the topic (Chinese topic → Chinese content, English → English)
- Very specific: line 228
Use <!-- anim: ... --> sparingly for emphasis (1-3 times in the whole presentation)
- Very specific: line 230
Read references/examples/demo.md first as a reference for syntax and style
- Distinctive: line 235
If the user provided a document/file path, read it to extract content
- Very specific: line 237
Write to gen.md in the current working directory
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Generate MDPT Presentation
You are generating a markdown presentation for MDPT (Markdown Presentation Tool built with RustPixel).
Topic / Requirements: $ARGUMENTS
Output
Write the generated markdown to gen.md in the current working directory.
MDPT Format Specification
YAML Frontmatter (required at top)
---
title: Presentation Title
author: Author Name
theme: dark
transition: cycle
title_animation: typewriter
code_theme: base16-ocean.dark
margin: 4
height: 26
transition_duration: 0.2
---Available values:
- theme:
dark,light - transition:
cycle,fade,slide_left,slide_right,slide_up,slide_down - title_animation:
typewriter,spotlight,wave,fadein - code_theme: any syntect theme (
base16-ocean.dark,Solarized (dark),InspiredGitHub) - margin: horizontal margin in cells (default 2)
- width: virtual canvas width in cells (default 80)
- height: virtual canvas height in cells (default 24, use 26-30 for dense content)
Slide Separator
Use --- on its own line to separate slides.
Headings
# H1— title slides and ending slides only## H2— normal slide title (most slides use this)### H3— section heading within a slide
Lists
* Unordered item (supports nesting with indentation)
* Nested item
* Deeper nesting
1. Ordered item
2. Second itemCode Blocks
```rust +line_numbers
fn main() {
println!("Hello!");
}
```Options after language name: +line_numbers, +no_background
Dynamic highlighting (press Space to cycle groups):
```rust {1-3|5-8|all} +line_numbers
// lines 1-3 highlighted first
// then lines 5-8
// then all
```Tables
| Header 1 | Header 2 | Header 3 |
|:---------|:--------:|---------:|
| Left | Center | Right |Block Quotes and Alerts
> Regular quote text
> [!note]
> This is a helpful note.
> [!caution]
> Be careful with this!Special MDPT Directives (HTML comments)
<!-- pause --> Incremental display (next content appears on key press)
<!-- divider --> Horizontal divider line
<!-- spacer: 2 --> Add N blank lines
<!-- jump_to_middle --> Center next content vertically (for title/ending slides)Column Layout
<!-- column_layout: [1, 1] -->
<!-- column: 0 -->
Left column content here
<!-- column: 1 -->
Right column content here
<!-- reset_layout -->Weight ratio [1, 1] means equal width. Use [2, 1] for 2:1 ratio.
Text Animations
<!-- anim: spotlight -->
Text with spotlight animation (per-char highlight pulse)
<!-- anim: wave -->
Text with wave animation (sinusoidal scale)
<!-- anim: fadein -->
Text with fade-in animation (chars reveal left-to-right)
<!-- anim: typewriter -->
Text with typewriter animation (chars appear one by one)Charts (fenced code blocks)
Line Chart:
```linechart
title: Monthly Revenue
x: [Jan, Feb, Mar, Apr, May]
y: [120, 200, 150, 300, 280]
y2: [80, 150, 120, 200, 250]
height: 12
```Bar Chart:
```barchart
title: Programming Languages
labels: [Rust, Go, Python, JS]
values: [95, 72, 88, 78]
height: 14
```Pie Chart:
```piechart
title: Market Share
labels: [Chrome, Safari, Firefox, Edge]
values: [65, 18, 7, 5]
radius: 20
```Mermaid Flowchart
```mermaid
graph TD
A[Start] --> B[Process]
B --> C{Decision}
C -->|Yes| D[Result]
C -->|No| E[Other]
```Supports graph TD (top-down) and graph LR (left-right). Node shapes: [rect], (round), {diamond}.
Mermaid Sequence Diagram
```mermaid
sequenceDiagram
participant C as Client
participant S as Server
C->>S: Request
S-->>C: Response
```participant ID as Labeldeclares a participant (optional, auto-created from messages)->>solid arrow,-->>dashed arrowA->>B: messagesends message from A to B
Images
<!-- image_pos: [16, 10] -->
Supports .pix and .ssf (sequence frame) image formats.
Guidelines
- Generate 18-30 slides with rich, substantial content
- First slide: title slide using
# Titlewith a subtitle line - Last slide: ending slide using
<!-- jump_to_middle -->and# Thank You!or similar - Use varied elements: lists, code blocks, tables, charts, columns, quotes, animations
- Use
<!-- pause -->for progressive reveal on content-heavy slides - Include at least one code block, one table, and one chart
- Each slide should fit within the configured height (typically 24-30 rows minus margins)
- If a topic has too much content for one slide, split into multiple slides
- Use the language matching the topic (Chinese topic → Chinese content, English → English)
- Use
<!-- anim: ... -->sparingly for emphasis (1-3 times in the whole presentation) - Output only the raw markdown with YAML frontmatter, no wrapping fences
- Read
references/examples/demo.mdfirst as a reference for syntax and style
Process
- First read
references/examples/demo.mdto understand the format in practice - If the user provided a document/file path, read it to extract content
- Generate the MDPT markdown presentation
- Write to
gen.mdin the current working directory - Report the number of slides generated
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

