blog-brand
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBlog Brand: Durable Editorial Context
博客品牌:持久的编辑语境
Generates two project-root files that every blog sub-skill auto-loads when present:
- : who the audience is, what the brand stands for, what to never say
BRAND.md - : how the brand sounds, structurally and lexically
VOICE.md
These are the editorial equivalent of impeccable's PRODUCT.md / DESIGN.md pattern: persistent context that survives across sessions and propagates to every command.
生成两个项目根目录文件,所有博客子Skill在文件存在时会自动加载:
- :受众群体、品牌主张、禁忌内容
BRAND.md - :品牌语调的结构与用词风格
VOICE.md
这相当于编辑领域中impeccable的PRODUCT.md / DESIGN.md模式:可跨会话留存并传递至每个命令的持久化语境。
Why this exists
功能背景
Today, persona JSON (from ) is loaded by some skills and not others. Topic-cluster context lives inside cluster vaults. Competitor positioning lives nowhere. Each blog command re-derives "what is the brand" from whatever context it has.
blog-personaBRAND.mdVOICE.mdblogWhen neither file exists, behavior is unchanged from v1.7.1. Backward compatible.
目前,来自的persona JSON仅被部分Skill加载,主题集群语境存储在集群库中,竞品定位无统一存储位置。每个博客命令都要从自身拥有的语境中重新推导“品牌是什么”。
blog-personaBRAND.mdVOICE.mdblog当两个文件都不存在时,行为与v1.7.1版本保持一致,具备向后兼容性。
Commands
命令
| Command | Purpose |
|---|---|
| Interactive interview, writes BRAND.md and VOICE.md to project root |
| Display current contents (or report missing) |
| Re-run the interview with current values as defaults |
| 命令 | 用途 |
|---|---|
| 交互式访谈,将BRAND.md和VOICE.md写入项目根目录 |
| 显示当前文件内容(或报告文件缺失) |
| 以当前值为默认值重新运行访谈 |
Init Workflow
初始化流程
Run the 5-step interactive interview. Ask each step, wait for response, then proceed. If JSON already exists, pre-fill voice answers from it.
blog-persona运行包含5个步骤的交互式访谈。逐个提问,等待用户回复后再进行下一步。如果的JSON已存在,则自动填充语调相关问题的答案。
blog-personaStep 1: Audience
步骤1:受众
Ask:
- Primary audience role (e.g. "head of marketing at a 50-500 person B2B SaaS")
- Secondary audience (optional)
- Reader expertise level: beginner / intermediate / advanced / mixed
- Problems the reader is actively trying to solve (3 to 5 bullets)
- Common misconceptions the audience holds (used to anchor information gain)
提问:
- 核心受众角色(例如:“50-500人规模B2B SaaS公司的营销负责人”)
- 次要受众(可选)
- 读者专业水平:入门级 / 进阶级 / 专家级 / 混合
- 读者正在解决的核心问题(3-5条)
- 受众常见误解(用于锚定信息增量)
Step 2: Positioning
步骤2:品牌定位
Ask:
- One-sentence brand mission (what the brand helps people do)
- Distinctive point of view (the contrarian or non-obvious belief that shapes content)
- What this brand is NOT (anti-positioning, what to never be confused with)
- Top 3 direct competitors with the one-line differentiator vs each
提问:
- 一句话品牌使命(品牌能帮助用户完成什么)
- 独特观点(塑造内容的逆向或非显而易见的理念)
- 品牌非定位(反向定位,绝不与哪些内容混淆)
- Top 3直接竞品及与每个竞品的差异化描述(一句话)
Step 3: Editorial rules
步骤3:编辑规则
Ask:
- Do list (3 to 7 things the blog will always do; e.g. "cite primary sources only," "name the practitioner not the product")
- Don't list (3 to 7 things the blog will never do; e.g. "no clickbait titles," "no listicle filler")
- Taboo phrases (specific words or phrases this brand never uses; complements but is separate from the AI-detection blocklist)
- Required disclosures (e.g. affiliate disclosure, AI-content disclosure, conflict-of-interest patterns)
提问:
- 必做事项(博客始终遵循的3-7条规则;例如:“仅引用一手资料”“提及从业者而非产品”)
- 禁止事项(博客绝不触碰的3-7条规则;例如:“拒绝标题党”“拒绝列表凑数内容”)
- 禁忌用语(品牌绝不使用的特定词汇或短语;与AI检测黑名单互补但相互独立)
- 强制披露要求(例如: affiliate披露、AI内容披露、利益冲突声明规则)
Step 4: Topic boundaries
步骤4:主题边界
Ask:
- Topics fully in scope (core content pillars)
- Topics partially in scope (adjacent; covered only with original angle)
- Topics out of scope (will not cover; redirect to partner content)
- Recurring formats / column names if any (e.g. "Monthly Field Notes," "Reader Q&A")
提问:
- 核心主题(核心内容支柱)
- 关联主题(相邻领域;仅在有原创视角时覆盖)
- 排除主题(绝不覆盖;引导至合作方内容)
- 固定栏目/格式(如有;例如:“月度实地笔记”“读者问答”)
Step 5: Voice (auto-fill from blog-persona if present)
步骤5:语调(若存在blog-persona则自动填充)
Ask:
- Pronoun stance: first-person (we / I), second-person (you), third-person (the team), or mixed
- Acceptable contractions: full / partial / none
- Sentence ceiling: max words per sentence as a hard cap
- Paragraph ceiling: max words per paragraph (default 150)
- Headline patterns to favor: numbered / question / promise / statement
- Headline patterns to avoid: any patterns banned for this brand
- Summary box label: from blog-persona, or pick one
提问:
- 人称立场:第一人称(我们/我)、第二人称(你)、第三人称(团队)或混合
- 允许的缩写形式:全部允许 / 部分允许 / 不允许
- 句子长度上限:单句最大单词数(硬性限制)
- 段落长度上限:单段最大单词数(默认150)
- 偏好的标题格式:数字式 / 疑问式 / 承诺式 / 陈述式
- 禁用的标题格式:品牌禁止的任何格式
- 摘要框标签:来自blog-persona或自定义选择
Output Files
输出文件
BRAND.md template
BRAND.md模板
Write to project root as:
markdown
undefined写入项目根目录,格式如下:
markdown
undefinedBrand Context
Brand Context
This file is auto-loaded by all blog sub-skills. Last updated: YYYY-MM-DD.
This file is auto-loaded by all blog sub-skills. Last updated: YYYY-MM-DD.
Audience
Audience
- Primary: [role + context]
- Secondary: [if any]
- Expertise: [level]
- Active problems:
- [problem 1]
- [problem 2]
- [problem 3]
- Common misconceptions:
- [misconception 1]
- [misconception 2]
- Primary: [role + context]
- Secondary: [if any]
- Expertise: [level]
- Active problems:
- [problem 1]
- [problem 2]
- [problem 3]
- Common misconceptions:
- [misconception 1]
- [misconception 2]
Positioning
Positioning
- Mission: [one sentence]
- Distinctive POV: [contrarian or non-obvious belief]
- What we are NOT: [anti-positioning]
- Competitors:
- [Competitor A]: [our one-line differentiator]
- [Competitor B]: [our one-line differentiator]
- [Competitor C]: [our one-line differentiator]
- Mission: [one sentence]
- Distinctive POV: [contrarian or non-obvious belief]
- What we are NOT: [anti-positioning]
- Competitors:
- [Competitor A]: [our one-line differentiator]
- [Competitor B]: [our one-line differentiator]
- [Competitor C]: [our one-line differentiator]
Editorial Rules
Editorial Rules
Always do
Always do
- [rule 1]
- [rule 2]
- [rule 3]
- [rule 1]
- [rule 2]
- [rule 3]
Never do
Never do
- [rule 1]
- [rule 2]
- [rule 3]
- [rule 1]
- [rule 2]
- [rule 3]
Taboo phrases
Taboo phrases
- [phrase 1]
- [phrase 2]
- [phrase 1]
- [phrase 2]
Required disclosures
Required disclosures
- [disclosure rule]
- [disclosure rule]
Topic Scope
Topic Scope
- In scope: [pillars]
- Partial scope: [adjacent topics]
- Out of scope: [topics to refuse]
- Recurring formats: [if any]
undefined- In scope: [pillars]
- Partial scope: [adjacent topics]
- Out of scope: [topics to refuse]
- Recurring formats: [if any]
undefinedVOICE.md template
VOICE.md模板
Write to project root as:
markdown
undefined写入项目根目录,格式如下:
markdown
undefinedVoice Context
Voice Context
This file is auto-loaded by all blog sub-skills. Last updated: YYYY-MM-DD.
This file is auto-loaded by all blog sub-skills. Last updated: YYYY-MM-DD.
Pronoun stance
Pronoun stance
[first-person / second-person / third-person / mixed]
[first-person / second-person / third-person / mixed]
Lexical rules
Lexical rules
- Contractions: [full / partial / none]
- Sentence ceiling: [N words max]
- Paragraph ceiling: [N words max, default 150]
- Summary label: [Key Takeaways / TL;DR / etc.]
- Contractions: [full / partial / none]
- Sentence ceiling: [N words max]
- Paragraph ceiling: [N words max, default 150]
- Summary label: [Key Takeaways / TL;DR / etc.]
Headline patterns
Headline patterns
- Favor: [list]
- Avoid: [list]
- Favor: [list]
- Avoid: [list]
Voice fingerprint (from blog-persona)
Voice fingerprint (from blog-persona)
- Funny vs serious: [0.0 to 1.0]
- Formal vs casual: [0.0 to 1.0]
- Respectful vs irreverent: [0.0 to 1.0]
- Enthusiastic vs matter-of-fact: [0.0 to 1.0]
- Funny vs serious: [0.0 to 1.0]
- Formal vs casual: [0.0 to 1.0]
- Respectful vs irreverent: [0.0 to 1.0]
- Enthusiastic vs matter-of-fact: [0.0 to 1.0]
Readability target
Readability target
- Audience tier: [consumer / professional / technical]
- Flesch Grade: [range]
- Flesch Ease: [range]
- Audience tier: [consumer / professional / technical]
- Flesch Grade: [range]
- Flesch Ease: [range]
Reference samples
Reference samples
- [URL 1] (extracted patterns: [summary])
- [URL 2] (extracted patterns: [summary])
undefined- [URL 1] (extracted patterns: [summary])
- [URL 2] (extracted patterns: [summary])
undefinedShow Workflow
查看流程
- Check for and
BRAND.mdat project root.VOICE.md - If both exist, print a summary table (key sections only) and the file paths.
- If one or both are missing, print which are missing and suggest .
/blog brand init
- 检查项目根目录下是否存在和
BRAND.md。VOICE.md - 若两者均存在,打印关键内容的摘要表格及文件路径。
- 若其中一个或两个缺失,打印缺失情况并建议运行。
/blog brand init
Update Workflow
更新流程
Same as Init, but pre-fills every answer with the current value. The user can press enter to accept or type a new value. After collecting all answers, overwrite both files with the new contents and update the line.
Last updated:与初始化流程相同,但所有问题均以当前值为默认值。用户可按回车接受默认值或输入新值。收集所有答案后,覆盖两个文件的内容并更新行。
Last updated:Integration with the blog orchestrator
与博客编排器的集成
When , , , , , or runs, the orchestrator () checks for and at the project root. If present, the contents are injected into the system prompt for downstream agents (, , , ).
/blog write/blog rewrite/blog brief/blog outline/blog calendar/blog strategyskills/blog/SKILL.mdBRAND.mdVOICE.mdblog-researcherblog-writerblog-seoblog-reviewerIf absent, behavior is unchanged. The orchestrator does not prompt the user to create them; they are opt-in context.
当运行、、、、或时,编排器()会检查项目根目录下的和。若文件存在,内容会被注入下游Agent(、、、)的系统提示词中。
/blog write/blog rewrite/blog brief/blog outline/blog calendar/blog strategyskills/blog/SKILL.mdBRAND.mdVOICE.mdblog-researcherblog-writerblog-seoblog-reviewer若文件不存在,行为保持不变。编排器不会提示用户创建文件,属于可选语境。
Relationship to blog-persona
与blog-persona的关系
| Concern | blog-persona | blog-brand |
|---|---|---|
| Structured persona JSON for programmatic use | Yes | No |
| Readable brand context for cross-skill prompts | No | Yes |
| Audience and positioning | No | Yes |
| Taboo phrases and editorial don'ts | Partial (don't list) | Full (taboo + disclosures + scope) |
| Competitor differentiation | No | Yes |
| Topic boundaries | No | Yes |
| Voice fingerprint (tone sliders) | Yes (canonical) | Mirror (read-only) |
blog-brandblog-personaVOICE.mdIf no persona exists when runs, the voice questions still produce a . Users who want programmatic enforcement can run after.
/blog brand initVOICE.md/blog persona create| 关注点 | blog-persona | blog-brand |
|---|---|---|
| 用于程序化调用的结构化persona JSON | 是 | 否 |
| 用于跨Skill提示词的易读品牌语境 | 否 | 是 |
| 受众与品牌定位 | 否 | 是 |
| 禁忌用语与编辑禁止事项 | 部分支持(禁止列表) | 全面支持(禁忌用语+披露要求+主题范围) |
| 竞品差异化 | 否 | 是 |
| 主题边界 | 否 | 是 |
| 语调特征(滑块) | 是(权威来源) | 镜像(只读) |
blog-brandblog-personaVOICE.md若运行时不存在persona,语调相关问题仍会生成。需要程序化执行规则的用户可在后续运行。
/blog brand initVOICE.md/blog persona createError Handling
错误处理
- Project root unclear: ask the user where to write the files. Default is the current working directory.
- Files already exist on init: ask whether to overwrite or run update instead.
- Persona referenced but missing: ask whether to leave the persona reference blank or create one.
- Reader provides minimal answers: prompt for at least 2 audience bullets and 3 editorial rules; refuse to write skeletons.
- 项目根目录不明确:询问用户文件写入位置,默认当前工作目录。
- 初始化时文件已存在:询问用户是否覆盖或改为运行更新流程。
- 引用的persona不存在:询问用户是否留空persona引用或创建新的persona。
- 用户提供的答案过于简略:提示用户至少提供2条受众问题和3条编辑规则,拒绝生成骨架文件。