$npx -y skills add harryleemedia/second-brain --skill brand-voice-generatorGenerate tone-of-voice and brand-system files for use with the PPTX Generator and other brand-aware skills. TRIGGERS - Use this skill when user says: - "help me create a brand system" / "set up my brand" - "generate my tone of voice" / "create my voice guidelines" - "configure my
| 1 | # 品牌與語調產生器 |
| 2 | |
| 3 | 產生完整的品牌設定檔,供 PPTX 產生器和其他品牌感知技能使用。此技能引導使用者透過互動流程來定義品牌識別和寫作語調。 |
| 4 | |
| 5 | ## 產生的檔案 |
| 6 | |
| 7 | | 檔案 | 用途 | 使用者 | |
| 8 | |------|---------|---------| |
| 9 | | `brand.json` | 顏色、字型、素材 | PPTX 產生器、Excalidraw | |
| 10 | | `config.json` | 輸出設定 | PPTX 產生器 | |
| 11 | | `brand-system.md` | 設計哲學與準則 | 所有內容技能 | |
| 12 | | `tone-of-voice.md` | 寫作語調與個性 | LinkedIn、X、PPTX 內容 | |
| 13 | |
| 14 | ## 輸出位置 |
| 15 | |
| 16 | 檔案建立在: |
| 17 | ``` |
| 18 | .claude/skills/pptx-generator/brands/{brand-name}/ |
| 19 | ``` |
| 20 | |
| 21 | --- |
| 22 | |
| 23 | ## 流程概覽 |
| 24 | |
| 25 | 1. **收集品牌基本資訊** - 名稱、描述、主要用途 |
| 26 | 2. **定義顏色** - 完整系統的 10 個色值 |
| 27 | 3. **定義字型** - 標題、內文和程式碼字型 |
| 28 | 4. **定義素材** - Logo 和圖示路徑 |
| 29 | 5. **探索語調** - 個性、詞彙、句型模式 |
| 30 | 6. **建立設計哲學** - 核心原則和標誌性元素 |
| 31 | 7. **產生檔案** - 用收集到的資訊建立所有四個檔案 |
| 32 | 8. **驗證設定** - 確認檔案正確放置 |
| 33 | |
| 34 | --- |
| 35 | |
| 36 | ## 步驟 1:收集品牌基本資訊 |
| 37 | |
| 38 | 詢問使用者: |
| 39 | |
| 40 | | 欄位 | 說明 | 範例 | |
| 41 | |-------|-------------|---------| |
| 42 | | **品牌名稱** | 資料夾名稱(小寫、無空格、可用連字號) | `my-brand`、`acme-corp` | |
| 43 | | **顯示名稱** | 易讀的名稱 | "My Brand"、"ACME Corporation" | |
| 44 | | **描述** | 一行品牌描述 | "AI 教育內容和社群" | |
| 45 | | **主要用途** | 主要內容類型 | 簡報、社群媒體、文件 | |
| 46 | |
| 47 | **建議提問:** |
| 48 | > 「讓我們來設定你的品牌。你的品牌名稱是什麼?(這將作為資料夾名稱——使用小寫和連字號,例如 'my-brand')」 |
| 49 | |
| 50 | --- |
| 51 | |
| 52 | ## 步驟 2:定義顏色 |
| 53 | |
| 54 | 收集 10 個色值。顏色應為不含 `#` 前綴的十六進位碼。 |
| 55 | |
| 56 | ### 必要顏色 |
| 57 | |
| 58 | | 顏色 | 用途 | 指引 | |
| 59 | |-------|---------|----------| |
| 60 | | `background` | 主要投影片/頁面背景 | 深色主題:接近黑色。淺色主題:白色/灰白 | |
| 61 | | `background_alt` | 替代背景增加變化 | 背景色的略微不同色調 | |
| 62 | | `text` | 主要文字顏色 | 與背景高對比 | |
| 63 | | `text_secondary` | 次要/較淡文字 | 比主要文字對比略低 | |
| 64 | | `accent` | 主要強調色(行動呼籲、高亮) | 你的品牌標誌色 | |
| 65 | | `accent_secondary` | 次要強調色 | 主要強調色的補色 | |
| 66 | | `accent_tertiary` | 第三強調色(選填的多樣性) | 另一個補色,或與次要相同 | |
| 67 | | `code_bg` | 程式碼區塊背景 | 比主背景更深 | |
| 68 | | `card_bg` | 卡片/表面背景 | 介於背景和文字之間 | |
| 69 | | `card_bg_alt` | 替代卡片背景 | card_bg 的輕微變化 | |
| 70 | |
| 71 | ### 顏色探索提問 |
| 72 | |
| 73 | 如果使用者沒有完整的顏色系統,引導他們: |
| 74 | |
| 75 | 1. 「你的品牌標誌色是什麼?(這會成為你的主要強調色)」 |
| 76 | 2. 「你偏好深色主題(深色背景、淺色文字)還是淺色主題?」 |
| 77 | 3. 「你有次要顏色嗎?還是需要我建議補色?」 |
| 78 | |
| 79 | ### 依主題建議顏色 |
| 80 | |
| 81 | **深色主題**,建議: |
| 82 | ``` |
| 83 | background: 0a0a0a 到 1a1a2e 範圍 |
| 84 | text: f5f5f5 到 ffffff 範圍 |
| 85 | card_bg: 1a1a1a 到 2d2d44 範圍 |
| 86 | ``` |
| 87 | |
| 88 | **淺色主題**,建議: |
| 89 | ``` |
| 90 | background: ffffff 到 f8f9fa 範圍 |
| 91 | text: 1a1a1a 到 333333 範圍 |
| 92 | card_bg: f0f0f0 到 e8e8e8 範圍 |
| 93 | ``` |
| 94 | |
| 95 | --- |
| 96 | |
| 97 | ## 步驟 3:定義字型 |
| 98 | |
| 99 | 收集 3 個字型名稱: |
| 100 | |
| 101 | | 字型 | 用途 | 常見選擇 | |
| 102 | |------|---------|----------------| |
| 103 | | `heading` | 標題、大標題、按鈕 | Inter、Montserrat、Poppins、Roboto | |
| 104 | | `body` | 內文、描述 | Inter、Open Sans、Lato、Source Sans Pro | |
| 105 | | `code` | 程式碼區塊、終端 | JetBrains Mono、Fira Code、Monaco、Consolas | |
| 106 | |
| 107 | **提問:** |
| 108 | > 「我們應該使用什麼字型?我需要標題字型、內文字型和程式碼/等寬字型。常見選擇是標題和內文都用 Inter,程式碼用 JetBrains Mono。」 |
| 109 | |
| 110 | **不確定時的預設:** |
| 111 | - 標題:Inter |
| 112 | - 內文:Inter |
| 113 | - 程式碼:JetBrains Mono |
| 114 | |
| 115 | --- |
| 116 | |
| 117 | ## 步驟 4:定義素材 |
| 118 | |
| 119 | 收集素材路徑(相對於品牌資料夾): |
| 120 | |
| 121 | | 素材 | 說明 | 常見 | |
| 122 | |-------|-------------|--------| |
| 123 | | `logo` | 主要 Logo 檔案 | `assets/logo.png` | |
| 124 | | `logo_dark` | 深色背景用的 Logo 變體(選填) | `null` 或 `assets/logo-dark.png` | |
| 125 | | `icon` | 方形圖示(選填) | `null` 或 `assets/icon.png` | |
| 126 | |
| 127 | **提問:** |
| 128 | > 「你有 Logo 檔案嗎?如果有,你需要將它複製到品牌資料夾。檔名是什麼?(例如 'logo.png')」 |
| 129 | |
| 130 | 如果他們有 Logo,將路徑設為 `assets/logo.png`(他們會複製過去)。 |
| 131 | 如果沒有 Logo,設為 `null`。 |
| 132 | |
| 133 | --- |
| 134 | |
| 135 | ## 步驟 5:探索語調 |
| 136 | |
| 137 | 這是對內容品質最重要的步驟。引導使用者進行語調探索。 |
| 138 | |
| 139 | ### 語調探索提問 |
| 140 | |
| 141 | 提出以下問題來理解他們的語調: |
| 142 | |
| 143 | 1. **用 3 個詞描述個性:** |
| 144 | > 「用恰好 3 個詞描述你的品牌個性。例如:『大膽、技術、平易近人』或『沉穩、權威、有幫助』」 |
| 145 | |
| 146 | 2. **語調影響:** |
| 147 | > 「你欣賞哪 2-3 位創作者、品牌或人物的溝通風格?這幫助我理解氛圍。」 |
| 148 | |
| 149 | 3. **詞彙模式:** |
| 150 | > 「你常用什麼詞或短語?有任何口頭禪、你喜歡的加強詞('超級'、'非常'),或你自然會用的詞嗎?」 |
| 151 | |
| 152 | 4. **避免什麼:** |
| 153 | > 「你想避免什麼樣的語調或用語?(例如,企業腔、炒作語言、過於隨意)」 |
| 154 | |
| 155 | 5. **句型風格:** |
| 156 | > 「你偏好:簡短有力的句子、較長流暢的解釋,還是混合使用?你會隨意使用縮寫嗎?」 |
| 157 | |
| 158 | 6. **教學風格(如適用):** |
| 159 | > 「當解釋複雜的東西時,你怎麼處理?展示過程/迭代?使用類比?先講實務再講理論?」 |
| 160 | |
| 161 | ### 語調範本參考 |
| 162 | |
| 163 | 閱讀 `references/voice-templates.md` 以取得語調設定範例來展示給使用者。 |
| 164 | |
| 165 | --- |
| 166 | |
| 167 | ## 步驟 6:建立設計哲學 |
| 168 | |
| 169 | 根據收集的資訊,幫助定義: |
| 170 | |
| 171 | ### 核心原則(3-4 個) |
| 172 | |
| 173 | 提問: |
| 174 | > 「有哪 3-4 個設計原則引導你的視覺選擇?例如:『簡潔勝過花俏』、『技術但平易近人』、『預設深色模式』」 |
| 175 | |
| 176 | ### 標誌性元素 |
| 177 | |
| 178 | 提問: |
| 179 | > 「你有任何標誌性的視覺元素嗎?例如:玻璃卡片效果、特定的陰影風格、漸層模式、幾何形狀、發光效果」 |
| 180 | |
| 181 | 如果不確定,根據他們的顏色和主題來建議。 |
| 182 | |
| 183 | --- |
| 184 | |
| 185 | ## 步驟 7:產生檔案 |
| 186 | |
| 187 | 用收集到的資訊建立所有四個檔案。 |
| 188 | |
| 189 | ### brand.json |
| 190 | |
| 191 | ```json |
| 192 | { |
| 193 | "name": "{display_name}", |
| 194 | "description": "{description}", |
| 195 | |
| 196 | "colors": { |
| 197 | "background": "{background}", |
| 198 | "background_alt": "{background_alt}", |
| 199 | "text": "{text}", |
| 200 | "text_secondary": "{text_secondary}", |
| 201 | "accent": "{accent}", |
| 202 | "accent_secondary": "{accent_secondary}", |
| 203 | "accent_tertiary": "{accent_tertiary}", |
| 204 | "code_bg": "{code_bg}", |
| 205 | "card_bg": "{card_bg}", |
| 206 | "card_bg_alt": "{card_bg_alt}" |
| 207 | }, |
| 208 | |
| 209 | "fonts": { |
| 210 | "heading": "{heading_font}", |
| 211 | "body": "{body_font}", |
| 212 | "code": "{code_font}" |
| 213 | }, |
| 214 | |
| 215 | "assets": { |
| 216 | "logo": "{logo_path}", |
| 217 | "logo_dark": {logo_dark_path}, |
| 218 | "icon": {icon_path} |
| 219 | } |
| 220 | } |
| 221 | ``` |
| 222 | |
| 223 | ### config.json |
| 224 | |
| 225 | ```json |
| 226 | { |
| 227 | "output": { |
| 228 | "directory": "output/{brand_name}", |
| 229 | "naming": "{name}-{date}", |
| 230 | "keep_parts": false |
| 231 | }, |
| 232 | "generation": { |
| 233 | "slides_per_batch": 5, |
| 234 | "auto_combine": true, |
| 235 | "open_after_generate": false |
| 236 | }, |
| 237 | "defaults": { |
| 238 | "slide_width_inches": 13.333, |
| 239 | "slide_height_inches": |