关于 author-profile
author-profile 是用于建立和维护文章作者风格一致性的 Skill,可结合问卷信息与转录文本分析来形成作者档案。
主要功能
- 01通过问卷创建作者档案
- 02从转录文本提取语音特征
- 03存储作者与风格数据
- 04按分析结果指导写作
- 05支持多语言文章流程
适用场景
- 01设定文章作者的语气风格
- 02根据访谈转录生成档案
- 03用新转录文本更新档案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mwguerra/ claude-code-plugins --skill author-profile安装后在 Claude Code 中输入/author-profile确认已加载。
详细介绍
作者档案
为所有文章创建并保持一致的作者风格。
档案位置
存储于:.article_writer/article_writer.db(authors 表)
架构:.article_writer/schemas/authors.schema.json
创建作者的两种方式
选项 1:手动问卷
以对话形式分组提问(每次 2~3 个问题):
身份
- 这位作者使用什么名称/标识符?(例如,“mwguerra”)
- 显示名称是什么?(例如,“MW Guerra”)
- 职业角色有哪些?
- 从业年限/经验领域有哪些?
- 专业领域有哪些?
语言
- 主要写作语言是什么?(例如,pt_BR、en_US)
- 翻译目标语言有哪些?
语气(1~10)
- 随意(1)还是正式(10)?
- 中立(1)还是鲜明表达观点(10)?
词汇
- 读者熟悉哪些术语(可自由使用)?
- 哪些术语需要始终解释?
风格
- 标志性短语有哪些?
- 应避免哪些短语?
立场
- 对技术有哪些鲜明观点?
- 哪些话题应保持中立?
示例
- 用你的风格写 2~3 个句子作为示例。
选项 2:从转录文本中提取
使用 Skill(voice-extractor) 分析转录文本。
如果作者有录音(播客、访谈、视频、会议):
- 准备转录文本 - 获取带有说话人标签的转录文件
- 运行分析:
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --speaker "Name" transcripts/*.txt - 检查提取的数据 - 沟通风格、短语、词汇
- 补充身份信息 - 名称、角色、专业领域、语言(手动)
- 合并 - 整合提取的数据和手动填写的数据
选项 3:结合两种方式(推荐)
结合两种方式可获得最佳结果:
- 从转录文本中提取语言风格模式
- 手动补充身份/专业领域信息
- 检查并完善合并后的档案
作者 JSON 结构
{
"id": "author-slug",
"name": "Display Name",
"languages": ["pt_BR", "en_US"],
"role": "Senior Developer",
"experience": "10+ years",
"expertise": ["Laravel", "PHP", "Architecture"],
"tone": {
"formality": 4,
"opinionated": 7
},
"vocabulary": {
"use_freely": ["Controllers", "Middleware", "API"],
"always_explain": ["DDD", "CQRS", "Event Sourcing"]
},
"phrases": {
"signature": ["Na prática...", "Vamos direto ao ponto:"],
"avoid": ["Simplesmente", "É só fazer..."]
},
"opinions": {
"strong_positions": ["Tests are essential", "Fat models are bad"],
"stay_neutral": ["Tabs vs spaces", "IDE preferences"]
},
"example_voice": "Sample paragraph in author's voice...",
"voice_analysis": {
"extracted_from": ["podcast_ep1.txt", "interview.txt"],
"sample_count": 156,
"total_words": 12450,
"sentence_structure": {
"avg_length": 14.5,
"variety": "moderate length, conversational",
"question_ratio": 12.3
},
"communication_style": [
{ "trait": "enthusiasm", "percentage": 28.5 },
{ "trait": "analytical", "percentage": 24.1 }
],
"characteristic_expressions": ["you know", "the thing is"],
"sentence_starters": ["I think", "So the"],
"signature_vocabulary": ["approach", "strategy", "implementation"],
"analyzed_at": "2025-01-15T10:00:00Z"
},
"notes": "Additional style notes..."
}
语言风格分析字段
分析转录文本时,会填充以下字段:
| 字段 | 说明 |
|---|---|
extracted_from | 已分析的转录文件 |
sample_count | 已分析的发言轮次 |
total_words | 分析中的总词数 |
sentence_structure | 长度、多样性、疑问句频率 |
communication_style | 特征:热情、保留、直接等 |
characteristic_expressions | 常用短语/填充词 |
sentence_starters | 常见的句子开头方式 |
signature_vocabulary | 能体现说话人特点的词语 |
写作时使用语言风格分析
撰写文章时,使用 voice_analysis 数据:
- 句子结构:匹配
avg_length和variety - 语气:遵循
communication_style中的特征 - 自然表达:自然融入
characteristic_expressions - 词汇:优先使用
signature_vocabulary中的词语 - 句子开头:使用
sentence_starters中的模式
多语言工作流
- 先使用作者的主要语言(数组中的第一个)撰写文章
- 完成后,翻译成其他语言
- 每个文件命名为:
{slug}.{language}.md
作者的语言设置为 ["pt_BR", "en_US"] 时的示例:
content/articles/2025_01_15_rate-limiting/
├── rate-limiting.pt_BR.md # Primary (written first)
└── rate-limiting.en_US.md # Translation
默认作者
如果文章任务未指定作者:
- 使用数据库中
sort_order最小的作者 - 应用其语言设置
- 遵循其语言风格/语气
更新作者
添加更多转录数据
# Analyze new transcripts for existing author
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts \
--speaker "Name" \
--author-json \
new_podcast.txt > new_analysis.json
# Merge into existing profile (manually or via command)
更新时机
- 有新的转录数据可用
- 写作风格发生变化
- 反馈表明语气不匹配
- 拓展了新的专业领域
评论
支持 Markdown