mcpField
A
author-profile

author-profile

github.com/mwguerra创意与媒体3637 次安装26 周前更新
代码仓库

关于 author-profile

author-profile 是用于建立和维护文章作者风格一致性的 Skill,可结合问卷信息与转录文本分析来形成作者档案。

主要功能

  1. 01通过问卷创建作者档案
  2. 02从转录文本提取语音特征
  3. 03存储作者与风格数据
  4. 04按分析结果指导写作
  5. 05支持多语言文章流程

适用场景

  1. 01设定文章作者的语气风格
  2. 02根据访谈转录生成档案
  3. 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 个问题):

身份
  1. 这位作者使用什么名称/标识符?(例如,“mwguerra”)
  2. 显示名称是什么?(例如,“MW Guerra”)
  3. 职业角色有哪些?
  4. 从业年限/经验领域有哪些?
  5. 专业领域有哪些?
语言
  1. 主要写作语言是什么?(例如,pt_BR、en_US)
  2. 翻译目标语言有哪些?
语气(1~10)
  1. 随意(1)还是正式(10)?
  2. 中立(1)还是鲜明表达观点(10)?
词汇
  1. 读者熟悉哪些术语(可自由使用)?
  2. 哪些术语需要始终解释?
风格
  1. 标志性短语有哪些?
  2. 应避免哪些短语?
立场
  1. 对技术有哪些鲜明观点?
  2. 哪些话题应保持中立?
示例
  1. 用你的风格写 2~3 个句子作为示例。
选项 2:从转录文本中提取

使用 Skill(voice-extractor) 分析转录文本。

如果作者有录音(播客、访谈、视频、会议):

  1. 准备转录文本 - 获取带有说话人标签的转录文件
  2. 运行分析:
    bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --speaker "Name" transcripts/*.txt
    
  3. 检查提取的数据 - 沟通风格、短语、词汇
  4. 补充身份信息 - 名称、角色、专业领域、语言(手动)
  5. 合并 - 整合提取的数据和手动填写的数据
选项 3:结合两种方式(推荐)

结合两种方式可获得最佳结果:

  1. 从转录文本中提取语言风格模式
  2. 手动补充身份/专业领域信息
  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 数据:

  1. 句子结构:匹配 avg_length 和 variety
  2. 语气:遵循 communication_style 中的特征
  3. 自然表达:自然融入 characteristic_expressions
  4. 词汇:优先使用 signature_vocabulary 中的词语
  5. 句子开头:使用 sentence_starters 中的模式

多语言工作流

  1. 先使用作者的主要语言(数组中的第一个)撰写文章
  2. 完成后,翻译成其他语言
  3. 每个文件命名为:{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