---
name: yourbrand-copywriting
description: YourBrand brand copywriting prompts and style guidelines. Use when generating tweets, LinkedIn posts, Facebook posts, or any text content for the YourBrand brand.
user-invocable: false
---

# YourBrand Copywriting

## Triggers

- Writing tweets or X threads
- Writing LinkedIn posts
- Writing Facebook posts
- Writing text-only social media content
- "Write a post about X"
- "Help me draft a tweet"

## SSoT Architecture

All copywriting rules live in the ProjectA database, accessed via MCP.

| Domain | SSoT Location | Accessed via |
|--------|--------------|-------------|
| Brand voice + personal quirks | CF DB `organizations.settings.brandVoice` | MCP `render_prompt` (Layer 2) |
| Platform best practices | CF DB `prompt_templates._platform_best_practices` | MCP `render_prompt` (Layer 1) |
| X/Twitter formatting & thread rules | CF DB `organizations.settings.platformStyleOverrides.x` | MCP `render_prompt` (Layer 3) |
| Credentials, Identity, Target Audience | Google Sheet `YourBrand Hub` > `TextPosts` tab, Column G | Sheets MCP |
| Brand Q&A context | Google Sheet `YourBrand Hub` > `Q&A for AI` tab | Sheets MCP |
| Video content copywriting | CF DB `prompt_templates` (pipelines) | NOT this skill - handled by CF app |

Sheet ID: `SPREADSHEET_ID_YOURBRAND_HUB`

## Workflow

### Generating Social Posts

**Primary path — `generate_social_post`:**
```
mcp__your-app__generate_social_post(
  postName="Topic title",
  information="Full context/brief for the post",
  targetPlatforms=[{"platform": "twitter"}]
)
```
This handles everything: prompt composition (all 4 layers), LLM call, content entry creation, pipeline integration. No manual steps needed.

**If MCP is unavailable** (e.g., working outside a project with MCP configured), fall back to:
- `~/repos/MyProjectAdocsbrandyourbrand-text-posts.md` (human-readable reference, NOT the SSoT)
- The DB is still the SSoT - the file may be stale

### Brand Context (for manual/non-MCP workflows only)

If writing copy without the MCP pipeline, fetch brand context manually:
1. **Brand Q&A:** Delegate to sheets-agent — read `Q&A for AI` tab from sheet `SPREADSHEET_ID_YOURBRAND_HUB`
2. **For LinkedIn/Facebook:** Also read `TextPosts (Serious, not typical Tweets)` tab from same sheet

## Output Delivery

**Use `generate_social_post` for social posts, NOT `execute_prompt`.**
- `generate_social_post` — creates a content entry in the pipeline, saves posts to copywriting tables with approval chain, returns entry URL + public view URL. **This is the correct tool.**
- `execute_prompt` — low-level, no pipeline integration, orphaned generation log with no content entry. **Wrong tool for social posts.**
- `render_prompt` — preview only, no LLM call. Use only for inspecting the composed prompt.

**Output = ProjectA link. No local files.**
1. Call `mcp__your-app__generate_social_post` with postName, information, and targetPlatforms
2. Open the returned URLs with `start <url>`
3. Present both the entry URL (logged-in pipeline view) and viewUrl (public shareable) to the user
4. **Never create .txt files, never write copy to local files** — ProjectA UI is the SSoT for viewing/editing/copying generated content

**Before generating:**
- Resolve all dilemmas in chat FIRST (ask user to choose)
- The generation is FINAL — not a draft with options
- User's intent: take ALL posts from the CF page and post them, not choose among them

## Anti-Patterns

- **Never duplicate style rules** in this skill - they live in ProjectA DB (brandVoice, platformStyleOverrides, _platform_best_practices)
- 🚨 **Never dump generated post content to terminal** — user reads/edits posts in CF UI, not in terminal. If CF URL is broken or shows incomplete content, fix the URL (correct route, entry ID) — don't paste post text as a workaround
