skills/collage-layout-expert/SKILL.md
Expert in ALL computational collage composition: photo mosaics, grid layouts, scrapbook/journal styles, magazine editorial, vision boards, mood boards, social media collages, memory walls, abstract/generative arrangements, and art-historical techniques (Hockney joiners, Dadaist photomontage, Surrealist assemblage, Rauschenberg combines). Masters edge-based assembly, Poisson blending, optimal transport color harmonization, and aesthetic optimization. Activate on 'collage', 'photo mosaic', 'grid layout', 'scrapbook', 'vision board', 'mood board', 'photo wall', 'magazine layout', 'Hockney', 'joiner', 'photomontage'. NOT for simple image editing (use native-app-designer), generating new images (use Stability AI), single photo enhancement (use photo-composition-critic), or basic image similarity search (use clip-aware-embeddings).
npx skillsauth add curiositech/windags-skills collage-layout-expertInstall 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 ALL forms of computational collage composition - from Instagram grids to Hockney joiners, from magazine layouts to generative art.
✅ Use for:
❌ Do NOT use for:
| Topic | Novice | Expert | |-------|--------|--------| | Layout | "Just arrange randomly" | Visual weight, balance, golden ratio | | Blending | Hard edges or simple feather | Poisson blending preserves gradients | | Color | "Match colors manually" | Optimal transport; LAB space advantages | | Composition | Fills all space | Negative space as design element | | Scale | Same size for everything | Varies scale for hierarchy | | Mosaic | "More tiles = better" | Tile size vs. recognition tradeoff | | Hockney | "Stitch seamlessly" | Imperfection IS the technique |
What's the purpose?
What's the vibe?
| Algorithm | Use Case | Performance | |-----------|----------|-------------| | Edge-Based Assembly | Hockney joiners | 0.5s for 10 photos | | Poisson Blending | Seamless transitions | 20ms (512×512) | | Optimal Transport | Color harmonization | Real-time w/ affine approx | | Force-Directed | Organic scatter | 200ms (50 images) | | K-d Tree Matching | Photo mosaic tiles | 2s for 10k tiles |
→ See references/algorithms.md for full implementations.
What it looks like: All images same size, random placement Why it's wrong: No focal point, viewer's eye wanders aimlessly Fix: Establish 60/30/10 hierarchy with one hero image
What it looks like: Every pixel filled with image content Why it's wrong: Visual claustrophobia, no breathing room Fix: Use negative space intentionally (20-30% white space minimum)
What it looks like: Poor perceptual color matches Why it's wrong: RGB is not perceptually uniform Fix: Use LAB color space for matching
What it looks like: Perfectly stitched panorama Why it's wrong: Misses the entire point - multiple perspectives Fix: Embrace ±2° rotation variance, 5-15% overlap, intentional gaps
What it looks like: Entire image becomes washed out Why it's wrong: Destroys local contrast, looks fake Fix: Apply locally at seams only, preserve source gradients
What it looks like: Obvious repetition patterns in mosaic Why it's wrong: Human eye detects patterns immediately Fix: Track tile usage, penalize reuse, use larger tile library
| MCP | Purpose | |-----|---------| | Stability AI | Generate backgrounds, textures, missing elements | | Firecrawl | Research techniques, algorithm papers, art history | | WebFetch | Fetch documentation, tutorials, design references |
| Operation | Mac M2 | iPhone 15 Pro | |-----------|--------|---------------| | Grid layout (20 photos) | <50ms | <100ms | | Photo mosaic (10k tiles) | 2s | 5s | | Force-directed (50 images) | 200ms | 500ms | | Poisson blending (512×512) | 20ms | 50ms | | Hockney assembly (10 photos) | 0.5s | 2s |
→ references/collage-types.md - Grid, mosaic, scrapbook, magazine, social templates
→ references/art-historical-styles.md - Hockney, Dadaist, Surrealist, Rauschenberg
→ references/algorithms.md - Edge assembly, Poisson, optimal transport, force-directed
→ references/advanced-techniques.md - Cross-photo interactions, narrative sequences
→ references/implementation-guide.md - Metal shaders, Core ML, performance
Remember: Great collages tell stories through arrangement. Whether grid-precise or Hockney-chaotic, the layout serves the narrative. Master both the math and the art.
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.