media-image — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited media-image (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generate contextual images for your post and resize them for each platform.
Uses excalidraw-skill for diagrams and illustrations (hand-drawn Excalidraw style). Optionally uses DALL-E for photo-style hero images.
Before starting, read these shared library files:
lib/image-processing.md for resizing commands and platform sizeslib/manifest-ops.md for updating the manifestlib/adapter-discovery.md for platform image size requirementsIf the user specifies a post path, use it. Otherwise, find the most recent post:
ls -dt content/posts/*/ 2>/dev/null | head -1Read source.md to understand the content. Read manifest.yaml for existing state.
echo "=== Image Dependencies ==="
# Check ImageMagick (for resizing)
which convert >/dev/null 2>&1 && echo "[OK] ImageMagick" || echo "[MISSING] ImageMagick — needed for resizing (brew install imagemagick)"
# Check excalidraw-skill (for diagrams)
EXCALIDRAW_SKILL=""
[ -f ".claude/skills/excalidraw-skill/skill/SKILL.md" ] && EXCALIDRAW_SKILL="local"
[ -f "$HOME/.claude/skills/excalidraw-skill/skill/SKILL.md" ] && EXCALIDRAW_SKILL="global"
[ -n "$EXCALIDRAW_SKILL" ] && echo "[OK] excalidraw-skill ($EXCALIDRAW_SKILL)" || echo "[MISSING] excalidraw-skill — install from https://github.com/Minara-AI/excalidraw-skill"
# Check OpenAI API key (optional, for photo-style hero images)
grep -q "^OPENAI_API_KEY=." .env 2>/dev/null && echo "[OK] DALL-E (photo hero images)" || echo "[OPTIONAL] No OPENAI_API_KEY — DALL-E unavailable, using excalidraw only"Analyze source.md and identify where images would add value:
Use AskUserQuestion to present the image plan: "Here are the images I'd generate for this post. Approve or modify?"
For each image, show:
/excalidraw (diagram) or DALL-E (photo-style)Options:
For each diagram/illustration, use the /excalidraw skill:
/excalidraw Draw <description> — output to <post_dir>/assets/<filename>.pngThe excalidraw-skill generates hand-drawn style diagrams with Virgil font, hachure fills, and clean monochrome aesthetics. It's ideal for:
If excalidraw-skill is not installed, tell the user: "excalidraw-skill not found. Install it for diagram generation: bash /path/to/excalidraw-skill/install.sh Or provide your own images in the assets/ directory."
If the user wants a photo-style hero image AND OPENAI_API_KEY is configured:
source .env
URL=$(curl -s https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"dall-e-3\",\"prompt\":\"<prompt>\",\"n\":1,\"size\":\"1792x1024\",\"quality\":\"standard\"}" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['data'][0]['url'])")
curl -s -o "<post_dir>/assets/hero.png" "$URL"If DALL-E is unavailable, use excalidraw for the hero image too, or skip it.
For each configured adapter, read adapter.yaml to get image sizes. Resize using ImageMagick:
# Example for Dev.to cover (1000x420)
convert "<post_dir>/assets/hero.png" \
-resize 1000x420^ -gravity center -extent 1000x420 \
"<post_dir>/assets/hero-devto.png"Generate all platform-specific sizes as listed in lib/image-processing.md.
If ImageMagick is not installed, warn the user and skip resizing. The original images will be used (platforms may crop them differently).
Add generated images to the manifest's assets list:
assets:
- name: hero.png
type: photo
prompt: "<prompt used>"
generator: dall-e-3
generated: <ISO 8601 timestamp>
sizes:
devto: assets/hero-devto.png
hashnode: assets/hero-hashnode.png
github-pages: assets/hero-blog.png
- name: architecture-diagram.png
type: diagram
prompt: "<description>"
generator: excalidraw
generated: <ISO 8601 timestamp>Use the atomic write pattern from lib/manifest-ops.md.
For each variant file in variants/, update image paths to reference the platform-specific resized version. For example, in variants/devto.md, change cover_image to point to hero-devto.png.
Images generated for "<title>":
[OK] hero.png — cover image via DALL-E (1792x1024)
→ hero-devto.png (1000x420)
→ hero-hashnode.png (1600x840)
→ hero-blog.png (1200x630)
[OK] architecture-diagram.png — via excalidraw-skill
[OK] workflow.png — via excalidraw-skill
Manifest updated. Next: run /media-publish to publish.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.