---
name: stakeholder-maps
version: 3.2.0
description: >
  Builds a political map, not an org chart, showing who can kill your launch, who
  champions it and what to say to each stakeholder, with a Power × Interest grid, conflict
  map and weekly Sprint Cards. Use when aligning stakeholders around a launch or GTM
  initiative.
metadata:
  author: Stefanos Karakasis
  context: brain-dependent
  quality_gate: true
last_updated: 2026-09-25
---

# Stakeholder-Maps — Skill

## How This Works

Stakeholder maps built in a vacuum are a waste of time. This skill builds a map anchored to political reality: who has power, who's a hidden champion, who's a silent blocker, and what to do before you're in the room.

The skill runs in 7 steps:

**Step 0** — Load brain context (ICP, positioning, GTM motion) and guardrails from `/context/meta-patterns.md` if it exists (e.g., "product launches without Sales Manage Closely engagement fail 80% of the time" — an example pattern shape, not a claim this skill has already observed).

**Step 1** — Intake: Initiative description, success definition, timeline, and current champions/blockers.

**Step 2** — Inversion: Who could sink this from inside? (If you can't name them, the map is assumed, not validated.)

**Step 3** — Classification: Place each stakeholder on Power × Interest grid; assign political role (Champion, Blocker, Frozen, Gatekeeper, Performer, Floating Voter).

**Step 4** — Conflict mapping: Identify stakeholder conflicts; define second-order risks and resolution owners.

**Step 5** — Silent blocker scan: Which functions/roles aren't in the room but should be?

**Step 6** — Output: HTML widget (grid + comms plan + conflict map + confidence assessment) + markdown diagnostic + Sprint Cards.

**Step 7** — Learning Close: log the session to `/context/skill-sessions.md`.

---

## Trigger

- **When:** Building a political stakeholder map for an initiative — who can kill it, who champions it, and what to say to each person.
- **Not for:** Campaign messaging → use `gaccs-brief` after this skill. Risk analysis → use `pre-mortem` before this skill. GTM channel design → use `go-to-market-strategy`.
- **Example prompts:**
  - "Who are the stakeholders for this launch?"
  - "Map the politics on this initiative"
  - "Who could block this internally?"
  - "Build a stakeholder map"

---

## Inputs

- **Args:** Initiative description, success definition, timeline, current champions/blockers. Free format — Step 1 intake fills gaps conversationally.
- **Defaults:** If brain context is unavailable, this skill still runs — brain sharpens which stakeholders matter and what power they hold, but is not a hard blocker the way it is for `go-to-market-strategy`.
- **Context keys:**
  - `/foundation/brain.md` — optional but recommended. Sections 2 (ICP), 3 (Alternatives & Positioning), 8 (Execution: stakeholders, approvals).
  - `/context/skill-sessions.md` — optional; check for a recent `gtm-motions` session to ground stakeholder power in the actual motion chosen. `gtm-motions` deliberately never writes its output to the brain (motion choice is initiative-specific, not a durable fact), so this is a session-log lookup, not a brain section.
  - `/context/meta-patterns.md` — optional; recurring patterns the user has logged from prior stakeholder mapping sessions.
- **Brain contract:** Reads Sections 2, 3, 8. Writes: none — this skill does not write to `/foundation/brain.md`; it may propose new Section 8 `stakeholders` or `approvals` entries, written only by `product-marketing-context` after the user confirms.
- **Personal context:** if `/foundation/me.md` exists, read it for format and detail only (see the personal context rule in `SKILL-SPEC.md`).

---

## Connectors (Optional)

| Connector | What it adds |
|---|---|
| `~~team chat` | Who is active in launch threads |
| `~~email` | Stakeholder email threads |
| `~~calendar` | Meeting cadence and attendees |

> **No connectors?** Paste the material and I'll work from that. The output has the same shape.
> Pulled facts are drafts: each is tagged with category, tool and date, and nothing is written until you confirm.

---

## Pre-flight

- Load `/foundation/brain.md` Sections 2, 3, 8 if it exists. If Section 8 lists stakeholders or approvals, start the map from them and mark each as `from brain`; add only people the initiative needs that are missing — see Step 0 for the full sequence.
- Check `/context/skill-sessions.md` for a recent `gtm-motions` session. If one exists, use its confirmed motion to ground stakeholder power (who owns the primary channel, who's affected by the secondary). If none exists, proceed without it — don't block, and don't claim motion context was loaded when it wasn't.
- Load `/context/meta-patterns.md` if it exists, and surface any guardrail that has fired 2+ times in prior stakeholder mapping sessions — see Step 0.
- No hard block: this skill runs without brain context, with reduced calibration.

---

## Steps

### Step 0 — Pre-Flight: Load Context & Surface Guardrails

Before intake, load:
- **Brain context** (Sections 2, 3, 5): ICP, positioning, GTM motion — these shape which stakeholders matter and what power they hold
- **Guardrails** from `/context/meta-patterns.md`, if that file exists in the user's workspace: if a pattern has actually fired 2+ times in prior sessions the user has logged there, surface it now

**Surface guardrails like this:**

````
🔁 PATTERN FROM PRIOR STAKEHOLDER MAPS

I've seen [pattern description] in 2 prior sessions.
Examples: [specific initiatives or stakeholder failure modes]

Quick check: Does this apply to your initiative?
- If YES → We'll build it into the Watch For signals
- If NO → Let's flag it if it emerges during mapping
````

You can skip a guardrail if you disagree, but you'll see it first. If `/context/meta-patterns.md` doesn't exist, skip this step silently — it isn't required for the skill to run.

---

### Step 1 — Intake (Conversational, One Round)

Ask 6 questions in one conversational block:

1. **What's the initiative?** — One sentence. Launch, campaign, pricing change, new channel, GTM pivot, or internal programme.
2. **What does success look like in 60–90 days?** — Specific. A number, behaviour, deal closed, or capability shipped.
3. **Who has explicitly said yes to this?** — Name champions by role. Who's already committed?
4. **Who has said nothing, or who might push back?** — Name people or functions you're unsure about.
5. **What's the highest-stakes decision that needs to get made?** — Who makes it or can veto it?
6. **What's your timeline?** — When does the first irreversible action happen? (Announcement, budget commit, sales enablement kickoff, etc.)

If they share a brief or plan, read it fully. Extract stakeholder names, decision gates, power signals. Reflect back in 3 sentences before proceeding. Assumption-surfacing, not polish.

---

### Step 2 — Inversion: Who Could Sink This?

After intake, ask:

> "One more: **if this failed because of an internal stakeholder — who would it most likely be, and why?**
> Not execution gaps. The person or team whose resistance, inaction, or misalignment would be the root cause."

If they can't answer clearly, flag it: "If you can't name who could sink this, the political map is assumed — not validated. We'll surface this risk in the mapping step."

---

### Step 3 — Classification: Power × Interest Grid + Political Roles

Place each stakeholder on a 2×2 grid:

| | High Interest | Low Interest |
|---|---|---|
| **High Power** | 🔴 **Manage Closely** — Make-or-kill power. Meet early, involve in decisions. | 🟡 **Keep Satisfied** — Can block silently. Periodic high-signal updates only. |
| **Low Power** | 🟢 **Keep Informed** — Amplify or dampen momentum. Regular updates, invite to demos. | ⚪ **Monitor** — Light-touch. Available on request. |

For each stakeholder, assign a **political role** (beyond quadrant placement):

- 🏆 **Champion** — Proactively advocates. Arm with proof points; give early wins to share.
- 🛑 **Blocker** — Actively opposes or competes for resources. Diagnose: values conflict, territorial, or information gap?
- 🧊 **Frozen** — Neither supporting nor opposing; silent. Silence is not alignment. Investigate and re-engage.
- 🔍 **Gatekeeper** — Controls access to decision-maker or budget, but isn't the decision-maker. Never bypass.
- 🎭 **Performer** — Says yes in rooms, acts differently outside. Validate with written artefacts, not verbal agreement.
- 🌊 **Floating Voter** — Undecided. Moveable by evidence, relationships, or early momentum. Bring them a win from a Champion.

---

### Step 4 — Conflict Mapping

Identify stakeholder conflicts. For each conflict:

1. **Stakeholder A vs Stakeholder B** — Name both
2. **Conflict description** — 2 sentences
3. **Second-order risk** — What happens if unresolved by the decision gate? (Not just what they do, but what breaks downstream)
4. **Resolution owner + deadline** — Specific structural move the PMM owns

Unresolved conflicts compound. Assign resolution explicitly.

---

### Step 5 — Silent Blocker Scan

Ask: Which functions/roles aren't in the room but could kill this?

- Finance (if pricing or budget implications)
- Legal (if compliance or contract implications)
- Security/InfoSec (if data or access implications)
- CS/Support (if customer-facing or operational implications)
- Sales (if revenue-dependent)
- Product (if feature-dependent)
- Engineering (if technical or timeline-dependent)

For each silent function: what do they control? When to brief them? Who owns outreach?

---

### Step 6 — Output Structure

Deliver three artifacts:

**Artifact 1: HTML Widget** (render before markdown)
- Power × Interest grid with stakeholder chips (colour-coded by political role)
- Communication Plan table (Manage Closely + Keep Satisfied only)
- Conflict Map cards (each with second-order risk block + resolution block)
- PMM Confidence Assessment (six metric cards: Champion coverage, Blocker diagnosis, Frozen visibility, Silent function coverage, Comms plan completeness, Overall)

**Artifact 2: Markdown Diagnostic**
````
Initiative: [name]
PMM Owner: [name]
Date: [YYYY-MM-DD]
Primary Decision Gate: [first irreversible action + date]
Confidence Score: 🟢 / 🟡 / 🔴

For each Manage Closely + Keep Satisfied stakeholder:

[Name / Role] · [Political Role emoji + label]
Why they matter: [their power over this initiative — 1–2 sentences]
What they care about: [their actual priority, not job title]
Risk if neglected: [second-order consequence]
Key message: [exact framing they need — not generic positioning]

Silent blockers — functions not in the room:
[Function] — [what they control] — [when to brief] — [owner]
````

**Artifact 3: Sprint Cards** (one file, one card per Manage Closely + Keep Satisfied stakeholder)
````
Week of: [Monday date]
PMM: [name]
Decision gate: [date + what]
Cards this week: [n]
Last updated: [YYYY-MM-DD]

[Political Role emoji] [Name] — [Role]
📅 Next touchpoint: [date · format]
  _(Execution note: what cannot be allowed to slip)_
📝 Send before touchpoint: [Specific artefact — not "an update"]
  _[Prep time. Send by deadline.]_
🎯 What you need from them, by when: [Explicit ask. Deadline. What to do if no response.]
🗣️ The one sentence that has to land: "[Exact line in their frame]"
  _(If they push back: "[Response that holds frame]")_
🚨 Watch for: [Specific behavioural signal that means they've shifted]
  → [Immediate action if signal fires]
````

If the user wants any of these three artifacts saved to a file, ask where — this skill doesn't write those artifacts to any file on its own.

---

### Step 7 — Learning Close

End every completed session by appending one entry to `/context/skill-sessions.md`,
in the format defined in `product-marketing-context/.claude-plugin/skill-sessions-format.md`
(Type A — execution session):

````yaml
type: execution
skill: stakeholder-maps
session_date: [YYYY-MM-DD]
pattern: [one falsifiable statement about what happened this session, or "none"]
source: [surprised / wrong / missing / N/A]
````

Write this row directly — do not ask the user for permission. This is an
observational log entry, separate from the three artifacts above, which
still require the user's go-ahead on where to save them. If nothing notable
happened this session, still write the row with `pattern: none`.

---

## Outputs

- **Files written:** `/context/skill-sessions.md` — one appended row per
  session, per Step 7. The HTML widget, markdown diagnostic, and Sprint
  Cards are delivered in chat only; if the user wants any saved to a file,
  ask where — this skill doesn't write those artifacts to any file on its
  own.
- **Chat output format:** HTML widget (grid + comms plan + conflict map +
  confidence assessment), followed by the markdown diagnostic and Sprint
  Cards (Step 6).
- **External side effects:** None beyond the session log above.

---

## Verification

- Guardrails checked at Step 0 if `/context/meta-patterns.md` exists.
- Inversion question asked and answered before classification (Step 2).
- Every stakeholder placed on the grid and assigned a political role (Step 3).
- Every conflict has a second-order risk and a named resolution owner (Step 4).
- Silent blocker scan run across all seven functions (Step 5).
- Session logged to `/context/skill-sessions.md` (Step 7).

---

## Operating Rules

- **Silence is not alignment.** Frozen until proven otherwise.
- **Name the Performers.** Verbal yes without written commitment = it didn't happen.
- **Second-order before action.** Ask "and then what?" once before every comms decision.
- **The map is a working tool.** Update after every major alignment conversation.
- **Gatekeepers aren't blockers.** Bypassing them converts them.
- **Sprint Cards are weekly.** If not updated in 10 days, it's wrong.

---

## Quality Gate

| Check | Pass = |
|---|---|
| Inversion check run | Named who could sink this |
| Political roles assigned | Every stakeholder has a role beyond quadrant |
| HTML widget rendered | Grid + comms table + conflict map + confidence cards |
| Comms plan table | Every Manage Closely + Keep Satisfied has key message + next action |
| Conflict map | Every conflict has second-order risk + resolution block |
| Markdown diagnostic | Rendered with role analysis for Manage Closely stakeholders |
| Sprint Cards | Five fields per stakeholder, no exceptions |
| Watch For signals | Every Manage Closely card has behavioral signal + immediate action |
| Brain context | Map cross-referenced with ICP, GTM motion, positioning |
| Learning Close ran | `/context/skill-sessions.md` has a new row for this session |

---

## Initiative Type Modifiers

| Initiative Type | Dominant Quadrant Risk | Watch especially for |
|---|---|---|
| **Product Launch** | Manage Closely → Sales, Product | Sales Performers (verbal yes, no enablement) |
| **Pricing Change** | Keep Satisfied → Finance, Legal, CS | Finance silent blocker; CS frozen with blast radius |
| **New Channel** | Keep Informed → Demand Gen, RevOps | Channel conflicts; RevOps as gatekeeper |
| **GTM Pivot** | Manage Closely → CEO, Sales VP, RevOps | VP Performers; ICs frozen on old motion |
| **New Market Entry** | Manage Closely → Regional leads, Legal | Local Gatekeepers; home market frozen voters |
| **Campaign Launch** | Keep Informed → Content, Design, Sales | Legal/Brand silent blockers; Sales Floating Voters |
| **Internal Programme** | Manage Closely → HR, Finance, Ops | Function heads seeing overhead (Blockers) |

---

## Do Not Use For

- **Campaign messaging** → use gaccs-brief (after stakeholder map)
- **Risk analysis** → use pre-mortem (before stakeholder map)
- **GTM channel design** → use go-to-market-strategy
