MARP Slides
Startup
- Read
references/learnings.md — summarize the 3 most relevant bullets for this task
- Detect mode from the request (see Mode Selector)
Mode Selector
| Request signals |
Mode |
| "create", "build", "make slides", "new deck", "presentation" |
A: Create |
| "edit", "update", "change slide N", "revise", "fix" |
B: Edit |
| "theme only", "CSS only", "just the styles", "color palette" |
C: Theme |
| "convert from", "turn this into slides", "import", "use this outline" |
D: Convert |
| "summarize this deck", "what does this cover", "read this marp" |
E: Read |
Mode A: Create
A1. Intake (ask all at once in a single message)
Present these 4 questions before generating anything:
- Topic + purpose — what is the deck about, and who is the audience?
- Slide count — how many slides? (if unsure, apply word-count heuristic from
references/quality-rules.md)
- Theme — dark (default) or light? Describe a vibe or brand if relevant.
- Brand context — use existing brand colors/logo? (if yes, read your brand guidelines file)
Wait for reply before continuing.
Why: Generating before intent is locked is the #1 source of wasted cycles in deck authoring. The 4-question intake costs one round-trip and saves 3–5 regeneration loops.
A2. Theme + outline
- Select theme using signal-to-theme mapping table in
references/themes.md
- Draft a slide-by-slide outline: slide title, one key idea, layout type, visual element planned
- Present 3 layout direction options (e.g. minimal / data-heavy / editorial) — not full decks, just 3-slide skeleton previews as markdown
- Wait for user to approve direction or request changes before generating the full deck
A3. Generate
- Read
references/components.md for SVG chart and component patterns
- Read
references/layout-patterns.md for rotation rules and composition guidelines
- Read 2–3 examples from
examples/ that most closely match the approved style
- Generate the full
.md MARP file
Hard rules during generation (enforce silently — do not annotate violations):
- Use
- for list items, never * (asterisks trigger animation mode in Marp live preview)
- Rotate layout type every 2–3 slides — same template 3x in a row = quality failure
- Titles ≤35 characters; bullets ≤6 per slide; one key idea per slide
- Put context and detail in speaker notes (
<!-- note: ... -->), not on slides
- Never add decorative accent lines directly under slide titles (telltale AI pattern)
- SVG backgrounds: always
contain, never cover (cover crops charts at edges)
A4. QA self-review
- Load
references/quality-rules.md — run SlideGauge checklist against the generated deck
- Fix any slide that fails silently
- Report only if a slide required significant structural redesign
A5. Output + export
- Save to
presentations/[slug].md (or user-specified path)
- Verify
.marprc.yml exists at the project root — create from template in references/cli-guide.md if missing
- Show the relevant export commands from
references/cli-guide.md
Mode B: Edit
- Read the existing
.md file — parse slide boundaries (---)
- Identify the target slide(s) from the request
- Apply edits; re-check modified slides against
references/quality-rules.md
- Confirm layout rotation rule is not broken across surrounding slides
Mode C: Theme
- Ask: brand colors? target mood? dark or light base?
- Build CSS using 60-30-10 color rule and WCAG AA contrast — see
references/themes.md
- Present 3 palette directions before committing
- Save theme CSS with
/* @theme name */ header comment (required for CLI recognition)
Mode D: Convert
- Parse input format (plain text, outline, bullet list, document)
- Determine slide boundaries by topic/section shift, not by line breaks
- Generate MARP
.md applying Mode A generation rules
- Run A4 QA self-review
Mode E: Read
- Load the
.md file
- Parse slides, speaker notes, and frontmatter
- Return: slide count, theme used, key idea per slide, layout types, SlideGauge quality flags
Closing Feedback Gate
After final output, ask once: "Did this produce what you needed? Any corrections or preferences I should remember?"
Route the response:
| User says |
Destination |
| Behavioral ("don't do X", "I prefer Y") |
Append to references/learnings.md |
| Factual exception ("the flag is actually Z") |
Append to references/edge-cases.md |
| "Never do X again" |
Add rule to this SKILL.md |
| Explicit approval / "this was perfect" |
Save output to examples/approved/ |
| No response / "looks good" |
Do nothing |
1---2name: marp-slides3description: Creates MARP presentation decks (.md files rendered to PDF/HTML/PPTX via marp CLI) with custom CSS themes, SVG inline charts, dashboard components, and speaker notes. Use when asked to create slides, build a deck, make a presentation, generate MARP output, design a theme, edit existing slides, or convert content into a slide format. Also handles read/summarize requests on existing MARP files. Do NOT use for standalone image generation, static infographics, or PowerPoint requests with no MARP involvement.4---56# MARP Slides78## Startup91. Read `references/learnings.md` — summarize the 3 most relevant bullets for this task102. Detect mode from the request (see Mode Selector)1112## Mode Selector1314| Request signals | Mode |15|---|---|16| "create", "build", "make slides", "new deck", "presentation" | **A: Create** |17| "edit", "update", "change slide N", "revise", "fix" | **B: Edit** |18| "theme only", "CSS only", "just the styles", "color palette" | **C: Theme** |19| "convert from", "turn this into slides", "import", "use this outline" | **D: Convert** |20| "summarize this deck", "what does this cover", "read this marp" | **E: Read** |2122---2324## Mode A: Create2526### A1. Intake (ask all at once in a single message)27Present these 4 questions before generating anything:281. **Topic + purpose** — what is the deck about, and who is the audience?292. **Slide count** — how many slides? (if unsure, apply word-count heuristic from `references/quality-rules.md`)303. **Theme** — dark (default) or light? Describe a vibe or brand if relevant.314. **Brand context** — use existing brand colors/logo? (if yes, read your brand guidelines file)3233Wait for reply before continuing.3435**Why:** Generating before intent is locked is the #1 source of wasted cycles in deck authoring. The 4-question intake costs one round-trip and saves 3–5 regeneration loops.3637### A2. Theme + outline381. Select theme using signal-to-theme mapping table in `references/themes.md`392. Draft a slide-by-slide outline: slide title, one key idea, layout type, visual element planned403. Present **3 layout direction options** (e.g. minimal / data-heavy / editorial) — not full decks, just 3-slide skeleton previews as markdown414. Wait for user to approve direction or request changes before generating the full deck4243### A3. Generate441. Read `references/components.md` for SVG chart and component patterns452. Read `references/layout-patterns.md` for rotation rules and composition guidelines463. Read 2–3 examples from `examples/` that most closely match the approved style474. Generate the full `.md` MARP file4849**Hard rules during generation (enforce silently — do not annotate violations):**50- Use `-` for list items, never `*` (asterisks trigger animation mode in Marp live preview)51- Rotate layout type every 2–3 slides — same template 3x in a row = quality failure52- Titles ≤35 characters; bullets ≤6 per slide; one key idea per slide53- Put context and detail in speaker notes (`<!-- note: ... -->`), not on slides54- Never add decorative accent lines directly under slide titles (telltale AI pattern)55- SVG backgrounds: always `contain`, never `cover` (cover crops charts at edges)5657### A4. QA self-review581. Load `references/quality-rules.md` — run SlideGauge checklist against the generated deck592. Fix any slide that fails silently603. Report only if a slide required significant structural redesign6162### A5. Output + export631. Save to `presentations/[slug].md` (or user-specified path)642. Verify `.marprc.yml` exists at the project root — create from template in `references/cli-guide.md` if missing653. Show the relevant export commands from `references/cli-guide.md`6667---6869## Mode B: Edit70711. Read the existing `.md` file — parse slide boundaries (`---`)722. Identify the target slide(s) from the request733. Apply edits; re-check modified slides against `references/quality-rules.md`744. Confirm layout rotation rule is not broken across surrounding slides7576---7778## Mode C: Theme79801. Ask: brand colors? target mood? dark or light base?812. Build CSS using 60-30-10 color rule and WCAG AA contrast — see `references/themes.md`823. Present **3 palette directions** before committing834. Save theme CSS with `/* @theme name */` header comment (required for CLI recognition)8485---8687## Mode D: Convert88891. Parse input format (plain text, outline, bullet list, document)902. Determine slide boundaries by topic/section shift, not by line breaks913. Generate MARP `.md` applying Mode A generation rules924. Run A4 QA self-review9394---9596## Mode E: Read97981. Load the `.md` file992. Parse slides, speaker notes, and frontmatter1003. Return: slide count, theme used, key idea per slide, layout types, SlideGauge quality flags101102---103104## Closing Feedback Gate105106After final output, ask once: "Did this produce what you needed? Any corrections or preferences I should remember?"107108Route the response:109| User says | Destination |110|---|---|111| Behavioral ("don't do X", "I prefer Y") | Append to `references/learnings.md` |112| Factual exception ("the flag is actually Z") | Append to `references/edge-cases.md` |113| "Never do X again" | Add rule to this SKILL.md |114| Explicit approval / "this was perfect" | Save output to `examples/approved/` |115| No response / "looks good" | Do nothing |116117---118<!-- Built with Agent Engineer Master — get your own production-ready skill: www.agentengineermaster.com/skill-engineer -->