Systems Lab

Agent skill

positioning-message-house

Build a positioning message house for a company: one falsifiable category bet, two to three message pillars, and a translation matrix that carries the same messages across go-to-market functions (marketing, sales, product, customer success) at their buyer-journey moments, plus a generation system that emits battlecards and objection-handling docs from the structured house.

activeReaches the webActs undeclared833 words

Filed under Positioning and messaging.

From esmefong/gtm-skills · 7 skills · 0 · pushed 2026-08-20

What it does when it runs

Build a positioning message house for a company: one falsifiable category bet, two to three message pillars, and a translation matrix that carries the same messages across go-to-market functions (marketing, sales, product, customer success) at their buyer-journey moments, plus a generation system that emits battlecards and objection-handling docs from the structured house. Consumes the ICP from icp-research (triggers, committee, decision criteria, how-to-win) and the voice from brand-voice-guide. Use whenever the user says "message house", "messaging framework", "positioning framework", "messaging matrix", "core narrative", "category narrative", "align our messaging", "battlecard", or wants one story translated across teams instead of four teams inventing four stories.

Read from the skill and the 8 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
  • opencanada.org
  • techcrunch.com
  • www.canada.ca
  • www.cbc.ca
  • www.techtimes.com
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
writes files

Ask about positioning-message-house

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/esmefong/gtm-skills.git /tmp/gtm-skills
git -C /tmp/gtm-skills sparse-checkout set "positioning-message-house"
mkdir -p ~/.claude/skills/positioning-message-house
cp -R "/tmp/gtm-skills/positioning-message-house/." ~/.claude/skills/positioning-message-house/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from esmefong/gtm-skills/blob/5e8e7df3b1b98f546e12957fd535d6333472ac42/positioning-message-house/SKILL.md, which is licensed MIT (repository). 833 words, 11 headings.

Positioning Message House

Turn positioning into an operating system for messaging: one category bet everyone stands on, a small set of pillar messages, and a matrix that translates them into each function's language at their moment in the buyer's journey. The whole design enforces one principle: consistency comes from everyone standing on the same messages; specificity comes from translation, not from four teams inventing four stories.

The output is structured, so the downstream assets (battlecards, objection docs) are generated from the house rather than drifting away from it.

What this consumes

InputFromWhat it provides
ICPicp-research (icp.md)Triggers, buying committee, decision criteria, barriers, how-to-win
Voice directorybrand-voice-guideTonal pillars and the writing standard every cell obeys
Offerings listThe user, or the ICP's product contextWhat the pillars stand on

No ICP? Gather the minimum first: the bet must be grounded in a demand-side truth, not invented in a workshop. No voice guide? Draft plain and say so.

The workflow

Five phases. Show the user the bet and pillars (end of Phase 2) before translating the matrix.

Phase 1: Load and frame

Read the ICP and voice. Pull the raw material the house is built from: the primary trigger (why buyers move), the committee (who must hear what), the decision criteria (what they weigh), the barriers (what the messaging must answer), and the how-to-win section if present.

Phase 2: Name the bet, then the pillars

The category bet is one falsifiable claim about where the category is going and where this company must stand. The quality bar: someone credible could argue the opposite. "AI will transform our industry" is a platitude; "the category will be won at the security gate, not the benchmark" is a bet. Ground it in the ICP's demand-side reality and name what would falsify it.

The pillars are two or three messages, each one sentence in the brand voice, each carrying proof. More than three and the house becomes a brochure.

Phase 3: Translate the matrix

For each pillar, write one cell per function at that function's buyer-journey moment:

FunctionMomentThe cell answers
MarketingAwareness / considerationWhy should the buyer care now? (the trigger)
SalesObjection / evaluationWhat does the skeptic in the room need to hear? (the committee's barriers)
ProductRoadmap / activationWhat must the product visibly do to keep the message true?
Customer successRetention / expansionHow does the message continue after the sale?

Rules: every cell is the same message translated, never a new claim; cells speak to the committee roles from the ICP (the sales row answers the economic buyer and the gatekeeper, not just the champion); every cell obeys the voice's writing standard.

Phase 4: The spine and the honest assessment

Write the spine: one short section on why the house holds together and which shared buying moment every function serves. Then the pressure-test: what would falsify the bet, which pillar is weakest and why, and the one metric that would settle it. A message house without a falsifier is a poster.

Phase 5: Generate the downstream assets

Encode the house as house.json (references/output-template.md) and run scripts/generate_assets.py: it emits the battlecard (bet, pillars with proof, when-we-win / when-we-lose, objection responses) and the objection-handling doc, deterministically, from the same structure. Assets generated from the house cannot drift from it; that is the point.

Scripts

ScriptWhat it doesNetworkKeys
scripts/generate_assets.pyEmits battlecard.md and objection-handling.md from house.jsonNoneNone

Failure modes to avoid (the quality bar)

  • A platitude bet. If no credible person would argue the opposite, it is not a bet.
  • Invention instead of translation. A matrix cell that introduces a new claim breaks the spine; four stories is the disease this skill treats.
  • Champion-only messaging. The sales row must answer the veto holders and the economic buyer; the ICP committee says who they are.
  • Feature lists in cells. Every cell is a message with a reader, not a capability inventory.
  • Voice drift. Cells obey the brand's writing standard; hype words that fail the voice fail the house.
  • No falsifier. The pressure-test section is required, with the win/loss metric named.
  • When-we-lose left out. The battlecard states where the company loses, from the ICP's disqualifiers. Pretending otherwise reads as marketing to the exact people this must convince.

Bundled references

  • references/output-template.md: the house.json schema, the message-house document format, and the translation quality bar. Read at Phases 3-5.
  • examples/cohere/: the full house for Cohere built from the repo's own ICP and voice: the security-gate bet, three pillars, a 12-cell matrix, and the battlecard and objection doc the script generated from it.

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what positioning-message-house does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.