SkillAgentSearch skills...

voice-card

Builds or updates a voice card from a company blog ("extract our blog voice") or how an account or person actually writes, measured from about 8 or more of their real posts (length, casing, emoji, openings, pet phrases, opinions with their source).

Install / Use

npx skills add gooseworks-ai/goose-skills --skill voice-card

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

88/100

Supported Platforms

Universal

Our assessment of voice-card

voice-card scores 88/100 on our quality scale, 622nd of 1,185 Content & Media skills we index.

Its SKILL.md is 6.9 KB long, well organised into 9 sections with 1 code example: a thorough specification that gives an agent plenty to work with.

With 1,222 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
29/30
Structure
17/20
Description
15/15
Adoption
13/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 33 days ago, so voice-card is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

voice-card compared with similar skills

All 4 of these similar skills score higher than voice-card; compare them before choosing.

SkillScoreStarsUpdatedFormat
voice-card (this skill)by gooseworks-ai881.2k33d agoSKILL.md
LocalAIby mudler10050.0ktodayMCP Server
siyuanby siyuan-note10046.9ktodayMCP Server
algorithmic-artby anthropics100177.9k33d agoSKILL.md
pptxby anthropics100177.9k33d agoSKILL.md

Frequently asked questions

How do I install voice-card?
Run npx skills add gooseworks-ai/goose-skills --skill voice-card. The install tabs above show the steps for each supported agent.
Which AI agents does voice-card work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is voice-card safe to use?
It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is voice-card still maintained?
The repository was last updated 33 days ago, so voice-card is actively maintained.

name: voice-card description: >- Builds or updates a voice card from a company blog ("extract our blog voice") or how an account or person actually writes, measured from about 8 or more of their real posts (length, casing, emoji, openings, pet phrases, opinions with their source). When there are too few posts, it runs a short interview instead. It ends with a test that checks a draft against the card. The brand's rules always beat the card. Use alone when you already have the account's posts or the person on hand; otherwise run the playbook for the job (e.g. run-organic-social, write-outreach, email-lifecycle). version: 0.2.1

voice-card

