Agent Skills › yc-software/qm › email-voice-profile

email-voice-profile

GitHub

分析用户已发送邮件以构建语音画像,用于个性化代写邮件。包含数据提取、风格研究、画像生成及验证流程,确保生成的邮件符合用户个人写作习惯与语气。

skills-seed/email-voice-profile/SKILL.md yc-software/qm

Trigger Scenarios

用户要求学习其邮件写作风格 email-draft-in-voice 需要构建新的语音画像

Install

npx skills add yc-software/qm --skill email-voice-profile -g -y
More Options

Non-standard path

npx skills add https://github.com/yc-software/qm/tree/main/skills-seed/email-voice-profile -g -y

Use without installing

npx skills use yc-software/qm@email-voice-profile

指定 Agent (Claude Code)

npx skills add yc-software/qm --skill email-voice-profile -a claude-code -g -y

安装 repo 全部 skill

npx skills add yc-software/qm --all -g -y

预览 repo 内 skill

npx skills add yc-software/qm --list

SKILL.md

Frontmatter
{
    "name": "email-voice-profile",
    "description": "Build (or refresh) a voice profile of how the user writes email, from their own sent Gmail. The profile is what email-draft-in-voice consumes to ghostwrite email that sounds like them."
}

Email voice profile

Use this when the user asks you to learn how they write email — "learn my voice", "build my email voice profile", "study my sent mail so you can draft for me" — or when email-draft-in-voice needs a profile that doesn't exist yet.

Personal DMs only. Sent mail is private; refuse to run this from a channel or group and offer to continue in the user's DM. The profile you produce lives in their personal workspace, so only their own conversations can read it.

1. Pull the corpus

Use the selected email access skill to retrieve up to 300 of the user's sent messages. Strip quoted replies and ---delimited signatures, drop automated and trivial messages, and write one JSON line per email to voice/corpus/corpus.jsonl, tagged internal or external by recipient domain. Record corpus stats; if fewer than ~50 usable emails survive, tell the user the profile will be rough and ask whether to continue.

2. Study it

Read a deliberate spread, not just the top of the file: oldest and newest, internal and external, one-liners and long emails. You are looking for what is distinctive — patterns a generic professional emailer would not share.

Watch for a signature block: only ---delimited signatures are stripped, so a plain signature (name / title / phone) survives at the end of many bodies. Treat a verbatim recurring trailing block as the mail client's signature, not a chosen sign-off — note it in the profile so drafts never include it (Gmail appends it on send).

3. Write the profile

Write voice/email-voice-profile.md in the workspace with exactly these sections, every claim backed by observed frequency ("uses 'Best,' in 80% of external mail"), with 2–3 verbatim example lines each:

  • Register map — how tone shifts by audience (internal vs external, familiar vs cold), and how their length tracks the situation.
  • Openers & sign-offs — actual greetings and closings with rough frequencies, including when they use none.
  • Rhythm — sentence length, paragraph shape, how they open and end a body, use of fragments, lists, links.
  • Vocabulary & phrases — recurring words, pet phrases, how they hedge, how they say yes and no.
  • Punctuation & formatting quirks — dashes, ellipses, casing, emoji, bolding.
  • Hard rules — things true of nearly every email ("never opens with 'I hope this finds you well'", "always lowercase to teammates").
  • Anti-patterns — what they never do, plus the generic-AI tells to avoid (enthusiastic adjectives, "I'd be happy to", bullet-point answers to plain questions).

4. Validate before declaring done

Hold out 3 real threads the profile wasn't built from. For each, draft the user's reply using only the profile, then compare with what they actually sent. Where the real email diverges, tighten the profile — usually a missing hard rule or register distinction. Record validated: <date> at the top of the profile once the drafts read as plausibly theirs.

Show the user the finished profile and ask what feels wrong; their corrections go in as hard rules. Re-run this skill any time they want it refreshed — it overwrites the corpus and profile in place.

Version History

  • ca47f5c Current 2026-09-22 01:40

    移除硬编码的Python脚本调用,改为使用通用的邮件访问技能;更新为基于Composio凭据的集成方式。

  • 7f2c916 2026-08-02 21:46

Same Skill Collection

.claude/skills/dev-instance/SKILL.md
.claude/skills/update-qm/SKILL.md
.claude/skills/upstream-pr/SKILL.md
.codex/skills/deploy-qm/SKILL.md
.codex/skills/dev-instance/SKILL.md
.codex/skills/update-qm/SKILL.md
.codex/skills/upstream-pr/SKILL.md
cli/templates/deployment/SKILL.md
plugins/onboarding/skills/onboarding/SKILL.md
skills-seed/admin/SKILL.md
skills-seed/browse/SKILL.md
skills-seed/cloud-cli/SKILL.md
skills-seed/composio/SKILL.md
skills-seed/connect-apps/SKILL.md
skills-seed/define-loop/SKILL.md
skills-seed/dropbox/SKILL.md
skills-seed/email-draft-in-voice/SKILL.md
skills-seed/github-gitlab/SKILL.md
skills-seed/google-drive-sheets/SKILL.md
skills-seed/google-workspace/SKILL.md
skills-seed/interactive-login/SKILL.md
skills-seed/linear/SKILL.md
skills-seed/memory/SKILL.md
skills-seed/miniapp/SKILL.md
skills-seed/morning-digest/SKILL.md
skills-seed/popular-web-designs/SKILL.md
skills-seed/publish/SKILL.md
skills-seed/send/SKILL.md
skills-seed/slack-drafts/SKILL.md
skills-seed/taste-skill/SKILL.md
skills-seed/use-shared-credential/SKILL.md

Metadata

Files
0
Version
b6abeaf
Hash
ccabf5e8
Indexed
2026-08-02 21:46

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-27 22:34
浙ICP备14020137号-1