Docsbook
← Back to catalog
analysis

docs-media

Find the bloated images and stale screenshots dragging your docs down. Scans every image, video and diagram referenced from markdown — bad formats, oversized files, missing alt text, screenshots older than the current UI — and returns a fix list per file.

Install & use this skill

Pick your AI client — install this single skill and call it.

1. Install
npx skills add Docsbook-io/docs-skills --skill docs-media -a claude-code
2. Use
/docs-media

Invoke as a slash command in chat.

Or: runtime discovery via Docsbook MCP

Already connected to the Docsbook MCP server? Skip install — ask your agent to load this skill on demand.

@docsbook find_skill "docs-media"

docs-media — Media Analysis

Workflow#

  1. Gather the docs — get the list of pages in scope and read their content. If a semantic/graph search tool over the markdown is available (self-hosted markdown-lsp, or a connected Docsbook workspace), prefer it — faster and cheaper than scanning files; otherwise read the files directly with grep/find. Prioritize Tier 1 pages (quick-start, pricing, auth, install) first.
  2. Check scope — if no image or video references are found in the page content, skip this skill.
  3. Apply checklist — from the page content / graph: detect missing alt text, generic filenames, missing captions. For physical file checks (size, age, dimensions), note that local repo access is required.
  4. Produce report — return one JSON issue object per finding, sorted by severity. Note which checks required local access and were skipped.

Guardrails#

Inputs#

This skill needs two things, by whatever means are available:

Acceleration (optional). Graph/semantic search over the docs makes navigation faster and cheaper than scanning files. You can self-host it with markdown-lsp, or get the same capability in the cloud by connecting a Docsbook workspace. With nothing connected, plain file reads and grep/find work fine.

Checklist#

File Formats#

Content type Recommended format Notes
UI screenshot PNG (or WebP) Sharp text; never JPG for UI
Photo / illustration WebP > JPG Natural images
Short animation GIF or MP4 ≤ 5 seconds
Long video YouTube/Loom embed > 5 seconds — do not commit video files
Architecture diagram Mermaid in markdown Code-first, versions in git
Logo / icon SVG Scalable, no quality loss

File Size (local repo check)#

# Find large media files
find . -type f \( -name '*.png' -o -name '*.jpg' -o -name '*.gif' -o -name '*.mp4' \) -size +500k -exec ls -lh {} \;

Alt Text (detectable from markdown)#

UI Screenshots#

Screenshot Freshness (local repo check)#

Screenshots older than 180 days in an actively developed product are very likely stale:

# Screenshots older than 180 days
find . -name '*.png' -mtime +180 -exec ls -lh {} \;

From the page content / graph: check last_updated of pages containing screenshots (from graph metadata if available) — if a page hasn't been updated in 180+ days and contains screenshots, flag for manual review.

Videos#

Diagrams#

What to Look For#

Severity Problem Detection
critical Informative image with no alt ![]() in markdown
high PNG > 1 MB find by size (local)
high Generic filename — screenshot1.png, image.png Regex on image links in markdown
high Video file committed to repo (> 5 MB) find *.mp4 *.mov (local)
high JPG used for UI screenshot .jpg extension on UI images
high Full browser screenshot (not cropped) Width > 1500px (local exif/identify)
medium GIF > 2 MB find by size (local)
medium Screenshot on a page not updated in 180+ days Page last_updated + image presence
medium Static PNG diagram that could be Mermaid PNG with architecture/flow content
medium Video without caption note No "captions" / "transcript" near embed
low Timestamp in filename Regex \d{4}-\d{2}-\d{2} in filename
low Missing highlight on screenshot No mention of highlight/annotation

Output Format#

{
  "file": "docs/quick-start.md",
  "line": 34,
  "severity": "critical",
  "rule": "image-missing-alt",
  "found": "Line 34: ![](screenshots/setup.png) — informative image with no alt text.",
  "suggestion": "Add descriptive alt: '![Docsbook workspace creation form with GitHub repo URL field](screenshots/setup.png)'"
}
{
  "file": "docs/guides/api-setup.md",
  "line": 67,
  "severity": "high",
  "rule": "generic-filename",
  "found": "Line 67: ![Settings panel](screenshots/screenshot1.png) — filename 'screenshot1.png' is not descriptive and will be impossible to identify when the folder has many screenshots.",
  "suggestion": "Rename to a descriptive kebab-case name: 'screenshots/api-settings-key-field.png'. Update the link in the markdown."
}
{
  "file": "docs/architecture.md",
  "line": 12,
  "severity": "medium",
  "rule": "diagram-could-be-mermaid",
  "found": "Line 12: ![System architecture](architecture.png) — static PNG diagram. Hard to keep updated without design tools.",
  "suggestion": "Convert to Mermaid:\n```mermaid\ngraph LR\n  GitHub --> Docsbook\n  Docsbook --> CDN\n  CDN --> Users\n```\nMermaid renders automatically, versions in git, and updates in a PR without design software."
}

Acceptance Criteria#

View source on GitHub →Browse full catalog repo →
Keywords
mediaimagesscreenshotsvideosdiagramsalt-text