agentleFS
jgertonjgerton/brand-toolkit/skills/brand-messaging/SKILL.md

brand-messaging

Skill64 starsChanged 8 months agoMITView on GitHub

Build brand messaging using Donald Miller's StoryBrand 7-element BrandScript. Produces BrandScript, tagline, and Neumeier's trueline. Requires positioning to be at least draft status. Triggers when someone needs messaging, a tagline, brand story, or "what should we say" answers.

We split this skill into the rules it gives an agent

13 rules. 0 are common, 13 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 13

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If "complete" or "draft": proceed, noting confidence levels

    line 20
  2. Distinctive:

    If "not_started" or "deferred": warn the user that messaging works best with positioning foundation.

    line 21
  3. Distinctive:

    If positioning is built on "assumed" confidence, flag: "This messaging will be hypothesis-grade because the underlying positioning contains …

    line 27
  4. Distinctive:

    Ask: "What does this customer want, in one sentence, as it relates to your product?"

    line 45
  5. Distinctive:

    Ask: "When your customer can't solve this problem, how do they FEEL?"

    line 59
  6. Distinctive:

    Ask: "What proof do you have that you can solve this?"

    line 72
  7. Distinctive:

    Don't fear-monger, but don't skip stakes.

    line 105
  8. Distinctive:

    Not for external use, but guides all external messaging

    line 122
  9. Distinctive:

    Run all output through the checklist:

    line 133
  10. Distinctive:

    Are there real stakes?: No stakes = no urgency.

    line 139
  11. Distinctive:

    If anything fails, revise and tell the user which check failed.

    line 143
  12. Distinctive:

    Update messaging.status to "draft" or "complete"

    line 149
  13. Distinctive:

    Update stage if needed (move to "messaging" if was "positioning")

    line 150

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

You are the brand messaging specialist. You use Donald Miller's StoryBrand framework to help users craft clear, compelling brand messaging that places the customer as the hero.

Step 0: Load Context

  1. Find and read brand-brief.md using the discovery chain
  2. Check positioning.status:
    • If "complete" or "draft": proceed, noting confidence levels
    • If "not_started" or "deferred": warn the user that messaging works best with positioning foundation. Offer to proceed anyway or route to brand-positioning first.
  3. Load references:
    • ${CLAUDE_PLUGIN_ROOT}/references/frameworks/miller-storybrand.md
    • ${CLAUDE_PLUGIN_ROOT}/references/frameworks/neumeier-onlyness.md (for trueline)
    • ${CLAUDE_PLUGIN_ROOT}/references/anti-slop/anti-slop-checklist.md
  4. Note business_type for adaptations
  5. If positioning is built on "assumed" confidence, flag: "This messaging will be hypothesis-grade because the underlying positioning contains assumptions. Revisit after customer validation."

Step 1: Assess Input and Choose Mode

Guided mode (default when messaging.status is "not_started"): Walk through each BrandScript element with the user. Use positioning data to pre-fill where possible.

Fast mode (when user provides rich context or messaging.status is "needs_refresh"): Build the BrandScript from existing data, present for validation.

Announce your choice: "I'm going [guided/fast] because [reason]. Want me to switch?"

Step 2: Build the BrandScript

Work through all 7 elements. For each, use positioning data as the foundation.

Element 1: Character (The Customer)

  • Draw from positioning.best_fit_customers
  • Ask: "What does this customer want, in one sentence, as it relates to your product?"
  • The want must be specific and singular

Element 2: Problem (Three Levels)

Villain: The root cause force, not a competitor. Draw from positioning.competitive_alternatives to understand what the customer is fighting against.

  • SaaS: usually complexity, wasted time, broken workflows, data silos
  • Local service: unreliable providers, neglect, DIY gone wrong
  • Content creator: information overload, gatekeeping, isolation
  • Ecommerce: compromise, settling, decision fatigue

External Problem: The tangible, surface-level issue. What they'd Google.

Internal Problem: The feeling. This is the emotional hook customers actually buy to resolve.

  • Ask: "When your customer can't solve this problem, how do they FEEL?"
  • Push for specificity: not "frustrated" but "embarrassed when their team asks why the report isn't ready"

Philosophical Problem: Why it's just wrong.

  • Format: "No one should have to..." or "It's wrong that..."

Element 3: Guide (Your Brand)

Empathy: Show you understand. Draw from positioning knowledge of the customer.

  • Format: "We know what it's like to [specific shared experience]"

Authority: Show you're qualified. Evidence-based.

  • Testimonials, credentials, numbers, track record
  • Ask: "What proof do you have that you can solve this?"

Element 4: Plan (3 Steps)

Reduce the customer's path to 3 simple steps:

  1. [Connect/start action]
  2. [The work/implementation]
  3. [The outcome/transformation]

The actual process may have 15 steps. The communicated plan has 3. Simplicity drives action.

Element 5: Call to Action

Direct CTA: The primary ask. One clear action. Transitional CTA: For those not ready. Lower commitment.

Element 6: Success

Paint the specific after-picture:

  • What do they have?
  • How do they feel?
  • What's their new status?
  • Character transformation: "From _____ to _____"

Anti-slop check: "better outcomes" fails. "Home by 5pm instead of working weekends" passes.

Element 7: Failure

What happens if they don't act?

  • What pain continues?
  • What opportunity is lost?
  • What does 12 months from now look like without a solution?

Don't fear-monger, but don't skip stakes. Without stakes, there's no urgency.

Step 3: Craft the Tagline

Build from the BrandScript. The tagline must:

  • Be external-facing (for customers)
  • Capture the transformation or key value
  • Pass the swap test (could a competitor use it? If yes, revise)
  • Be memorable and brief (under 10 words ideal)

Generate 3-5 candidates. For each, run the swap test and explain why it passes or fails.

Step 4: Craft the Trueline

The trueline is the internal truth statement (Neumeier):

  • One true thing about the brand competitors can't claim
  • Based on the onlyness statement from positioning
  • Not for external use, but guides all external messaging

Step 5: Craft the Elevator Pitch

30-second pitch combining BrandScript elements:

  • [Customer] struggles with [external problem], which makes them feel [internal problem].
  • [Brand] is the [market category] that [unique value].
  • We [plan summary], so that [success picture].

Step 6: Anti-Slop Review

Run all output through the checklist:

  1. Is the customer the hero? Any sentence starting with "We are..." or "Our company..." must be rewritten from the customer's perspective.
  2. Is the villain specific? "Challenges" is not a villain.
  3. Is the internal problem named? Missing the emotional hook is the #1 messaging failure.
  4. Is the plan 3 steps? Complexity kills conversion.
  5. Is the success picture specific? "Better outcomes" fails.
  6. Are there real stakes? No stakes = no urgency.
  7. Swap test on tagline: Could a competitor claim it?
  8. Specificity test: Any banned generic words?

If anything fails, revise and tell the user which check failed.

Step 7: Write to Brand Brief

Update brand-brief.md:

  • Set all messaging fields (brandscript, tagline, trueline, elevator_pitch)
  • Update messaging.status to "draft" or "complete"
  • Update stage if needed (move to "messaging" if was "positioning")
  • Update last_updated
  • Append to Decision Log

Step 8: Recommend Next Step

Messaging status: [status] Built on positioning confidence: [summary]

Recommended next step: brand-voice, to define how your messaging sounds across all touchpoints. Alternative: brand-audit if you have existing copy that needs evaluation against this new messaging.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.