运行时依赖
安装命令
点击复制技能文档
daily-briefing 生成一个适合 cron 投递(stdout/聊天回复)的紧凑、温暖的每日消息。即使在最少的上下文中,也总是成功。技能类型:系统技能(Orchestrator 模式)此技能使用系统技能模式在 macOS 上执行。代理必须:
永远不要直接运行原始 CLI 命令(除非使用 curl 获取天气)。 总是调用 runner 脚本来收集数据。 在脚本完成后,从 JSON 中读取收集的数据。 使用代理自己的功能生成简报文本。
快速参考: # 调用数据收集器(等待完成) "{baseDir}/skills/daily-briefing/bin/run_daily_briefing.sh" # 读取输出 cat /tmp/daily_briefing_data.json
输出合同(STRICT) CRITICAL:仅输出简报文本。无前言,无解释,无“完成”,无文件路径,无工具输出,无 markdown 代码围栏。 第一行格式(必需) 第一行必须以时间相关的问候开始: Good {time_of_day} - Today is {Weekday},{Month} {D},{YYYY}。{Skies 句子}。 使用完整的月份名称(例如“February”,而不是“Feb”)。 如果今天是用户的生日(通过联系人名称匹配):用以下内容替换问候: Happy Birthday! Today is {Weekday},{Month} {D},{YYYY}。{Skies 句子}。
问候选择(本地时间) 时间范围 问候 05:00–11:59 Good morning 12:00–16:59 Good afternoon 17:00–21:59 Good evening 22:00–04:59 Good night 未知 Good morning(默认)
Skies 句子规则 如果天气可用:{Conditions} 天空,周围 {TEMP}°{time_clause}{low_clause}{precip_clause}。 使用高温如果可靠 → 时间子句:“下午” 否则使用当前温度 → 时间子句:“现在” 如果存在低温:追加,低温约 {LOW}° 如果降水概率 ≥30%:追加,降水概率 {CHANCE}% 的 {rain/snow/precipitation} 如果天气不可用:使用确切的回退:“我无法访问天气”
布局规则 {第一行:问候与天空句子} {生日部分 - 只有当今天或即将到来时} {日历事件部分 - 只有当存在时} {提醒部分 - 只有当存在时} {重要电子邮件部分 - 只有当启用并存在时} {锚点 - 只有当存在真实优先级时} {关闭行 - 总是必需}
总是包含第一行后的空行。 每个部分之间用空行分隔(如果存在)。 目标:约 5-15 行,取决于启用的集成。
氛围和语气 温柔的礼物:温暖、平静、富有同情心、安静地充满希望。 无责备,无紧迫感,无生产力压力。 适合 Telegram:短行、宽敞的间距、易于浏览。
系统技能执行 步骤 1:检查模式(交互式 vs Cron) 如果交互式且缺少关键信息(位置/时区/单位):在生成简报之前简要提示缺少的信息。 提供集成的切换开关。 提及重要电子邮件功能:解释它使用 AI 驱动的语义分析来显示可执行的电子邮件(交易、货物、安全警报等),并且可以通过 emails.enabled 在配置中启用;注意 iCloud Mail 需要应用程序特定的密码(emails.icloudPassword)。 如果非交互式(Cron/自动化):不询问问题(Cron 安全)。 使用默认值。 不创建/修改任何文件。 不生成后台任务/子代理。 如果位置不可用,则省略天气。
步骤 2:调用数据收集器 "{baseDir}/skills/daily-briefing/bin/run_daily_briefing.sh" runner 脚本执行 scripts/daily_briefing_orchestrator.sh。 TCC 权限授予 Terminal.app(或调用进程)。
步骤 3:读取收集的数据 应用程序完成后,读取: /tmp/daily_briefing_data.json JSON 结构: { "generated_at": "ISO 时间戳", "system": { "timezone": "America/New_York", "local_time": "2024-02-03T08:30:00", "hour": 8 }, "config": { "location": "New York, NY", "units": "C", "birthdays_enabled": true, "birthdays_lookahead": 14, "calendar_google_enabled": true, "calendar_icloud_enabled": true, "calendar_lookahead": 0, "reminders_enabled": true, "reminders_due_filter": "today", "reminders_include_past_due": true, "emails_enabled": false, "emails_limit": 10, "emails_sort_newest": true, "emails_starred_first": true, "emails_unread_only": true }, "birthdays": { "available": true, "user_birthday_today": false, "data": [ { "name": "Jane Doe", "date": "2024-02-03", "days_until": 0 }, { "name": "John Smith", "date": "2024-02-05", "days_until": 2 } ] }, "calendar": { "available": true, "data": [ { "title": "Team standup", "start": "09:00", "end": "09:30", "all_day": false, "date": "2024-02-03", "source": "google" }, { "title": "Doctor appointment", "start": null, "end": null, "all_day": true, "date": "2024-02-03", "source": "icloud" } ] }, "reminders": { "available": true, "data": [ { "title": "Pick up prescription", "due": "2024-02-03" } ] }, "emails": { "available": true, "data": [ { "id": "abc123", ... } ] } }