skills/win31-pixel-art-designer/SKILL.md
Expert in Windows 3.1 era pixel art and graphics. Creates icons, banners, splash screens, and UI assets with authentic 16/256-color palettes, dithering patterns, and Program Manager styling. Activate on 'win31 icons', 'pixel art 90s', 'retro icons', '16-color', 'dithering', 'program manager icons', 'VGA palette'. NOT for modern flat icons, vaporwave art, or high-res illustrations.
npx skillsauth add curiositech/windags-skills win31-pixel-art-designerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert in creating authentic Windows 3.1 era pixel art with proper color constraints and dithering techniques.
Is the artwork >32x32 and NOT an icon? ├─ YES → Use 256-color palette │ ├─ Splash screen/About dialog → Navy gradients + 216-color cube │ └─ Banner/header → System gray base + logo accent area └─ NO → Use 16-color VGA palette ├─ Icon (32x32 or 16x16) → Standard 16-color set ├─ Cursor → Black/white only └─ UI element → Match Windows chrome colors
Does the design need gradients or intermediate tones? ├─ YES → Apply dithering │ ├─ Smooth gradient needed → Floyd-Steinberg ordered dither │ ├─ Shadow/highlight → 50% checkerboard pattern │ └─ Texture effect → Diagonal or horizontal line patterns └─ NO → Use flat colors ├─ Simple icon shapes → Pure VGA colors ├─ Text areas → Solid system gray (#C0C0C0) └─ High contrast elements → Black/white/primary colors
Starting from scratch or converting existing art? ├─ FROM SCRATCH → AI generation first │ ├─ Simple icon → Direct Ideogram with VGA palette prompt │ ├─ Complex scene → Stability AI then post-process │ └─ Logo/text heavy → Manual pixel art preferred └─ CONVERTING EXISTING → Post-processing pipeline ├─ High-res source → Scale down first, then reduce colors ├─ Modern gradient → Replace with dithering patterns └─ Anti-aliased edges → Posterize then sharpen
Does it pass the authenticity test? ├─ Colors wrong → More than 16 colors used for icons? │ ├─ YES → Run ImageMagick color reduction │ └─ NO → Check if using exact VGA hex values ├─ Edges wrong → Smooth/blurred edges visible? │ ├─ YES → Apply nearest-neighbor scaling and sharpen │ └─ NO → Check for proper 1px black outlines └─ Style wrong → Looks modern or vaporwave? ├─ YES → Restart with stricter period-accurate prompts └─ NO → Final validation against reference icons
Symptom: Smooth color transitions, multiple similar shades, CSS-style gradients Detection Rule: If you see >4 similar color values or smooth transitions, you've hit this Fix: Replace gradients with 2-color dithering patterns. Use checkerboard for 50% blend, sparse dots for 25%, dense for 75%
Symptom: Soft edges on diagonal lines, blended pixels at shape boundaries
Detection Rule: If diagonal edges look smooth instead of stair-stepped, you've hit this
Fix: Apply convert -filter point scaling and -colors 16 -dither FloydSteinberg to restore hard pixel edges
Symptom: Colors that are "close" to VGA but not exact (e.g., #7F7F7F instead of #808080)
Detection Rule: If color picker shows hex values not in the standard VGA set, you've hit this
Fix: Create VGA palette reference image and use convert input.png -remap vga-palette.png output.png
Symptom: 64x64+ artwork passed off as Win31-era, or tiny details that disappear at native size Detection Rule: If design elements don't work at 32x32 viewing size, you've hit this Fix: Design at target size first. For icons, work at 32x32 or 16x16, never scale down from larger
Symptom: Complex drop shadows, multiple shadow layers, blurred shadow effects Detection Rule: If shadows use more than 2 colors or have any blur, you've hit this Fix: Use single-pixel offset shadows in #808080 (dark gray) only. Max 1-2px offset
Input: Modern calendar app icon (128x128, full color, drop shadows) Goal: Authentic Win31 calendar icon (32x32, 16-color)
Step 1 - Color Analysis
Original colors: 47 unique colors including gradients
VGA mapping needed: Calendar → Red/White, Frame → Gray tones
Decision: Use #FF0000 (Red), #FFFFFF (White), #C0C0C0 (Light Gray), #808080 (Dark Gray), #000000 (Black)
Step 2 - Shape Simplification
128x128 details: Month grid visible, subtle date numbers, rounded corners
32x32 constraints: Grid becomes 3x3 suggestion, single large "15" date, sharp corners
Expert insight: Novice keeps too much detail; expert focuses on recognizable calendar shape
Step 3 - Dithering Application
Original shadow: Soft 8px blur with alpha transparency
Win31 shadow: 1px offset in #808080, checkerboard dither for depth
Expert decision: Use diagonal dither pattern to suggest paper texture
Step 4 - Final Construction
Background: #C0C0C0 (system gray)
Calendar frame: Black outline + white highlight top-left
Date area: White with red "15"
Shadow: #808080 offset 1px right, 1px down
Result: Instantly recognizable as Win31-era while maintaining calendar concept
Input: Company rebrand package (modern logo, Pantone colors, sans-serif fonts) Goal: Win31 program splash screen (400x300, 256-color)
Step 1 - Palette Strategy Decision
Brand colors: Pantone 286 (bright blue), Pantone 377 (bright green)
VGA mapping: #0000FF (closest to 286), #00FF00 (closest to 377)
Decision: Use 16-color base + dithered logo area for brand recognition
Step 2 - Layout Composition
Modern layout: Centered logo, lots of whitespace, minimal text
Win31 adaptation: Beveled frame border, navy title bar, structured text blocks
Expert insight: Win31 users expect information density, not minimalism
Step 3 - Typography Handling
Brand font: Custom sans-serif, thin weights
Win31 constraints: System fonts only, bold weights for readability
Solution: Use bold system font, add company name in structured box layout
Step 4 - Logo Conversion Process
Original: Vector logo with gradients and 24-bit colors
Conversion: Rasterize to 64x64, reduce to 256-color, apply Floyd-Steinberg dither
Expert insight: Logo fidelity in center, strict 16-color for chrome/borders
Final: Recognizable brand mark that feels authentically 1993
Do NOT use this skill for:
Delegate when:
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.