Best fit
- Use when copy sounds generic, when starting any new project, when voice feels inconsistent across channels, when onboarding a new brand, or when any skill needs voice-profile.
MoizIbnYousaf/marketing-cli
Define or extract a consistent brand voice that other skills can use. Three modes: Extract (analyze existing content), Build (interview-based), Auto-Scrape (from URL). Use when copy sounds generic, when starting any new project, when voice feels inconsistent across channels, when onboarding a new brand, or when any skill needs voice-profile.md but it doesn't exist yet. This is always the first skill to run for a new project. Make sure to use this skill whenever the user mentions tone of voice, b
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/brand-voice"Source checked Jul 28, 2026·Refresh due Oct 26, 2026
Reorganized from the pinned upstream SKILL.md
Generic copy converts worse than copy with a distinct voice. Not because the words are different -- because the reader feels like they're hearing from a PERSON, not a marketing team.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/brand-voice"The pinned source contains enough sections and task detail for a source-grounded deep guide; automated content is still not an independent test.
1,247 source words · 22 usable sections
Best fit
Content deliverables
Content workflow
Sections are extracted automatically from the pinned SKILL.md and link back to the source.
1. Read brand/ context: - positioning.md — If available, use market angles to inform voice differentiation. A brand positioned as "the anti-course course" needs a different voice than one positioned as "enterprise-grade." - audience.md — If available, tailor vocabulary and tone…
User provides 3-5 pieces of existing content (blog posts, emails, social posts, about page, etc).
User provides 3-5 pieces of existing content (blog posts, emails, social posts, about page, etc).
No existing content. Build voice strategically through guided questions.
User provides a URL. Skill uses Exa MCP to research the brand's public presence.
SkillSignal prompt templates
These prompts were written by SkillSignal from the source structure; they are not upstream text.
Source-grounded prompt
Use for a content task while explicitly checking the source sections.
Use brand-voice for this content task: [task]. Inputs and constraints: [details]. Work through these pinned SKILL.md sections: “On Activation”, “Three Modes”, “Mode 1: Extract (analyze existing content)”, “Mode 2: Build (construct from scratch)”, “Mode 3: Auto-Scrape (URL analysis)”. Cite the concrete requirements that shape each step, do not invent capabilities absent from the source, and verify the result against: [acceptance criteria].
Content checklist
The source section “On Activation” has been checked.
The source section “Three Modes” has been checked.
The source section “Mode 1: Extract (analyze existing content)” has been checked.
The source section “Mode 2: Build (construct from scratch)” has been checked.
Source output checked: Voice Summary (2-3 sentences capturing the essence)
Source output checked: Personality Spectrum (rated axes)
Static permission evidence
These are source excerpts matched by deterministic rules, not findings of malicious behavior, safety, or actual execution.
SKILL.md · L156
*If ./brand/voice-profile.md already exists:** Read existing file, show what will change, ask for confirmation before overwriting.The documentation asks the agent to read local files, directories, or repositories.
SKILL.md · L186
| Overwriting an existing profile without showing diff | Read existing file, show what will change, get confirmation | The user may have manually tweaked the profile. Blindly overwriting loses their refinements. |The documentation asks the agent to read local files, directories, or repositories.
Choose a different workflow
Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.
A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.
Open source detailUse it for marketing tasks; the detail page covers purpose, installation, and practical steps.
A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.
Open source detailUse it for marketing tasks; the detail page covers purpose, installation, and practical steps.
A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.
Open source detailFAQ
Generic copy converts worse than copy with a distinct voice. Not because the words are different -- because the reader feels like they're hearing from a PERSON, not a marketing team.
The source record exposes this install command: npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/brand-voice". Inspect the command and pinned source before running it.
Static rules flagged read-files in the source; the page lists the matching lines and excerpts.
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.
Use it for marketing tasks; the detail page covers purpose, installation, and practical steps.
Use it for marketing tasks; the detail page covers purpose, installation, and practical steps.
Backlink + distribution checklist that expands a site's KD ceiling beyond what on-page work alone can earn. Use when the user mentions 'backlinks', 'off-page SEO', 'directory submissions', 'guest posts', 'outreach targets', 'link building', 'submit to directories', 'get listed in listicles', 'Product Hunt launch backlinks', or asks 'how do I get more domain authority'. Generates a prioritized, researched target list across directories, listicles, and guest-post candidates — does NOT submit anyth
Use this skill when the user asks to analyze, tear down, or reverse-engineer a competitor's paid ads. Trigger for prompts like "what ads is [competitor] running", "tear down their ad strategy", "competitor ad analysis", "find ad angles we haven't tried", or "reverse-engineer their paid funnel". Do not trigger for organic/SEO competitor research or website positioning analysis.
Generic copy converts worse than copy with a distinct voice. Not because the words are different -- because the reader feels like they're hearing from a PERSON, not a marketing team.
This skill defines that voice. Either by extracting it from existing content, building it strategically from scratch, or auto-scraping a URL to analyze a brand's public presence.
For output formatting, see /cmo rules/output-format.md.
brand/ context:
./brand/voice-profile.md already exists:
User provides 3-5 pieces of existing content (blog posts, emails, social posts, about page, etc).
The analysis process:
No existing content. Build voice strategically through guided questions.
The question sequence:
User provides a URL. Skill uses Exa MCP to research the brand's public presence.
Not sure which mode? Here's the decision tree:
If the brand has both a website AND existing content, prefer Mode 1 (Extract) — it captures the voice the brand already uses, which is more authentic than what a URL scan reveals.
Every voice maps across these axes:
Rate each 1-10 with brief justification:
Sentence patterns: Average length, variation, structure (simple/compound/fragmented)
Vocabulary: Jargon level (none/light/technical), power words, forbidden words
Perspective: Person (I/we/you), distance (intimate/conversational/professional), authority (peer/mentor/expert/challenger)
Minimum 5 rows, maximum 10. Specific voice behaviors and example phrases.
| Platform | Tone Shift | Length | Special Notes |
|---|---|---|---|
| More professional, authority-forward | Medium | Lead with insight | |
| Twitter/X | Punchier, more direct | Short | Fragment sentences OK |
| Warmer, more visual language | Short-Medium | Casual, aspirational | |
| Most personal, conversational | Medium-Long | First-person storytelling | |
| Blog/SEO | Most detailed, structured | Long | Can be more technical |
| TikTok | Most casual, spoken-word feel | Very short | Conversational, raw |
| Threads | Thoughtful, conversational | Short-Medium | Opinion-led |
| Bluesky | Nuanced, substantive | Short | Informed, not aggressive |
BRAND VOICE PROFILE
[Brand/Person Name]
Generated [Month Day, Year]
Write to ./brand/voice-profile.md.
-> /positioning-angles Find your market angle
-> /direct-response-copy Write copy in your voice
-> /content-atomizer Create social content
Write ./brand/voice-profile.md with: last updated, voice summary, personality spectrum, voice markers, do/don't table, platform adaptations, sample copy.
If ./brand/voice-profile.md already exists: Read existing file, show what will change, ask for confirmation before overwriting.
After the voice profile is saved and used in at least one downstream skill, collect feedback:
brand/learnings.md with date and skill name.brand/learnings.md.After generating a voice profile from ANY mode, validate before saving. Full details in references/voice-modes.md.
Never skip this step. Never save a profile without user confirmation.
| Anti-pattern | Instead | Why |
|---|---|---|
| Generating a generic "professional yet approachable" voice | Extract specific patterns from real content or deep questioning | Generic profiles are useless — every downstream skill produces the same bland output. The whole point is differentiation. |
| Skipping the Voice Test Loop | Always validate with 3 samples before saving | A profile that looks right on paper can sound wrong in practice. The test loop catches mismatches before they propagate to all other skills. |
| Copy-pasting platform adaptation template defaults | Each brand has different platform behaviors — think about each one | A casual brand might be MORE formal on LinkedIn. A formal brand might loosen up on Twitter. Defaults are wrong by definition. |
| Writing the profile without reading existing brand context | Check positioning.md and audience.md first | Voice should align with positioning and audience. Writing voice in isolation means rewriting it later when those files exist. |
| Overwriting an existing profile without showing diff | Read existing file, show what will change, get confirmation | The user may have manually tweaked the profile. Blindly overwriting loses their refinements. |
| Producing a profile with no example phrases | On-brand and off-brand examples are required | Examples are the fastest way for downstream skills to calibrate. Without them, other skills have to interpret abstract axes, which leads to drift. |
This skill activates when: