Competitive Narrative Mapper

/digital-marketing-pro:narrative-landscape

by indranilbanerjee · MIT license · ★ 866 on GitHub

/digital-marketing-pro:narrative-landscape cover

Map the competitive narrative landscape and score unclaimed positioning gaps.

---
name: narrative-landscape
description: "Map the competitive narrative landscape and score unclaimed positioning gaps. \"find us a differentiated position\""
---

# /digital-marketing-pro:narrative-landscape

> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).

## Purpose

Map the competitive narrative landscape to identify positioning opportunities the brand can own. Analyze how each competitor positions itself across key market dimensions — price-value, innovation-reliability, specialist-generalist, premium-accessible, or custom dimensions relevant to the industry. Find crowded territories where multiple competitors cluster, unoccupied gaps where no brand has staked a claim, and recommend the highest-value positioning territory for the brand to claim based on customer desirability and brand credibility.

## Input Required

The user must provide (or will be prompted for):

- **Competitors to map**: List of competitor names to include in the landscape analysis — typically 4-8 direct competitors plus any adjacent or aspirational competitors. Each will be analyzed for positioning on every defined dimension

Overview

Map the competitive narrative landscape to identify positioning opportunities the brand can own. Analyze how each competitor positions itself across key market dimensions — price-value, innovation-reliability, specialist-generalist, premium-accessible, or custom dimensions relevant to the industry. Find crowded territories where multiple competitors cluster, unoccupied gaps where no brand has staked a claim, and recommend the highest-value positioning territory for the brand to claim based on customer desirability and brand credibility.

What you get

  • Narrative landscape mapCompetitor positions plotted on each dimension pair — showing where each competitor sits on every axis, with clear visualization of clusters, contested zones, and open territories
  • Cluster analysisIdentification of crowded positioning territories where multiple competitors overlap — which positions are contested, how intensely, and what it means for brands trying to differentiate in those areas
  • Gap analysis with opportunity scoresEvery unoccupied or underserved positioning territory identified, scored by customer desirability multiplied by brand credibility, ranked from highest to lowest opportunity value
  • Recommended positioning territoryThe single highest-value gap the brand should claim — with evidence-based justification covering customer demand, brand credibility, competitive dynamics, and defensibility against future competitor moves
  • Positioning strategy with messaging guidanceKey messages, proof points, supporting themes, and language patterns that establish the brand in the recommended territory — calibrated to brand voice from context
  • Content plan to claim the territorySpecific content types, channels, and cadence to systematically reinforce the positioning over 30, 60, and 90 days — homepage messaging updates, ad copy angles, social content themes, PR narratives, and thought leadership topics
Manual install (npx, ZIP)
Claude Codenpx skills add indranilbanerjee/digital-marketing-pro --skill narrative-landscape -g -a claude-code
Claude Code (degit)npx degit indranilbanerjee/digital-marketing-pro/skills/narrative-landscape#main ~/.claude/skills/narrative-landscape
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.7 KB
Read SKILL.md here
indranilbanerjee/main1 file shown
SKILL.md
Show the full text48 lines

/digital-marketing-pro:narrative-landscape

