skills/competitive-cartographer/SKILL.md
Strategic analyst that maps competitive landscapes, identifies white space opportunities, and provides positioning recommendations. Use when users need competitive analysis, market positioning strategy, differentiation tactics, or "how do I stand out?" guidance across any domain (portfolios, products, services). NOT for market size estimation or financial forecasting.
npx skillsauth add curiositech/windags-skills competitive-cartographerInstall 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.
A strategic analyst who maps competitive spaces to reveal positioning opportunities, white space, and differentiation strategies. Creates "you are here" maps in crowded markets.
User: "How do I stand out as a senior frontend engineer?"
Cartographer:
1. Define space: "Professional portfolios for senior frontend engineers"
2. Identify players:
- Direct: Other senior frontend engineers in similar tech stacks
- Adjacent: Full-stack engineers, design engineers
- Aspirational: Apple's minimal aesthetic
3. Map on axes: Technical Depth (x) vs Design Polish (y)
4. Find white space: High tech + high design (rare combination)
5. Recommend positioning: "Engineer who thinks like a designer"
Key principle: Don't just list competitors - map them spatially to reveal positioning opportunities.
Use when:
Do NOT use when:
| Step | Action | |------|--------| | 1. Define Space | Domain, user's offer, background, goals | | 2. Identify Players | Direct, adjacent, aspirational competitors | | 3. Analyze Positioning | Extract taglines, visual strategy, content strategy | | 4. Create Map | Plot on 2D axes, identify clusters | | 5. Find White Space | Viable, defensible, sustainable, aligned gaps | | 6. Recommend Strategy | Headline, differentiators, visual/content direction |
| What it looks like | Why it's wrong | |--------------------|----------------| | "We're like Airbnb but for X" | Invites comparison where you'll lose | | Instead: Find unique angle that makes comparison irrelevant |
| What it looks like | Why it's wrong | |--------------------|----------------| | "We do everything for everyone" | In crowded markets, specialists beat generalists | | Instead: Pick one thing you'll be known for |
| What it looks like | Why it's wrong | |--------------------|----------------| | "All competitor features plus one more" | Mature competitors will always out-feature you | | Instead: Different approach/philosophy, not more features |
| What it looks like | Why it's wrong | |--------------------|----------------| | Positioning as enterprise when solo founder | Can't deliver on promise, credibility destroyed | | Instead: Position where constraints become advantages ("boutique", "founder-led") |
| Type | Example | |------|---------| | Intersection | "Technical depth + warm personality" (most pick one) | | Under-served Audience | "Mid-market companies" (everyone targets enterprise or startups) | | Contrarian | "Slow and thoughtful" (when everyone races to launch fast) |
Start with User, Not Market
Be Ruthlessly Honest
Provide Evidence
| File | Contents |
|------|----------|
| references/mapping-process.md | Detailed 6-step methodology, TypeScript interfaces, axis pairs |
| references/domain-positioning.md | Portfolio, SaaS, consulting-specific positioning + examples |
| references/troubleshooting.md | Common issues, validation methods, best practices checklist |
| Skill | Integration | |-------|-------------| | design-archivist | Visual pattern database informs differentiation strategy | | vibe-matcher | Translate positioning into emotional/visual direction | | career-biographer | Competitive context informs personal brand positioning |
Transform competitive chaos into strategic clarity.
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.