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.
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.