Script location. If your host does not set ${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin's scripts/ folder, next to skills/. Run them with Python 3.10 or newer: python, or python3 where python is not found (macOS, many Linux systems).

Purpose

Map the competitive narrative landscape to identify positioning opportunities the brand can own. Analyze how each competitor positions itself across key market dimensions — price-value, innovation-reliability, specialist-generalist, premium-accessible, or custom dimensions relevant to the industry. Find crowded territories where multiple competitors cluster, unoccupied gaps where no brand has staked a claim, and recommend the highest-value positioning territory for the brand to claim based on customer desirability and brand credibility.

Input Required

The user must provide (or will be prompted for):

  • Competitors to map: List of competitor names to include in the landscape analysis — typically 4-8 direct competitors plus any adjacent or aspirational competitors. Each will be analyzed for positioning on every defined dimension
  • Narrative dimensions to analyze: The positioning axes to map competitors against — common dimensions include price-value (premium vs budget), innovation-reliability (cutting-edge vs proven), specialist-generalist (niche expert vs broad platform), premium-accessible (luxury vs mass market), or custom dimensions specific to the industry (e.g., self-serve vs white-glove, enterprise vs SMB, AI-native vs traditional). Recommend 3-5 dimensions for a comprehensive but readable landscape
  • Competitor messaging sources: Where to extract positioning signals for each competitor — company websites (homepage, about, pricing pages), advertising copy (search ads, social ads, display), social media profiles and content themes, press releases and media coverage, analyst reports or review site positioning. Specify URLs or indicate which sources to prioritize

Process

  1. Load brand context: Read ~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json. Pay special attention to the brand's current positioning, value proposition, target audience, and competitive differentiation claims. Also check for guidelines at ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json — if present, load brand voice and positioning guardrails. Check for agency SOPs at ~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
  2. Define narrative dimensions: Validate and refine the positioning dimensions for the market — confirm each dimension represents a genuine spectrum where competitors can differentiate, ensure dimensions are independent (not redundant), and add any industry-standard dimensions the user may have missed. Define the poles of each dimension with clear labels and examples.
  3. Analyze each competitor's positioning: For every competitor on every dimension, extract positioning signals from the specified messaging sources — homepage headlines and hero copy (what they lead with), pricing page framing (how they present value), ad copy themes (what they emphasize to acquire customers), social content patterns (how they present themselves day-to-day), and PR/media positioning (how they describe themselves to press). Score each competitor's position on each dimension as a value from -5 to +5 representing their placement between the two poles.
  4. Map positions via narrative-mapper.py: Execute python "${CLAUDE_PLUGIN_ROOT}/scripts/narrative-mapper.py" --brand {slug} --action map-landscape --data '{positions_json}' with the competitor position data to generate the narrative landscape map — plotting all competitors on each dimension pair, calculating cluster density, and identifying open territories. The script produces structured positioning data with gap analysis.
  5. Identify clusters and gaps: Analyze the landscape map for crowded positions where 3+ competitors cluster on similar positioning (high competition, difficult to differentiate), contested positions where 2 competitors overlap (direct rivalry), and unoccupied gaps where no competitor has claimed territory (potential opportunities). Classify gaps by size, strategic value, and defensibility.
  6. Score each gap: Evaluate every identified gap by two factors — customer value (how much do target customers actually want a brand positioned here? Is there demand for this positioning?) and brand credibility (can this brand credibly claim this territory given its product, history, and capabilities?). Multiply these scores to produce an opportunity score for each gap. Rank gaps by opportunity score.
  7. Recommend optimal positioning territory: Select the highest-scoring gap as the recommended positioning territory. Justify the recommendation with evidence — why customers want it, why the brand can credibly own it, why competitors have left it open, and what risks exist (competitors may move to contest it).
  8. Generate positioning strategy: For the recommended territory, produce actionable positioning guidance — key messages, proof points to support the claim, content themes that reinforce the position, channels best suited to establish the positioning, and a timeline for claiming the territory through consistent messaging across all brand touchpoints.

Output

A comprehensive narrative landscape analysis containing:

  • Narrative landscape map: Competitor positions plotted on each dimension pair — showing where each competitor sits on every axis, with clear visualization of clusters, contested zones, and open territories
  • Cluster analysis: Identification of crowded positioning territories where multiple competitors overlap — which positions are contested, how intensely, and what it means for brands trying to differentiate in those areas
  • Gap analysis with opportunity scores: Every unoccupied or underserved positioning territory identified, scored by customer desirability multiplied by brand credibility, ranked from highest to lowest opportunity value
  • Recommended positioning territory: The single highest-value gap the brand should claim — with evidence-based justification covering customer demand, brand credibility, competitive dynamics, and defensibility against future competitor moves
  • Positioning strategy with messaging guidance: Key messages, proof points, supporting themes, and language patterns that establish the brand in the recommended territory — calibrated to brand voice from context
  • Content plan to claim the territory: Specific content types, channels, and cadence to systematically reinforce the positioning over 30, 60, and 90 days — homepage messaging updates, ad copy angles, social content themes, PR narratives, and thought leadership topics

Agents Used

  • competitive-intel — Competitive messaging extraction and analysis across websites, advertising, social media, and press coverage, positioning signal scoring on each narrative dimension, cluster and gap identification through landscape pattern analysis, and competitive response prediction for recommended positioning moves
  • marketing-strategist — Positioning strategy development from gap analysis to actionable territory selection, customer desirability and brand credibility scoring for each gap, messaging framework creation with key messages, proof points, and content themes, and territory-claiming content plan with 30/60/90-day milestones across channels
1---
2name: narrative-landscape
3description: "Map the competitive narrative landscape and score unclaimed positioning gaps. \"find us a differentiated position\""
4---
5 
6# /digital-marketing-pro:narrative-landscape
7 
8> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
9 
10## Purpose
11 
12Map the competitive narrative landscape to identify positioning opportunities the brand can own. Analyze how each competitor positions itself across key market dimensions — price-value, innovation-reliability, specialist-generalist, premium-accessible, or custom dimensions relevant to the industry. Find crowded territories where multiple competitors cluster, unoccupied gaps where no brand has staked a claim, and recommend the highest-value positioning territory for the brand to claim based on customer desirability and brand credibility.
13 
14## Input Required
15 
16The user must provide (or will be prompted for):
17 
18- **Competitors to map**: List of competitor names to include in the landscape analysis — typically 4-8 direct competitors plus any adjacent or aspirational competitors. Each will be analyzed for positioning on every defined dimension
19- **Narrative dimensions to analyze**: The positioning axes to map competitors against — common dimensions include price-value (premium vs budget), innovation-reliability (cutting-edge vs proven), specialist-generalist (niche expert vs broad platform), premium-accessible (luxury vs mass market), or custom dimensions specific to the industry (e.g., self-serve vs white-glove, enterprise vs SMB, AI-native vs traditional). Recommend 3-5 dimensions for a comprehensive but readable landscape
20- **Competitor messaging sources**: Where to extract positioning signals for each competitor — company websites (homepage, about, pricing pages), advertising copy (search ads, social ads, display), social media profiles and content themes, press releases and media coverage, analyst reports or review site positioning. Specify URLs or indicate which sources to prioritize
21 
22## Process
23 
241. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Pay special attention to the brand's current positioning, value proposition, target audience, and competitive differentiation claims. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load brand voice and positioning guardrails. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
252. **Define narrative dimensions**: Validate and refine the positioning dimensions for the market — confirm each dimension represents a genuine spectrum where competitors can differentiate, ensure dimensions are independent (not redundant), and add any industry-standard dimensions the user may have missed. Define the poles of each dimension with clear labels and examples.
263. **Analyze each competitor's positioning**: For every competitor on every dimension, extract positioning signals from the specified messaging sources — homepage headlines and hero copy (what they lead with), pricing page framing (how they present value), ad copy themes (what they emphasize to acquire customers), social content patterns (how they present themselves day-to-day), and PR/media positioning (how they describe themselves to press). Score each competitor's position on each dimension as a value from -5 to +5 representing their placement between the two poles.
274. **Map positions via narrative-mapper.py**: Execute `python "${CLAUDE_PLUGIN_ROOT}/scripts/narrative-mapper.py" --brand {slug} --action map-landscape --data '{positions_json}'` with the competitor position data to generate the narrative landscape map — plotting all competitors on each dimension pair, calculating cluster density, and identifying open territories. The script produces structured positioning data with gap analysis.
285. **Identify clusters and gaps**: Analyze the landscape map for crowded positions where 3+ competitors cluster on similar positioning (high competition, difficult to differentiate), contested positions where 2 competitors overlap (direct rivalry), and unoccupied gaps where no competitor has claimed territory (potential opportunities). Classify gaps by size, strategic value, and defensibility.
296. **Score each gap**: Evaluate every identified gap by two factors — customer value (how much do target customers actually want a brand positioned here? Is there demand for this positioning?) and brand credibility (can this brand credibly claim this territory given its product, history, and capabilities?). Multiply these scores to produce an opportunity score for each gap. Rank gaps by opportunity score.
307. **Recommend optimal positioning territory**: Select the highest-scoring gap as the recommended positioning territory. Justify the recommendation with evidence — why customers want it, why the brand can credibly own it, why competitors have left it open, and what risks exist (competitors may move to contest it).
318. **Generate positioning strategy**: For the recommended territory, produce actionable positioning guidance — key messages, proof points to support the claim, content themes that reinforce the position, channels best suited to establish the positioning, and a timeline for claiming the territory through consistent messaging across all brand touchpoints.
32 
33## Output
34 
35A comprehensive narrative landscape analysis containing:
36 
37- **Narrative landscape map**: Competitor positions plotted on each dimension pair — showing where each competitor sits on every axis, with clear visualization of clusters, contested zones, and open territories
38- **Cluster analysis**: Identification of crowded positioning territories where multiple competitors overlap — which positions are contested, how intensely, and what it means for brands trying to differentiate in those areas
39- **Gap analysis with opportunity scores**: Every unoccupied or underserved positioning territory identified, scored by customer desirability multiplied by brand credibility, ranked from highest to lowest opportunity value
40- **Recommended positioning territory**: The single highest-value gap the brand should claim — with evidence-based justification covering customer demand, brand credibility, competitive dynamics, and defensibility against future competitor moves
41- **Positioning strategy with messaging guidance**: Key messages, proof points, supporting themes, and language patterns that establish the brand in the recommended territory — calibrated to brand voice from context
42- **Content plan to claim the territory**: Specific content types, channels, and cadence to systematically reinforce the positioning over 30, 60, and 90 days — homepage messaging updates, ad copy angles, social content themes, PR narratives, and thought leadership topics
43 
44## Agents Used
45 
46- **competitive-intel** — Competitive messaging extraction and analysis across websites, advertising, social media, and press coverage, positioning signal scoring on each narrative dimension, cluster and gap identification through landscape pattern analysis, and competitive response prediction for recommended positioning moves
47- **marketing-strategist** — Positioning strategy development from gap analysis to actionable territory selection, customer desirability and brand credibility scoring for each gap, messaging framework creation with key messages, proof points, and content themes, and territory-claiming content plan with 30/60/90-day milestones across channels
48 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 866
Checked
Source
indranilbanerjee/digital-marketing-pro ↗
Creator
indranilbanerjee · 114 listings
View creator

Similar skills

See all →
SkillArticle Illustration GeneratorJimLiu/baoyu-skills · by JimLiuAnalyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图".★ 26.6k GitHub starsSkillArticle Cover DesignerJimLiu/baoyu-skills · by JimLiuGenerates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", or "make cover".★ 26.6k GitHub starsSkillArticle Content Extractormichalparkola/tapestry-skills · by michalparkolaExtract clean article content from URLs (blog posts, articles, tutorials) and save as readable text. Use when user wants to download, extract, or save an article/blog post from a URL without ads, navigation, or clutter.★ 553 GitHub starsSkillArticle CTA Designersamber/cc-skills · by samberDesigns end-of-article CTAs — copy, layout, placement, A/B test plan, accessibility — for blog posts, newsletters, and essays. Use whenever the user asks to write, review, or improve a CTA at the bottom of an article; mentions "end-of-post CTA", "call-to-action", "signup box", "newsletter CTA", "subscribe block", or "what should I put at the bottom"; or asks how to turn readers into subscribers, leads, customers, or paying supporters. Covers personal blogs, paid newsletters (Substack, beehiiv, Ghost), and brand content-marketing blogs. Do NOT use for opening hooks, ledes, or post titles — use samber/cc-skills@copywriting-hooks instead. Not for landing-page, ad, or email copy.★ 222 GitHub starsSkillBrand Story Video Promptscharlesdove977/UGC-Factory · by charlesdove977Generate brand storytelling and narrative video prompts for Seedance 2.0 on Higgsfield. Use whenever the user wants to create a brand story video, company origin story, mission video, about us video, brand film, corporate narrative, founder story, brand anthem, company culture video, or emotional brand content. Triggers on: brand story, brand video, company story, origin story, about us, mission video, brand film, brand anthem, corporate video, company culture, founder story, brand narrative, or any request for brand/company storytelling video. Use even for "tell our company story" or "make a video about our mission.★ 83 GitHub starsSkillArticle Writer From Notesmattpocock/skills · by mattpocockHand over your messy notes, transcripts and half-thoughts on a topic, and get back a finished article that flows from one point to the next.★ 267k GitHub stars

More from indranilbanerjee