From image-production
Use when the user wants to shrink PNG files in a batch — losslessly with `oxipng` (typical 20–40% reduction, byte-identical decode) or aggressively with `pngquant` (lossy palette quantisation, 60–80% reduction with near-imperceptible quality loss for web use). Web-prep workhorse.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin image-productionThis skill uses the workspace's default tool permissions.
Squeeze PNG file size. Two modes:
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Squeeze PNG file size. Two modes:
oxipng. Byte-identical decode. Always safe.pngquant. Palette-quantised; visible artefacts only on smooth gradients. Right call for web/UI assets.web-ready orchestrator.Do not use this skill when:
optimize-jpeg.web-ready end-to-end first.lossless mode.lossless (default) or lossy.--recursive for directory descent.--output-dir <path> to write copies.oxipng -o <0..6>. Default 4. 6 is ~20% slower for ~1–2% extra compression.pngquant --quality min-max. Default 65-80 (web-good). Increase floor for sensitive material.--strip removes EXIF/iTXt/zTXt/tIME chunks (oxipng --strip safe). Use when web-prep doesn't need camera info.Verify the relevant binary exists. which oxipng for lossless; which pngquant for lossy. If missing, point at install-deps.
Enumerate inputs (PNG only — skip non-PNG with a one-line note).
Lossless (oxipng):
oxipng -o <level> [--strip safe] [--out <out-dir>] "<input>"
In-place is the default; pass --out only if --output-dir was set. oxipng is multithreaded by default — no need to xargs-parallelise.
Lossy (pngquant):
pngquant --quality <min>-<max> --skip-if-larger --strip --output "<output>" "<input>"
--skip-if-larger is critical — pngquant occasionally produces a larger file on already-quantised inputs; this prevents inflation.
--strip removes optional chunks (default off in pngquant — explicitly enable for web-prep).
Track total before/after sizes; report the savings.
<orig-MB> → <new-MB> (<pct>% saved).oxipng lossless on a typical screenshot: 20–40% reduction. On already-optimised PNGs (e.g. via Photoshop "Save for Web"): often 1–5%.pngquant is irreversible. Keep originals if there's any chance the file will need further editing.pngquant → oxipng) gets a few extra % off — the orchestrator (web-ready) does this automatically; this skill keeps it as separate modes for explicit control.