9.7 KiB
name, description, emoji, allowed-tools
| name | description | emoji | allowed-tools | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| playme | Create a visual, attention-grabbing Marp slideshow (PLAYME.md + PLAYME.html) summarising a repository. Use when the user asks to generate a presentation, slideshow, or visual summary of a repo. Triggered by /playme or phrases like "create a presentation", "visualise this repo", "generate slides". | 🎬 |
|
PlayMe — Repository Visual Summary Generator
Generate a stunning dark-themed Marp slideshow that summarises a repository at a high level.
Modes
The skill has three modes. Determine the mode from the user's argument or automatically:
| Invocation | Mode | Behaviour |
|---|---|---|
/playme |
Smart | If .playme/PLAYME.md exists → Update. Otherwise → Create. |
/playme render |
Render | Re-inject theme.css into PLAYME.md's style block and re-render HTML only. No content changes. |
Output Files
.playme/PLAYME.md— Marp markdown source (human-editable, git-friendly).playme/theme.css— Theme file (copied from default if not already present).playme/README.md— Explains the folder to anyone browsing into itPLAYME.html— Rendered self-contained HTML slideshow (in repo root for easy discovery)
Do NOT generate PNG previews — only produce the files listed above.
Mode: Create
Use when .playme/PLAYME.md does not exist. Generates the full presentation from scratch.
Phase 1: Gather Context
Read everything you can to build a thorough understanding of the repo. Do these in parallel where possible:
IMPORTANT: Skip the
.playme/directory entirely during scanning — it contains PlayMe's own output and should never be treated as repo content.
-
README.md — the primary source. Extract:
- Project name and description
- Key features / capabilities
- Architecture or design decisions
- Getting started / setup steps
- Any diagrams or images referenced
-
Linked markdown files — follow any links from README.md to other
.mdfiles in the repo. Read them for additional context on specific areas. -
Other root markdown files — scan for
CONTRIBUTING.md,CHANGELOG.md,ARCHITECTURE.md,docs/folder contents, etc. -
Images — find all
.png,.jpg,.svg,.giffiles. Read image files (especially diagrams, architecture charts, screenshots) to understand what they depict. Note their relative paths for embedding. -
Code structure — run a quick scan:
lsthe root directory- Check for
package.json,Cargo.toml,go.mod,pyproject.toml,Makefile,docker-compose.yml, etc. - Get a feel for the tech stack, languages used, project layout
- Do NOT read every source file — just enough to understand the structure
-
Git context (optional, quick):
git log --oneline -20for recent activity flavourgit remote -vfor repo URL
Phase 2: Plan the Slides
Design a slide deck of roughly 8–15 slides. Typical structure:
| # | Slide | Class | Content |
|---|---|---|---|
| 1 | Title | title-slide |
Project name, tagline, one-line description |
| 2 | What Is This? | — | 3–5 bullet summary of what the project does |
| 3 | Architecture | — | High-level architecture (bullets or embedded diagram) |
| 4–N | Key Areas | — | One slide per major area/feature (3–5 bullets each) |
| N+1 | Tech Stack | — | Languages, frameworks, infrastructure |
| N+2 | Diagrams | showcase |
Any architecture/flow diagrams found as images |
| Last | Get Started | end-slide |
Where to go next, link to full docs |
Guidelines:
- Each slide should have 3–6 bullet points max — this is a summary, not a document
- Use
**bold**for key terms in list items (renders in accent colour) - Use
>blockquotes for important callouts or stats - Embed images using
where they add value - Use
<!-- _class: divider -->for section breaks between major topic areas - Keep language concise and engaging — imagine presenting to someone who has 5 minutes
Phase 3: Generate .playme/PLAYME.md
First, create the .playme/ directory:
mkdir -p .playme
Build the Marp markdown file at .playme/PLAYME.md with this structure:
---
marp: true
theme: uncover
class: invert
paginate: true
style: |
/* Contents of theme.css pasted here */
---
<!-- _class: title-slide -->
<!-- topic: title -->
# Project Name
### Tagline or short description
*Auto-generated repository summary*
---
<!-- topic: overview -->
## What Is This?
- **Key point** — explanation
- **Another point** — details
---
<!-- _class: end-slide -->
<!-- topic: closing -->
# Explore the Repository
Full documentation available in README.md
IMPORTANT RULES:
- The CSS must be inlined in the
style:frontmatter block (Marp doesn't support external CSS files without custom theme registration). Read the theme from.playme/theme.cssin the target repo, or from the default at/home/steve/agent-bobby/.claude/skills/playme/default-theme.css, and paste it into thestyle:block. - Every slide must have a
<!-- topic: short-name -->comment as the first line after the---separator. This is used by Update mode to identify what each slide covers. Use lowercase, hyphenated names (e.g.architecture,key-features,tech-stack,api-surface).
Phase 4: Create README, Copy Theme & Render
-
Create README — write
.playme/README.mdexplaining the folder:# .playme This folder contains the source files for the **PlayMe** visual presentation — an auto-generated slideshow summarising this repository. ## Files | File | Purpose | |------|---------| | `PLAYME.md` | Marp markdown source — edit this to change slide content | | `theme.css` | CSS theme — edit this to change colours, fonts, and styling | | `README.md` | This file | ## Rendering The rendered slideshow lives at `PLAYME.html` in the repository root. To regenerate after changes:marp .playme/PLAYME.md -o PLAYME.html --html --allow-local-files
Or run `/playme render` in Claude Code. ## Regenerating from scratch Delete `.playme/PLAYME.md` and run `/playme` to regenerate the entire presentation. -
Copy theme — if
.playme/theme.cssdoesn't exist in the target repo, copy the default:cp /home/steve/agent-bobby/.claude/skills/playme/default-theme.css ./.playme/theme.css -
Render HTML — produce a self-contained HTML file in the repo root:
marp .playme/PLAYME.md -o PLAYME.html --html --allow-local-files -
Verify — check the HTML file was created and report its size.
Phase 5: Report Back
Tell the user:
- How many slides were generated
- What areas/topics are covered
- That
.playme/PLAYME.mdcan be edited and/playme renderused to re-render - That
.playme/theme.csscan be tweaked for styling, then/playme renderto apply
Mode: Update
Use when .playme/PLAYME.md already exists. Preserves all existing slides and adds new ones for any repo content not yet covered.
Step 1: Read Existing Slides
Read .playme/PLAYME.md and extract the <!-- topic: ... --> comments from every slide. Build a list of topics already covered.
Step 2: Scan the Repo
Perform the same repo scan as Create mode (Phase 1) — read README, linked docs, images, code structure. Skip .playme/.
Step 3: Identify Gaps
Compare the repo content against the existing topic list. Look for:
- New sections in README.md not represented by any slide
- New markdown files or docs that have appeared since the last run
- New images/diagrams worth showcasing
- Significant new code areas (new packages, services, tools)
Step 4: Insert New Slides
For each new topic found:
- Create a new slide with the appropriate
<!-- topic: name -->comment - Insert it before the closing
<!-- topic: closing -->slide - Follow the same style guidelines as Create mode (3–6 bullets, bold key terms, etc.)
Do NOT modify existing slides. Leave their content exactly as-is.
Step 5: Re-inject Theme & Render
- Read
.playme/theme.css - Replace the
style:block in PLAYME.md's frontmatter with the current theme CSS - Render:
marp .playme/PLAYME.md -o PLAYME.html --html --allow-local-files
Step 6: Report Back
Tell the user:
- How many new slides were added (and their topics)
- If no new content was found, say so
- Total slide count
Mode: Render
The simplest mode — no content changes at all.
Steps
- Read
.playme/theme.css - Replace the
style:block in.playme/PLAYME.md's frontmatter with the current theme CSS content - Render:
marp .playme/PLAYME.md -o PLAYME.html --html --allow-local-files - Report success and file size
Theme Customisation Notes
The theme CSS uses these key variables that users will most likely want to tweak:
--color-bg: #0b0d17; /* Main background */
--color-accent: #6c63ff; /* Purple accent (headings, borders) */
--color-accent2: #00d4aa; /* Teal accent (bold text, highlights) */
--color-text: #e8eaf6; /* Body text */
--color-muted: #8892b0; /* Subtitle / faded text */
Slide Classes Reference
Use these with <!-- _class: classname --> on individual slides:
title-slide— centred title with glowing radial backgroundend-slide— closing slide with gradient titledivider— section break, centred headingshowcase— image-focused slide with centred layout
Dependencies
marpCLI (@marp-team/marp-cli) — install withnpm install -g @marp-team/marp-cli- Google Chrome or Chromium (for HTML/PNG rendering)
If marp is not available, install it:
npm install -g @marp-team/marp-cli