$npx -y skills add indranilbanerjee/contentforge --skill cf-style-guideImport brand voice profiles from documents or URLs. Use when setting up or updating a brand.
| 1 | # Brand Style Guide Importer |
| 2 | |
| 3 | Import brand voice profiles from existing style guide documents, URLs, or manual input. Extracts tone, formality, personality traits, writing style, approved/banned terminology, and compliance guardrails into a structured brand profile JSON that the ContentForge pipeline uses for every piece of content it produces. |
| 4 | |
| 5 | ## When to Use |
| 6 | |
| 7 | Use `/contentforge:cf-style-guide` when: |
| 8 | - You're **onboarding a new brand** and have an existing style guide document (.docx, .pdf) or URL |
| 9 | - You need to **update an existing brand profile** with revised guidelines |
| 10 | - You want to **extract terminology and guardrails** from compliance documents |
| 11 | - You're setting up ContentForge for a **regulated industry** (Pharma, BFSI, Healthcare, Legal) where guardrails are critical |
| 12 | - You want to **validate** that an existing brand profile matches current guidelines |
| 13 | - A client provided a **style guide URL** (Notion page, Google Doc, website page) and you need to import it |
| 14 | |
| 15 | **For creating a brand profile from scratch** (no existing style guide), use `/contentforge:brand-setup` with interactive mode. |
| 16 | **For using an existing brand profile**, just reference it by name in `/contentforge:create-content --brand=BrandName`. |
| 17 | |
| 18 | ## What This Command Does |
| 19 | |
| 20 | 1. **Load Style Guide** — Fetch style guide from URL (via WebFetch), parse .docx/.pdf document, or accept manual input |
| 21 | 2. **Extract Voice Characteristics** — Identify tone (authoritative, conversational, technical, witty), formality level (1-5), personality traits, and writing style patterns |
| 22 | 3. **Identify Terminology** — Parse approved terms, banned/prohibited terms, industry-specific jargon, preferred spellings, and acronym definitions |
| 23 | 4. **Parse Compliance Requirements** — Extract guardrails, required disclaimers, prohibited claims, regulatory requirements, and sensitivity guidelines |
| 24 | 5. **Generate Brand Profile JSON** — Create or update a structured JSON profile following the `brand-registry-template.json` schema |
| 25 | 6. **Save and Validate** — Save profile to Google Drive (via MCP) or local cache using the brand-cache-manager pattern, and validate the profile works with the ContentForge pipeline |
| 26 | 7. **Configure Tracking Backend** — Choose where ContentForge tracks quality scores and delivers output files: Google Sheets + Drive, Airtable, or local filesystem |
| 27 | |
| 28 | ## Required Inputs |
| 29 | |
| 30 | **Minimum Required:** |
| 31 | - **Brand Name** — The name for this brand profile (used in `--brand=` across all skills) |
| 32 | |
| 33 | **Style Guide Source (one of):** |
| 34 | - **URL** — Public URL to a style guide page (Notion, Google Docs published link, website page, Confluence page) |
| 35 | - **Document** — Path to a .docx or .pdf style guide file |
| 36 | - **Manual Input** — Interactive mode where you provide voice/terminology/guardrails step by step |
| 37 | |
| 38 | **Import Scope:** |
| 39 | - **voice** — Extract only voice and tone characteristics |
| 40 | - **terminology** — Extract only approved/banned terms |
| 41 | - **guardrails** — Extract only compliance requirements and guardrails |
| 42 | - **all** (default) — Extract everything: voice + terminology + guardrails |
| 43 | |
| 44 | ## How to Use |
| 45 | |
| 46 | ### Import from URL |
| 47 | ``` |
| 48 | /contentforge:cf-style-guide AcmeMed --source=https://acmemed.com/brand-guidelines |
| 49 | ``` |
| 50 | |
| 51 | ### Import from Document |
| 52 | ``` |
| 53 | /contentforge:cf-style-guide AcmeMed --source=./AcmeMed-Style-Guide.docx |
| 54 | ``` |
| 55 | |
| 56 | ### Import from Notion Page |
| 57 | ``` |
| 58 | /contentforge:cf-style-guide AcmeMed --source=https://www.notion.so/acme/Brand-Guidelines-abc123 |
| 59 | ``` |
| 60 | |
| 61 | ### Import Only Terminology |
| 62 | ``` |
| 63 | /contentforge:cf-style-guide AcmeMed --source=https://acmemed.com/terminology --scope=terminology |
| 64 | ``` |
| 65 | |
| 66 | ### Import Only Guardrails (Compliance) |
| 67 | ``` |
| 68 | /contentforge:cf-style-guide AcmeMed --source=./compliance-requirements.pdf --scope=guardrails |
| 69 | ``` |
| 70 | |
| 71 | ### Manual Input (No Document) |
| 72 | ``` |
| 73 | /contentforge:cf-style-guide AcmeMed --source=manual |
| 74 | ``` |
| 75 | **Prompts you for:** |
| 76 | 1. Voice & Tone (select from presets or describe) |
| 77 | 2. Formality level (1-5) |
| 78 | 3. Personality traits (3-5 adjectives) |
| 79 | 4. Approved terminology (comma-separated) |
| 80 | 5. Banned terminology (comma-separated) |
| 81 | 6. Guardrails and compliance requirements |
| 82 | |
| 83 | ### Update Existing Profile |
| 84 | ``` |
| 85 | /contentforge:cf-style-guide AcmeMed --source=https://acmemed.com/updated-guidelines --update |
| 86 | ``` |
| 87 | Merges new information into the existing profile without overwriting unchanged fields. |
| 88 | |
| 89 | ## What Happens |
| 90 | |
| 91 | ### Step 0: Check Drive for existing brand profile (v3.12.10+, Cowork only) |
| 92 | |
| 93 | Before parsing any new source, check whether this brand already has a profile saved in Drive from a previous session. This is critical in Cowork because the sandbox FS is recycled — without this check, every Cowork session would re-create the same brand from scratch. |
| 94 | |
| 95 | ```bash |
| 96 | python {scripts_dir}/drive-sync-state.py --action read-config |
| 97 | ``` |
| 98 | |
| 99 | If the config returns `configured: false` OR `environment != "cowork-sandbox"`, skip to Step 1 (this is the local-mod |