内容语调设置
本技能配置 Claude 以在您选择的平台上使用品牌语调进行写作。它会生成一个精简的 CLAUDE.md 指针文件,以及每个选定平台对应的一个 .claude/rules/content-voice-<平台>.md 文件。它不配置发布工具、分析工具、媒体流程或排程——这些明确超出范围。
交接上下文: 读取 skills/_shared/consume-handoff.md 并运行它(使用交接块,如果有的话)。辅助程序保证以下局部变量:detected_language、existing_claude_md、inferred_use_case、repo_signals、graphify_candidate。所有面向用户的文字使用 detected_language;生成的文件内容保持英文。
现有的 CLAUDE.md: 如果 existing_claude_md: true,不要覆盖它。在文件末尾附加一个新的分隔区块:
<!-- onboarding-agent:start setup=content-voice skill=content-voice-setup section=claude-md -->
## Claude Onboarding Agent — 内容语调设置
...生成的内容...
<!-- onboarding-agent:end -->
如果该分隔区块已存在(来自之前的运行),仅替换标记之间的内容;其余部分保持不变。将生成的 .gitignore 条目包裹在 # onboarding-agent: content-voice — start / — end 标记中,以便 /upgrade-setup 可以无损地刷新它们。
辅助文件
在需要使用它们的步骤中按需读取。不要预先读取。
skills/_shared/consume-handoff.md— 编排者交接解析 + 行内回退(前言,步骤 1 之前)skills/_shared/offer-superpowers.md— 规范的 Superpowers 选择加入(步骤 1)
步骤 1: 安装依赖
读取 skills/_shared/offer-superpowers.md 并运行它,参数为 skill_slug: content-voice-setup、mandatory: false、capability_line: "一个广泛使用的免费 Claude Code 技能库。头脑风暴技能有助于在确定某篇文章的语调之前探索不同角度。" 辅助程序会询问用户,在回答“是”时委托给 skills/_shared/installation-protocol.md,并设置 superpowers_installed、superpowers_scope、superpowers_method。
步骤 2: 上下文问题
逐个提问:
-
"您为哪些平台创建基于语调的内容?(多选——用逗号分隔字母,至少选一个) A) YouTube(长视频/脚本) B) 短视频(Instagram Reels/TikTok/Shorts) C) Newsletter/博客(书面长文) D) 播客(对话式音频)"
将答案解析为字母列表。要求至少选择一个——如果输入为空,重新询问一次。存储为
selected_platforms。映射为短标识:- A →
youtube - B →
shortform - C →
newsletter - D →
podcast
- A →
-
"您如何描述您的品牌语调?越具体越好——细节越多,Claude 就能越好地匹配您的风格。 示例:'教育性但随意,就像向聪明的朋友解释事情'、'金融科技领域的专业思想领袖'、'风趣且叛逆的技术评论'、'温暖且亲和的健康内容'"
按原样存储答案为
brand_voice。每个平台的规则文件会将其注入到文件头中。 -
"您的目标受众是谁?(例如:'对 AI 工具感兴趣的 25-40 岁开发者'、'没有技术背景的小企业主'、'寻找快速锻炼方法的健身爱好者')"
存储为
target_audience。
步骤 3: 输出每个平台的语调规则
对于 selected_platforms 中的每个短标识,在 .claude/rules/content-voice-<短标识>.md 写入规则文件。如果文件已存在,则跳过写入并记录 已跳过 .claude/rules/content-voice-<短标识>.md(文件已存在)——不要覆盖用户编辑。
每个规则文件是自包含的(≤ 40 行),并将 brand_voice 和 target_audience 替换到文件头中。使用下面的模板,将 [brand_voice] 和 [target_audience] 替换为捕获的答案。
content-voice-youtube.md
# 内容语调 — YouTube(长视频)
语调档案: [brand_voice]
目标受众: [target_audience]
## 格式规则
- 每个脚本在前 30 秒内以钩子开头:承诺观众将在结尾获得的具体回报。
- 结构:钩子 → 设置(什么问题/疑问) → 回报(答案、故事或演示) → CTA。
- CTA 命名一个单一操作。不要列出“点赞、订阅、评论、加入”等列表。
- 保持句子适合朗读——默认每行口语不超过 20 个单词。
## 语调规则
- 每一稿都要符合上述语调档案。如果一稿读起来像通用的 AI 评论,请重写开头行,直到听起来像 [brand_voice]。
- 直接对目标受众说话。假设他们具备基础知识;不要解释他们已经知道的内容。
## 不要
- 不要写标题党式的介绍而内容无法兑现——钩子必须是对回报的诚实铺垫。
content-voice-shortform.md
# 内容语调 — 短视频(Reels/TikTok/Shorts)
语调档案: [brand_voice]
目标受众: [target_audience]
## 格式规则
- 第一行就是钩子。滚动停止发生在头两秒内。
- 每条帖子只有一个想法。如果第二个想法很重要,那应该是一条单独的帖子。
- 以问题、CTA 或具体收获结尾——永远不要不了了之。
- 总字数紧凑(30 秒剪辑约 30-60 个口语单词)。
## 语调规则
- 语调档案完全匹配 [brand_voice]——短视频会放大语调,因此通用语调是默认失败模式。
- 瞄准 [target_audience];不要为扩大受众而软化。
## 不要
- 不要将钩子埋藏在第一行之后。不要以“那么,今天我想谈谈……”的开场白开头。
content-voice-newsletter.md
# 内容语调 — Newsletter/博客(书面长文)
语调档案: [brand_voice]
目标受众: [target_audience]
## 格式规则
- 主题行要具体,不要耍小聪明——明确指出读者将得到什么收获或什么问题将得到解答。
- 开头是个人化或故事性的(1-3 句);然后是一个核心观点;然后是一个清晰的收获;最后是一个简单的 CTA。
- 允许分节,但不是必须的——宁可用一个紧凑的论点,也不要做成列表文章。
- 以一句读者可以转发给同事的话结尾。
## 语调规则
- 全文语调档案匹配 [brand_voice]——没有任何部分看起来像由不同的作者撰写。
- 根据 [target_audience] 的实际处境来称呼他们,而不是使用身份标签。
## 不要
- 不要发布没有具体收获的版本,读者无法据此行动或记住。
content-voice-podcast.md
# 内容语调 — 播客(对话式音频)
语调档案: [brand_voice]
目标受众: [target_audience]
## 格式规则
- 以钩子冷开场——一个场景、一个问题或一个来自本集的具体时刻。开场音乐在后面。
- 过渡是口头表达,而不是跳切:明确说明转变(“我们稍后再回到这一点——首先……”)。
- 提前准备问题,但留出跟进空间;预先写好的脚本听起来就是预先写好的。
- 以嘉宾的 CTA(如果有的话)结尾,然后是一个单一的主持人 CTA。
## 语调规则
- 语调档案 [brand_voice] 适用于主持人的台词;匹配嘉宾的能量,而不是强迫他们符合你的语调。
- 行话保持在 [target_audience] 的水平;首次使用时进行解释。
## 不要
- 不要说教——保持对话风格。如果某段听起来像独白,就剪掉它或重构为一个问题。
收集实际写入的文件列表(减去任何因文件已存在而跳过的文件),作为 emitted_voice_files,用于完成摘要。
步骤 4: 生成产物
CLAUDE.md
# Claude 指令 — 内容语调
## 品牌
平台: [selected_platforms 的逗号分隔列表]
品牌语调: [brand_voice]
目标受众: [target_audience]
## 范围
此设置仅涵盖语调——不包括发布、分析或媒体流程。对于较长的内容工作流程,请在此基础上添加其他技能或工具。
## 语调规则(按平台)
[对于 selected_platforms 中的每个短标识,输出一个指向规则文件的列表项:]
- YouTube: `.claude/rules/content-voice-youtube.md`
- 短视频: `.claude/rules/content-voice-shortform.md`
- Newsletter/博客: `.claude/rules/content-voice-newsletter.md`
- 播客: `.claude/rules/content-voice-podcast.md`
## 指南
- 始终使用上述定义的品牌语调写作——绝不听起来像通用 AI。
- 在起草之前,查阅目标平台对应的 `.claude/rules/content-voice-<平台>.md` 文件。
- 当被要求跨平台改编时,分别应用每个平台的规则文件——不要在格式之间复制粘贴。
[仅当 superpowers_installed 为 true 时包含]
## Superpowers
已安装 Superpowers。对于构思会议和规划内容系列,使用 `superpowers:brainstorming` 在确定方向之前探索不同角度。
.gitignore
# 大型媒体文件
*.mp4
*.mov
*.avi
*.psd
*.ai
*.sketch
*.fig
# 操作系统
.DS_Store
Thumbs.db
# Claude 本地设置
.claude/settings.local.json
步骤 5: 写入升级元数据
设置 setup_slug: content-voice、skill_slug: content-voice-setup。从插件自身的 plugin.json 解析 plugin_version。然后遵循 skills/_shared/write-meta.md 创建或合并 ./.claude/onboarding-meta.json。
步骤 6: 渲染锚点部分
读取 skills/_shared/anchor-mapping.md。定位 setup_type: content-voice 对应的行。对于该行中的每个锚点短标识:
- 调用
skills/_shared/render-anchor-section.md,参数为:setup_type: content-voiceskill_slug: content-voice-setupanchor_slug: <短标识>target_file: ./CLAUDE.mdfallback_content: <来自 skills/anchors/SKILL.md 中该短标识的内嵌回退>
- 如果已在此技能中生成
./AGENTS.md文件,则使用target_file: ./AGENTS.md重复调用。
如果任何单个 render-anchor-section.md 调用返回 placeholder,不要失败。收集已渲染/占位符短标识用于完成摘要。
对于每次调用,还要捕获 render_freshness。当它不是 network 或 cache(即 fallback 或 embedded)时,将 (anchor_slug, render_freshness) 对记录在 anchor_freshness_notes 中。完成摘要的“锚点新鲜度”行使用此列表。
步骤 7: 完成摘要
✓ 内容语调设置完成!
范围:品牌语调 + 每个平台的语调规则。不涵盖发布、分析和
媒体流程——本技能故意保持狭窄。
创建的文件:
CLAUDE.md — 品牌、范围、语调规则指引
.claude/rules/content-voice-<短标识>.md — 每个选定平台一个文件 [列出 emitted_voice_files;对于跳过的文件注明“(已存在——未作修改)”]
.gitignore — 大型媒体文件规则
.claude/onboarding-meta.json — 供 /upgrade-setup 使用的设置标记
外部技能:
[✓ 通过 superpowers_method 安装了 Superpowers (superpowers_scope)]
[已跳过——稍后使用以下命令安装: /plugin install superpowers@claude-plugins-official]
[⚠ Superpowers 安装失败——手动安装: https://github.com/obra/superpowers]
锚点新鲜度:
[如果 anchor_freshness_notes 为空,则省略整个块;否则每个条目一行:
锚点 <anchor_slug> 来自 <render_freshness>——考虑运行 /anchors 以刷新。]
后续步骤:
启动一个新的 Claude 会话并说:“用我的品牌语调起草一篇关于 [主题] 的 [YouTube 脚本 | 短视频钩子 | newsletter 版本 | 播客冷开场]”
或者:“将这篇博客文章改编为 Instagram Reels,遵循我的短视频语调规则”
- 随时运行 `/anchors` 以刷新锚点衍生部分。如果任何部分因离线模式被渲染为占位符,请在恢复在线后重新运行 `/anchors`。