| name | create-theme-cover |
| description | Generate a NotebookLM infographic cover image for a theme that already has a concept doc. Uploads the concept doc as a source, generates an editorial infographic, downloads it to the theme's docs/ folder, and adds it to the README. |
What this skill does
Generate a cover infographic for a theme using NotebookLM's infographic generation. The concept doc is uploaded as a source, an editorial-style landscape infographic is generated from it, and the result is downloaded as cover.png into the theme's docs/ folder.
Output file: <theme-name>/docs/cover.png
Inputs
The user provides:
- Theme name (kebab-case, e.g.
moss-terminal)
- The theme must already have a concept doc at
<theme-name>/docs/<theme-name>-concept.md
If the user says "all themes" or "every theme", generate covers for all themes that have concept docs but are missing docs/cover.png.
Prerequisites
- NotebookLM MCP tools must be available (tools starting with
mcp_notebooklm-mcp_*)
- Authentication must be active — if calls fail with auth errors, run
nlm login via Bash first, then call mcp_notebooklm-mcp_refresh_auth()
Step-by-step procedure
1. Find concept docs
For a single theme:
<theme-name>/docs/<theme-name>-concept.md
For all themes:
glob: */docs/*-concept.md
glob: */docs/cover.png
Only process themes that have a concept doc but no cover.png.
2. Create or reuse a NotebookLM notebook
Capture the notebook_id from the response.
3. Upload concept docs as sources
For each theme, upload its concept doc as a file source:
mcp_notebooklm-mcp_source_add(
notebook_id=<notebook_id>,
source_type="file",
file_path="/Users/wk/Source/deep-focus-themes/<theme-name>/docs/<theme-name>-concept.md",
wait=True
)
Capture each source_id and map it to its theme name.
Rate limiting: Upload sources in batches of 4 to avoid overwhelming NotebookLM.
4. Generate infographics
For each theme, create an infographic using only that theme's source:
mcp_notebooklm-mcp_studio_create(
notebook_id=<notebook_id>,
artifact_type="infographic",
source_ids=[<source_id>],
orientation="landscape",
detail_level="detailed",
infographic_style="editorial",
focus_prompt="Create a visual cover for the <Theme Name> color theme. Show its palette colors, theme name, and key design principles based on the concept document.",
confirm=True
)
Capture each artifact_id and map it to its theme name.
Infographic settings:
| Parameter | Value | Rationale |
|---|
orientation | landscape | Matches README width |
detail_level | detailed | Shows full palette and principles |
infographic_style | editorial | Clean, professional look |
Rate limiting: NotebookLM can handle ~15 concurrent infographic generations. If generating more than 15, wait for the first batch to complete before starting more. Check status with mcp_notebooklm-mcp_studio_status.
5. Wait for generation to complete
Poll the studio status until all infographics are completed:
mcp_notebooklm-mcp_studio_status(notebook_id=<notebook_id>)
Check summary.completed vs summary.total. If any are still in_progress, wait 30 seconds and poll again. Generation typically takes 1-3 minutes per infographic.
6. Download infographics
For each completed infographic, download it to the theme's docs folder:
mcp_notebooklm-mcp_download_artifact(
notebook_id=<notebook_id>,
artifact_type="infographic",
artifact_id=<artifact_id>,
output_path="/Users/wk/Source/deep-focus-themes/<theme-name>/docs/cover.png"
)
Download in parallel batches of 4 for efficiency.
7. Add cover reference to README.md
For each theme that received a new cover, add  to its docs/README.md, immediately after the H1 title line and blank line, before the description paragraph:
Before:
# Theme Name
A dark coding color scheme ...
After:
# Theme Name

A dark coding color scheme ...
Only add the reference if  is not already present in the file.
Error handling
Infographic creation rejected
NotebookLM may reject infographic creation due to rate limiting (typically after ~15 concurrent generations on one notebook). If this happens:
- Wait 60 seconds and retry
- If still rejected after 3 retries, skip the theme and note it for the user
- The user can generate it later from the NotebookLM UI or by running this skill again for just that theme
Source upload failures
If a source upload fails, retry once. If it fails again, skip that theme and notify the user.
Mapping artifact to theme
NotebookLM does not preserve theme names in artifact titles — it auto-generates titles like "Moss Terminal Coding Palette Overview". To correctly download each infographic to the right theme folder, you must maintain a mapping of:
theme_name → source_id → artifact_id
The mapping is built during steps 3 and 4. Use the creation order or the source_ids parameter in studio_create to correlate artifacts back to themes.
When checking studio_status, artifacts are listed in reverse chronological order. Match each artifact to its theme using the artifact_id captured during creation.
After generation
-
Show the user a summary table:
| Theme | Status | File |
|---|
| moss-terminal | Done | moss-terminal/docs/cover.png |
| stargazer | Done | stargazer/docs/cover.png |
| twilight-overclock | Failed (rate limit) | — |
-
If any themes failed, remind the user they can retry later:
- Run this skill again for just the failed themes
- Or generate manually from the NotebookLM UI at the notebook URL
-
Remind the user to commit the new files if they haven't already.