mcpField
E
email-triage

email-triage

github.com/terrylica生产力2115 次安装1 天前更新
代码仓库

关于 email-triage

email-triage 是 Gmail Commander 的邮件分类技能,按类别和紧急程度整理近期邮件。它记录按需 `/digest` 工作流,并与独立运行的定时摘要服务加以区分。

主要功能

  1. 01将邮件分为三类
  2. 02按紧急程度从高到低排序
  3. 03通过 Gmail CLI 获取近期邮件
  4. 04过滤受污染的模型回复
  5. 05将结果整理为摘要

适用场景

  1. 01查看近期需要关注的邮件
  2. 02区分安全提醒与工作邮件
  3. 03在 Telegram 请求按需摘要

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/terrylica/cc-skills --skill email-triage

安装后在 Claude Code 中输入/email-triage确认已加载。

附带文件references/evolution-log.md

详细介绍

邮件分类

了解 Gmail Commander 如何整理近期邮件,筛选出需要关注的内容,以及每种摘要实际来自哪里。

自我演进技能:此技能会在使用过程中持续改进。如果指令有误、参数发生偏移,或需要采用变通方法,请立即修复此文件,不要拖延。仅针对真实且可复现的问题进行更新。

两种不同的摘要——请勿混淆

摘要触发方式代码
按需 /digest [hours]用户向机器人发送此命令(默认 6 h)此插件:scripts/lib/commands.ts + scripts/lib/triage.ts
定时摘要每天多次,无人值守运行私有部署的 GmailDigest 服务——它有自己的实现

定时摘要运行在常开 Mac mini 上的私有 Restate 租户中,不会导入此插件的分类代码。其计划、提示词、告警和故障均通过该部署自己的仓库运维手册进行管理。

此插件不再提供定时摘要入口:笔记本上的 launchd 任务 com.example.gmail-commander-digest 已于 2026-09-24 停用;其 scripts/digest.ts(以及 scripts/lib/tts-client.ts 中 Kokoro 播客风格的语音简报)在 2026-09-26 确认无人导入后已移除。请勿重新创建这两者。

强制预检

步骤 1:检查分类代码是否存在
PLUGIN="$HOME/.claude/plugins/marketplaces/cc-skills/plugins/gmail-commander"
ls -la "$PLUGIN/scripts/lib/triage.ts" 2>/dev/null || echo "TRIAGE_NOT_FOUND"
步骤 2:验证 Gmail CLI 二进制文件(分类输入来自该文件)
ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/gmail-commander/scripts/gmail-cli/gmail" 2>/dev/null || echo "BINARY_NOT_FOUND"

如果出现 BINARY_NOT_FOUND:使用已提交的 lockfile 构建:

cd "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/gmail-commander/scripts/gmail-cli" && bun install --frozen-lockfile && bun run build

三分类系统

类别示例
系统与安全Exchange 警报、2FA 验证码、密码重置、新设备登录
工作截止日期、发票、合同、GitHub PR、专业请求
个人与家庭朋友/家人消息、预约、车辆维修、健康

每个类别内部的紧急程度依次为:CRITICAL > HIGH > MEDIUM > LOW。如果没有符合条件的邮件,模型会准确返回 NO_SIGNIFICANT_EMAILS,机器人则会报告当前时段较为平静。

流程(/digest [hours])

  1. fetchRecentEmails(hours) 通过 GMAIL_CLI_BIN 运行 gmail search newer_than:<hours>h -n 50 --json。
  2. formatEmailsForTriage() 会整理邮件内容;随后会添加 ANTI_SKILL_PREFIX,让模型忽略其上下文中的任何技能或工具列表。
  3. 在 HAIKU_MODEL 上调用一次 Agent SDK,并使用 TRIAGE_SYSTEM_PROMPT(不使用工具,仅一轮)。
  4. isSkillContaminated() 会丢弃扮演技能而非执行邮件分类的响应。
  5. parseTriageResponse() 会将文本转换为类型化条目,formatDigestHtml() 则使用类别和紧急程度对应的表情符号映射来渲染这些条目。

源码索引

事项文件
系统提示词、反技能前缀、解析器scripts/lib/triage.ts
/digest 命令处理器scripts/lib/commands.ts
类别/紧急程度表情符号映射、摘要 HTMLscripts/lib/telegram-format.ts
Gmail 获取scripts/lib/gmail-client.ts

更改后检查清单

  • YAML frontmatter 有效(description 中没有冒号)
  • 触发关键词为最新版本
  • 路径模式使用 $HOME,而非硬编码路径
  • lib/triage.ts 导出内容的结构未变(机器人及其部署会导入这些内容)

执行后复盘

此技能完成后,请先进行复盘,再结束任务:

  1. 确认位置。 — 编辑前,找到此 SKILL.md 的规范路径。
  2. 出了什么问题? — 修复导致问题的指令。
  3. 有什么效果超出预期? — 将其推广为推荐做法。
  4. 有什么内容出现偏差? — 修复不再符合实际情况的脚本、参考资料或依赖项。
  5. 记录下来。 — 添加一条 Evolution-log 条目,包含触发条件、修复内容和证据。

请勿推迟。下一次调用会继承你留下的一切。

评论

支持 Markdown