The brand voice (kit voice plus the brand's rules: every dont and must in its learnings) says what the brand may say and how it sounds overall. A voice card says how one account or person actually writes: lowercase or not, how long, which emoji, how they open. Adjectives ("warm, playful") don't stop generic copy; a card measured from real posts does.

Choose the source

Used alone: first do the marketing-guide skill (../marketing-guide/SKILL.md) §1–2 (connection, brand and brain rules). Called from a writing job: reuse its setup. A company-blog or long-form voice ask follows references/blog-voice.md and returns; social posts and personal voice follow Build below. A blog guide is usable without releasing the full brand intake playbook.

Where it lives

  • One file per account or person: brand/voices/<handle>.md, brand coworker scope (coworker_agent_id from the gooseworks:brand_read list; no coworker → default workspace, path prefixed brands/<brand-slug>/).
  • Handle: lower-case, hyphens, no @: brand (the brand's own voice across its accounts), ig-<account>, tiktok-<account>, linkedin-<first-last>, founder-<first-last>, blog-<brand-slug> (company long-form writing). One card per account where mechanics differ; accounts that write the same way share brand.
  • Read before you write (gooseworks:file_read; file_write replaces the file). Save with the save-to-brain skill (../save-to-brain/SKILL.md) (versioned: supersede, title Voice card <handle> — <Brand> — <YYYY-MM-DD>, tags [voice-card, voice-<handle>]) so it is findable from any host. The tags name this atom, not the playbook that ran it: for save-to-brain's supersede rule, the creator is the first tag (voice-card), so any writer's newer card supersedes an older one.

Precedence (non-negotiable)

  1. The brand's rules win: every dont and must (never-say, banned words, terminology, not public), the claims contract (the claims-gate skill (../claims-gate/SKILL.md)), and the rules in the confirmed brand voice (what it never does, how it treats customers).
  2. A person's or account's card wins on style: mechanics, openings, lexicon, humour. The brand voice's style gives way to a founder's own card when writing as that founder.
  3. Real posts beat any description of the voice. Example lines in the kit voice are evidence of style only; a claim inside them is not proof.
  4. If the brand marker says voice: provisional, every card built on it is provisional too.

Read

gooseworks:file_read brand/voices/<handle>.md. Missing, or built more than 90 days ago, or older than the account's last 8 posts → build or update. A card marked status: provisional is usable, and drafts from it say so.

Build

  1. Sources, by weight:
    • the account's own real posts: TikTok/Instagram from gooseworks:brand_read sections: ["organic"] (own_posts); other platforms through the proxy (the marketing-data-access skill, ../marketing-data-access/SKILL.md) or, when not reachable, 10–20 posts the human pastes. For a founder, a few of their replies and comments too (the least polished, so the truest voice);
    • the kit voice, tone, and learnings (do / dont / must);
    • the buyers' words (research-audience's voice-of-customer bank, research/audience/voc-bank.md) for hooks only; it is not the brand's voice.
  2. Minimum corpus: about 8 real posts. Below it, run a 5-minute voice interview instead (or take a voice note via gooseworks:media_upload + gooseworks:media_analyze): 3 things you've written that sound like you; 3 words you'd never use; who you write for; a belief about the category others don't share; what makes you cringe in other brands' posts; emoji yes/no and which; lowercase or proper; one story you tell often; off-limits topics; who approves posts in your name. Save the card status: provisional.
  3. Measure, with numbers, not adjectives: words per sentence and per post (median, range); casing; line breaks; rates of em-dash, ellipsis, exclamation and question marks; emoji rate and the exact set; symbols used for words; fragment and typo tolerance; opening moves with 5–10 verbatim first lines; closings; pet phrases and nicknames; jargon and swearing level; how they name customers and rivals; humour; for people who take positions, a stance ledger (each opinion with its source post); never-says (moves absent from the corpus that AI reaches for); top 5 and bottom 5 posts against the account median with the likely why. Leave out captions that come back cut off.
  4. Write the card:
Voice card — <handle> · <Brand> · built <YYYY-MM-DD> from <n> posts (<sources>) · status: <confirmed | provisional>
Rules with numbers: …
Openings that are theirs: <5 verbatim>
Pet phrases: … · Never-says: …
Stance ledger: <opinion> — <source post>   (people only)
Humour: …
Brand rules that apply (from learnings): …
5 real posts, annotated (why each one sounds like them)
3 wrong → right rewrites (a generic draft vs the same idea in their voice)
What performed: top 5 / bottom 5 with the likely why
  1. Confirm. Show the card ("does this sound like you?"). A person's card needs that person's yes; until then it is provisional. Their corrections go into the card in their words.

Update

Append new posts, re-measure when at least 8 new ones exist, keep the stance ledger growing, bump the date, save a new version. Never drop a confirmed rule without the person's yes.

Match test (on every draft before it is shown)

  1. Every mechanic within the card's range; emoji set, casing and punctuation habits match exactly.
  2. Swap test: put a competitor's name in. If the draft still reads true, add the detail only this brand or person could say.
  3. Read aloud: would they say it?
  4. Line-up: mix the draft with three real posts; if someone holding only the card can pick out the draft, rewrite it.
  5. Then the claims-gate skill (../claims-gate/SKILL.md) on the draft.

Named people

Never invent first-person experience, a habit, product use, a number or an opinion for a founder, ambassador, employee or customer. An opinion must trace to the stance ledger or to their own words in this conversation. Leave a marked gap ([NAME: the time a customer caught a bug before you did]) for material they haven't given; a gap with no material behind it is cut.

Related Skills

View on GitHub
GitHub Stars1.2k
CategoryContent
Updated1mo ago
Forks208

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions