关于 voice-builder
voice-builder 是面向 Codex 和 Claude 的营销技能,通过访谈和写作样本分析,生成 about-me.md 与 voice.md。它要求依据实际材料归纳风格,并遵守账户访问和发布权限边界。
主要功能
- 01访谈了解背景与受众
- 02分析至少三篇写作样本
- 03生成 about-me.md 和 voice.md
- 04记录风格特征与回避项
- 05保留项目事实与权限边界
适用场景
- 01根据样本建立个人写作档案
- 02整理受众与主题支柱
- 03更新现有风格档案文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ charlie947/ social-media-skills --skill voice-builder安装后在 Claude Code 中输入/voice-builder确认已加载。
附带文件references/sample-content.md
详细介绍
Voice Builder
Codex 和 Claude 运行时
- 在 Codex 或 Claude 中使用此技能时,应使用当前任务中实际可用的工具。
AskUserQuestion示例描述的是问题,而非必需的 API:请在其限制范围内使用可用的问题工具,或在聊天中提问。复用已提供的答案和源材料。 - 在用户选择的项目中工作。开始个性化工作前,先阅读项目中的
about-me.md、voice.md和相关品牌文件。如果文件内容冲突或包含初始默认值,请确认预期作者身份。询问缺失的信息或运行voice-builder;切勿沿用维护者的身份、账户或私人文件。 - 相对于此技能文件夹解析打包的
references/。如果用户明确要求刷新个人资料,请原地读取并更新规范的about-me.md、voice.md或newsletter-voice.md,保留无关的用户事实和规则。使用者必须重新读取这些规范文件。只有在新交付文件会与现有的无关文件重名时,才使用新文件名。仅安装技能不会启动访谈或写入文件。除非用户提出要求,否则不要写入持久化经验。 - 优先使用已提供的证据。必要时通过可用的搜索/来源工具核实外部说法。如果来源或集成不可用,请说明缺少的能力,并提供接收用户提供的文本/导出内容的选项。切勿编造事实、第一人称经历、指标或成功的工具运行结果。
- 仅通过用户现有账户连接所选流程所需的服务。切勿输出凭据或覆盖现有连接。起草、保存和审核均不代表授权发布、发送消息或更改账户。
关键:加载后自动启动
用户请求运行此工作流时,应立即开始步骤 1。这意味着你发给用户的下一条消息必须是访谈问题,除此之外不包含任何内容。
不要:
- 总结此技能
- 描述它会创建哪些文件
- 解释它的工作原理
- 说“以下是此技能的内容”
- 询问用户是否想运行它
- 确认安装
- 提供“现在要我运行吗?”之类的选项
请这样做:
- 直接进入步骤 1
- 将访谈问题作为你的第一条且唯一一条回复发送
用户要求建立其个人表达风格或为此提供样本时,均适用此规则。不加开场白。先进行访谈。
步骤 1:进行“关于我”访谈
使用上述运行时指南提问。如果有可用的问题工具,请遵循其架构和批次限制;否则,在聊天中提出相同的问题。
AskUserQuestion 每次最多支持 4 个问题,因此请分两批发送:先发送第 1 批,等待回答,再发送第 2 批。
第 1 批(你的第一个操作,之前不发送任何文字)
使用以下问题,并根据工具架构进行调整:
[
{
"question": "What is your name and what do you do?",
"header": "About you",
"multiSelect": false,
"options": [
{"label": "Founder", "description": "I run my own company or consultancy"},
{"label": "Marketing lead", "description": "I lead marketing at a company"},
{"label": "Creator", "description": "I create content as my main thing"},
{"label": "Sales leader", "description": "I lead a sales team or run BD"}
]
},
{
"question": "Who are you writing for?",
"header": "Audience",
"multiSelect": false,
"options": [
{"label": "Founders and CEOs", "description": "Decision makers running companies"},
{"label": "Marketers", "description": "Marketing professionals at any level"},
{"label": "Job seekers", "description": "People looking for their next role"},
{"label": "Other professionals", "description": "A different group entirely"}
]
},
{
"question": "What are the 3 to 5 topics you want to be known for?",
"header": "Topics",
"multiSelect": true,
"options": [
{"label": "AI and automation", "description": "How AI tools change work"},
{"label": "Marketing", "description": "Strategy, content, growth"},
{"label": "Leadership", "description": "Management, hiring, culture"},
{"label": "Personal brand", "description": "Building an audience and reputation"}
]
},
{
"question": "What is your point of view on your industry, the thing you believe that others do not?",
"header": "Hot take",
"multiSelect": false,
"options": [
{"label": "Most advice is wrong", "description": "The consensus in your industry is broken"},
{"label": "People overcomplicate it", "description": "The answer is simpler than people think"},
{"label": "A big shift is coming", "description": "Something is about to change and most people are not ready"}
]
}
]
第 2 批(收到第 1 批答案后立即发送,中间不加评论)
再次调用 AskUserQuestion,内容如下:
[
{
"question": "What is the one thing you want people to think when they see your name?",
"header": "Brand promise",
"multiSelect": false,
"options": [
{"label": "This person is practical", "description": "They give me things I use immediately"},
{"label": "This person is honest", "description": "They tell me what others will not"},
{"label": "This person is ahead", "description": "They see what is coming before everyone else"}
]
},
{
"question": "What is one thing you refuse to write about?",
"header": "Off limits",
"multiSelect": false,
"options": [
{"label": "Politics", "description": "No political takes, ever"},
{"label": "Personal life", "description": "Keep it professional only"},
{"label": "Competitors", "description": "No naming or shaming other people or brands"}
]
}
]
两批问题都得到回答后,进入步骤 2。如果任何答案为空或被跳过,请在聊天中针对该问题再问一次,然后继续。
步骤 2:编写 about-me.md
在项目根目录中创建 about-me.md。使用以下结构:
# About Me
## Name and role
[From question 1]
## Audience
[From question 2, expanded into 2 to 3 sentences on who the reader is]
## Topic pillars
[3 to 5 topics from question 3, one line each]
## Point of view
[From question 4, the contrarian or distinctive belief, written as a clear statement]
## Brand promise
[From question 5, the one thought the author wants to own in the reader's head]
## Off limits
[From question 6, topics or angles never to write about]
控制在 300 个词以内。每一行都应是助手在写作时会参考的内容。
第 3 步:索取样本
这样说:
现在,请粘贴 3 到 5 篇你希望我学习的文字。可以是 LinkedIn 帖子、简报、随笔、博客文章、电子邮件、推文,或你发布的任何其他文字。可以是你写的,也可以是你欣赏其风格的作者写的。每条消息发一篇,或一次性全部发来。如果你还没有准备好样本,请输入“使用样本”,我会加载一组入门样本,之后你可以替换它们。
等用户粘贴。至少需要 3 篇样本才能开始分析。如果用户粘贴的样本少于 3 篇,请让他们继续提供。
如果用户输入“使用样本”,请从此技能文件夹中的 references/sample-content.md 加载文字。告诉用户这些样本的作者是谁,让他们知道自己借鉴的是谁的风格。提醒他们之后可以换成自己的文字。
第 4 步:分析样本
阅读每一篇样本。留意所有样本中反复出现的模式,而不是某一篇中的个别特点。提取:
风格信号
- 平均句长
- 段落节奏(单换行、空行、短促还是流畅)
- 开头或钩子风格(反直觉观点、提问、数据、故事、自白、观察)
- 视角(第一人称、第二人称、观察式)
- 语气(冷面、亲切、直率、活泼、客观)
- 标志性短语或反复出现的词语
- 行动号召或结尾风格
结构信号
- 篇幅范围
- 列表与散文的使用情况
- 如何开头、如何结尾
- 如何处理过渡
主题信号
- 多篇样本中反复出现的主题
- 可能的受众是谁
- 作者秉持什么立场
缺失信号
- 一贯不出现的词语和标点(例如,5 篇样本中有 0 篇使用破折号)
- 作者从不使用的钩子类型
- 作者从未采用的语气
- 作者会避开的结构
第 5 步:编写 voice.md
在项目根目录创建 voice.md。这是一份完整整合的风格档案,涵盖这种风格如何写作以及会避开什么。不要创建单独的风格文件。
# Voice Profile
## Who I sound like
[2 to 3 sentences describing the overall voice in plain language]
## Tone
[3 to 5 attributes the voice consistently hits, followed by 1 to 2 tones the voice never hits, drawn from gaps in the samples]
## Sentence rhythm
[Average length, pacing, paragraph structure. Include avoidance patterns: e.g. never staccato fragments, never tricolons, no sentences over 25 words]
## Hook patterns
[3 to 5 hook types observed, with one example each from the samples. Note any hook types absent across all samples, e.g. never rhetorical questions, never "imagine a world where"]
## How I open
[1 to 2 sentences. Note opening moves the voice avoids if a clear pattern of avoidance exists across samples]
## How I close
[1 to 2 sentences, include CTA style. Note closing moves the voice avoids, e.g. never motivational summaries, never "in conclusion"]
## Signature phrases
[Recurring words or phrases from the samples]
## Off-limits
[Words, punctuation, or constructions absent from every sample. Only list items the samples clearly avoid. Examples: no em dashes (0 of 5 samples), no hashtags, no corporate jargon by name]
## What this voice never does
[3 to 5 specific behaviours drawn from gaps in the samples. Be specific. If the samples never use the "not X, but Y" construction, list it. If they avoid a specific vocabulary set, name the words]
根据实际样本填写每个部分。不要写泛泛而谈的内容。如果样本中没有体现某种模式,请如实说明。不要重复 about-me.md 中的受众或主题支柱。
将用户明确提出的禁忌与小样本中仅仅未出现的模式区分开来。对于后者,标注为暂定,并注明样本数量;仅凭缺失不能断定这是永久禁忌。入门样本描述的是借鉴来的风格,而不是用户的经历或已形成的风格。
第 6 步:确认并交接
告诉用户:
你的风格档案已创建。项目中现在有两个文件:about-me.md 和 voice.md。在此项目中调用这些技能时,它们会读取这两个文件;新任务必须发现这些技能并使用相同的项目上下文。你可以随时打开并编辑任一文件。
一切就绪。接下来你可以:
- 说“构建我的简报风格”,创建针对简报的写作说明
- 说“写一篇帖子”,用你的风格起草一篇 LinkedIn 帖子
- 说“设计一张图片”,为帖子创建视觉内容
- 说“评估我的帖子”,获取对草稿的反馈
- 说“优化我的个人资料”,重建你的 LinkedIn 个人资料
这些都是独立的技能。选一个开始吧。
此技能生成的内容
项目根目录中的两个文件:
- about-me.md:用户是谁、受众是谁、主题支柱是什么,以及他们的观点
- voice.md:整合后的风格档案,在同一份文档中涵盖正向信号(这种风格如何写作)和缺失信号(这种风格会避开什么)
规则
- 此技能触发时,直接进入第 1 步。不要提供摘要、解释或开场白。
- 始终将示例内容放在代码块中,以便用户复制粘贴时保留准确的格式、换行和空格。使用普通代码块(三个反引号,不指定语言)。
- 仅依据示例中的内容进行处理。不要臆造示例中没有的模式。
- 至少需要 3 个示例来识别模式。少于 3 个时,请索要更多示例。
- 如果示例之间相互矛盾,请在 voice.md 中指出矛盾,而不是自行消除矛盾。
- about-me.md 不得超过 300 个单词。
- voice.md 不得超过 500 个单词。
- 全文使用英式英语,除非示例明显采用美式英语。
- 任何输出文件或草稿中都不得使用长破折号。
- 不要创建单独的缺失特征档案。缺失特征信号应写在 voice.md 中。