$npx -y skills add matteotitta/claude-code-marketing-quickstart --skill tov-guidelinesExtract voice patterns from existing content (website, blog, social, sales-call transcripts) and codify into voice rules. Produces voice analysis + voice guidelines (rules per pattern + violation pattern + fix template). Writes to marketing/brand/brand-voice.md as the canonical v
| 1 | # tov-guidelines — Stage 1 + 2 research skill (PMM spine) |
| 2 | |
| 3 | Analyzes existing content (your website, blog, recent LinkedIn posts, sales-call transcripts) and produces voice rules that downstream content skills apply. |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | ## When to use |
| 8 | |
| 9 | - When onboarding a new content writer / contractor — they need codified voice rules to write in your voice |
| 10 | - When LinkedIn or blog output stops sounding like the founder / brand |
| 11 | - Quarterly refresh |
| 12 | |
| 13 | ## When NOT to use |
| 14 | |
| 15 | - For visual brand identity (use `/brand-kit` — voice + visual are separate but both live in `marketing/brand/`) |
| 16 | - For one-off content checks against existing rules (write a custom gate skill that reads `brand-voice.md`) |
| 17 | - For positioning or messaging (use `/positioning` or `/product-messaging`) |
| 18 | |
| 19 | ## How it works |
| 20 | |
| 21 | 1. Inputs: source content (one or more of: website URL, blog URL, LinkedIn handle, sales-call transcripts, founder writing samples). |
| 22 | 2. Reads (Exa MCP for fresh data): the source content. Patterns extracted include: vocabulary preferences, sentence-length defaults, headline conventions, em-dash usage, list-vs-prose preference, contraction frequency, persona pronouns, signature opening / closing patterns. |
| 23 | 3. Produces a two-phase output: |
| 24 | - **Phase 1 — Voice analysis** (extracted patterns from source material with frequency scores): "uses em-dash with spaces 87% of the time across 30 LinkedIn posts; sentence case headings 100% of the time; banned-word violations 0 in last 10 posts" |
| 25 | - **Phase 2 — Voice guidelines** (codified rules every content skill applies): |
| 26 | - Rule N — {rule name} |
| 27 | - **The rule:** 1-sentence statement |
| 28 | - **Why:** 1-sentence justification |
| 29 | - **Violation pattern:** what breaking this looks like |
| 30 | - **Fix template:** how to fix |
| 31 | - **Exception:** when the rule doesn't apply |
| 32 | 4. Writes to `marketing/brand/brand-voice.md` (overwrites prior canonical; git history preserves prior versions). Marks `status: locked` once approved. |
| 33 | |
| 34 | ## Invoke |
| 35 | |
| 36 | ``` |
| 37 | /tov-guidelines https://yourdomain.com + analyze my last 10 LinkedIn posts |
| 38 | ``` |
| 39 | |
| 40 | Or open-ended: |
| 41 | ``` |
| 42 | /tov-guidelines extract voice from these sales-call transcripts: [paths] |
| 43 | ``` |
| 44 | |
| 45 | ## Example output |
| 46 | |
| 47 | See [`marketing/brand/brand-voice.md`](../../../marketing/brand/brand-voice.md) for the PulseAnalytics seed. Notice the 5 rules each have rule statement + why + violation pattern + fix template + exception. The 5 rules cluster into two themes (prose hygiene + claim integrity). |
| 48 | |
| 49 | ## Dependencies |
| 50 | |
| 51 | - **Reads from:** source content (URL or files — provided as input); optionally `marketing/icp/ICP.md` (voice should match the ICP's vocabulary register) |
| 52 | - **Reads via Exa MCP (optional):** the source content if it lives on the web |
| 53 | - **Writes to:** `marketing/brand/brand-voice.md` (canonical) |
| 54 | - **Downstream readers:** any content skill (LinkedIn, blog, newsletter, email), `/landing-page-copy`, future gate skills |
| 55 | |
| 56 | ## Customization |
| 57 | |
| 58 | The 5-rule default in the PulseAnalytics example is operator-flavored. Yours may need more rules (large enterprise teams sometimes track 8-12) or fewer (founder voice often clusters into 3-4 rules). Use whatever rule count matches the patterns you can actually enforce. |
| 59 | |
| 60 | Don't add a rule you can't enforce — every rule should map to a check a gate skill could run automatically. Vague rules ("be human") get ignored; specific rules ("no em-dashes without spaces") get enforced. |
| 61 | |
| 62 | ## Where this fits in the Example 1 chain |
| 63 | |
| 64 | ``` |
| 65 | Week 1: /tov-guidelines (parallel with competitor + ICP research) → voice rules locked |
| 66 | Week 2: /positioning + /product-messaging apply voice rules to output |
| 67 | Week 3+: every content / paid / outbound execution skill reads voice rules |
| 68 | ``` |
| 69 | |
| 70 | ## Refresh cadence |
| 71 | |
| 72 | Quarterly. Trigger sooner when the team finds a new buzzword pattern, customer flags off-brand phrasing, or a new persona is added (vocabulary may shift). |