morning-briefing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Morning Briefing Workflow

晨间简报工作流

Overview

概述

Generates a daily morning briefing and delivers it three ways:
  1. Terminal: Summary displayed immediately
  2. Obsidian: Full briefing saved to daily note
  3. Email: Briefing text + audio podcast attachment
每日生成晨间简报,并通过三种方式交付:
  1. 终端:即时显示摘要
  2. Obsidian:完整简报保存至每日笔记
  3. 邮件:简报文本 + 音频播客附件

Location

位置

  • Gig Harbor, WA - Use for weather queries
  • Gig Harbor, WA - 用于天气查询

Phase 1: Gather Data

第一阶段:收集数据

Execute these data gathering steps:
执行以下数据收集步骤:

1.1 Calendar (Today's Events)

1.1 日历(今日日程)

bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun calendar/list_events.js psd --today
Returns JSON with today's events including:
  • Event summary, location, start/end times
  • Attendees and response status
  • Hangout/meet links
Account: Use
psd
for work calendar
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun calendar/list_events.js psd --today
返回包含今日日程的JSON数据,包括:
  • 日程摘要、地点、开始/结束时间
  • 参会者及回复状态
  • 视频会议链接
账户:使用
psd
访问工作日历

1.2 OmniFocus Tasks (Due & Flagged)

1.2 OmniFocus任务(到期与标记项)

bash
osascript -l JavaScript /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_due_flagged.js
Returns tasks that are:
  • Due today or overdue
  • Flagged
  • Available (not blocked, not deferred to future)
bash
osascript -l JavaScript /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_due_flagged.js
返回符合以下条件的任务:
  • 今日到期或已逾期
  • 已标记
  • 可执行(未被阻塞、未推迟至未来)

1.3 Recent Emails (Last 24 Hours)

1.3 近期邮件(过去24小时)

bash
undefined
bash
undefined

Get yesterday's date in Gmail query format

获取Gmail查询格式的昨日日期

YESTERDAY=$(date -v-1d +%Y/%m/%d) cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/list_messages.js psd --query "in:inbox after:$YESTERDAY" --max 15

Returns recent inbox messages with:
- From, subject, date, snippet
- Whether read or unread
- Thread ID for context
- Labels array

**Filtering**: Only show emails still in inbox (not already labeled/processed).
- Emails with custom labels (Label_XXXXX) have been sorted and should be excluded
- Exception: Include emails with SaneCC or SaneLater labels (worth knowing about)
- System labels (UNREAD, INBOX, CATEGORY_*, IMPORTANT) don't count as "processed"

**Philosophy**: Any email still in inbox from last 24 hours needs attention, read or not.

**Account**: Use `psd` for work email
YESTERDAY=$(date -v-1d +%Y/%m/%d) cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/list_messages.js psd --query "in:inbox after:$YESTERDAY" --max 15

返回收件箱中的近期邮件,包括:
- 发件人、主题、日期、摘要
- 是否已读
- 对话ID(用于上下文)
- 标签数组

**过滤规则**:仅显示仍在收件箱中的邮件(未标记/处理)。
- 带有自定义标签(Label_XXXXX)的邮件已分类,需排除
- 例外:包含SaneCC或SaneLater标签的邮件需保留(值得关注)
- 系统标签(UNREAD、INBOX、CATEGORY_*、IMPORTANT)不算作“已处理”

**原则**:过去24小时内仍在收件箱中的邮件无论已读与否,都需要关注。

**账户**:使用`psd`访问工作邮箱

1.4 Open Freshservice Tickets

1.4 待处理Freshservice工单

bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/list_tickets.js '{"workspace_id": 2, "filter": "new_and_my_open"}'
Returns open tickets assigned to or created by user in Technology workspace.
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/list_tickets.js '{"workspace_id": 2, "filter": "new_and_my_open"}'
返回技术工作区中分配给用户或由用户创建的待处理工单。

1.5 Pending Approvals

1.5 待审批请求

bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_approvals.js requested
Returns service requests awaiting approval.
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_approvals.js requested
返回等待审批的服务请求。

1.6 Weather

1.6 天气

Use WebSearch:
Gig Harbor WA weather today forecast
Extract:
  • Current conditions
  • High/low temperature
  • Precipitation chance
  • Any alerts
使用WebSearch:
Gig Harbor WA weather today forecast
提取信息:
  • 当前天气状况
  • 最高/最低气温
  • 降水概率
  • 预警信息

1.7 EdTech News (with Synopses)

1.7 教育科技新闻(含摘要)

Use WebSearch:
K-12 education technology news past 24 hours January 2026
For each article found (3-5 articles):
  1. Use WebFetch to read the full article
  2. Extract a 2-3 sentence synopsis covering:
    • What happened / what's new
    • Why it matters for K-12 education
    • Key takeaway or action item
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
  • EdTech product launches and updates
  • School technology policy changes
  • Cybersecurity in schools
  • Digital learning trends
使用WebSearch:
K-12 education technology news past 24 hours January 2026
对于找到的每篇文章(3-5篇):
  1. 使用WebFetch读取完整文章
  2. 提取2-3句摘要,涵盖:
    • 事件/新动态
    • 对K-12教育的影响
    • 关键要点或行动建议
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题
  • 教育科技产品发布与更新
  • 学校科技政策变化
  • 学校网络安全
  • 数字化学习趋势

1.8 AI News (with Synopses)

1.8 AI新闻(含摘要)

Use WebSearch:
artificial intelligence news past 24 hours January 2026 latest
For each article found (3-5 articles):
  1. Use WebFetch to read the full article
  2. Extract a 2-3 sentence synopsis covering:
    • What's the development
    • Industry impact
    • Relevance to education/work
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
  • Major AI model releases and capabilities
  • AI policy and regulation
  • Enterprise AI adoption
  • AI research breakthroughs
使用WebSearch:
artificial intelligence news past 24 hours January 2026 latest
对于找到的每篇文章(3-5篇):
  1. 使用WebFetch读取完整文章
  2. 提取2-3句摘要,涵盖:
    • 技术进展
    • 行业影响
    • 对教育/工作的相关性
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题
  • 主流AI模型发布与功能
  • AI政策与监管
  • 企业AI应用
  • AI研究突破

1.9 K-12 Leadership News (with Synopses)

1.9 K-12教育领导力新闻(含摘要)

Use WebSearch:
K-12 school leadership superintendent news past 24 hours January 2026
For each article found (2-3 articles):
  1. Use WebFetch to read the full article
  2. Extract a 2-3 sentence synopsis covering:
    • Policy or leadership development
    • Impact on districts/schools
    • Relevance to CIO/technology leadership
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
  • State and federal education policy
  • Superintendent and board news
  • School funding and budgets
  • Workforce and staffing trends
使用WebSearch:
K-12 school leadership superintendent news past 24 hours January 2026
对于找到的每篇文章(2-3篇):
  1. 使用WebFetch读取完整文章
  2. 提取2-3句摘要,涵盖:
    • 政策或领导力动态
    • 对学区/学校的影响
    • 对CIO/技术领导力的相关性
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题
  • 州级与联邦教育政策
  • 督学与校董会新闻
  • 学校经费与预算
  • 劳动力与人员配置趋势

1.9b School Safety & Security News (with Synopses)

1.9b 校园安全与安保新闻(含摘要)

Use WebSearch:
K-12 school safety security news past 24 hours January 2026
For each article found (3 articles):
  1. Use WebFetch to read the full article
  2. Extract a 2-3 sentence synopsis covering:
    • What happened / what's new
    • Impact on school safety practices
    • Key takeaway for districts
Freshness check: Verify article dates before including. Only include articles published within the last 24 hours. Skip older articles even if they appear in results.
Topics to cover:
  • School security incidents and responses
  • Safety policy changes
  • Emergency preparedness
  • Mental health and threat assessment
  • Physical security technology
使用WebSearch:
K-12 school safety security news past 24 hours January 2026
对于找到的每篇文章(3篇):
  1. 使用WebFetch读取完整文章
  2. 提取2-3句摘要,涵盖:
    • 事件/新动态
    • 对校园安全实践的影响
    • 学区需关注的要点
时效性检查:确认文章发布日期,仅包含过去24小时内发布的文章,即使结果中出现旧文章也需跳过。
覆盖主题
  • 校园安保事件与应对
  • 安全政策变化
  • 应急准备
  • 心理健康与威胁评估
  • 实体安保技术

1.10 Technology Team EOD Messages (Last Business Day) - DETAILED

1.10 技术团队工作日志(上一个工作日)- 详细版

Get end-of-day check-in messages from the Technology Staff space:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAxOtpv10 last-business-day
CRITICAL - NO HALLUCINATION:
  • ONLY use names that appear in the
    sender
    field of the script output
  • If script returns no messages, say "No EOD messages found"
  • If script returns messages with sender IDs instead of names, display the ID (e.g., "users/12345...")
  • NEVER invent names, locations, or accomplishments
  • Copy-paste approach: treat script output as source of truth
Before extracting team data:
  1. Examine the raw JSON output from the script
  2. List the exact
    sender
    values returned
  3. Use ONLY those names - no paraphrasing, no "improving"
CRITICAL: Extract FULL details from each team member's EOD message. Look for messages that contain "Today:" prefix - these are the detailed EOD summaries.
For each team member who posted an EOD summary:
  1. Name: Who posted (use EXACTLY the name from
    sender
    field)
  2. Location(s): Where they worked (WFH, DCRC, school sites)
  3. Key accomplishments: Specific tasks completed (not just "tickets")
  4. Notable items: Interesting problems solved, projects worked on
  5. Issues/blockers: Any problems mentioned
Example extraction from raw message:
Brad White:
- Location: TSD (Tech Services)
- Accomplished: Packaged Cinema 4D plugin for deployment, fixed OAuth blocking for Maxon App sign-in, created SwiftDialog notification for plugin installs, used Claude Code for first time to create Installomator label for Godot game engine
- Notable: Working on Unity deployment troubleshooting, burning comp time leaving early
Note: If today is Monday, "last business day" = Friday (or Thursday if Friday was a holiday).
获取技术员工空间的工作日志消息:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAxOtpv10 last-business-day
关键要求 - 禁止虚构信息:
  • 仅使用脚本输出中
    sender
    字段显示的名称
  • 若脚本未返回任何消息,需显示“未找到工作日志消息”
  • 若脚本返回的消息中发送者为ID而非名称,直接显示ID(例如:"users/12345...")
  • 禁止编造姓名、地点或工作成果
  • 严格复制:将脚本输出作为唯一信息来源
提取团队数据前:
  1. 查看脚本返回的原始JSON输出
  2. 列出返回的所有
    sender
    字段的准确值
  3. 仅使用这些名称 - 不得改写、不得“优化”
关键要求:提取每位团队成员工作日志的完整细节。寻找带有“Today:”前缀的消息,这些是详细的工作日志摘要。
对于每位发布工作日志摘要的团队成员:
  1. 姓名:发布者(严格使用
    sender
    字段中的准确名称)
  2. 工作地点:工作场所(居家办公、DCRC、校园站点)
  3. 主要工作成果:完成的具体任务(不能仅写“处理工单”)
  4. 重点事项:解决的疑难问题、参与的项目
  5. 问题/阻塞项:提到的任何问题
从原始消息提取示例:
Brad White:
- 工作地点:TSD(技术服务部)
- 工作成果:打包Cinema 4D插件用于部署,修复Maxon App登录的OAuth阻塞问题,创建SwiftDialog通知用于插件安装,首次使用Claude Code为Godot游戏引擎创建Installomator标签
- 重点事项:正在排查Unity部署问题,将提前下班调休
注意:若今日为周一,“上一个工作日”为周五(若周五为节假日则为周四)。

1.10b Safety & Security Team EOD Messages (Last Business Day)

1.10b 安全与安保团队工作日志(上一个工作日)

Get end-of-day check-in messages from the Safety & Security Staff space:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAFpQaAnA last-business-day
Space: PSD Safety & Security Team
CRITICAL - NO HALLUCINATION:
  • ONLY use names that appear in the
    sender
    field of the script output
  • If script returns no messages, say "No EOD messages found"
  • If script returns messages with sender IDs (e.g., "users/12345...") instead of names:
    • Display as: Unknown (users/123456...) - [Location from message content]
    • Add note: "Name not in mapping - update chat_user_mapping.json"
  • NEVER invent names, locations, or accomplishments
  • Copy-paste approach: treat script output as source of truth
Before extracting team data:
  1. Examine the raw JSON output from the script
  2. List the exact
    sender
    values returned
  3. Use ONLY those names - no paraphrasing, no "improving"
Extract using same format as Technology Team - names, locations, accomplishments, issues.
Note: If today is Monday, "last business day" = Friday (or Thursday if Friday was a holiday).
获取安全与安保员工空间的工作日志消息:
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun chat/get_eod_messages.js psd spaces/AAAAFpQaAnA last-business-day
空间:PSD安全与安保团队
关键要求 - 禁止虚构信息:
  • 仅使用脚本输出中
    sender
    字段显示的名称
  • 若脚本未返回任何消息,需显示“未找到工作日志消息”
  • 若脚本返回的消息中发送者为ID(例如:"users/12345...")而非名称:
    • 显示格式:Unknown (users/12345...) - [消息中提到的地点]
    • 添加说明:“名称未在映射中 - 请更新chat_user_mapping.json”
  • 禁止编造姓名、地点或工作成果
  • 严格复制:将脚本输出作为唯一信息来源
提取团队数据前:
  1. 查看脚本返回的原始JSON输出
  2. 列出返回的所有
    sender
    字段的准确值
  3. 仅使用这些名称 - 不得改写、不得“优化”
采用与技术团队相同的格式提取信息 - 姓名、地点、工作成果、问题。
注意:若今日为周一,“上一个工作日”为周五(若周五为节假日则为周四)。

1.11 Team Completed Tickets (Last Business Day)

1.11 团队已完成工单(上一个工作日)

Get tickets closed by the Technology team on the last business day:
bash
undefined
获取技术团队在上一个工作日关闭的工单:
bash
undefined

First get the last business day

首先获取上一个工作日

LAST_BIZ_DAY=$(bun /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_last_business_day.js | jq -r '.date')
LAST_BIZ_DAY=$(bun /Users/hagelk/non-ic-code/geoffrey/skills/morning-briefing/scripts/get_last_business_day.js | jq -r '.date')

Then get daily summary for that date

然后获取该日期的每日摘要

bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "$LAST_BIZ_DAY"

**CRITICAL - NO HALLUCINATION:**
- ONLY use agent names that appear in the `byAgent` section of script output
- Use EXACTLY the ticket counts returned by the script
- NEVER invent names or ticket counts
- If an agent's name shows as ID or email, display it as-is

**Before reporting ticket stats:**
1. Examine the raw JSON output from `get_daily_summary.js`
2. List the exact agent names from `byAgent` field
3. Use ONLY those names and counts

Returns:
- Total tickets closed
- Breakdown by agent
- Breakdown by category (Password Reset, Chromebook, etc.)
- Automated vs agent-resolved

**Workspace**: Technology (workspace_id: 2)
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "$LAST_BIZ_DAY"

**关键要求 - 禁止虚构信息:**
- 仅使用脚本输出`byAgent`部分显示的代理姓名
- 严格使用脚本返回的工单数量
- 禁止编造姓名或工单数量
- 若代理姓名显示为ID或邮箱,直接原样显示

**报告工单统计前:**
1. 查看`get_daily_summary.js`返回的原始JSON输出
2. 列出`byAgent`字段中的所有准确代理姓名
3. 仅使用这些姓名和数量

返回信息:
- 关闭的工单总数
- 按代理分类的明细
- 按类别分类的明细(密码重置、Chromebook等)
- 自动处理 vs 人工处理

**工作区**:技术(workspace_id: 2)

1.12 Ticket Trends Analysis

1.12 工单趋势分析

Compare last business day to previous days for trends:
bash
undefined
对比上一个工作日与之前日期的趋势:
bash
undefined

Get last 5 business days of summaries for trend analysis

获取过去5个工作日的摘要用于趋势分析

The get_daily_summary.js script supports date parsing

get_daily_summary.js脚本支持日期解析

bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last monday" bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last tuesday"
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last monday" bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/get_daily_summary.js "last tuesday"

etc.

以此类推


Analyze for:
- Volume trends (increasing/decreasing)
- Category spikes (sudden increase in specific issue types)
- Agent workload distribution
- Unusual patterns

分析方向:
- 工单量趋势(增长/下降)
- 类别峰值(特定问题类型突然增加)
- 代理工作量分布
- 异常模式

1.13 Software Development Workspace Tickets

1.13 软件开发工作区工单

Get open tickets in the Software Development workspace:
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 13
Returns all open (status:2) and pending (status:3) tickets in the Software Development workspace.
Workspace ID: 13 (Software Development) Note: This is the user's internal software development bug tracker for AI Studio and other PSD applications.
获取软件开发工作区中的待处理工单:
bash
bun /Users/hagelk/non-ic-code/geoffrey/skills/freshservice-manager/scripts/search_tickets.js "status:2 OR status:3" 13
返回软件开发工作区中所有待处理(status:2)和挂起(status:3)的工单。
工作区ID:13(软件开发) 说明:这是用户用于AI Studio和其他PSD应用的内部软件开发缺陷跟踪系统。

1.14 Legislative Activity (Last Business Day)

1.14 立法动态(上一个工作日)

Get K-12 education bills with activity since the last business day:
bash
undefined
获取上一个工作日以来有动态的K-12教育相关法案:
bash
undefined

Get lookback info and bills to check

获取需检查的回溯信息和法案列表

bun /Users/hagelk/non-ic-code/geoffrey/skills/legislative-tracker/scripts/get_recent_bill_activity.js --last-business-day

This returns:
- Date range to check (last business day → today)
- List of ~143 confirmed education bill IDs
- WebFetch instructions for each bill

**Workflow:**
1. Get the output from `get_recent_bill_activity.js`
2. WebFetch each bill URL (batch 5-6 in parallel for speed)
3. Extract latest action date from each bill page
4. Filter to bills where latest_action_date >= lookback_start
5. Apply priority framework (HIGH/MEDIUM/LOW based on district impact)
6. Include summary of what each bill does

**On Monday**: Lookback starts on Friday (or earlier if Friday was a holiday), so includes all weekend activity (hearings, votes, committee actions).

**Example URLs to WebFetch:**
- `https://app.leg.wa.gov/billsummary?BillNumber=1020&Year=2025`
- `https://app.leg.wa.gov/billsummary?BillNumber=5038&Year=2025`

**Note**: Only include bills that actually had activity. If no bills moved, output "No legislative activity since [date]".
bun /Users/hagelk/non-ic-code/geoffrey/skills/legislative-tracker/scripts/get_recent_bill_activity.js --last-business-day

返回信息:
- 需检查的日期范围(上一个工作日 → 今日)
- 约143个已确认的教育法案ID列表
- 每个法案的WebFetch说明

**工作流:**
1. 获取`get_recent_bill_activity.js`的输出
2. 批量并行WebFetch每个法案的URL(5-6个并行以提高速度)
3. 从每个法案页面提取最新操作日期
4. 筛选出最新操作日期 >= 回溯起始日期的法案
5. 应用优先级框架(根据学区影响分为高/中/低)
6. 包含每个法案的内容摘要

**周一特殊处理**:回溯起始日期为周五(若周五为节假日则更早),需包含所有周末动态(听证会、投票、委员会行动)。

**WebFetch示例URL:**
- `https://app.leg.wa.gov/billsummary?BillNumber=1020&Year=2025`
- `https://app.leg.wa.gov/billsummary?BillNumber=5038&Year=2025`

**说明**:仅包含确实有动态的法案。若没有法案有动态,输出“自[日期]以来无立法动态”。

Phase 2: Generate Briefing

第二阶段:生成简报

2.1 Analyze & Prioritize

2.1 分析与优先级排序

Review gathered data and identify:
  • Conflicts: Overlapping calendar events
  • Urgencies: Overdue tasks, high-priority tickets
  • Themes: Patterns across data sources
查看收集到的数据并识别:
  • 冲突:重叠的日历日程
  • 紧急事项:逾期任务、高优先级工单
  • 主题:跨数据源的模式

2.2 Format Markdown Briefing

2.2 格式化Markdown简报

Use this structure:
markdown
undefined
使用以下结构:
markdown
undefined

Daily Briefing - [DATE]

每日简报 - [日期]

Weather

天气

[Current conditions, high/low, precipitation]
[当前状况、最高/最低气温、降水情况]

Today's Calendar

今日日程

TimeEventLocation
.........
Conflicts/Notes: [any issues]
时间事项地点
.........
冲突/说明:[任何问题]

Priority Tasks

优先级任务

Due Today

今日到期

  • Task 1
  • Task 2
  • 任务1
  • 任务2

Flagged

已标记

  • Task 3
  • 任务3

Overdue

已逾期

  • Task 4 (due [date])
  • 任务4(到期日期:[日期])

Recent Emails (Last 24h)

近期邮件(过去24小时)

[X emails in inbox from last 24 hours]
[过去24小时内收件箱中有X封邮件]

Needs Response

需要回复

  • From: [sender] - [subject] (snippet)
  • From: [sender] - [subject] (snippet)
  • 发件人:[发件人] - [主题](摘要)
  • 发件人:[发件人] - [主题](摘要)

FYI/Notifications

通知/仅供参考

  • [sender] - [subject]
  • [发件人] - [主题]

Freshservice

Freshservice

Technology Tickets: [count] open

技术工单:[X]个待处理

[Top 3-5 tickets by priority/age]
[按优先级/时长排序的前3-5个工单]

Software Development Tickets: [count] open

软件开发工单:[X]个待处理

[List tickets in Software Dev workspace]
[列出软件开发工作区的工单]

Pending Approvals: [count]

待审批请求:[X]个

[List with ticket #, requester, summary]
[列出工单编号、申请人、摘要]

Team Activity (Last Business Day: [DAY, DATE])

团队动态(上一个工作日:[星期,日期])

Data Source Verification (REQUIRED):
  • Technology EOD script returned: [X] messages from [list exact sender names from JSON]
  • Safety & Security EOD script returned: [X] messages from [list exact sender names from JSON]
  • Freshservice daily summary returned: [X] tickets by [list exact agent names from JSON]
Use ONLY the names listed above. Never invent or paraphrase names.
数据源验证(必填):
  • 技术团队工作日志脚本返回:[X]条消息,来自[列出JSON中的所有准确发送者姓名]
  • 安全与安保团队工作日志脚本返回:[X]条消息,来自[列出JSON中的所有准确发送者姓名]
  • Freshservice每日摘要返回:[X]个工单,由[列出JSON中的所有准确代理姓名]处理
仅使用上述列出的姓名,禁止编造或改写姓名。

Technology Team EOD Summaries

技术团队工作日志摘要

[Name from sender field] - [Location(s)]
  • [Key accomplishment 1 - be specific about what they did]
  • [Key accomplishment 2]
  • [Notable: any interesting problems solved or projects]
[Name from sender field] - [Location(s)]
  • [Key accomplishment 1]
  • [Key accomplishment 2]
  • [Issues: any blockers or problems mentioned]
[Continue for each team member who posted an EOD summary]
[sender字段中的姓名] - [工作地点]
  • [主要工作成果1 - 需具体说明完成的工作]
  • [主要工作成果2]
  • [重点事项:解决的疑难问题或参与的项目]
[sender字段中的姓名] - [工作地点]
  • [主要工作成果1]
  • [主要工作成果2]
  • [问题:提到的阻塞项或问题]
[继续列出每位发布工作日志摘要的团队成员]

Safety & Security Team EOD Summaries

安全与安保团队工作日志摘要

[Name from sender field] - [Location(s)]
  • [Key accomplishment 1]
  • [Key accomplishment 2]
  • [Notable: any issues or incidents handled]
If sender shows as user ID (users/12345...), display: Unknown (users/12345...) - [Location]
[Continue for each team member who posted an EOD summary]
[sender字段中的姓名] - [工作地点]
  • [主要工作成果1]
  • [主要工作成果2]
  • [重点事项:处理的问题或事件]
若发送者显示为用户ID(users/12345...),显示格式:Unknown (users/12345...) - [地点]
[继续列出每位发布工作日志摘要的团队成员]

Tickets Completed by Team: [count]

团队已完成工单:[X]个

AgentTicketsTop Categories
[Name from byAgent field]XPassword Reset (Y), Chromebook (Z)
代理工单数量主要类别
[byAgent字段中的姓名]X密码重置(Y)、Chromebook(Z)

Ticket Trends

工单趋势

  • Volume: [up/down/stable] vs previous days
  • Notable patterns: [any spikes or anomalies]
  • 工单量:与之前相比[上升/下降/稳定]
  • 显著模式:[任何峰值或异常]

EdTech News

教育科技新闻

[Article Title 1] - [Source]

[文章标题1] - [来源]

[2-3 sentence synopsis: what happened, why it matters, key takeaway]
[2-3句摘要:事件内容、重要性、关键要点]

[Article Title 2] - [Source]

[文章标题2] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

[Article Title 3] - [Source]

[文章标题3] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

AI News

AI新闻

[Article Title 1] - [Source]

[文章标题1] - [来源]

[2-3 sentence synopsis: what's the development, industry impact, relevance]
[2-3句摘要:技术进展、行业影响、相关性]

[Article Title 2] - [Source]

[文章标题2] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

[Article Title 3] - [Source]

[文章标题3] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

K-12 Leadership News

K-12教育领导力新闻

[Article Title 1] - [Source]

[文章标题1] - [来源]

[2-3 sentence synopsis: policy/leadership development, impact, relevance to tech leadership]
[2-3句摘要:政策/领导力动态、影响、对技术领导力的相关性]

[Article Title 2] - [Source]

[文章标题2] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

School Safety & Security News

校园安全与安保新闻

[Article Title 1] - [Source]

[文章标题1] - [来源]

[2-3 sentence synopsis: what happened, impact on safety practices, takeaway for districts]
[2-3句摘要:事件内容、对安全实践的影响、学区需关注要点]

[Article Title 2] - [Source]

[文章标题2] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

[Article Title 3] - [Source]

[文章标题3] - [来源]

[2-3 sentence synopsis]
[2-3句摘要]

Legislative Activity ([Last Biz Day] - Today)

立法动态([上一个工作日] - 今日)

[X] education bills had movement:
[X]个教育法案有动态:

🔴 HIGH Priority

🔴 高优先级

[Bill ID] - [Short Title]

[法案ID] - [简短标题]

Action: [What happened - hearing, vote, committee action, etc.] Summary: [1-2 sentences: what the bill does, potential district impact]
动态:[事件内容 - 听证会、投票、委员会行动等] 摘要:[1-2句:法案内容、对学区的潜在影响]

🟡 MEDIUM Priority

🟡 中优先级

[Bill ID] - [Short Title]

[法案ID] - [简短标题]

Action: [What happened] Summary: [1-2 sentences]
动态:[事件内容] 摘要:[1-2句]

🟢 LOW Priority

🟢 低优先级

  • [Bill ID]: [Action type] - [One line summary]
No legislative activity since [date] - if no bills moved
  • [法案ID]:[动态类型] - [一行摘要]
自[日期]以来无立法动态 - 若无法案有动态时显示

Quick Stats

快速统计

  • Calendar events: X
  • Tasks overdue: X | Due today: X | Flagged: X
  • Open tickets (Tech): X
  • Open tickets (Software Dev): X
  • Pending approvals: X
  • Recent emails (24h): X
  • Team tickets closed [last biz day]: X
  • News articles: EdTech (X) | AI (X) | Leadership (X)
  • Legislative bills with activity: X
undefined
  • 日历日程:X个
  • 逾期任务:X个 | 今日到期:X个 | 已标记:X个
  • 待处理技术工单:X个
  • 待处理软件开发工单:X个
  • 待审批请求:X个
  • 近期邮件(24小时):X封
  • 团队上一个工作日关闭工单:X个
  • 新闻文章:教育科技(X)| AI(X)| 领导力(X)
  • 有动态的立法法案:X个
undefined

2.3 Generate Podcast Script (Extended Format)

2.3 生成播客脚本(扩展格式)

Transform the briefing into a comprehensive conversational audio script:
  • First person, casual professional tone
  • 10-15 minutes speaking time (~1500-2000 words)
  • Address listener directly ("Here's what you need to know today...")
Required Sections (in order):
  1. Opening (~100 words)
    • Day, date, weather summary
    • Quick preview of key items
  2. Calendar & Schedule (~150 words)
    • Today's events with context
    • Highlight key meetings/events
    • Note any conflicts or prep needed
  3. Tasks & Priorities (~150 words)
    • Overdue items that need attention
    • Due today items
    • Flagged priorities
  4. Tickets & Service Desk (~150 words)
    • Open Technology tickets
    • Software Development tickets
    • Pending approvals
  5. Team Activity - DETAILED (~400 words)
    • What the Technology team accomplished on last business day
    • Highlight 3-5 team members by name with specifics
    • Notable projects, interesting problems solved
    • What the Safety & Security team accomplished
    • Overall ticket closure stats
    CRITICAL - NO HALLUCINATION:
    • Use ONLY names from the script output
      sender
      fields
    • Use ONLY ticket counts from the
      get_daily_summary.js
      output
    • If script returned no messages, say "No EOD messages were posted"
    • NEVER invent names, locations, or accomplishments
  6. EdTech News (~200 words)
    • 2-3 articles with synopses
    • Why each matters for K-12
  7. AI News (~200 words)
    • 2-3 articles with synopses
    • Industry impact and relevance
  8. K-12 Leadership News (~150 words)
    • 1-2 articles with synopses
    • Policy/leadership implications
8b. School Safety & Security News (~150 words)
  • 2-3 articles with synopses
  • Safety practices and district implications
  1. Legislative Update (~150 words)
    • Bills that had hearings, votes, or readings since last business day
    • Highlight any with direct district impact (fiscal, operational, staffing)
    • Note upcoming hearing dates if relevant
    • On Mondays, include weekend activity summary
  2. Closing (~100 words)
    • Top 3 priorities for the day
    • Sign off
Style Guidelines:
  • Use team members' first names when discussing their work
  • Include specific details (not "worked on tickets" but "resolved 34 Chromebook repairs")
  • Transition smoothly between sections
  • Add brief commentary/analysis on news items
Save to
/tmp/morning_briefing_podcast.txt
将简报转换为全面的对话式音频脚本:
  • 第一人称、专业随性的语气
  • 10-15分钟时长(约1500-2000词)
  • 直接与听众对话(“以下是你今日需要了解的内容...”)
必填章节(按顺序):
  1. 开场(约100词)
    • 星期、日期、天气摘要
    • 关键内容快速预览
  2. 日历与日程(约150词)
    • 今日日程及背景
    • 重点突出关键会议/事项
    • 标注任何冲突或需要准备的内容
  3. 任务与优先级(约150词)
    • 需要关注的逾期事项
    • 今日到期事项
    • 已标记的优先级任务
  4. 工单与服务台(约150词)
    • 待处理技术工单
    • 软件开发工单
    • 待审批请求
  5. 团队动态 - 详细版(约400词)
    • 技术团队上一个工作日的工作成果
    • 重点介绍3-5位团队成员的具体工作
    • 重点项目、解决的疑难问题
    • 安全与安保团队的工作成果
    • 整体工单关闭统计
    关键要求 - 禁止虚构信息:
    • 仅使用脚本输出
      sender
      字段中的姓名
    • 仅使用
      get_daily_summary.js
      输出的工单数量
    • 若脚本未返回任何消息,需显示“未发布工作日志消息”
    • 禁止编造姓名、地点或工作成果
  6. 教育科技新闻(约200词)
    • 2-3篇文章的摘要
    • 每篇对K-12教育的重要性
  7. AI新闻(约200词)
    • 2-3篇文章的摘要
    • 行业影响与相关性
  8. K-12教育领导力新闻(约150词)
    • 1-2篇文章的摘要
    • 政策/领导力影响
8b. 校园安全与安保新闻(约150词)
  • 2-3篇文章的摘要
  • 对安全实践与学区的影响
  1. 立法更新(约150词)
    • 上一个工作日以来有听证会、投票或宣读的法案
    • 重点突出对学区有直接影响的法案(财政、运营、人员配置)
    • 若相关,标注即将到来的听证会日期
    • 周一需包含周末动态摘要
  2. 结尾(约100词)
    • 今日三大优先级任务
    • 结束语
保存至
/tmp/morning_briefing_podcast.txt

Phase 3: Create Podcast

第三阶段:创建播客

bash
uv run --with mlx-audio --with pydub /Users/hagelk/non-ic-code/geoffrey/skills/local-tts/scripts/generate_audio.py \
  --file /tmp/morning_briefing_podcast.txt \
  --voice af_heart \
  --output ~/Desktop/morning_briefing_[DATE].mp3
Voice Selection: af_heart (warm, friendly - good for morning briefing) Note: Uses local MLX TTS (Kokoro model) - no API costs
bash
uv run --with mlx-audio --with pydub /Users/hagelk/non-ic-code/geoffrey/skills/local-tts/scripts/generate_audio.py \
  --file /tmp/morning_briefing_podcast.txt \
  --voice af_heart \
  --output ~/Desktop/morning_briefing_[DATE].mp3
语音选择:af_heart(温暖友好 - 适合晨间简报) 说明:使用本地MLX TTS(Kokoro模型)- 无API费用

Phase 3.5: Generate Infographic (MANDATORY)

第三阶段补充:生成信息图(必填)

CRITICAL: The infographic MUST be generated. Do not skip this phase.
Create a visual summary infographic using the image-gen skill.
关键要求:必须生成信息图,不得跳过此阶段。
使用图像生成技能创建可视化摘要信息图。

3.5.1 Build Infographic Prompt

3.5.1 构建信息图提示词

Based on gathered data, construct a prompt for the infographic:
Create an infographic summarizing a daily work briefing for [DATE].

Visual concept: A clean dashboard layout with distinct sections for different data categories.

Key data to display:
- Weather: [conditions], High [X]°F, Low [Y]°F
- Calendar: [X] events today, highlight: [key meeting]
- Tasks: [X] overdue, [Y] due today, [Z] flagged
- Tickets: [X] Technology open, [Y] Software Dev open
- Team Activity: [X] tickets closed by team yesterday
- Emails: [X] in inbox from last 24h

Style: Professional, clean design with PSD brand colors (navy blue #003366, gold accent #FFD700).
Flat design, clear sections, modern sans-serif typography.

Layout: Horizontal 16:9, organized as a dashboard with weather top-left, calendar top-right,
tasks and tickets in middle row, team stats at bottom.

Title: "Daily Briefing - [DATE]"
Subtitle: "Gig Harbor, WA"
基于收集到的数据,构建信息图的提示词:
创建一个总结[日期]每日工作简报的信息图。

视觉概念:简洁的仪表板布局,不同数据类别有独立分区。

需展示的关键数据:
- 天气:[状况],最高[X]°F,最低[Y]°F
- 日历:今日[X]个日程,重点:[关键会议]
- 任务:逾期[X]个,今日到期[Y]个,已标记[Z]个
- 工单:待处理技术工单[X]个,待处理软件开发工单[Y]个
- 团队动态:团队昨日关闭工单[X]个
- 邮件:过去24小时收件箱中有[X]封邮件

风格:专业简洁的设计,使用PSD品牌色(藏青色#003366,金色强调色#FFD700)。
扁平化设计,分区清晰,现代无衬线字体。

布局:16:9横向,按仪表板组织,左上角为天气,右上角为日历,中间行是任务与工单,底部是团队统计。

标题:"每日简报 - [日期]"
副标题:"Gig Harbor, WA"

3.5.2 Generate Image

3.5.2 生成图像

bash
uv run /Users/hagelk/non-ic-code/geoffrey/skills/image-gen/scripts/generate.py \
  "[infographic prompt]" \
  ~/Desktop/morning_briefing_[DATE].png \
  16:9 \
  2K
Settings:
  • Aspect ratio: 16:9 (landscape dashboard)
  • Size: 2K (ensures text readability)
  • Output:
    ~/Desktop/morning_briefing_[DATE].png
bash
uv run /Users/hagelk/non-ic-code/geoffrey/skills/image-gen/scripts/generate.py \
  "[信息图提示词]" \
  ~/Desktop/morning_briefing_[DATE].png \
  16:9 \
  2K
设置:
  • 宽高比:16:9(横向仪表板)
  • 尺寸:2K(确保文字可读性)
  • 输出路径:
    ~/Desktop/morning_briefing_[DATE].png

Phase 4: Save to Obsidian

第四阶段:保存至Obsidian

4.1 Copy Infographic to Obsidian Assets

4.1 复制信息图至Obsidian资源库

bash
cp ~/Desktop/morning_briefing_[DATE].png \
  ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily\ Briefings/assets/
bash
cp ~/Desktop/morning_briefing_[DATE].png \
  ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily\ Briefings/assets/

4.2 Add Infographic to Briefing Markdown

4.2 将信息图添加至简报Markdown

At the top of the briefing (after the title), add:
markdown
![Daily Briefing Infographic](assets/morning_briefing_[DATE].png)
在简报标题下方添加:
markdown
![每日简报信息图](assets/morning_briefing_[DATE].png)

4.3 Save Briefing File

4.3 保存简报文件

Use Obsidian MCP tools:
  1. Check if daily note exists:
    mcp__obsidian-vault__get_vault_file
    filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md"
  2. Create or update:
    mcp__obsidian-vault__create_vault_file
    filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md"
    content: [full briefing markdown with infographic embed]
File path pattern:
Geoffrey/Daily Briefings/YYYY-MM-DD.md
Fallback (if MCP unavailable): Write directly to iCloud path:
bash
/Users/hagelk/Library/Mobile Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily Briefings/[YYYY-MM-DD].md
使用Obsidian MCP工具:
  1. 检查每日笔记是否存在
    mcp__obsidian-vault__get_vault_file
    filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md"
  2. 创建或更新
    mcp__obsidian-vault__create_vault_file
    filename: "Geoffrey/Daily Briefings/[YYYY-MM-DD].md"
    content: [包含信息图嵌入的完整简报Markdown]
文件路径格式
Geoffrey/Daily Briefings/YYYY-MM-DD.md
备选方案(若MCP不可用):直接写入iCloud路径:
bash
/Users/hagelk/Library/Mobile Documents/iCloud~md~obsidian/Documents/Personal_Notes/Geoffrey/Daily Briefings/[YYYY-MM-DD].md

Phase 5: Send Email (HTML with Inline Infographic)

第五阶段:发送邮件(含内嵌信息图的HTML格式)

5.1 Generate HTML Email Body

5.1 生成HTML邮件正文

Create a professional HTML email (NOT markdown). Use the template at
skills/morning-briefing/templates/email.html
as reference.
Key HTML structure:
html
<!DOCTYPE html>
<html>
<head>
  <style>
    body { font-family: -apple-system, BlinkMacSystemFont, sans-serif; max-width: 600px; margin: 0 auto; }
    .header { text-align: center; border-bottom: 2px solid #003366; padding: 16px; }
    .stat-box { background: #f8f9fa; padding: 12px; text-align: center; }
    /* ... more styles from template ... */
  </style>
</head>
<body>
  <!-- Infographic at TOP - referenced via cid:briefing_image -->
  <img src="cid:briefing_image" alt="Daily Briefing" style="width: 100%; max-width: 600px; border-radius: 8px; margin-bottom: 20px;">

  <div class="header">
    <h1 style="color: #003366;">Daily Briefing</h1>
    <p>[DAY_OF_WEEK], [DATE_FORMATTED]</p>
  </div>

  <!-- Weather, Stats, Calendar, Tasks, Team, News sections -->
  <!-- See templates/email.html for full structure -->

  <div style="background: #e8f4f8; padding: 16px; border-radius: 8px; margin-top: 20px;">
    <strong>Attachments:</strong><br>
    🎧 Audio Podcast (~10-15 min)<br>
    📊 Infographic (also shown above)
  </div>

  <p style="text-align: center; color: #666; font-size: 12px;">
    Full briefing: Obsidian/Geoffrey/Daily Briefings/[DATE].md
  </p>
</body>
</html>
CRITICAL: The
<img src="cid:briefing_image">
displays the infographic inline at the top of the email.
Save to
/tmp/morning_briefing_email.html
创建专业的HTML邮件(非Markdown)。参考
skills/morning-briefing/templates/email.html
模板。
关键HTML结构:
html
<!DOCTYPE html>
<html>
<head>
  <style>
    body { font-family: -apple-system, BlinkMacSystemFont, sans-serif; max-width: 600px; margin: 0 auto; }
    .header { text-align: center; border-bottom: 2px solid #003366; padding: 16px; }
    .stat-box { background: #f8f9fa; padding: 12px; text-align: center; }
    /* ... 模板中的更多样式 ... */
  </style>
</head>
<body>
  <!-- 顶部信息图 - 通过cid:briefing_image引用 -->
  <img src="cid:briefing_image" alt="每日简报" style="width: 100%; max-width: 600px; border-radius: 8px; margin-bottom: 20px;">

  <div class="header">
    <h1 style="color: #003366;">每日简报</h1>
    <p>[星期], [格式化日期]</p>
  </div>

  <!-- 天气、统计、日历、任务、团队、新闻等章节 -->
  <!-- 完整结构请查看templates/email.html -->

  <div style="background: #e8f4f8; padding: 16px; border-radius: 8px; margin-top: 20px;">
    <strong>附件:</strong><br>
    🎧 音频播客(约10-15分钟)<br>
    📊 信息图(已显示在上方)
  </div>

  <p style="text-align: center; color: #666; font-size: 12px;">
    完整简报:Obsidian/Geoffrey/Daily Briefings/[日期].md
  </p>
</body>
</html>
关键要求
<img src="cid:briefing_image">
用于在邮件顶部内嵌显示信息图。
保存至
/tmp/morning_briefing_email.html

5.2 Send with Inline Image + Attachments

5.2 发送内嵌图像 + 附件

bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/send_with_attachments.js psd \
  --to "hagelk@psd401.net" \
  --subject "Daily Briefing - [DATE]" \
  --body-file /tmp/morning_briefing_email.html \
  --html \
  --inline-image "~/Desktop/morning_briefing_[DATE].png" \
  --attachments "~/Desktop/morning_briefing_[DATE].mp3"
Options explained:
  • --html
    - Treat body as HTML (required for formatting)
  • --inline-image
    - Embeds image at top of email (referenced as
    cid:briefing_image
    )
  • --attachments
    - Additional files to attach (podcast)
Result:
  • Infographic displays INLINE at top of email (visible without downloading)
  • Podcast attached for download
  • Email renders nicely in Gmail with professional styling
bash
cd /Users/hagelk/non-ic-code/geoffrey/skills/google-workspace && bun gmail/send_with_attachments.js psd \
  --to "hagelk@psd401.net" \
  --subject "每日简报 - [日期]" \
  --body-file /tmp/morning_briefing_email.html \
  --html \
  --inline-image "~/Desktop/morning_briefing_[DATE].png" \
  --attachments "~/Desktop/morning_briefing_[DATE].mp3"
参数说明:
  • --html
    - 将正文视为HTML(格式化必填)
  • --inline-image
    - 将图像内嵌在邮件顶部(通过
    cid:briefing_image
    引用)
  • --attachments
    - 附加的其他文件(播客)
结果:
  • 信息图内嵌显示在邮件顶部(无需下载即可查看)
  • 播客作为附件可下载
  • 邮件在Gmail中以专业样式完美渲染

Output

输出

Return standardized summary:
markdown
undefined
返回标准化摘要:
markdown
undefined

Summary

摘要

Generated daily briefing for [DATE]
已生成[日期]的每日简报

Actions

执行操作

  • Gathered calendar events: X
  • Gathered tasks: X (Y due today, Z flagged)
  • Gathered Technology tickets: X open, Y approvals pending
  • Gathered Software Dev tickets: X open
  • Gathered team EOD messages: X from [last business day]
  • Gathered team completed tickets: X from [last business day]
  • Weather: [conditions]
  • News: X headlines
  • Generated podcast: ~/Desktop/morning_briefing_[DATE].mp3
  • Saved to Obsidian: Geoffrey/Daily Briefings/[DATE].md
  • Email: [sent/skipped - reason]
  • 收集日历日程:X个
  • 收集任务:X个(今日到期Y个,已标记Z个)
  • 收集技术工单:待处理X个,待审批Y个
  • 收集软件开发工单:待处理X个
  • 收集团队工作日志:上一个工作日X条
  • 收集团队已完成工单:上一个工作日X个
  • 天气:[状况]
  • 新闻:X条头条
  • 生成播客:~/Desktop/morning_briefing_[DATE].mp3
  • 保存至Obsidian:Geoffrey/Daily Briefings/[DATE].md
  • 邮件:[已发送/跳过 - 原因]

Status

状态

[Status emoji] [Complete/Partial]
[状态表情] [完成/部分完成]

Quick View

快速概览

[2-3 line summary of most important items]
undefined
[2-3行最重要内容的摘要]
undefined

Error Handling

错误处理

Missing Google Workspace Scripts

缺失Google Workspace脚本

If calendar/email scripts don't exist:
  • Skip those sections
  • Note "Integration pending" in output
  • Continue with available data sources
若日历/邮件脚本不存在:
  • 跳过对应章节
  • 在输出中注明“集成待完成”
  • 使用可用数据源继续执行

OmniFocus Not Running

OmniFocus未运行

Status: Partial
Note: OmniFocus not running - task data unavailable
状态:部分完成
说明:OmniFocus未运行 - 任务数据不可用

Freshservice API Error

Freshservice API错误

Status: Partial
Note: Freshservice API error - ticket data unavailable
状态:部分完成
说明:Freshservice API错误 - 工单数据不可用

Local TTS Generation Failed

本地TTS生成失败

Status: Partial
Note: Audio generation failed - check mlx-audio setup
Briefing saved to Obsidian without podcast
状态:部分完成
说明:音频生成失败 - 检查mlx-audio配置
简报已保存至Obsidian,未生成播客

Dependencies

依赖项

Skill/ToolRequired ForFallback
google-workspaceCalendar, email, team EODSkip sections
omnifocus-managerTasksSkip section
freshservice-managerTickets, approvals, team statsSkip section
local-ttsAudio podcastText-only briefing
obsidian-vault (MCP)Save briefingDisplay only
WebSearchNews, weatherSkip sections
技能/工具用途备选方案
google-workspace日历、邮件、团队工作日志跳过对应章节
omnifocus-manager任务跳过对应章节
freshservice-manager工单、审批、团队统计跳过对应章节
local-tts音频播客仅文本简报
obsidian-vault (MCP)保存简报仅显示
WebSearch新闻、天气跳过对应章节

Configuration

配置

User Preferences

用户偏好

  • Location: Gig Harbor, WA (weather)
  • Work Email: psd account
  • Technology Workspace: workspace_id: 2
  • Software Dev Workspace: workspace_id: 13
  • Technology Chat Space: spaces/AAAAxOtpv10 (Technology Staff Check-Ins & Logs)
  • Safety & Security Chat Space: spaces/AAAAFpQaAnA (PSD Safety & Security Team)
  • Voice: af_heart (warm, friendly - local Kokoro TTS)
  • Podcast Length: 10-15 minutes (~1500-2000 words)
  • 位置:Gig Harbor, WA(天气查询)
  • 工作邮箱:psd账户
  • 技术工作区:workspace_id: 2
  • 软件开发工作区:workspace_id: 13
  • 技术聊天空间:spaces/AAAAxOtpv10(技术员工签到与日志)
  • 安全与安保聊天空间:spaces/AAAAFpQaAnA(PSD安全与安保团队)
  • 语音:af_heart(温暖友好 - 本地Kokoro TTS)
  • 播客时长:10-15分钟(约1500-2000词)

Customization

自定义

Users can request:
  • "Skip news" - omit news section
  • "No podcast" - text only
  • "Just calendar and tasks" - minimal briefing
用户可请求:
  • "跳过新闻" - 省略新闻章节
  • "不生成播客" - 仅文本
  • "仅日历与任务" - 极简简报