stefanoskarakasis/Product-Marketing-Skills

positioning-messaging

Builds or audits positioning statements, messaging hierarchies, homepage copy and persona cards using April Dunford's Obviously Awesome framework, in five modes (build, audit, fletch, sales-enablement, homepage).

查看源码

使用方法

  1. 复制安装命令,在自己的智能体环境安装前先检查源码包。
  2. 从原始文档核对所需工具、凭据和支持的宿主。
  3. 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/stefanoskarakasis/Product-Marketing-Skills --skill positioning-messaging

开始前需了解

  • 安装不包含模型订阅、API 额度或访问文件的权限。
  • 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

positioning-messaging

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


Onboarding

Run once at the start of every new session, before any discovery. One question at a time, no output until it is complete. Read references/onboarding.md and follow its five steps: check the brain, select the mode, confirm the persona, confirm the alternatives (3 minimum), and parse any attached images. Then state the session setup back in one paragraph and wait for confirmation before Phase 1.

A missing brain never stops this skill. Say once: "No brain found, so output will be less precise. Run product-marketing-context (a separate plugin) for sharper results. Continuing."


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, including switching_forces and objections), 4 (voice, including customer_phrases) if available; 6 (proof points) for SALES-ENABLEMENT mode's proof and "never say" components — see Pre-flight.

Connectors (Optional)

ConnectorWhat it adds
~~call recordingsBuyer language to ground the positioning
~~CRMWin/loss reasons
~~market dataCompetitor and market signals
~~knowledge baseExisting positioning docs
~~cloud storageExisting 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

  • Gap capture (see the gap capture rule in SKILL-SPEC.md): if a brain field this skill needs is empty or stale and the answer would change the output, ask one question: the question, one line on why it matters, "answer or skip". Answer: use it for this run and offer it as a brain update. Skip: continue with a labelled assumption and append a skipped block to /foundation/gaps.md (format in product-marketing-context/references/gaps-format.md). At most one gap question per run. This is the only write to /foundation/gaps.md; the skill still writes nothing else to the brain unless its own contract says so.
  • Personal context (see the personal context rule in SKILL-SPEC.md): if /foundation/me.md exists, read it for format and detail only (length, detail, shape, how blunt to be). Never take a company fact from it; the current request wins. Do not ask for it if it is missing.
  • 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:

surface: "⚠️ Your alternatives map is incomplete. Run alternatives-map (same plugin) to build it from real win/loss data, or name your 3 alternatives now (including status quo) and I will continue."

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

StateBuyer situationMessaging job
M1 — PotentialNo solution; desire blocked by barriersRemove barriers; unlock demand
M2 — KineticDoing it badly (spreadsheets, manual)Redirect effort to the better path
M3 — CapturedAlready using a solution of this typeWin 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.

CheckPass conditionFail →
Proof coverageEvery claim has T1/T2 or carries [T3] flagPhase 4
Narrative coherenceLayers 1→4 read as one storyPhase 4
Competitor specificityStatement cannot be said by any named competitorPhase 3
Stress-test integrityAll pillar headlines 4/4Phase 5
Persona count≤ 3Phase 4
JargonZero: leverage, seamless, best-in-class, robust, turnkey, holistic, enterprise-grade, disruptive, synergy, game-changing, "powered by AI" as standalone claimFix inline
Vision flagsAll [VISION FLAG] items addressed or documented as rejectedPositioning 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/A]

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/A
  • 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.

  1. Load brain first. Context changes which energy state (M1/M2/M3) applies.
  1. Parse attached images before asking discovery questions. Every explicit

claim and visual signal tells you something.

  1. No positioning without 3+ alternatives — status quo mandatory. If you can't

name it, you don't understand the choice.

  1. Never skip phases. All 6 phases run for every mode. Shortcuts produce

weak output.

  1. Primary persona must be ranked. Ask: who has this problem worst, right now?
  1. Stress-test all pillars before delivery. 4/4 or remove. No exceptions.
  1. Layer 3 claims must trace to Layer 1. Cannot trace = doesn't belong.
  1. Evidence tier is binding. T3 claims must be flagged. Don't hide assumptions.
  1. `/settings` resets Onboarding only. Prior session work is preserved.

Quality Gate

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

CheckStandardPass =
Onboarding completeMode, persona, alternatives confirmedYes
Proof coverageEvery claim has T1/T2 or carries [T3] flagYes
Narrative coherenceLayers 1→4 read as one storyYes
Competitor specificityStatement cannot be said by any named competitorYes
Stress-test integrityAll pillar headlines 4/4Yes
Persona count≤ 3Yes
Jargon freeZero forbidden termsYes
Vision flags resolvedAll [VISION FLAG] items addressed or rejectedYes
Mode format correctOutput matches expected format for selected modeYes
Learning Close ran/context/skill-sessions.md has a new row for this sessionYes

按任务相关推荐

来自同一仓库

更多 Skills

全部 Skills
stefanoskarakasis
社区

brand-voice

Builds a persona-adaptive Voice & Tone guide (brand attributes, tone shifts by buyer type and channel, forbidden language), then deepens brain Section 4. Trigger with "how should we sound", "voice guide", "our copy feels off", "we sound like everyone else", "adapt tone for", or any request to define, apply, or audit how the brand communicates.

安装量
0
GitHub Stars
7
最近更新
10月25日
stefanoskarakasis
社区

buyer-personas

Maps the enterprise buying committee (Economic Buyer, Champion, Technical Evaluator, End User, Procurement) before any messaging, then builds Dunford-structured, alternatives-anchored personas ready for positioning-messaging. Trigger with "map our buying committee", "who do we need to win over", "build our buyer personas", "who kills our deals", or any request to identify or profile the people involved in a B2B purchase.

安装量
0
GitHub Stars
7
最近更新
10月25日
stefanoskarakasis
社区

customer-stories

Runs a B2B customer story from kickoff to customer approval: kickoff questions, internal brief, interview questions, a draft in one fixed structure, the customer review pack and an audit, with every stat and quote checked. Trigger on: "write a customer story", "kick off a case study", "customer interview questions", "prepare the customer review", "audit this customer story". Related: interview-summary, proof-points, writing-assistant.

安装量
0
GitHub Stars
7
最近更新
10月25日
stefanoskarakasis
社区

experiment-ideas

Generates several concrete, cost-efficient growth ideas, each with a channel, core message and cost-efficiency rationale, grounded in your brain's ICP, alternatives and market context. Trigger with "give me marketing ideas", "brainstorm growth tactics", "what should we try", "cheap ways to promote this", or any request to generate raw campaign or channel ideas before committing to one to test.

安装量
0
GitHub Stars
7
最近更新
10月25日