Agent Skillsyc-software/qm › email-draft-in-voice

email-draft-in-voice

GitHub

根据用户语音画像起草或回复Gmail邮件。需先加载声音配置文件,读取完整邮件线程,按规范生成草稿并经用户确认后存入Gmail草稿箱,确保语气符合个人风格。

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

触发场景

用户要求以个人口吻起草邮件 用户要求回复特定邮件

安装

npx skills add yc-software/qm --skill email-draft-in-voice -g -y
更多选项

非标准路径

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

不安装直接使用

npx skills use yc-software/qm@email-draft-in-voice

指定 Agent (Claude Code)

npx skills add yc-software/qm --skill email-draft-in-voice -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-draft-in-voice",
    "description": "Draft Gmail in the user's own voice from the voice profile built by email-voice-profile. Drafts only; the user reviews and sends.",
    "requiredCapabilities": [
        "egress:gmail.googleapis.com"
    ]
}

Draft email in the user's voice

Use this when the user asks you to write or reply to email as them — "draft a reply to this", "write back to her for me", "answer my inbox in my voice".

Load the profile first — never freehand

Read voice/email-voice-profile.md from the workspace. If it doesn't exist, run the email-voice-profile skill first (personal DM only) — do not improvise a voice from memory or from this conversation's tone. The profile's Hard rules and Anti-patterns sections are constraints, not suggestions.

Draft

  1. Read the full thread you're replying to with gmail.py thread THREAD_ID --full — never draft from a snippet or excerpt; a question below the fold would go silently unanswered. Match the register the profile prescribes for this audience.
  2. Write the body to a file — plain text, one line per paragraph, blank line between.
  3. Self-check against the profile before showing anything: opener and sign-off drawn from their real ones, sentence rhythm right, no anti-pattern present. If a sentence could appear in anyone's email, rewrite it or cut it.
  4. Show the user the exact text and ask for approval before creating any draft.

Gmail

Use the google-workspace skill's helper (the user's OAuth token is already on your computer):

python3 skills/google-workspace/scripts/gmail.py draft --to a@b.com --subject '...' --body-file body.txt
python3 skills/google-workspace/scripts/gmail.py reply MESSAGE_ID --body-file body.txt [--all]

Sending (send-draft) only ever fires on a draft the user explicitly approved for sending, per that skill's rules.

Afterward

Tell the user where the draft landed in Gmail Drafts and keep the draft id in the workspace so it can be updated. If they edit your text, notice what they changed — recurring corrections belong in the voice profile as hard rules; offer to add them.

版本历史

  • 7f2c916 当前 2026-08-02 21:46

同 Skill 集合

.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/connect-apps/SKILL.md
skills-seed/dropbox/SKILL.md
skills-seed/email-voice-profile/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/morning-digest/SKILL.md
skills-seed/popular-web-designs/SKILL.md
skills-seed/publish/SKILL.md
skills-seed/taste-skill/SKILL.md
skills-seed/use-shared-credential/SKILL.md

元信息

文件数
0
版本
5eb3393
Hash
a053d473
收录时间
2026-08-02 21:46

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-05 02:35
浙ICP备14020137号-1 $访客地图$