Skip to content
Back to skills

Positioning Messaging

ASecurity

Builds or audits positioning statements, messaging hierarchies, homepage copy, and persona cards using April Dunford's Obviously Awesome framework across five modes (build, audit, fletch, sales-enablement, homepage). Refuses to generate without a named primary persona and 3+ alternatives including status quo, and blocks output until a 7-point verification gate passes.

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
data-aigotesting

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add stefanoskarakasis/Product-Marketing-Skills --skill positioning-messaging --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Positioning Messaging?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Positioning Messaging
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/stefanoskarakasis-positioning-messaging/badge)](https://www.skillsdirectory.com/skills/stefanoskarakasis-positioning-messaging)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: positioning-messaging
version: 2.4.1
description: >
  Builds or audits positioning statements, messaging hierarchies, homepage
  copy, and persona cards using April Dunford's Obviously Awesome
  framework across five modes (build, audit, fletch, sales-enablement,
  homepage). Refuses to generate without a named primary persona and 3+
  alternatives including status quo, and blocks output until a 7-point
  verification gate passes.

metadata:
  author: Stefanos Karakasis
  context: brain-dependentContext keys
  quality_gate: true
last_updated: 2026-09-25
---

# positioning-messaging

Built on Dunford's Obviously Awesome framework. Delivers sharp, defensible
positioning through a 6-phase discovery and stress-test process.

---

## Onboarding

> Run this block once at the start of every new session. No output until
> complete. One question at a time. This is the Settings screen — not discovery.

**Step 1 — Check brain:**

````
Does /foundation/brain.md exist?
  YES → Load silently. Note ICP, alternatives, market context, voice guide, energy state. Proceed.
  NO  → Surface once: "No brain found. You can still run this skill, but output will be less precise. Run product-marketing-context first for sharper results. Continuing."
````

If Section 5 (Market Context) or Section 4 (Voice & Tone) is missing or
thin, note it silently — don't block, but flag once: "Section 5/4 is thin
— running market-context / brand-voice first would sharpen this output,
but continuing without it."

**Step 2 — Select mode:**

Ask: `"What are you trying to accomplish today?"`

Present options (let user pick one — no typing required):

- `[BUILD]` — New positioning from scratch
- `[AUDIT]` — Review and score existing messaging
- `[FLETCH]` — Internal positioning deck (6 slides)
- `[SALES-ENABLEMENT]` — Persona cards + competitive playbook
- `[HOMEPAGE]` — Production-ready hero, pillars, and CTAs

**Step 3 — Confirm persona focus:**

Ask: `"Which persona are we positioning for today?"`

- If a `buyer-personas` session ran recently and named a primary persona:
  surface it — `"Based on your last committee map: [primary persona]. Use this?"`
- Else if brain has ICP: surface it — `"Based on your brain: [ICP]. Is this correct?"`
- If neither: ask for title, company type, and triggering situation

**Step 4 — Confirm alternatives:**

Ask: `"What are buyers comparing you against?"`

- Minimum 3 required (direct, status quo, do-nothing)
- If brain has alternatives: surface and confirm

**Step 5 — Surface any attached images:**

Parse all attached images before reading user text. Extract claims, flags, and
implied category. Report as: `"Your current materials say: [findings]"`

> After Steps 1–5: state the session setup back to the user in one paragraph.
> Await confirmation. Then proceed to Phase 1.

---

## Trigger

- **When:** Positioning, messaging, value prop, sales copy, competitive messaging,
  homepage copy, messaging audit, or any request involving how a product should
  be described to buyers

- **Not for:** Product specification → use `prd`. Building the ICP itself
  — demographics, behaviors, JTBD, needs — before positioning work
  → `ideal-customer-profile`, run first if Section 2 is still
  firmographic-only. Mapping the buying committee or building persona
  cards → `buyer-personas`, run first for a real primary-persona pick
  instead of guessing. The "why now" narrative → `market-context`, run
  first if Section 5 is thin. How the brand should sound → `brand-voice`,
  run first if Section 4 is thin.

- **Example prompts:**
  - "Build positioning for [product]"
  - "Our messaging sounds like everyone else"
  - "Help me position against [competitor]"
  - "Write our homepage headline and pillars"
  - "Audit this messaging for coherence"
  - "We can't explain what we do to sales"
  - "Is this positioning working?"

---

## Inputs

- **Args:** Product/market context, target persona (required), alternatives (3+
  minimum, must include status quo + do-nothing), customer evidence or win/loss
  signals

- **Defaults:** If no persona named, surface from brain or ask. If fewer than 3
  alternatives, block and ask before proceeding.

- **Context keys:**
  - `/foundation/brain.md` — preferred. Sections 1 (product), 2 (ICP), 3 (alternatives), 4 (voice) if available; 6 (proof points) for SALES-ENABLEMENT mode's proof and "never say" components — see Pre-flight.

---

## Connectors (Optional)

| Connector | What it adds |
|---|---|
| `~~call recordings` | Buyer language to ground the positioning |
| `~~CRM` | Win/loss reasons |
| `~~market data` | Competitor and market signals |
| `~~knowledge base` | Existing positioning docs |
| `~~cloud storage` | Existing decks and messaging in Drive |

> **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` if it exists. Extract Section 1 (Product Context),
     Section 2 (ICP), and Section 3 (Alternatives & Positioning) silently.

- If mode is `SALES-ENABLEMENT`: also extract Section 6 (Proof Points Registry)
     silently. Use only entries with a confirmed source for the persona cards'
     "proof" field and the competitive playbook's claims — never cite a
     `[NEEDS PROOF]` or `[NEEDS APPROVAL]` entry as if it were approved. Populate
     the "never say" column from Section 6's Forbidden Claims list, each with its
     stated reason. If Section 6 is empty, thin, or every relevant entry is still
     flagged: note it once — "Proof points registry is thin or unsourced. Persona
     cards will ship without a proof field / competitive playbook will ship without
     a 'never say' column until `proof-points` sources these claims." — and proceed
     without blocking; SALES-ENABLEMENT is still useful without proof, just weaker.

- If `/context/meta-patterns.md` exists in the user's workspace: if a pattern
  has actually fired 2+ times in prior positioning runs logged there, surface
  it now. If it doesn't exist, skip this step silently.

- If brain exists but Section 3 (Alternatives) is empty or marked 🔴 Placeholder:
   block and surface: `"⚠️ Your alternatives map is incomplete. Run
  alternatives-map to build it from real win/loss data — or, for a quick
  manual pass, complete Section 3 (Alternatives & Positioning) via
  product-marketing-context

- If fewer than 3 alternatives provided by user and not found in brain: block intake
  and ask for status quo + do-nothing before proceeding. Hard stop.

- If no brain found: surface once, non-blocking. Continue.

---

## Steps

> All modes run all 6 phases unless noted. Shortcuts produce weak output.

### Phase 1: Discovery

Run as a conversation. One question at a time. Never generate on the first message.

**Hard floor — all four required before Phase 2:**

- [ ] Product: what it does today (not roadmap)
- [ ] Buyer: one primary (title, company type, triggering situation)
- [ ] Alternatives: 3+ including status quo and do-nothing
- [ ] Outcome: single most important buyer result in one sentence

**Ideal additions:** T1 customer quotes · win/loss transcripts ·
sales objections · win reasons · pricing model · company stage

**Evidence tier on input:**

- Verbatim quotes, win/loss transcripts, NPS verbatims → **T1** (anchor a pillar)
- Usage data, churn rates, win rates, A/B results → **T2** (support a pillar claim)
- Product descriptions, PMM assertions, founder hypotheses → **T3** (must carry
  `[T3 — NEEDS VALIDATION]`; cannot headline a pillar)

**Exit:** Summarise all four hard-floor items back to user. Await confirmation.

---

### Phase 2A: Market Energy Check

Identify primary segment energy state before mapping competitors.

| State | Buyer situation | Messaging job |
|---|---|---|
| **M1 — Potential** | No solution; desire blocked by barriers | Remove barriers; unlock demand |
| **M2 — Kinetic** | Doing it badly (spreadsheets, manual) | Redirect effort to the better path |
| **M3 — Captured** | Already using a solution of this type | Win share on one specific dimension |

Confirm with user. Primary positioning serves one state only. Multiple states
require separate tracks — never mix in primary messaging.

---

### Phase 2B: Competitive Mapping

Map all five alternative types honestly:

1. Direct competitors (same category)
2. Adjacent competitors (overlapping use case)
3. Status quo (spreadsheets, legacy tools, manual process)
4. Build in-house
5. Do nothing

For each: what it does well / what it fails / what the buyer must believe to choose it.

**Find the gap** — intersection of: buyer cares deeply + product does well today +
no alternative addresses it.

**Exit — cannot proceed without completing this sentence:**

> "For buyers who need [outcome], alternatives fail because [gap], and we address
> this with [specific capability today]."

If you cannot complete it: the product has a positioning problem messaging cannot
fix. Stop and surface this to the user.

---

### Phase 2C: Options-First

Generate 3–4 distinct positioning bets before committing to one direction.

Each bet: the claim · target segment + energy state · primary risk ·
what it forces you to stop saying.

Present to user. Await selection. Do not proceed to Phase 3 without a chosen direction.

---

### Phase 3: Positioning Development

Follow the Dunford sequence:

1. Competitive alternatives (from Phase 2B)
2. Unique attributes — specific only ("3-click onboarding" not "better UX")
3. Value translation — "So what?" × 3 levels; Level 3 belongs in messaging
4. Who cares most — narrow to trigger-event segment, not demographic
5. Market category — frame that makes strengths obvious, not odd
6. Positioning statement × 3 versions:
   > "For [segment] who [situation], [product] is the [category] that
   > [differentiator], unlike [alternative] which [limitation]."

Pick sharpest version. **Exit:** Statement cannot be said honestly by any
named competitor. If it can, rewrite.

---

### Phase 4: Messaging Hierarchy

Build top-down. Layer 3 claims must trace to Layer 1. Cannot trace → remove.

**Layer 1 — Strategic Narrative** (150–250 words)

Old world → Shift → New world → Your role. Product appears after the problem
is fully established.

**Layer 2 — Core Positioning**

Tagline 5–8 words · One-liner 15–25 · Elevator pitch 50–75 · Boilerplate 75–100

**Layer 3 — Key Message Pillars** (exactly 3–4, MECE)

Each: headline claim + 2–3 sentence explanation + 2–3 proof points

**Layer 4 — Persona Cards** (1–3 max)

Each: pain in their language · promise tied to their metric · 3 proof points ·
one objection pre-handled verbatim · stage-appropriate CTA

**Exit:** All layers complete. Persona CTAs match actual sales motion.

---

### Phase 5: Differentiation Stress-Test

4-question test per differentiator. YES or NO only:

1. **TRUE?** — Provable with evidence a skeptical buyer accepts
2. **RELEVANT?** — Buyer cares enough to switch or pay more
3. **UNIQUE?** — 2+ competitors cannot honestly claim the same
4. **SUSTAINABLE?** — Still true in 12–18 months

Scoring (no exceptions):

- 4/4 → Layer 3 pillar headline
- 3/4 → supporting proof point only
- ≤ 2/4 → removed entirely

---

### Phase 6: Output Packaging

**Self-Verification Gate** — binary pass/fail, 7 checks. Re-enter named phase on
any failure. Do not deliver with a caveat instead of a fix.

| Check | Pass condition | Fail → |
|---|---|---|
| Proof coverage | Every claim has T1/T2 or carries `[T3]` flag | Phase 4 |
| Narrative coherence | Layers 1→4 read as one story | Phase 4 |
| Competitor specificity | Statement cannot be said by any named competitor | Phase 3 |
| Stress-test integrity | All pillar headlines 4/4 | Phase 5 |
| Persona count | ≤ 3 | Phase 4 |
| Jargon | Zero: leverage, seamless, best-in-class, robust, turnkey, holistic, enterprise-grade, disruptive, synergy, game-changing, "powered by AI" as standalone claim | Fix inline |
| Vision flags | All `[VISION FLAG]` items addressed or documented as rejected | Positioning Traps section |

Before delivering, state: `"Self-verification passed. [N]/7 checks clear."`

**Mode outputs:**

`BUILD` — All 4 layers + stress-test table + approved/forbidden language +
channel usage guide + positioning traps rejected + validation plan

`AUDIT` — 5-dimension score (specificity / differentiation / coherence / proof /
buyer language) + P1/P2/P3 rewrite queue + before/after for P1 items

`FLETCH` — 6 slides: segment + trigger · alternatives map · gap ·
positioning statement · pillars + proof · homepage wireframe with copy

`SALES-ENABLEMENT` — Persona cards (pain / promise / proof / objection / CTA) + competitive playbook with "never say" column. Proof field sourced from brain Section 6 (approved claims only); "never say" column sourced from Section 6's Forbidden Claims list. If Section 6 is thin, both ship with a flagged gap instead of an invented or unsourced claim.

`HOMEPAGE` — Hero headline <8 words · subhead <20 words · 3 pillar headlines
+ 1-sentence descriptions · primary + secondary CTA · 2 proof strip options.
No placeholders.

**All modes include:** Approved language · Forbidden language + reason ·
Version + review date · Next steps

---

### Phase 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: positioning-messaging
session_date: [YYYY-MM-DD]
pattern: [one falsifiable statement about what happened this session, or "none"]
source: [surprised / wrong / missing / n.v.t.]
````

Write this row directly — do not ask the user for permission. This is an
observational log entry, separate from the mode output above, which still
requires the user's go-ahead on where to save it. 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 Phase 7. Mode output itself is delivered in chat only; if the
  user wants that saved anywhere, ask where — this skill doesn't write mode
  output to any file on its own.
- **Chat output format:** Mode-specific (BUILD / AUDIT / FLETCH / SALES-ENABLEMENT
  / HOMEPAGE). All modes include approved/forbidden language list, version, review
  date, and next steps
- **External side effects:** n.v.t.
- **Next skill:** After BUILD or FLETCH mode delivers output, check `next-skill-map.md`
  for "After positioning-messaging (BUILD or FLETCH mode)" and surface that prompt.
  AUDIT mode does not trigger a next-skill suggestion — it's a checkpoint, not a chain step.

---

## Verification

- Positioning statement cannot be said by any named competitor
- All pillar headlines scored 4/4 on stress-test (true, relevant, unique, sustainable)
- Self-verification gate passed all 7 checks before delivery
- Mode-specific output matches expected format
- Evidence tier respected: T1/T2 claims anchor content; T3 claims flagged
- Onboarding confirmed mode, persona, and alternatives before Phase 1 started

---

## Do Not Use For

- **ideal-customer-profile** — when the task is building the ICP itself
  (demographics, behaviors, JTBD, needs) rather than producing positioning
  output. Run that skill first, then this one.

- **product-marketing-context** — when the task is the full brain build
  from zero.

- **alternatives-map** — when the task is mapping competitive alternatives
  (Section 3) itself, from real research, rather than producing
  positioning output. Run that skill first, then this one.

- **buyer-personas** — when the task is mapping the buying committee or
  building persona cards, not producing the positioning statement or
  messaging hierarchy itself. Run that skill first, then this one.

- **market-context** — when the task is building the "why now" narrative
     itself, not the positioning statement it feeds. Run that skill first if
     Section 5 is thin, then this one.

- **brand-voice** — when the task is building the voice and tone guide
     itself, not applying it to a positioning statement. Run that skill
     first if Section 4 is thin, then this one.

- **proof-points** — when the task is sourcing, verifying, or auditing a claim
     itself, not applying already-approved claims to persona cards or a
     competitive playbook. Run that skill first (Add, Extract, or Audit mode) if
     Section 6 is thin or unsourced, then run SALES-ENABLEMENT mode here.

- **value-prop-statements** (pmm-growth) — when the task is fast,
  segment- or channel-specific copy variants of a positioning that's
  already set, not building or revising the canonical positioning
  statement itself. Send the user there once this skill's output is
  confirmed.

- **experiment-doc** — when testing messaging assumptions; this skill
  builds messaging, not validates it experimentally

- **product-messaging-playbook** — when the task is assembling a single
  Sales/CS-facing handoff document (problem framing, story, named
  competitor, discovery/objection script) rather than producing the
  underlying positioning statement or SALES-ENABLEMENT persona cards
  themselves. Run SALES-ENABLEMENT mode here first, then hand its output
  to that skill.

---

## Commands

### /build [product name or context]
Run full BUILD mode: Onboarding → all 6 phases → 4-layer messaging document.

### /audit [existing copy or landing page]
Run AUDIT mode: score existing messaging + rewrite queue.

### /fletch [product name]
Run FLETCH mode: 6-slide internal deck + homepage wireframe.

### /sales [product name]
Run SALES-ENABLEMENT mode: persona cards + competitive playbook.

### /homepage [product name]
Run HOMEPAGE mode: production-ready hero + subhead + pillars + CTA.

### /settings
Re-run the Onboarding block. Use to change mode, persona, or alternatives
mid-session without losing prior work.

---

## Operating Rules

1. **Run Onboarding before everything.** Mode, persona, and alternatives must be
   confirmed before Phase 1 starts. No exceptions.

2. **Load brain first.** Context changes which energy state (M1/M2/M3) applies.

3. **Parse attached images before asking discovery questions.** Every explicit
   claim and visual signal tells you something.

4. **No positioning without 3+ alternatives — status quo mandatory.** If you can't
   name it, you don't understand the choice.

5. **Never skip phases.** All 6 phases run for every mode. Shortcuts produce
   weak output.

6. **Primary persona must be ranked.** Ask: who has this problem worst, right now?

7. **Stress-test all pillars before delivery.** 4/4 or remove. No exceptions.

8. **Layer 3 claims must trace to Layer 1.** Cannot trace = doesn't belong.

9. **Evidence tier is binding.** T3 claims must be flagged. Don't hide assumptions.

10. **`/settings` resets Onboarding only.** Prior session work is preserved.

---

## Quality Gate

Runs after output generation, before delivery. Surface failures — do not deliver
incomplete output.

| Check | Standard | Pass = |
|---|---|---|
| Onboarding complete | Mode, persona, alternatives confirmed | Yes |
| Proof coverage | Every claim has T1/T2 or carries `[T3]` flag | Yes |
| Narrative coherence | Layers 1→4 read as one story | Yes |
| Competitor specificity | Statement cannot be said by any named competitor | Yes |
| Stress-test integrity | All pillar headlines 4/4 | Yes |
| Persona count | ≤ 3 | Yes |
| Jargon free | Zero forbidden terms | Yes |
| Vision flags resolved | All `[VISION FLAG]` items addressed or rejected | Yes |
| Mode format correct | Output matches expected format for selected mode | Yes |
| Learning Close ran | `/context/skill-sessions.md` has a new row for this session | Yes |

Files in this skill

  • SKILL.md11.5 KB
  • evals/positioning-messaging.eval.md1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.