brand-voice-enforce
Transform and produce content in the brand's established voice.
Skill by boltaai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/boltaai-brand-voice-enforce
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, writing, marketing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/brand-voice-enforce
What's inside
- Skill name
brand-voice-enforce- Description
- Transform and produce content in the brand's established voice. Use this skill when the user asks to "rewrite this in our voice", "make this on-brand", "apply our brand voice", "adapt this post for email/blog/proposal", "write an email in our voice", "draft a proposal", "write a blog intro", or wants one piece of content re-expressed across formats against a full guideline. Works for social media and beyond (email, proposals, decks, blog). For plain "write/draft a post" saved to Bolta use bolta-draft-post (the canonical drafting skill); for scoring existing content use brand-voice-validate; not for creating the guideline itself (use brand-voice-generate) or discovering brand materials (use brand-voice-discover).
- License
- MIT
- Instructions
- 103 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- voice-constant-tone-flexes.md · references/
SKILL.md (first lines)
# Brand Voice Enforcement
Write content that sounds like the brand. Load the brand's voice, apply the constant voice
attributes and the context-appropriate tone, produce the content, validate it against the
guideline, and briefly explain the brand choices made.
## When to use
Voice-heavy content work — rewriting existing copy in-brand, enforcing a full guideline,
or producing non-social formats (email, proposal, blog section, ad copy, deck). For a plain
"draft a post" saved to Bolta, bolta-draft-post is the canonical owner; for scoring content
that already exists, use brand-voice-validate.
## Tools this skill uses
| Tool | Why |
|-|-|
| `list-workspaces` | Resolve `workspace_id` if unknown. |
| `get-voice-context` | Load Bolta's compiled voice context (tone, dos/donts, exemplars). |
| `voice-generate` | Bolta's voice-aware writer for social drafts; guideline maps onto its `tone`/`dos`/`donts`/`custom_rules`/`context` params. |
| `create-post` | Optional — save the on-brand result as a Bolta Draft when the content is a social post. |
For the voice-vs-tone model see `references/voice-constant-tone-flexes.md`.
## Prerequisites
- `workspace_id` — resolve once via `list-workspaces` and reuse it. Auth is automatic via the
Bolta connector's OAuth grant — never ask for an API key. Default new content to Draft;
confirm before publish/delete.
- A brand voice source, found in this order (stop at first hit):
1. A guideline produced this session by `brand-voice-generate`.
2. `get-voice-context` for the workspace (Bolta's stored voice).
3. If neither exists, tell the user and offer to run `brand-voice-discover` →
`brand-voice-generate` first. Do not invent a voice.
## Workflow
### 1. Load the voice
- If a session guideline exists, use it directly (freshest, reflects latest intent).
- Otherwise call `get-voice-context` (optionally with `voice_profile_id` / `platforms`).
- Extract: the **We Are / We Are Not** attributes (voice constants), the **tone-by-context**
settings, terminology (must-use / preferred / avoid / never), and example phrasing.
### 2. Analyze the request
Identify content type, audience, key message, and any length/format/tone overrides. Map the
content type to a row of the tone matrix (formality, energy, technical depth). See
`voice-constant-tone-flexes.md`.
### 3. Generate
- **Social post:** call `voice-generate`, passing the guideline through its params —
`tone` (a string, e.g. "professional, direct"), `dos`, `donts`, `custom_rules`, `context`,
`business_name`, `niche`, and `topics`. Always pass `max_posts` explicitly — the server
defaults to 7 posts per call, so a single-draft request without it burns credits on 6
unwanted variants. Always pass `platform` (linkedin, x, threads, bluesky, facebook,
instagram, reddit) when the target is known — without it, example selection is
non-deterministic and biased toward the most-recently-analyzed account.
This runs Bolta's own writer so the output matches everything else Bolta produces.
- **Non-social content (email, proposal, blog, deck):** write it directly, applying the same
voice constants and tone flexes. For long-form or high-stakes content, write from the
persisted Voice Profile holding the We Are / We Are Not constants fixed while flexing tone
(formality/energy/technical depth) to the format — hand social to `voice-generate` and write
non-social directly, holding the same voice constants across 1,200 words as across a
200-character post, then route (default to Draft, review for Safe Mode/creator callers,
publish only on explicit confirmed ask).
- Apply voice constants throughout; flex tone to the context; use preferred terminology and
never cross a "We Are Not" boundary.
### 4. Validate
Check the draft against the guideline: every active "We Are" attribute present, no "We Are
Not" boundary crossed, terminology compliant, tone matches the context row. For high-stakes
content, grade against the brand's OWN persisted Voice Profile (`get-voice-context`), not
generic "good writing" — a blunt, no-emoji brand should score high for being blunt and
emoji-free. Report which "We Are" attributes are present/missing, any "We Are Not" boundary
crossed (quote the line), terminology compliance, and tone match for the context; then revise
on those findings.
### 5. Present
Return the content, then a short note on the brand choices made (which attributes led, the
tone setting, any terminology swaps). If the guideline has open questions that touch this
content, apply the recommended default and flag it. Offer to save a social post as a Draft
via `create-post` (default `requested_action` = draft; never publish without explicit ask).
## Handling conflicts
If the request conflicts with the guideline (e.g. "make it hypey" vs. a "not hype-driven"
boundary), explain the conflict, recommend the on-brand option, and offer to follow the
guideline strictly, adapt for context, or override. Default to adapting with a one-line note.
## Failure handling
- No voice source found → stop, explain, offer `brand-voice-discover` / `brand-voice-generate`.
- `voice-generate` fails → fall back to writing directly with the guideline, note that Bolta's
writer was unavailable.
- Permission error saving a Draft → report the missing scope from `get-my-capabilities`; still
return the written content.
## Example
User: "Write a LinkedIn post announcing our Series A."
1. `get-voice-context(workspace_id)` → We Are: Confident, Data-driven, Direct; not Hype-driven.
2. Content type = social/LinkedIn → tone: formality medium, energy high, depth low.
3. `voice-generate(workspace_id, topics=["Series A announcement"], tone="confident, direct",
dos=[...], donts=["no buzzwords","no 'thrilled to announce'"],
context="Series A, $X, lead investor Y", max_posts=1, platform="linkedin")`.
4. Validate: leads with a number, no hype clichés, direct → passes.
5. Present the post + "Led with Confident + Data-driven; kept energy high for LinkedIn; avoided
'thrilled to announce' per your We-Are-Not. Save as a Draft?"From boltaai/bolta-skills, MIT.
More from boltaai/bolta-skills
- 0.557score
bolta-review-queue
boltaai
Work the Bolta review and approval queues.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
reddit-engagement
boltaai
Find Reddit threads this brand can genuinely help with, read them, draft native replies, publish them after approval, and verify the canonical URL.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-publishing
boltaai
Write, schedule and publish the brand's own social content — one post or many, one platform or several.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-setup
boltaai
Get a Bolta workspace from zero to automation-ready, and recover from setup/entitlement errors.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
lucia-test
boltaai
The end-to-end acceptance run: understand the brand, inspect its presence, publish something useful, discover third-party conversations, reply to them, work…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
analytics-review
boltaai
Read what actually happened — reach, engagement, follower movement, which posts worked — and say what to do about it.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-platform-tailoring
boltaai
Set per-platform options on a Bolta post — polls, flair, titles, privacy, boards.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
cross-platform-engagement
boltaai
Run one outbound engagement pass across Threads, Bluesky, Mastodon, X and LinkedIn — discover conversations where discovery exists, read them, draft native…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-inbox
boltaai
Work the inbound side — comments and mentions on the brand's own content across every connected platform — and reply to them.
SkillBFreshness: B★ 2Claude Code +9 - 0.548score
wordpress-blog
boltaai
Research, write, visually art-direct, QA, and publish a genuinely high-quality long-form SEO article to the WordPress account connected through Bolta.
SkillBFreshness: B★ 2Claude Code +9 - 0.512score
brand-voice-generate
boltaai
Synthesize a discovery report into a finished, enforceable Bolta Brand Voice Guideline.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
bolta-schedule-and-batch
boltaai
Schedule Bolta posts for a future time and create posts in bulk.
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 21, 2026 (3 months ago)
- Last release
- Feb 16, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/boltaai/bolta-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from boltaai
- 0.557score
reddit-engagement
boltaai
Find Reddit threads this brand can genuinely help with, read them, draft native replies, publish them after approval, and verify the canonical URL.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
social-publishing
boltaai
Write, schedule and publish the brand's own social content — one post or many, one platform or several.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-setup
boltaai
Get a Bolta workspace from zero to automation-ready, and recover from setup/entitlement errors.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
lucia-test
boltaai
The end-to-end acceptance run: understand the brand, inspect its presence, publish something useful, discover third-party conversations, reply to them, work…
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
analytics-review
boltaai
Read what actually happened — reach, engagement, follower movement, which posts worked — and say what to do about it.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
bolta-review-queue
boltaai
Work the Bolta review and approval queues.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
brand-voice-enforce skill. Agent Mart. https://agentmart.dev/skills/boltaai-brand-voice-enforce (last updated 2026-10-24)